TalendなどEAI/ETL製品に3rdベンダJDBCドライバを組み込んで、Salesforceにアクセス
EAI/ETL製品の特長は、様々なデータソースにノンコーディングでアクセスできることですが、対応していないデータソースもあります。そんな時に3rdベンダ製のJDBCドライバを組み込める機能があったりしますので、少し試してみました。
オープンソースETLのTalendで検証
商用のETL/EAIツールは、DataSpider、SQL Server Integration Services、PowerCenter、Asteria Warpなど様々な製品がありますが、今回はOSSのTalendで検証してみました。(Talendはインストール済の前提)
・Talend Open Studio for Data Integration (7.3.1)
https://jp.talend.com/products/talend-open-studio/
TalendにProgress DataDirect JDBC for Salesforceを組み込む
https://www.ashisuto.co.jp/datadirect/app_download/ からJDBCドライバを入手し、インストーラを実行して導入しておきます。
Talend Open Studioを起動し、リポジトリ・タブの[メタデータ]→[DB接続定義]を開きます。
JDBC URLには、「jdbc:datadirect:sforce://login.salesforce.com」を入力し、ドライバとしてDataDirectを追加します。ドライバの+ボタンをクリックして、モジュールを追加していきます。
「アーティファクトリポジトリ」のラジオボックスを有効にし、「新規モジュールのインストール」の「…」からインストールされているDataDirectのJDBCドライバの場所を指定します。
DataDirectをインストールしたディレクトリのlib配下にあるsforce.jarがドライバです。
モジュールがインストールできたら、「ドライバ・クラス」を
「com.ddtek.jdbc.sforce.SForceDriver」に指定します。
SalesforceのユーザIDとパスワードを入力します。ここで注意点がありますが、パスワードは、「パスワード+セキュリティ・トークン」の文字列として入力するのがポイントです。TalendのSalesforceコネクタには、セキュリティ・トークンだけ入力するボックスがあるのですが、あくまで汎用JDBCということで用意はされていないということですね。
「Test connection」で成功したら、作成した接続定義を使って「スキーマの取得」を行いましょう。
無事に、今回検索したい「ACCOUNT」オブジェクトが見えてますね。
なお今回、「ACCOUNT」オブジェクトにダミーデータを12,000件ほど入れておきました。
Talend ジョブからデータ取得
Talendジョブを作成してデータを取得します。今回は、SalesforceのACCONTオブジェクトから全件を取得して、ローカルのCSVファイルに出力するジョブです。
tDBInputとtFileOutputDelimitedをつなげるだけのシンプルなジョブになります。
さて、テスト実行してみると・・・・
無事、12,179行のACCOUNTオブジェクトのデータがローカルのCSVファイルに出力されました。
かかった時間は、14.39sとあります。
ちなみに、TalendのSalesforceオプションでジョブを作り直して同じジョブを実行したところ、、、
18.21sで、若干DataDirectのほうが高速です。
何度か実施しましたが、DataDirectのほうが概ね高速ですが、性能は一概には言えない面もあるので、あくまで参考情報として考えておいてください。
接続プロパティ
さて、わざわざTalendに備わっているSalesforceコネクタを使わずに、DataDirectを使う理由はありません。しかし、DataDirectの特徴として、多様な接続プロパティが設定できるという点があります。このあたりの接続プロパティに魅力を感じられるようなら、DataDirectを組み込むという選択肢はありうるのかなと思います。
設定方法は、接続パラメータに追記していく形になります。
やや不格好ですが、「login.salesforce.com」の後に「;」で区切りながら各種パラメータを設定していくことで有効になります。
まとめ
EAI/ETLは多種多様なデータソースへ接続できるというメリットがありますが、併せてDataDirectのような3rdパーティJDBCを組み込む機能を使うと、さらに接続の幅が広がったり、細かい機能が追加できたり痒いところに手が届く感じになります。また、ライセンス体系として、コネクタは別売りのEAI/ETLツールが多いと思いますので、接続したいデータソースのコネクタが高額ということであれば、DataDirectを検討してもいいかもしれません。