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] をクリックします。新しく作成した接続アプリの詳細ページにリダイレクトされます。
接続アプリを作成したら、次の手順でクライアント認証情報フローを構成する必要があります。
- [Setup] をクリックします。
- 検索バーで「Connected Apps」を検索します。
- [Manage Apps] > [Connected Apps] をクリックします。Salesforce Lightning Experience を使用している場合は、[Manage Connected Apps] をクリックします。
- 作成した接続アプリで [Edit] をクリックします。
- [App details] ページが表示されます。[Client Credentials Flow] セクションの [Run As] フィールドにユーザー名を入力します。このフィールドの検索ツールを使用して、正しいユーザーを選択していることを確認できます。
- [Save] をクリックします。
必要な Salesforce 情報
Salesforce のデータ転送を作成する場合は、Salesforce について次の情報も用意する必要があります。
パラメータ名 | 説明 |
---|---|
myDomain |
Salesforce の My Domain。 |
clientId |
Salesforce 接続アプリケーションのコンシューマー キー。 |
clientSecret |
Salesforce 接続アプリケーションの OAuth クライアント シークレットまたはコンシューマー シークレット。 |
myDomain
、clientID
、clientSecret
の値を取得するには、次のいずれかのオプションを選択します。
Salesforce Classic
myDomain
の詳細を取得する
myDomain
を確認する手順は次のとおりです。
- Salesforce プラットフォームにログインします。
- [Setup] をクリックします。
- 検索バーで「My Domain」を検索します。
- 検索結果で、[Domain Management] > [My Domain] をクリックします。
[My Domain Details] セクションの [Current My Domain URL] に、myDomain
がプレフィックスとして表示されます。たとえば、マイドメインの URL が example.my.salesforce.com
の場合、使用する myDomain
の値は example
です。
ClientId
と ClientSecret
の詳細を取得する
ClientId
と ClientSecret
の値を確認する手順は次のとおりです。
- Salesforce プラットフォームにログインします。
- [Setup] をクリックします。
- 検索バーで「Apps」を検索します。
- 検索結果の [Build] セクションで、[Create] > [Apps] をクリックします。
- [Connected App Name] をクリックします。
- [Connected Apps] の詳細ページで、[Manage Consumer Details] をクリックします。
- 登録済みのいずれかの方法で本人確認を行います。本人確認を再度行うよう求められるまで、最大 5 分間、お客様の詳細ページを表示できます。
- [Consumer Details] ページの [Consumer Key] が
ClientId
の値です。[Customer Secret] はClientSecret
の値です。
Salesforce Lightning Experience
myDomain
の詳細を取得する
myDomain
を確認する手順は次のとおりです。
- Salesforce プラットフォームにログインします。
- [Setup] をクリックします。
- 検索バーで「My Domain」を検索します。
- 検索結果で、[Company Settings] > [My Domain] をクリックします。
[My Domain Details] セクションの [Current My Domain URL] に、myDomain
がプレフィックスとして表示されます。たとえば、マイドメインの URL が example.my.salesforce.com
の場合、使用する myDomain
の値は example
です。
ClientId
と ClientSecret
の詳細を取得する
- Salesforce プラットフォームにログインします。
- [Setup] をクリックします。
- 検索バーで「Apps」を検索します。
- 検索結果で [Apps] > [App Manager] をクリックします。
- 接続済みのアプリを見つけて、[View] をクリックします。
- [Manage Consumer Details] をクリックします。
- 登録済みのいずれかの方法で本人確認を行います。本人確認を再度行うよう求められるまで、最大 5 分間、お客様の詳細ページを表示できます。
- [Consumer Details] ページの [Consumer Key] が
ClientId
の値です。[Customer Secret] はClientSecret
の値です。
BigQuery の前提条件
- BigQuery Data Transfer Service を有効にするために必要なすべての操作が完了していることを確認します。
- データを保存する BigQuery データセットを作成します。
- Pub/Sub の転送実行通知を設定する場合は、
pubsub.topics.setIamPolicy
Identity and Access Management(IAM)権限があることを確認します。メール通知を設定するだけの場合、Pub/Sub の権限は必要ありません。詳細については、BigQuery Data Transfer Service の実行通知をご覧ください。
必要な BigQuery のロール
転送の作成に必要な権限を取得するには、BigQuery 管理者(roles/bigquery.admin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。
この事前定義ロールには、転送の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
転送を作成するには、次の権限が必要です。
-
ユーザーに対する
bigquery.transfers.update
-
ターゲット データセットに対する
bigquery.datasets.get
-
ターゲット データセットに対する
bigquery.datasets.update
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Salesforce のデータ転送を設定する
Salesforce データ転送を作成するには:
コンソール
Google Cloud コンソールの [データ転送] ページに移動します。
[
転送を作成] をクリックします。[ソースタイプ] セクションの [ソース] で、[Salesforce] を選択します。
[データソースの詳細] セクションで、次のようにします。
- [My Domain] に Salesforce の My Domain を入力します。
- [クライアント ID] に、Salesforce 接続アプリケーションのコンシューマー キーを入力します。
- [クライアント シークレット] に、Salesforce 接続アプリケーションのコンシューマ シークレットを入力します。
[Salesforce objects to transfer] で、[参照] をクリックして、BigQuery 宛先データセットに転送するオブジェクトを選択します。
- このフィールドには、データ転送に含めるオブジェクトを手動で入力することもできます。
[転送先の設定] セクションの [データセット] で、データを保存するために作成したデータセットを選択します。
[転送構成名] セクションの [表示名] に、データ転送の名前を入力します。
[スケジュール オプション] セクションで:
[繰り返しの頻度] リストで、この転送の実行頻度を指定するオプションを選択します。カスタムの繰り返しの頻度を指定するには、[カスタム] を選択します。[オンデマンド] を選択した場合、手動で転送をトリガーすると、この転送が実行されます。
必要に応じて、[すぐに開始可能] を選択するか、[設定した時刻に開始] を選択して開始日と実行時間を指定します。
[サービス アカウント] リストで、Google Cloud プロジェクトに関連付けられたサービス アカウントを選択します。選択したサービス アカウントには、このデータ転送の実行に必要なロールが付与されている必要があります。
フェデレーション ID でログインした場合、データ転送を作成するにはサービス アカウントが必要です。Google アカウントでログインした場合、転送用のサービス アカウントは省略可能です。
データ転送でサービス アカウントを使用する方法の詳細については、サービス アカウントの使用をご覧ください。
省略可: [通知オプション] セクションで、次のようにします。
- メール通知を有効にするには、[メール通知] をクリックします。このオプションを有効にすると、転送の実行が失敗した場合、転送管理者にメール通知が送信されます。
- この転送の Pub/Sub 転送実行通知を有効にするには、[Pub/Sub 通知] をクリックします。トピック名を選択するか、[トピックを作成] をクリックしてトピックを作成します。
[保存] をクリックします。
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 の転送に関する問題をご覧ください。
次のステップ
- BigQuery Data Transfer Service の概要については、BigQuery Data Transfer Service の概要をご覧ください。
- 転送構成に関する情報の取得、転送構成の一覧表示、転送の実行履歴の表示など、転送の使用方法については、転送の操作をご覧ください。
- クロスクラウドの操作でデータを読み込む方法を学習する。