Embulk を使用して JDBC-ODBC Bridge ののデータをデータベースにロードする方法

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
CData JDBC Driver とオープンソースのETL/ELT ツールであるEmbulk を使ってJDBC-ODBC Bridge のデータをデータベースにロードする方法を解説します。

Embulk はオープンソースのバルクデータローダーです。CData JDBC-ODBC Bridge Driver と組み合わせることで、JDBC-ODBC Bridge から任意の同期先にデータを簡単にロードできます。この記事では、CData JDBC-ODBC Bridge Driver をEmbulk で使用してJDBC-ODBC Bridge のデータをMySQL データベースにロードする方法を解説します。

CData JDBC Driver は、最適化されたデータ処理機能を内蔵しており、リアルタイムのJDBC-ODBC Bridge のデータに対して比類のないパフォーマンスを発揮します。JDBC-ODBC Bridge に対して複雑なSQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作を直接JDBC-ODBC Bridge にプッシュし、サポートされていない操作(SQL 関数やJOIN 操作など)は組み込みのSQL エンジンを使用してクライアント側で処理します。

JDBC-ODBC Bridge への JDBC 接続を設定

Embulk でバルクロードジョブを作成する前に、JDBC Driver のJAR ファイルのインストール場所(通常はC:\Program Files\CData\CData JDBC-ODBC Bridge Driver\lib)を確認しておきます。

Embulk はJDBC 接続をサポートしているため、JDBC-ODBC Bridge に簡単に接続してSQL クエリを実行できます。バルクロードジョブを作成する前に、JDBC-ODBC Bridge への認証用のJDBC 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.

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

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

java -jar cdata.jdbc.jdbcodbc.jar

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

以下は、JDBC-ODBC Bridge への一般的なJDBC 接続文字列です。

jdbc:jdbcodbc:Driver={ODBC_Driver_Name};Driver_Property1=Driver_Value1;Driver_Property2=Driver_Value2;...

Embulk で JDBC-ODBC Bridge ののデータをロード

CData JDBC Driver をインストールしてJDBC 接続文字列を作成したら、必要なEmbulk プラグインをインストールします。

Embulk の入力・出力プラグインをインストール

  1. Embulk にJDBC 入力プラグインをインストールします。
    https://github.com/embulk/embulk-input-jdbc/tree/master/embulk-input-jdbc
  2. embulk gem install embulk-input-jdbc
    
  3. この記事では、同期先データベースとしてMySQL を使用します。出力プラグインを使用して、SQL Server、PostgreSQL、またはGoogle BigQuery を同期先として選択することもできます。
    https://github.com/embulk/embulk-output-jdbc/tree/master/embulk-output-mysql
    embulk gem install embulk-output-mysql
    

入力プラグインと出力プラグインをインストールしたら、Embulk を使用してJDBC-ODBC Bridge のデータをMySQL にロードする準備が整いました。

JDBC-ODBC Bridge ののデータをロードするジョブを作成

まず、Embulk で設定ファイルを作成します。ファイル名はjdbcodbc-mysql.yml のようにします。

  1. 入力プラグインのオプションには、CData JDBC-ODBC Bridge Driver、ドライバーJAR ファイルへのパス、ドライバークラス(例:cdata.jdbc.jdbcodbc.JDBCODBCDriver)、および上記のJDBC URL を指定します。
  2. 出力プラグインのオプションには、MySQL データベースの値と認証情報を指定します。

設定ファイルのサンプル(jdbcodbc-mysql.yml)

in:
	type: jdbc
	driver_path: C:\Program Files\CData[product_name] 20xx\lib\cdata.jdbc.jdbcodbc.jar
	driver_class: cdata.jdbc.jdbcodbc.JDBCODBCDriver
	url: jdbc:jdbcodbc:Driver={ODBC_Driver_Name};Driver_Property1=Driver_Value1;Driver_Property2=Driver_Value2;...
	table: "Account"
out:
	type: mysql
	host: localhost
	database: DatabaseName
	user: UserId
	password: UserPassword
	table: "Account"
	mode: insert

ファイルを作成したら、Embulk ジョブを実行します。

embulk run jdbcodbc-mysql.yml

Embulk ジョブを実行すると、MySQL テーブルにJDBC-ODBC Bridge のデータが格納されます。

フィルタリングした JDBC-ODBC Bridge ののデータをロード

テーブルから直接データをロードするだけでなく、カスタムSQL クエリを使用してロードするデータをより詳細に制御できます。また、クエリフィールドのSQL WHERE 句で最終更新カラムを設定することで、増分ロードを実行することもできます。

in:
	type: jdbc
	driver_path: C:\Program Files\CData[product_name] 20xx\lib\cdata.jdbc.jdbcodbc.jar
	driver_class: cdata.jdbc.jdbcodbc.JDBCODBCDriver
	url: jdbc:jdbcodbc:Driver={ODBC_Driver_Name};Driver_Property1=Driver_Value1;Driver_Property2=Driver_Value2;...
	query: "SELECT Id, Name FROM Account WHERE [RecordId] = 1"
out:
	type: mysql
	host: localhost
	database: DatabaseName
	user: UserId
	password: UserPassword
	table: "Account"
	mode: insert

詳細情報と無料トライアル

CData JDBC-ODBC Bridge Driver をコネクタとして使用することで、Embulk のデータロードジョブにJDBC-ODBC Bridge のデータを統合できます。また、200 を超えるエンタープライズデータソース向けドライバーにより、あらゆるエンタープライズSaaS、ビッグデータ、NoSQL ソースも統合できます。30日間の無料トライアルをダウンロードして、今すぐお試しください。

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

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 データソースに簡単に接続できます。