Salesforce の転送をスケジュールする

BigQuery Data Transfer Service for Salesforce コネクタを使用すると、Salesforce から BigQuery への定期的な読み込みジョブを自動的にスケジュールし、管理できます。

制限事項

Salesforce のデータ転送には、次の制限があります。

  • BigQuery Data Transfer Service for Salesforce は、Salesforce Bulk API のみを使用して Salesforce インスタンスに接続し、Salesforce Bulk API でサポートされているエンティティの転送のみをサポートします。サポートされているエンティティの詳細については、「Entity is not supported by the Bulk API」エラーをご覧ください。
  • 定期的なデータ転送の最小間隔は 15 分です。デフォルトの定期的な転送間隔は 24 時間です。
  • BigQuery Data Transfer Service は、Salesforce Bulk API v1 を使用して Salesforce エンドポイントに接続し、データを取得します。

始める前に

以降のセクションでは、Salesforce のデータ転送を作成する前に必要な手順について説明します。

Salesforce 接続アプリを作成する

次の必須構成で Salesforce 接続アプリを作成する必要があります。

  • 接続アプリで基本情報を構成します。Salesforce への転送では、[Connected App Name] フィールドと [Contact Email] フィールドは必須です。
  • 次の構成で OAuth 設定を有効にします
    • [Enable OAuth Settings] チェックボックスをオンにします。
    • [URL] フィールドに、次のように入力します。
      • 本番環境の場合は、「https://login.salesforce.com/services/oauth2/token」と入力します。
      • サンドボックス環境の場合は、「https://test.salesforce.com/services/oauth2/token」と入力します。
  • [Selected OAuth Scopes] セクションで、[Manage user data via APIs (api)] を選択します。
  • [Required Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows] チェックボックスをオフにします。
  • [Enable Client Credentials Flow] を選択し、表示された通知で [OK] をクリックします。

必要な構成で接続アプリを構成したら、[Save] をクリックします。新しく作成した接続アプリの詳細ページにリダイレクトされます。

接続アプリを作成したら、次の手順でクライアント認証情報フローを構成する必要があります。

  1. [Setup] をクリックします。
  2. 検索バーで「Connected Apps」を検索します。
  3. [Manage Apps] > [Connected Apps] をクリックします。Salesforce Lightning Experience を使用している場合は、[Manage Connected Apps] をクリックします。
  4. 作成した接続アプリで [Edit] をクリックします。
  5. [App details] ページが表示されます。[Client Credentials Flow] セクションの [Run As] フィールドにユーザー名を入力します。このフィールドの検索ツールを使用して、正しいユーザーを選択していることを確認できます。
  6. [Save] をクリックします。

必要な Salesforce 情報

Salesforce のデータ転送を作成する場合は、Salesforce について次の情報も用意する必要があります。

パラメータ名 説明
myDomain Salesforce の My Domain
clientId Salesforce 接続アプリケーションのコンシューマー キー。
clientSecret

Salesforce 接続アプリケーションの OAuth クライアント シークレットまたはコンシューマー シークレット。

myDomainclientIDclientSecret の値を取得するには、次のいずれかのオプションを選択します。

Salesforce Classic

myDomain の詳細を取得する

myDomain を確認する手順は次のとおりです。

  1. Salesforce プラットフォームにログインします。
  2. [Setup] をクリックします。
  3. 検索バーで「My Domain」を検索します。
  4. 検索結果で、[Domain Management] > [My Domain] をクリックします。

[My Domain Details] セクションの [Current My Domain URL] に、myDomain がプレフィックスとして表示されます。たとえば、マイドメインの URL が example.my.salesforce.com の場合、使用する myDomain の値は example です。

ClientIdClientSecret の詳細を取得する

ClientIdClientSecret の値を確認する手順は次のとおりです。

  1. Salesforce プラットフォームにログインします。
  2. [Setup] をクリックします。
  3. 検索バーで「Apps」を検索します。
  4. 検索結果の [Build] セクションで、[Create] > [Apps] をクリックします。
  5. [Connected App Name] をクリックします。
  6. [Connected Apps] の詳細ページで、[Manage Consumer Details] をクリックします。
  7. 登録済みのいずれかの方法で本人確認を行います。本人確認を再度行うよう求められるまで、最大 5 分間、お客様の詳細ページを表示できます。
  8. [Consumer Details] ページの [Consumer Key] が ClientId の値です。[Customer Secret] は ClientSecret の値です。

Salesforce Lightning Experience

myDomain の詳細を取得する

myDomain を確認する手順は次のとおりです。

  1. Salesforce プラットフォームにログインします。
  2. [Setup] をクリックします。

Salesforce プラットフォームの [Setup] ページを開きます。

  1. 検索バーで「My Domain」を検索します。
  2. 検索結果で、[Company Settings] > [My Domain] をクリックします。

[My Domain Details] セクションの [Current My Domain URL] に、myDomain がプレフィックスとして表示されます。たとえば、マイドメインの URL が example.my.salesforce.com の場合、使用する myDomain の値は example です。

ClientIdClientSecret の詳細を取得する

  1. Salesforce プラットフォームにログインします。
  2. [Setup] をクリックします。
  3. 検索バーで「Apps」を検索します。
  4. 検索結果で [Apps] > [App Manager] をクリックします。
  5. 接続済みのアプリを見つけて、[View] をクリックします。
  6. [Manage Consumer Details] をクリックします。
  7. 登録済みのいずれかの方法で本人確認を行います。本人確認を再度行うよう求められるまで、最大 5 分間、お客様の詳細ページを表示できます。
  8. [Consumer Details] ページの [Consumer Key] が ClientId の値です。[Customer Secret] は ClientSecret の値です。

