前回Embulkのサンプルを実行した内容を元に、以前作成したSQL Serverのデータを取得・出力する処理をEmbulkで実装してみます。
Embulkでは様々なプラグインが開発されており、今回はその中の以下のプラグインを使用してSQLServerからの読み込みを行います。
github.com
どのようなプラグインがあるか知りたいという人は以下の記事を参照
qiita.com
実施作業
プラグインインストール
まずはgemを使用してプラグインのインストールを行っていきます。
以下のコマンドを実行します。
embulk gem install embulk-input-sqlserver
成功していれば『a gem installed』と出力されています。
JDBC Driverダウンロード
さて次は設定ファイルを作成して...といきたいところですが、SQL Serverを読み込むためには専用のJDBCドライバーが必要のようなので、以下の公式ページからダウンロードします。
※インストールしているJREのバージョンを元にダウンロードしてください
今回は下記のディレクトリに格納しました。
C:\drivers\sqljdbc_7.2\jpn
SQL Server設定確認
ログイン用のユーザと読み込み用DBを設定します。
※設定手順は省略
以下のクエリで取得できるデータと同じデータを取得するように設定します。
use AdventureWorks2012 select ProductID, Name, ProductNumber from Production.Product where ProductID < 500;
設定ファイル作成
すべての元となる設定ファイルを作成し、前回のサンプル実行時に使用したフォルダに格納します。
設定内容は以下の通り
特に難しいことはなく、インプットはドライバーパス・接続情報・読み込むデータの情報を設定、アウトプットは前回同様stdoutでコンソールに出力するように設定します。
設定ファイル生成コマンド実行
以下のコマンドで最初に定義した内容を元に設定ファイルを作成します。
embulk guess ./try1/sqlserver.yml -o config.yml
ファイルが作成されたことを確認します。
ファイルの内容は以下の通り
Dry Run実行
以下のコマンドで正常に実行可能か確認します。
embulk preview config.yml
先ほどSSMSで確認した内容と一緒なので、設定ファイルは特に問題なさそうです。
Embulk実行
以下のコマンドを実行します。
embulk run config.yml
Dry Runで確認した内容が想定通り出力されていることが確認できました。