Talend StudioでRoute(Apache Camel)を試す ~ファイルやメッセージキューなどを利用したESBによる連携~

QlikPresalesJapan 12 views 23 slides Sep 16, 2025
Slide 1
Slide 1 of 23
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23

About This Presentation

Talend StudioでRoute(Apache Camel)を試す ~ファイルやメッセージキューなどを利用したESBによる連携~


Slide Content

Talend Studio で Route(Apache Camel) を試す ~ファイルやメッセージキューなどを利用した ESB による連携~ Qlik Tips 2025/09/16

はじめに Talend Studio では、ファイルやメッセージキューなどを利用した ESB(Enterprise Service Bus) による連携処理を、ローコード / ノーコードで開発可能です。 ESB は、企業内の様々なシステムを接続し、データやサービスとの連携を可能にするアーキテクチャパターンで、 Talend Studio は「 Apache Camel 」をフレームワークとして採用し、 Route( ルート ) と呼ばれるメッセージフローを容易に作成できます。 このセッションでは、 XML ファイル や ActiveMQ( Java Message Service ) などを使った開発手順に加え、 Eclipse を利用した開発についても説明します。 2 ESB(Enterprise Service Bus) Event-Driven アーキテクチャ メッセージ ( データ ) を処理してルーティング

Talend Studio と ESB 連携 /Route 開発 3

4 Talend Studio によるジョブの開発 IDE(Eclipse ベース ) によるデータ統合 / データ連携開発環境 機能別部品を接続するシンプルな操作性によりデータ統合のフローを容易に開発 データ統合の様々な局面をサポートする充実した機能 開発とデバッグの同時進行、仕様書やテストの自動生成といった支援機能が豊富 GUI 統合開発環境 Talend Studio データソース ERP/CRM DBMS ファイル クラウド Web サービス データターゲット ERP/CRM DBMS ファイル クラウド Web サービス

Talend Data Fabric プラットフォーム製品の以下のライセンスが必要 オンプレミス製品 : Data Services Platform または Real-time Big Data クラウド製品 : Could API Services Platform または Cloud Data Fabric エンタープライズサービスバス (ESB) 上で「 常時 」稼働するタイプのジョブ Talend Runtime 上にデプロイ 「 Apache Camel 」を全面採用 https://camel.apache.org/ cXXXX 系 ( 例 : cTimer ) のコンポーネント群を利用してジョブをデザイン・実装 5 ルート (Route) とは メッセージをサービス ( またはエンドポイント ) 間で移動させる方法を定義するルール

オープンソースの Java ベースのフレームワークで、複数システム間の統合 (EIP) の簡便化を目的として開発された 2007 年 7 月に Apache Camel 1.0 がリリースされ、 2025 年 9 月現在の最新版は Apache Camel 4.14.0 メッセージを受信して処理を行った後、メッセージを送信するなどのルーティングは、様々なコンポーネントを利用して行う REST ・ SOAP(Apache CXF)/Java Message Service(JMS)/JDBC 接続 /FTP/ ファイル等の様々なトランスポートプロトコル・メッセージングモデルをサポート Apache Camel のオンラインドキュメント ( 英語 ) https://camel.apache.org/docs/ Apache Camel の解説書 ( 洋書 ) - Camel in Action 2nd Edition https://www.manning.com/books/camel-in-action-second-edition 6 Apache Camel とは Enterprise Integration Patterns(EIP) の実装を可能にする

Talend Studio による ESB 開発のメリット 開発のしやすさ、機能の充実、拡張性・再利用性、運用性 GUI ベースで ESB 開発が可能(ノーコード/ローコード) コーディング不要で Apache Camel ベースのルート構成を視覚的に設計可能 学習コストが比較的低く、すぐに開発を開始しやすい 多種多様なプロトコルとの接続性 Apache Camel ベースのルーティングロジック 複雑なルーティングを作成できる豊富なコンポーネントを搭載 REST ・ SOAP/JMS/FTP/JDBC 等に対応 条件分岐、再試行、集約、分割などエンタープライズ統合パターンを標準サポート Talend Runtime によるデプロイ環境 OSGi ベースの軽量 ESB コンテナ (Talend Runtime) にデプロイ 柔軟で拡張性のあるマイクロサービス構築が可能 ジョブの管理・監視 Talend Studio の ETL ジョブと連携可能 ESB (メッセージ連携)から ETL (データ連携)を呼び出し可能 7

