Acumatica のデータをApache Kafka トピックにストリーミング
Apache Kafka は、主にリアルタイムデータパイプラインやイベント駆動型アプリケーションの構築に使用されるオープンソースのストリーム処理プラットフォームです。CData JDBC Driver for Acumaticaと組み合わせることで、Kafka はライブのAcumatica のデータを扱うことができます。この記事では、Acumatica データをApache Kafka トピックに接続、アクセス、ストリーミングする方法と、Confluent Control Center を起動してConfluent プラットフォームのKafka インフラストラクチャを使用して受信したAcumatica のデータをユーザーが安全に管理および監視できるようにする方法について説明します。
CData JDBC Driver は最適化されたデータ処理機能を内蔵しており、ライブのAcumatica のデータとのやり取りにおいて比類のないパフォーマンスを提供します。Acumatica に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作を直接Acumatica にプッシュし、サポートされていない操作(多くの場合SQL 関数やJOIN 操作)については組み込みのSQL エンジンを使用してクライアント側で処理します。組み込みの動的メタデータクエリにより、ネイティブのデータ型を使用してAcumatica のデータを操作および分析できます。
前提条件
Apache Kafka トピックでAcumatica のデータをストリーミングするためにCData JDBC Driver を接続する前に、クライアントのLinux ベースのシステムに以下をインストールおよび設定してください。
- Confluent Platform for Apache Kafka
- Confluent Hub CLI のインストール
- Confluent Platform 用のSelf-Managed Kafka JDBC Source Connector
Acumatica のデータへの新しいJDBC 接続を定義
- Linux ベースのシステムにCData JDBC Driver for Acumaticaをダウンロードします。
- 以下の手順に従って新しいディレクトリを作成し、すべてのドライバーの内容を展開します:
- Acumatica という名前の新しいディレクトリを作成します。
mkdir Acumatica
- ダウンロードしたドライバーファイル(.zip)をこの新しいディレクトリに移動します。
mv AcumaticaJDBCDriver.zip Acumatica/
- CData AcumaticaJDBCDriver の内容をこの新しいディレクトリに解凍します。
unzip AcumaticaJDBCDriver.zip
- Acumatica という名前の新しいディレクトリを作成します。
- Acumatica ディレクトリを開き、lib フォルダに移動します。
ls cd lib/
- CData JDBC Driver for Acumatica のlib フォルダの内容をKafka Connect JDBC のlib フォルダにコピーします。Kafka Connect JDBC フォルダの内容を確認し、cdata.jdbc.acumatica.jar ファイルがlib フォルダに正常にコピーされたことを確認します。
cp -r /path/to/CData JDBC Driver for Acumatica/lib/* /usr/share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/ cd /usr/share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/
- 以下のコマンドを使用して、CData Acumatica JDBC ドライバーのライセンスをインストールします。名前とメールアドレスを入力してください。
java -jar cdata.jdbc.acumatica.jar -l
- プロダクトキーまたは"TRIAL" を入力します(ライセンスの有効期限が切れた場合は、CData サポートチームまでお問い合わせください)。
- 以下のコマンドを使用してConfluent ローカルサービスを起動します:
confluent local services start
これにより、Zookeeper、Kafka、Schema Registry、Kafka REST、Kafka CONNECT、ksqlDB、Control Center などのすべてのConfluent サービスが起動します。これで、CData JDBC Driver for Acumatica を使用してKafka Connect Driver 経由でksqlDB のKafka トピックにメッセージをストリーミングする準備が整いました。
- POST HTTP API リクエストを使用してKafka トピックを手動で作成します:
curl --location 'server_address:8083/connectors' --header 'Content-Type: application/json' --data '{ "name": "jdbc_source_cdata_acumatica_01", "config": { "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector", "connection.url": "jdbc:acumatica:Url = https://try.acumatica.com/ISV/;EndpointName=Default;EndpointVersion=24.200.001;User=user;Password=password;Company=CompanyName;", "topic.prefix": "acumatica-01-", "mode": "bulk" } }'HTTP POST 本文(上記)で使用されるフィールドについて説明します:
- connector.class: 使用するKafka Connect コネクタのJava クラスを指定します。
- connection.url: Acumatica データに接続するためのJDBC 接続URL です。
組み込みの接続文字列デザイナー
JDBC URL の作成については、CData JDBC Driver for Acumaticaに組み込まれた接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインからjar ファイルを実行します。
java -jar cdata.jdbc.acumatica.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
Acumatica 接続プロパティの取得・設定方法
Acumatica への接続
Acumatica データソースに接続するには、次の接続プロパティを指定する必要があります。
- URL:(必須)Acumatica ERP インスタンスのベースURL。例:https://domain.acumatica.com/。
- Schema:(オプション)異なるデータを含む2つのスキーマがあります。デフォルトはREST で、Acumatica REST コントラクトベースのAPI を使用し、OData スキーマはAcumatica OData API を使用します。OData スキーマはAcumatica Generic Inquiries へのクエリに使用されます。
- Company:(一部必須)会社名またはテナント名に設定。Schema がOData に設定されている場合は必須です。
- EndpointVersion:(オプション)Web Services エンドポイントのバージョン。例:24.200.001。これはREST スキーマにのみ適用されます。
- EndpointName:(オプション)Web Services エンドポイントの名前。例:Default。これはREST スキーマにのみ適用されます。
Acumatica への認証
Acumatica データソースへの接続に使用できる認証方法は2つあります。Basic およびOAuth です。 Basic 認証では、AuthScheme をBasic に設定し、User とPassword をログイン資格情報に設定します。 OAuth 認証については、ヘルプドキュメントの「接続の確立」セクションにある「OAuth」を参照してください。
- topic.prefix: コネクタによって作成されるKafka トピックに追加されるプレフィックスです。「acumatica-01-」に設定されています。
- mode: コネクタの動作モードを指定します。ここでは「bulk」に設定されており、コネクタがバルクデータ転送を実行するように設定されていることを示しています。
このリクエストにより、Acumatica のすべてのテーブル/コンテンツがKafka トピックとして追加されます。
注意: リクエストをPOST するIP アドレス(サーバー)は、Linux ネットワークのIP アドレスです。
- ksqlDB を実行し、トピックを一覧表示します。以下のコマンドを使用します:
ksql list topics;
- トピック内のデータを表示するには、以下のSQL ステートメントを入力します:
PRINT topic FROM BEGINNING;
Confluent Control Center への接続
Confluent Control Center のユーザーインターフェースにアクセスするには、上記のセクションで説明した"confluent local services" を実行し、ローカルブラウザでhttp://<server address>:9021/clusters/ と入力してください。
おわりに
CData JDBC Driver for Acumaticaの30日間無償トライアルをダウンロードして、Acumatica データをApache Kafka にストリーミングしましょう。ご不明な点があれば、サポートチームまでお問い合わせください。