😊

BigQuery Data Transfer Service for Salesforce を試してみた

に公開

はじめに

こんにちは。クラウドエース株式会社 第二開発部の劉です。

この記事では、BigQuery Data Transfer Service for Salesforce 機能を実際に検証し、設定手順や制限事項について詳しく解説します。Salesforce から BigQuery へのデータ転送を検討されている方の参考になれば幸いです。

1. BigQuery Data Transfer Service for Salesforce とは

BigQuery Data Transfer Service for Salesforce は、Salesforce のデータを BigQuery に自動的に転送する Google Cloud のマネージド サービスです。

1.1 従来のデータ連携との違い

従来の Salesforce データ連携では、以下のような課題がありました。

  • 複雑な設定: ETL ツールやカスタム API の実装が必要
  • 運用負荷: データ転送の監視・エラーハンドリング
  • コスト: 中間インフラの維持費用

BigQuery Data Transfer Service を利用することで、これらの課題を解決し、シンプルな設定でデータ転送を実現できます。

1.2 主なメリット

  • マネージド サービス: インフラの管理が不要
  • 自動 スケジューリング: 定期的なデータ転送の自動実行
  • BigQuery ネイティブ: BigQueryとの親和性が高い
  • コスト効率: 従量課金モデル

2. 現在の制限事項(2025/11/4時点)

検証を開始する前に、重要な制限事項を確認しておきましょう。

2.1 転送間隔の制限

定期的なデータ転送の最小間隔は15分です。リアルタイムに近いデータ転送が必要な場合は、他の方法を検討する必要があります。

2.2 サポート対象エンティティ

Salesforce Bulk API でサポートされているエンティティのみが転送対象となります。
明確にサポートされているエンティティを記載しているドキュメントがないため、事前にBigQuery Data Transfer設定画面で確認しておくとよいでしょう。設定画面では、転送対象として選択可能なエンティティの一覧が表示されます。使用したいエンティティ( API 参照名)が一覧に存在すれば、サポートされていると判断できます。

BigQuery Data Transfer設定画面の設定方法については、3章以降を参考にしてください。

3. 検証環境の準備

実際の検証手順を詳しく説明します。

3.1 Salesforceテストデータの準備

今回の検証では、商談(Opportunity)オブジェクトのテストデータを作成しました。

商談オブジェクトは営業活動の中核となるデータで、多くの組織で重要な分析対象となるため検証対象として選択しました。

3.2 Salesforce接続アプリケーションの作成

BigQueryからSalesforceにアクセスするための接続アプリケーションを作成します。

手順

  1. Salesforceの歯車アイコン⚙️をクリック
  2. 設定 を選択
  3. 外部クライアントアプリケーション設定新規接続アプリケーション をクリック

OAuth設定の詳細

接続アプリケーションの作成時には、以下のOAuth設定が必要です:

  • コールバックURL: BigQuery Data Transfer Service用のURL
  • 選択したOAuthスコープ:
    • APIを使用してユーザーデータを管理(api)
  • クライアントログイン情報フローを有効化 にチェックを入れる

次に、クライアント認証情報フローを以下のように構成します:

  1. Salesforceの歯車アイコン⚙️をクリック

  2. 設定 を選択

  3. 検索ボックスで「接続」を検索

  4. 接続アプリケーションを管理する」をクリックし、作成した接続アプリケーションを編集

  5. クライアントログイン情報フロー」を設定

4. 必要な認証情報の取得

BigQuery Transfer ジョブの設定に必要な情報を取得します。

4.1 myDomainの取得

  1. Salesforceの歯車アイコン⚙️をクリック
  2. 設定 を選択
  3. 検索ボックスで「ドメイン」を検索
  4. 私のドメイン」をクリックし、表示されるmyDomain情報を確認

    例:https://your-domain.my.salesforce.com

4.2 clientIdとclientSecretの取得

  1. Salesforceの歯車アイコン⚙️をクリック
  2. 設定 を選択
  3. 検索ボックスで「アプリケーションマネージャー」を検索
  4. 作成した接続アプリケーションの右端の▼から [参照] をクリック

取得する情報:

  • clientId: コンシューマー鍵
  • clientSecret: コンシューマーの秘密

5. BigQuery Transfer ジョブの設定

Google Cloud Consoleでの設定手順を説明します。

5.1 基本設定

  1. Google Cloud Consoleで BigQuery を開く
  2. データ転送転送を作成 をクリック
  3. ソースタイプ で「Salesforce」を選択

5.2 接続情報の入力

以下の情報を入力します:

  • 転送設定名: 任意の名前
  • Salesforce Domain: 取得したmyDomain
  • Client ID: 取得したclientId
  • Client Secret: 取得したclientSecret

5.3 転送スケジュールの設定

  • 転送頻度: 最小15分間隔で設定
  • 開始時刻: 任意の時刻を指定

6. 検証結果

実際のテスト結果は以下の通りです:

データ量 転送時間 成功率 備考
100レコード 2分28秒 100% 基本動作確認
1,000レコード 2分29秒 100% 小規模データ
4,200レコード 2分29秒 100% Developer Edition上限