通常の Eclipse で Apache Camel の開発を試す 8

Eclipse で Maven を設定する 設定の [Maven] で、 apache.org 向けの Remote Archetype Catalog を追加する https://repository.apache.org/content/groups/public/ 新規 Maven プロジェクトで、 camel-archetype-java を選択 シンプルな XML ファイルのコピー連携の Java プログラムが生成される 9

Apache Camel の Java プログラムを確認して実行する 10

Talend Studio で Route 開発 11 ファイル ( cFile ) と分岐 ( cMessageRouter )

XML ファイルのコピー連携を開発してみる 上述した Eclipse による Apache Camel のルーティングと同じものを実装 ルートを新規作成し、ファイル読取用に cFile コンポーネントを 1 個配置し、プロパティを設定する 各種コンポーネントを配置すると、 Apache Camel のルーティングのコードが自動生成される 12

XML ファイルのコピー連携を開発してみる ( 続き ) ログ用に cLog コンポーネントを 2 個、条件分岐用に cMessageRouter を 1 個、ファイル書き出し用に cFile を 2 個配置し、プロパティを設定し、 Route や分岐の線で繋ぐ when 以降のフロー ( タイプとして xpath の書式を指定 ) 13

XML ファイルのコピー連携を開発してみる ( 続き ) otherwise 以降のフロー 実行し、適当なタイミングで強制終了 14

Tips: バイナリファイルを cFile コンポーネントで扱うには 画像ファイルのような ( 例 : .jpg) バイナリファイルを読み書きする場合は、 cFile コンポーネントの「エンコーディング」プロパティを「 CUSTOM 」に設定し、値を空文字「 ”” 」にする その他の様々なパラメータは、 [ 詳細設定 ] プロパティで設定する 15

Talend Studio で Route 開発 16 Apache ActiveMQ と、 JMS( cJMS )

ファイル -> Route -> JMS -> Route -> ログ 2 つの Route を作成してみる 複数の XML ファイルを読み込み、その XML データをメッセージキューに送信し続ける メッセージキューから XML データを受信し続け、その XML データをログに出力する XML ファイルは前述した XML ファイルと、 cFile コンポーネントの設定をそのまま流用 メッセージキューとして、 Apache ActiveMQ (Classic) を利用 https://activemq.apache.org/ 最新版の 6.1.7 をダウンロードし、展開して起動 管理コンソールで、キュー「 testqueue 」を作成 Route からは、 JMS(Java Message Service) API を利用して接続し、送受信 17

ファイル -> Route -> JMS cFile を配置し、 Apache Camel 内部のメッセージと、 XML ファイルのデータをそれぞれ出力する cLog を 2 個配置 XML データそのもの ( メッセージの本体 /Body) を出力する場合は、 ”${body}” を指定 Simple Expression Language https://camel.apache.org/components/4.14.x/languages/simple-language.html 18

ファイル -> Route -> JMS( 続き ) ActiveMQ への接続設定と接続処理のために、 cMQConnectionFactory と cJMS を配置 cJMS から、 cMQConnectionFactory を参照 Apache Camel のメッセージの送信先として、キュー「 testqueue 」を指定 実行し、ログ (2 種類 ) を確認 19

ファイル -> Route -> JMS( 続き ) ActiveMQ に送信され、まだ受信されていない JMS メッセージ (2 個 ) を確認 20

JMS -> Route -> ログ ActiveMQ への接続設定と接続処理のために、 cMQConnectionFactory と cJMS を配置 cJMS から、 cMQConnectionFactory を参照 Apache Camel のメッセージの受信先として、キュー「 testqueue 」を指定 21

JMS -> Route -> ログ ( 続き ) 受信した JMS メッセージに対応する Apache Camel 内部のメッセージと、受信した XML ファイルのデータをそれぞれ出力する cLog を 2 個配置 XML データそのもの ( メッセージの本体 /Body) を出力する場合は、 ”${body}” を指定 実行し、ログ (2 種類 ) を確認 22

Thank you ! 23
Tags