はじめに結論
Salesforceのデータを抜くならCloud Data FusionというGCPのツールが便利です
やったことはこれだけ。BigQuery側にテーブル定義も必要ないんです。
※この先は細かい話になります
Cloud Data Fusionとは
GCPのフルマネージドサービスなETLツールです。
https://cloud.google.com/data-fusion
Cloud Data Fusionを使おうと思った背景
データ移行の調査等でSOQLよりも自由にクエリを発行したかったので、SalesforceのデータをBigQureyにぶち込みたくなりました。
当初はDataSpider Cloudで進めていたのですが、大きな問題が。。。
BigQuery側にテーブル(オブジェクト)ごとのテーブル定義を設定しておく必要があり、カラム一つ一つを作業するのは心が死ぬのでやりたくありませんでした。
そこで「GCPにETLツールあるやろ」「GCPのツールならよしなにやってくれるやろ」と思って調べたら案の定見つかりました。しかも3つw
なんやかんやでCloud Data Fusionを選びました笑
まじめに理由を書くとこうです。
Salesforceのデータを加工するような複雑な処理は不要(Cloud Data Fusion = Appflow > Dataproc)
ストリーム処理ではなく1回きりの単発実行(Cloud Data Fusion > Appflow > Dataproc)
個人的にSparkやHadoopを触ったことがある(Cloud Data Fusion > Dataproc > Appflow)
ちょっと触ってみたらBigQueryにテーブル定義をしておかなくてもSalesforceのデータ構造からテーブルを作ってくれるみたいなので、DataSpiderの問題も解消しました。
設定手順
ここからは具体的な設定手順を紹介します。
やりたいことは以下の記事にほぼ書いてあります。笑
先の記事には言及がなかったですが「SalesforceMultiObjects」というコンポーネントを使うと、オブジェクトを複数一括で設定できるので便利でした。
さいごに
Google CloudとSalesforceは2023年に、クラウド領域で戦略的連携を強化すると発表がありました。 SalesforceのデータをGCP上で分析可能になったりするみたいです。