Apache Camel を使用してJDBC-ODBC Bridge のデータと連携

加藤龍彦
加藤龍彦
デジタルマーケティング
Apache Camel のルーティングとCData JDBC Driver を使用してJDBC-ODBC Bridge のデータをディスク上のJSON ファイルにコピーするシンプルなJava アプリを作成。

Apache Camel は、データを消費または生成するさまざまなシステムを統合できる、オープンソースの統合フレームワークです。CData JDBC Driver for JDBCODBC と組み合わせることで、リアルタイムJDBC-ODBC Bridge のデータと連携するCamel ルートを使用するJava アプリを作成できます。この記事では、JDBC-ODBC Bridge のデータをJSON ファイルに接続、クエリ、及びルーティングするアプリをNetBeans で作成する方法について説明します。

ビルトインの最適化されたデータ処理により、CData JDBC Driver は、リアルタイムJDBC-ODBC Bridge のデータとやり取りする際に比類のないパフォーマンスを提供します。JDBC-ODBC Bridge に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作をJDBC-ODBC Bridge に直接プッシュし、組み込まれたSQL エンジンを利用してサポートされていない操作(主にSQL 関数とJOIN 操作)をクライアント側で処理します。組み込みの動的メタデータクエリを使用すると、ネイティブデータソース型を使用してJDBC-ODBC Bridge のデータを操作および分析することができます。

新しいMaven/Java プロジェクトを作成する

以下の手順に従って、新しいJava プロジェクトを作成し、適切な依存関係を追加します。

  1. NetBeans を開き、新しいプロジェクトを作成します。
  2. カテゴリリストからMaven を選択し、プロジェクトリストからJava Application を選択して、「Next」をクエリします。
  3. プロジェクトに名前を付け、他のプロパティを調整して「Finish」をクリックします。
  4. ソースパッケージで新しいJava クラス(ここではApp.java を使用)を作成し、クラスにmain メソッドを追加します。

プロジェクトの依存関係を追加する

プロジェクトが作成されたら、アプリからリアルタイムJDBC-ODBC Bridge のデータを操作するために必要な依存関係を追加できるようになります。まだMaven を環境にインストールしていない場合、CData JDBC ドライバのJAR ファイルをプロジェクトに追加するのに必要なため、インストールしてください。

Maven を使用してCData JDBC Driver for JDBCODBC をインストールする

  1. JDBC-ODBC Bridge 用のCData JDBC Driver をダウンロードしてパッケージを解凍し、JAR を実行してドライバーをインストールします。
  2. Maven を使用し、コネクタとしてJDBC Driver をインストールします。
    mvn install:install-file
    	-Dfile="C:\Program Files\CData\CData JDBC Driver for JDBCODBC 2019\lib\cdata.jdbc.jdbcodbc.jar"
    	-DgroupId="org.cdata.connectors"
    	-DartifactId="cdata-jdbcodbc-connector"
    	-Dversion="19"
    	-Dpackaging=jar
    

JDBC Driver をインストールしたら、プロジェクトに依存関係を追加できます。依存関係を追加するには、pom.xml を編集するか、依存関係にあるフォルダを右クリックして「Add Dependency」をクリックします。各依存関係のプロパティは以下の通りですが、「Add Dependency」ウィザードの「Query」ボックスに依存関係の名前を入力することで使用可能なライブラリを検索できます。

Selecting a dependency

必要な依存関係

DependencyGroup IDArtifact IDVersion
camel-coreorg.apache.camelcamel-core3.0.0
camel-jacksonorg.apache.camelcamel-jackson3.0.0
camel-jdbcorg.apache.camelcamel-jdbc3.0.0
camel-jsonpathorg.apache.camelcamel-jsonpath3.0.0
cdata-jdbcodbc-connectororg.cdata.connectorscdata-salesforce-connector19
commons-dbcp2org.apache.commonscommons-dbcp22.7.0
slf4j-log4j12org.slf4jslf4j-log4j121.7.30
log4jorg.apache.logging.log4jlog4j2.12.1

Camel を使用してJava アプリでJDBC-ODBC Bridge のデータにアクセスする

