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 の入力・出力プラグインをインストール
- Embulk にJDBC 入力プラグインをインストールします。
https://github.com/embulk/embulk-input-jdbc/tree/master/embulk-input-jdbc - この記事では、同期先データベースとしてMySQL を使用します。出力プラグインを使用して、SQL Server、PostgreSQL、またはGoogle BigQuery を同期先として選択することもできます。
https://github.com/embulk/embulk-output-jdbc/tree/master/embulk-output-mysqlembulk gem install embulk-output-mysql
embulk gem install embulk-input-jdbc
入力プラグインと出力プラグインをインストールしたら、Embulk を使用してJDBC-ODBC Bridge のデータをMySQL にロードする準備が整いました。
JDBC-ODBC Bridge ののデータをロードするジョブを作成
まず、Embulk で設定ファイルを作成します。ファイル名はjdbcodbc-mysql.yml のようにします。
- 入力プラグインのオプションには、CData JDBC-ODBC Bridge Driver、ドライバーJAR ファイルへのパス、ドライバークラス(例:cdata.jdbc.jdbcodbc.JDBCODBCDriver)、および上記のJDBC URL を指定します。
- 出力プラグインのオプションには、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日間の無料トライアルをダウンロードして、今すぐお試しください。