はじめに
前回に続き、Talend Open Studio for Data Integrationを利用して、Azureのデーターベースに対して、データのインポートとエクスポートを試してみます。
前回の記事:https://tech-lab.sios.jp/archives/5666
今回は、Azureのデーターベースには「SQL Data Warehouse」を使用します。
SQL Data Warehouseのエンジンの基盤はSQL Server のため、Talendでの設定方法は前回とほぼ同じとなります。
今回の動作環境
動作環境は下記になります。
- Talend の環境
– Windows 10 64bit
– jdk-8u144-windows-x64.exe - SQL Data Warehouse の環境
– 任意のデータベースに、テーブル名「test_table」作成する
– テーブル名「test_table」のスキーマは以下「※テーブルのスキーマ」のとおり設定する
※テーブルのスキーマ
カラム名:time で、 データ型:smalldatetime
カラム名:name で、 データ型:nvarchar(4000)
カラム名:age で、 データ型:smallint
Talendの利用方法
前回と同じ下図の処理フローをTalend Open Studio for Data Integrationで作成していきます。
- JDBC経由でAzure SQL Data Warehouseへのデータインポート
- JDBC経由でAzure SQL Data Warehouseからデータ取得
- 確認のため、取得したデータを標準出力
各コンポーネントの設定方法も前回と同じ要領で、以下の設定を行います。
JDBCドライバの設定
DB接続の共有設定のために、tJDBCConnectionコンポーネントを利用します。
SQL ServerのJDBCドライバ6.2をこちらからをダウンロードします。
tJDBCConnectionの設定
JDBCのURL:"jdbc:sqlserver://${サーバ名}.database.windows.net:1433;database=${データベース名};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
ドライバJarファイル:${ダウンロードしたJDBCのファイルパスを指定}
ドライバクラス:"com.microsoft.sqlserver.jdbc.SQLServerDriver"
ユーザ名:"${Azure SQL Data Warehouseに作成したユーザー}"
パスワード:"${Azure SQL Data Warehouseに作成したパスワード}"
自動コミットを使用:チェックはしない
CSVファイルの読み込み
インポート対象のデータは前回と同じUTF8のCSV形式のファイル(ヘッダー付)を用意します。
tFileInputDelimitedの設定
ファイル名/ストリーム:"${CSVファイルを配置したファイルパスを指定}"
CSVの行区切り文字:LF(\n)
フィールド区切り記号:","
CSVオプション:チェックする
ヘッダー:1
スキーマの編集:以下「※スキーマの設定」のとおり設定する
エンコード:UTF-8
※スキーマの設定
スキーマの編集にて、以下のスキーマを設定することでデータの取得が可能となります。
Azure SQL Data Warehouseへのデータ挿入
JDBCを利用してクエリを発行します。
tJDBCOutputの設定
既存の接続を使用:チェックする
コンポーネントリスト:(上記で設定した)tJDBCConnection_1
テーブル:"test_table"
データ操作:挿入を指定
スキーマの編集:tFileInputDelimitedとリンク設定後に、(上記で設定した)tFileInputDelimitedと同じことを確認
Azure SQL Data Warehouseからのデータ取得
JDBCを利用してデータを取得します。
tJDBCInputの設定
既存の接続を使用:チェックする
コンポーネントリスト:(上記で設定した)tJDBCConnection_1
スキーマの編集:(上記で設定した)tFileInputDelimitedと同じとすること
テーブル名:"test_table"
クエリ:"SELECT * FROM test_table"
各コンポーネント間のリンク設定
設定方法は、前回と全く同じ要領のため、詳細は前回の同じ箇所を参照。
ジョブの実行
全ての設定が完了した後、ジョブの実行をします。 実行後、下図に示されるのジョブ実行のパネルにて、処理結果が表示されます。
CSVファイルのデータを挿入したテーブルからデータを取得した内容が、”|”区切りで表示されていることが分かります。
クライアント管理ツールのSSMS(SQL Server Management Studio)でも確認してみます。
下図のとおり、CSVの内容がテーブルに挿入されています。
まとめ
以上のように、Azure SQL Data Warehouse でも、Talend Open Studio により、
ノンプログラミングで簡単にデータ連携が実現できます。
斎藤@SSTD