パフォーマンスの特徴

今回の検証結果から、4,200レコードまでの規模では、転送時間の大部分が接続・認証・初期化処理に費やされていると推測されます。この特性により、より大規模なデータ転送においても高いパフォーマンスが期待できます。

Developer Editionでの制限

今回の検証では、Salesforce Developer Editionのデータ ストレージ制限(データ ストレージ: 5MB)により、最大4,200レコードまでしかテストできませんでした。

実運用での推奨事項:
BigQuery Data Transfer Serviceを本格導入する際は、実際の運用時のデータ規模に応じた性能テストを事前に実施することをおすすめします。特に10万レコード以上の大規模データを扱う場合は、Production環境またはより大きなSandbox環境で検証するとよいでしょう。

7. 実用性の評価

7.1 プロダクション利用への適用可能性

適用可能なケース:

  • 定期的なレポート作成用途
  • データ分析・BI用途
  • バックアップ目的

注意が必要なケース:

  • リアルタイム性が求められる用途: 転送間隔の最小値が15分のため、リアルタイムに近いデータ転送には不向きです。
  • 大量データの頻繁な転送: データ転送コストや処理時間が増大する可能性があるため、事前に性能検証やコスト見積もりが必要です。
  • カスタムオブジェクトが多い環境: Salesforce Bulk APIでサポートされているエンティティのみが転送対象のため、使用しているカスタムオブジェクトが対応しているか事前確認が必要です。

7.2 他のデータ連携方法との比較

今回の検証結果を踏まえた Google Cloud における他のデータ連携方法との比較:

方法 設定の簡単さ 開発コストの低さ 柔軟性
Data Transfer Service ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐
Dataflow ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
カスタムETL ⭐⭐ ⭐⭐⭐⭐⭐

各方法の補足説明:

  • Data Transfer Service: 本記事で検証したマネージド サービス。GUI から設定可能で運用が容易です。
  • Dataflow: Google Cloudのデータ処理サービス。Apache Beamを使用したデータ パイプライン構築が可能です。
  • カスタムETL: Google Cloud環境で、Salesforce API やBigQuery API を直接使用して独自に実装する方法。例としては、Cloud Functions や Compute Engine 上で Python やJavaを使用し、Salesforce REST API/Bulk APIからデータを取得してBigQuery APIでデータを投入するスクリプトやアプリケーションの作成。Cloud Composer(Airflow)などのオーケストレーション ツールと組み合わせることも可能です。

Data Transfer Serviceの優位性:

  • 設定の簡単さ: 技術的な専門知識が少なくても利用可能
  • 高い信頼性: 今回の検証で100%の成功率を実現
  • 運用負荷の軽減: 設定後はメンテナンスフリー

注意点:
パフォーマンスについては、データ量、処理内容、環境によって大きく異なるため、実際の運用環境での検証が重要です。

7.3 コスト面での考慮事項

  • 転送コスト: データ量に応じた従量課金
  • BigQueryストレージ コスト: 転送されたデータの保存費用
  • 運用コスト: マネージド サービスで自動実行されるため、サーバー管理やインフラの維持・更新、継続的な監視作業などは考慮不要

まとめ

BigQuery Data Transfer Service for Salesforceの検証を通じて、以下のことが分かりました:

メリット:

  • 設定の簡単さ: 技術的な専門知識が少なくても利用可能
  • 優れたパフォーマンス: 100レコードと4,200レコードで転送時間がほぼ同じ(約2分30秒)という結果から、高いスケーラビリティを示唆
  • 高い信頼性: 全テストケースで100%の成功率を達成
  • 運用負荷の軽減: マネージド サービスのためメンテナンスフリー

注意点:

  • 制限事項: 転送間隔は最小15分、Salesforce Bulk API対応オブジェクトのみサポート
  • カスタムフィールド: サポート状況の事前確認が重要

推奨される利用シナリオ:
検証結果を踏まえ、以下のような用途での利用がおすすめです:

  1. 定期レポート作成: 日次・週次のレポート用データ転送
    • 転送時間が一定のため、スケジュール予測が容易
  2. データ分析基盤: BIツールでの分析用データ準備
    • 高い成功率により、データ品質を保証
  3. データアーカイブ: 長期保存用のデータバックアップ
    • 小規模データでの安定した転送性能を確認
  4. リアルタイム性を求めない分析: バッチ処理による定期分析
    • 15分間隔での転送により、準リアルタイム分析が可能

結論:
今回の検証により、BigQuery Data Transfer Service for Salesforceは期待以上の性能を示しました。特に、100レコードから4,200レコードまでのデータ量増加に対して転送時間がほぼ変わらないという結果は、優れたスケーラビリティを示しており、より大規模なデータ転送でも高いパフォーマンスが期待できます。

SalesforceからBigQueryへのデータ転送を検討されている方には、積極的に推奨できるサービスです。特に、定期的なデータ分析やレポート作成が目的の場合、このサービスは非常に有効な選択肢となるでしょう。

参考資料

Discussion