必要な依存関係を追加したら、Java DSL(Domain Specific Language)を使用してリアルタイムJDBC-ODBC Bridge のデータにアクセスできるルートを作成できます。以下はコードの一部です。サンプルプロジェクト(zip ファイル)をダウンロードして以下を実行してください。(TODO コメントに注意してください。)

必要なクラスをメインクラスにインポートすることから始めます。

import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.support.SimpleRegistry;
import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.log4j.BasicConfigurator;

次に、main メソッドでロギングを構成し、新しいBasicDataSource を作成してレジストリに追加し、新しいCamelContext を作成して、最後にコンテクストへのルートに追加します。この例では、JDBC-ODBC Bridge のデータをJSON ファイルにルーティングします。

ロギングを構成する

BasicConfigurator.configure();

BasicDataSource を作成する

BasicDataSource を作成し、ドライバークラス名(cdata.jdbc.salesforce.SalesforceDriver)とURL(必要な接続プロパティを使用)を設定します。

To connect to an ODBC data source, specify either the DSN (data source name) or specify an ODBC connection string: Set Driver and the connection properties for your ODBC driver.
BasicDataSource basic = new BasicDataSource();
basic.setDriverClassName("cdata.jdbc.jdbcodbc.JDBCODBCDriver");
basic.setUrl("jdbc:jdbcodbc:Driver={ODBC_Driver_Name};Driver_Property1=Driver_Value1;Driver_Property2=Driver_Value2;...");

CData JDBC ドライバには、接続URL の構成に役立つ組み込みの接続文字列デザイナーが含まれています。

組み込みの接続文字列デザイナ

JDBC URL の構築については、JDBC-ODBC Bridge JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインからjar ファイルを実行します。

java -jar cdata.jdbc.jdbcodbc.jar

接続プロパティを入力し、接続文字列をクリップボードにコピーします。

Using the built-in connection string designer to generate a JDBC URL (Salesforce is shown.)

BasicDataSource をレジストリに追加し、CamelContext を作成する

SimpleRegistry reg = new SimpleRegistry();
reg.bind("myDataSource", basic);

CamelContext context = new DefaultCamelContext(reg);

CamelContext にルーティングを追加する

以下のルーティングでは、timer コンポーネントを使用して一度実行し、SQL クエリをJDBC Driver に渡します。結果はJSON として整理され、(きれいに印刷できるようにフォーマットされて)file コンポーネントに渡され、JSON ファイルとしてディスクに書き込まれます。

context.addRoutes(new RouteBuilder() {
	@Override
	public void configure() {
		from("timer://foo?repeatCount=1")
			.setBody(constant("SELECT * FROM Account LIMIT 10"))
			.to("jdbc:myDataSource")
			.marshal().json(true)
			.to("file:C:\\Users\\USER\\Documents?fileName=account.json");
	}
});

CamelContext ライフサイクルを管理する

ルートを定義したら、CamelContext を開始してライフサイクルを始めます。この例では、10 秒待機してからコンテクストをシャットダウンします。

context.start();
Thread.sleep(10000);
context.stop();

無償トライアル、サンプルプロジェクト、テクニカルサポート

これで、Camel を使用してJDBC-ODBC Bridge からJSON ファイルにデータをルーティングするJava アプリケーションを使用できるようになりました。CData JDBC Driver for JDBCODBC の30日の無償評価版と、サンプルプロジェクトをダウンロードして(TODO コメントに注意して)、Apache Camel でリアルタイムJDBC-ODBC Bridge のデータの操作を開始します。ご不明な点があれば、サポートチームにお問い合わせください。

はじめる準備はできましたか?

JDBC-ODBC Bridge の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

ODBC Connectivity from Java Icon JDBC-ODBC Bridge Driver お問い合わせ

JDBC-ODBC Bridge は、あらゆるJava アプリからWindows、Linux、Mac 上のODBC データソースへのJDBC アクセスを提供します。CData JDBC-ODBC Bridge は、レポートや分析にJava ベースのツールを使用する場合でも、カスタムJava ソリューションを構築する場合でも、あらゆるODBC データソースに簡単に接続できます。