Talend(Talend Open Studio for Data Integration 5.4.1)を使ってデータ連携をする時には、まず、メタデータを作成する必要があります。前回はSQL Serverへ接続するときに、ODBCを使った方法をまとめましたが、今回はODBCを使わずに接続する方法をご紹介します。
ODBC接続を使わない場合は設定で、かなりはまったので、はまった点を含めて記録しておきます。
DB接続の作成
メタデータのDB接続を右クリックして、DB接続の作成を選択します。
プロパティの定義
新規DB接続ダイアログが表示されたら、名前(Name)、目的(Purpose)、説明(Description)を入力します。目的や説明は入力しなくても、名前だけ入力すれば次のダイアログへ進めます。
名前を入力するときには、スペースを入れないように注意しましょう。
接続パラメータを定義
DB Typeに Microsoft SQL Serverを選択すると、接続に関する設定情報設定ができるようになりますが、この時に使っているドライバはJDBCのフリーのドライバjTDSになります。
そこで、jTDSに対して接続文字列を設定する必要がありますが・・・
SQL Server 2008 R2 Expressの場合は、ポートが指定されていないため、こちらのサイトを参考にしながら以下の様な接続文字列を設定しました。
jdbc:jtds:sqlserver://[SQL Server名]/[データベース名];instance=sqlexpress
もちろん、SQL Server側でSQL Server Browserの起動や、ファイヤーウォールの設定など、SQL Server側の外部アクセス設定(動的ポートを利用)を実施しておく必要があります。
これ、ダイアログ上から設定しようと思ってもうまくいかないので、結局接続文字列を直接変更しました。
この時点でチェックボタンを押して・・・お、動いた!
と、思って、保存して、再度開こうとすると?
jdbc:jtds:sqlserver://[SQL Server名]:/[データベース名];instance=sqlexpress
なんか、コロンが入ってる!!
勝手に入っちゃうのか・・・ということで、結局、SQL Server側のポート番号を固定にしました。
jdbc:jtds:sqlserver://[SQL Server名]:1433/[データベース名];instance=sqlexpress
やっとつながりました。
ちなみに、Windows認証は使えない様子(たぶん、何かモジュール入れればできそうな気はするけど・・・)なので、SQL Server認証にて接続するために、SQL Server側にユーザー設定が必要です。
この認証系に関しても、はまった部分です。
スキーマ情報の取得
作成したDB接続を右クリックして、スキーマ情報の取得をクリックします。
フィルタの設定
とりあえず、全部のテーブルを表示させたいので、何も変更せずに次へをクリック
テーブルなどの選択
データベースの中をクリックしながら開き、目的とするテーブルを選択します。数が多いとかなり時間がかかります。
目的のテーブルなどを選択したら、次へをクリックします。
テーブルなどの中を確認
選択したテーブルのフィールドを確認して、問題が無ければ終了をクリックします。
最後に取得したスキーマ情報が反映されているかどうか確認して終了です。
ODBC接続したら、文字化けしていましたが、SQL Serverへ直接接続したら、文字化けも解消しました!
コメント