BigQuery の前提条件

必要な BigQuery のロール

転送の作成に必要な権限を取得するには、BigQuery 管理者roles/bigquery.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。

この事前定義ロールには、転送の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

転送を作成するには、次の権限が必要です。

  • ユーザーに対する bigquery.transfers.update
  • ターゲット データセットに対する bigquery.datasets.get
  • ターゲット データセットに対する bigquery.datasets.update

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

Salesforce のデータ転送を設定する

Salesforce データ転送を作成するには:

コンソール

  1. Google Cloud コンソールの [データ転送] ページに移動します。

    [データ転送] に移動

  2. [転送を作成] をクリックします。

  3. [ソースタイプ] セクションの [ソース] で、[Salesforce] を選択します。

  4. [データソースの詳細] セクションで、次のようにします。

    • [My Domain] に Salesforce の My Domain を入力します。
    • [クライアント ID] に、Salesforce 接続アプリケーションのコンシューマー キーを入力します。
    • [クライアント シークレット] に、Salesforce 接続アプリケーションのコンシューマ シークレットを入力します。
    • [Salesforce objects to transfer] で、[参照] をクリックして、BigQuery 宛先データセットに転送するオブジェクトを選択します。

      • このフィールドには、データ転送に含めるオブジェクトを手動で入力することもできます。

      Salesforce の転送構成を行う

  5. [転送先の設定] セクションの [データセット] で、データを保存するために作成したデータセットを選択します。

  6. [転送構成名] セクションの [表示名] に、データ転送の名前を入力します。

  7. [スケジュール オプション] セクションで:

    • [繰り返しの頻度] リストで、この転送の実行頻度を指定するオプションを選択します。カスタムの繰り返しの頻度を指定するには、[カスタム] を選択します。[オンデマンド] を選択した場合、手動で転送をトリガーすると、この転送が実行されます。

    • 必要に応じて、[すぐに開始可能] を選択するか、[設定した時刻に開始] を選択して開始日と実行時間を指定します。

  8. [サービス アカウント] リストで、Google Cloud プロジェクトに関連付けられたサービス アカウントを選択します。選択したサービス アカウントには、このデータ転送の実行に必要なロールが付与されている必要があります。

    フェデレーション ID でログインした場合、データ転送を作成するにはサービス アカウントが必要です。Google アカウントでログインした場合、転送用のサービス アカウントは省略可能です。

    データ転送でサービス アカウントを使用する方法の詳細については、サービス アカウントの使用をご覧ください。

  9. 省略可: [通知オプション] セクションで、次のようにします。

    • メール通知を有効にするには、[メール通知] をクリックします。このオプションを有効にすると、転送の実行が失敗した場合、転送管理者にメール通知が送信されます。
    • この転送の Pub/Sub 転送実行通知を有効にするには、[Pub/Sub 通知] をクリックします。トピック名を選択するか、[トピックを作成] をクリックしてトピックを作成します。
  10. [保存] をクリックします。

bq

bq mk コマンドを入力して、転送作成フラグ --transfer_config を指定します。

bq mk \
    --transfer_config \
    --project_id=PROJECT_ID \
    --data_source=DATA_SOURCE \
    --display_name=NAME \
    --target_dataset=DATASET \
    --params='PARAMETERS'

ここで

  • PROJECT_ID(省略可): Google Cloud プロジェクト ID。--project_id で特定のプロジェクトを指定しない場合は、デフォルトのプロジェクトが使用されます。
  • DATA_SOURCE: データソース - salesforce
  • NAME: データ転送構成の表示名。転送名には、後で修正が必要になった場合に識別できる任意の名前を使用できます。
  • DATASET: 転送構成のターゲット データセット。
  • PARAMETERS: 作成される転送構成のパラメータを JSON 形式で指定します。例: --params='{"param":"param_value"}'。Salesforce データ転送のパラメータは次のとおりです。

    • connector.authentication.oauth.clientId: Salesforce 接続アプリケーションのコンシューマー キー。
    • connector.authentication.oauth.clientSecret: Salesforce 接続アプリケーションの OAuth クライアント シークレットまたはコンシューマー シークレット。
    • connector.authentication.oauth.myDomain: Salesforce My Domain。たとえば、ドメインの URL が example.my.salesforce.com の場合、値は example です。
    • assets: BigQuery に転送する Salesforce オブジェクトのパス。

たとえば、次のコマンドは、必要なすべてのパラメータを使用してデフォルト プロジェクトに Salesforce データ転送を作成します。

bq mk \
    --transfer_config \
    --target_dataset=mydataset \
    --data_source=salesforce \
    --display_name='My Transfer' \
    --params='{"assets":["Account"],
        "connector.authentication.oauth.clientId": "1234567890",
        "connector.authentication.oauth.clientSecret":"ABC12345",
        "connector.authentication.oauth.myDomain":"MyDomainName",}'

API

projects.locations.transferConfigs.create メソッドを使用して、TransferConfig リソースのインスタンスを指定します。

料金

この機能のプレビュー版では、Salesforce データを BigQuery に転送しても費用はかかりません。

転送の設定に関するトラブルシューティング

データ転送の設定で問題が発生した場合は、Salesforce の転送に関する問題をご覧ください。

次のステップ