Stripe データを BigQuery に読み込む
BigQuery Data Transfer Service で Stripe コネクタを使用して、Stripe から BigQuery にデータを読み込むことができます。Stripe コネクタを使用すると、Stripe から BigQuery に最新のデータを追加する定期的な転送ジョブをスケジュールできます。
制限事項
Stripe のデータ転送には、次の制限があります。
- Stripe データ転送では、Stripe の補助単位に従って通貨が読み込まれます。詳細については、API 金額の補助単位をご覧ください。
- Stripe コネクタは、各 Stripe アカウントの事前生成レポートのみを転送します。Stripe コネクタは、新しい Stripe データに基づいて新しいレポートを生成しません。
- 最新のレポートを転送するには、Stripe データ転送を開始する前に、Stripe ダッシュボードでレポートを手動で生成します。
- 詳しくは、Stripe のレポートをご覧ください。
- Stripe コネクタは、ウェブフック ベースのイベント、リアルタイム更新、Stripe Sigma をサポートしていません。
- プレビュー版の Stripe リージョンからの Stripe データ転送では、データ転送に関する問題が発生する可能性があります。
- Stripe プレビュー リージョンでは、フィルタリング オプションが制限されるか、使用できなくなります。
- 条件付きデータ転送とクエリは、Stripe プレビュー リージョンではサポートされていません。
- Stripe プレビュー リージョンからデータを転送すると、データ転送の実行時間が長くなることがあります。
- Stripe コネクタは、
StartDate
フィルタを使用して一部のオブジェクトをサポートしています。StartDate
フィルタに必要な形式はYYYY-MM-DD
です。開始日が指定されていない場合、コネクタはデフォルトで現在の日付の 3 年前に設定されます。2011 年 1 月 1 日より前の日付を指定すると、コネクタは自動的に 2011 年 1 月 1 日を使用します。- サポートされているオブジェクトの一覧については、
StartDate
フィルタをサポートするオブジェクトをご覧ください。
- 1 つの転送構成でサポートできるデータ転送実行は、一度に 1 つだけです。最初の転送が完了する前に 2 回目のデータ転送が実行されるようにスケジュールされている場合、最初のデータ転送のみが完了し、最初の転送と重複する他のデータ転送はスキップされます。
- 1 つの転送構成内で転送がスキップされないようにするには、繰り返し頻度を構成して、大規模なデータ転送間の時間を長くすることをおすすめします。
始める前に
以降のセクションでは、Stripe のデータ転送を作成する前に必要な手順について説明します。
Stripe の前提条件
- Stripe のデータ移行を承認するには、Stripe デベロッパー アカウントが必要です。Stripe アカウントを登録するには、Stripe の登録をご覧ください。
- 次の手順で Stripe プラットフォーム アプリケーションを構成します。
- Stripe ダッシュボードの [デベロッパー] セクションに移動します。
- [Connect] で、Standard アカウントと Express アカウントをサポートするようにプラットフォームを設定します。
- Stripe データ転送を作成するには、次の情報が必要です。
- Stripe アカウント ID をメモします。詳しくは、アカウントを作成するをご覧ください。
- シークレット キーまたは制限付きキーをメモします。詳細については、API キーをご覧ください。
- リンクされたアカウントからデータを転送する場合は、プラットフォームが Stripe Connect 用に構成され、必要なアカウント機能にアクセスできることを確認してください。Stripe Connect の詳細については、Stripe Connect を使用するプラットフォームとマーケットプレイスをご覧ください。
- 接続済みアカウントの詳細については、Connect アカウントの種類をご覧ください。
必要な BigQuery のロール
転送の作成に必要な権限を取得するには、プロジェクトで BigQuery 管理者 (roles/bigquery.admin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、転送の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
転送を作成するには、次の権限が必要です。
-
ユーザーに対する
bigquery.transfers.update
-
ターゲット データセットに対する
bigquery.datasets.get
-
ターゲット データセットに対する
bigquery.datasets.update
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
BigQuery の前提条件
- BigQuery Data Transfer Service を有効にするために必要なすべての操作が完了していることを確認します。
- データを保存する BigQuery データセットを作成します。
- Pub/Sub の転送実行通知を設定する場合は、
pubsub.topics.setIamPolicy
Identity and Access Management(IAM)権限があることを確認します。メール通知を設定するだけの場合、Pub/Sub の権限は必要ありません。詳細については、BigQuery Data Transfer Service の実行通知をご覧ください。
Stripe アカウントの種類
Stripe コネクタは、Stripe プラットフォーム アカウントと Stripe 接続アカウントの両方をサポートしています。詳細については、Connect アカウントの種類をご覧ください。
プラットフォーム アカウントに接続する
1 つのプラットフォーム アカウントからのみ Stripe データ転送を実行するには、転送構成を設定する際に次の操作を行います。
- [Account Id] フィールドに、プラットフォーム アカウントのプラットフォーム アカウント ID を入力します。
- [Secret/API Key] フィールドに、プラットフォーム アカウントのシークレット キーまたは制限付きキーを入力します。
- [SyncAllConnectedAccounts] で [False] を選択します。
複数のアカウント(接続アカウントにリンクされたプラットフォーム アカウントなど)に対して Stripe データ転送を実行するには、転送構成を設定するときに次の操作を行います。
- [Account Id] フィールドに、プラットフォーム アカウントのプラットフォーム アカウント ID を入力します。
- [Secret/API Key] フィールドに、プラットフォーム アカウントのシークレット キーまたは制限付きキーを入力します。
- [SyncAllConnectedAccounts] で [True] を選択します。
接続済みアカウントに接続する
接続済みアカウントとは、Stripe Connect を使用して Stripe にリンクされた Stripe アカウントのことです。
接続アカウントから Stripe データ転送を実行するには、転送構成を設定する際に次の操作を行います。
- [Account Id] フィールドに、リンクされたアカウントのプラットフォーム アカウント ID を入力します。
- [Secret/API Key] フィールドに、リンクされたアカウントが接続されているプラットフォーム アカウントのシークレットまたは制限付きキーを入力します。
- [SyncAllConnectedAccounts] で [False] を選択します。
Stripe のデータ転送を設定する
次のいずれかのオプションを使用して転送構成を設定し、Stripe データを BigQuery に追加します。
コンソール
Google Cloud コンソールの [データ転送] ページに移動します。
[
転送を作成] をクリックします。[ソースタイプ] セクションの [ソース] で、[Stripe] を選択します。
[データソースの詳細] セクションで、次のようにします。
- [Platform/Connected Account ID] に、Stripe アカウント ID を入力します。詳しくは、Stripe の前提条件をご覧ください。
- [Stripe Secret Key] に、Stripe アカウントの API キーを入力します。詳しくは、Stripe の前提条件をご覧ください。
- [開始日] に、
YYYY-MM-DD
形式で日付を入力します。データ転送では、この日付以降の Stripe データが読み込まれます。 - [すべての接続済みアカウントを同期する] を選択すると、すべての接続済みアカウントが同期されます。
- [移行する Stripe オブジェクト] に、移行する Stripe オブジェクトの名前を入力するか、[参照] をクリックして移行するオブジェクトを選択します。
[転送先の設定] セクションの [データセット] で、データを保存するために作成したデータセットを選択します。
[転送構成名] セクションの [表示名] に、データ転送の名前を入力します。
[スケジュール オプション] セクションで、次の操作を行います。
- [繰り返しの頻度] リストで、このデータ転送の実行頻度を指定するオプションを選択します。カスタムの繰り返しの頻度を指定するには、[カスタム] を選択します。[オンデマンド] を選択した場合、手動で転送をトリガーすると、この転送が実行されます。
- 必要に応じて、[すぐに開始] を選択するか、[設定した時刻に開始] を選択して開始日と実行時間を指定します。
省略可: [通知オプション] セクションで、次のようにします。
- メール通知を有効にするには、[メール通知] をクリックします。このオプションを有効にすると、転送の実行が失敗した場合、転送管理者にメール通知が送信されます。
- この転送の Pub/Sub 転送実行通知を有効にするには、[Pub/Sub 通知] をクリックします。トピック名を選択するか、[トピックを作成する] をクリックしてトピックを作成します。
[保存] をクリックします。
bq
bq mk
コマンドを入力して、転送作成フラグ --transfer_config
を指定します。
bq mk --transfer_config --project_id=PROJECT_ID --data_source=DATA_SOURCE --display_name=DISPLAY_NAME --target_dataset=DATASET --params='PARAMETERS'
各パラメータの説明は次のとおりです。
- PROJECT_ID(省略可): Google Cloud プロジェクト ID。
--project_id
で特定のプロジェクトを指定しない場合は、デフォルトのプロジェクトが使用されます。 - DATA_SOURCE: データソース -
stripe
。 - DISPLAY_NAME: データ転送構成の表示名。転送名には、後で修正が必要になった場合に識別できる任意の名前を使用できます。
- DATASET: 転送構成のターゲット データセット。
PARAMETERS: 作成される転送構成のパラメータを JSON 形式で指定します。例:
--params='{"param":"param_value"}'
。Stripe データ転送のパラメータは次のとおりです。assets
: この転送に含める Stripe オブジェクトのリスト。connector.accountId
: Stripe アカウント ID。connector.secretKey
: Stripe アカウントの API キー。connector.syncAllConnectedAccounts
: 接続されているすべてのアカウントを同期するには、true
を指定します。connector.startDate
:YYYY-MM-DD
形式で日付を入力します。データ転送では、この日付以降の Stripe データが読み込まれます。
たとえば、次のコマンドは、すべての必須パラメータを使用してデフォルト プロジェクトに Stripe データ転送を作成します。
bq mk \ --transfer_config \ --target_dataset=mydataset \ --data_source=stripe \ --display_name='My Transfer' \ --params= ' { "assets" : [ "Customers" , "Accounts", "BalanceSummaryReport"] , "connector.accountId" : "acct_000000000000", "connector.secretKey" : "sk_test_000000000", "connector.syncAllConnectedAccounts" : "true", "connector.startDate": "2025-05-20" }'
API
projects.locations.transferConfigs.create
メソッドを使用して、TransferConfig
リソースのインスタンスを指定します。
定期的なスケジュール外でデータ転送を手動で実行するには、バックフィル実行を開始します。
データ型マッピング
次の表に、Stripe のデータ型と対応する BigQuery のデータ型のマッピングを示します。
Stripe のデータ型 | BigQuery のデータ型 | メモ |
---|---|---|
String |
STRING |
|
Dictionary |
STRING |
ネストされたオブジェクトが BigQuery に読み込まれると、フラット化されたオブジェクトに変換されます。このフラット化されたオブジェクトは、テーブル内の単一のリテラル文字列として保存されます。 |
Integer |
INT64 |
|
Double |
DOUBLE |
|
Float |
FLOAT |
|
Decimal |
BIGNUMERIC |
|
BigInt (long) |
BIGNUMERIC |
|
Boolean |
BOOL |
|
Datetime |
TIMESTAMP |
|
Unix timestamp |
TIMESTAMP |
StartDate
フィルタをサポートするオブジェクト
次の Stripe オブジェクトは、時間ベースのデータを読み込むことができる StartDate
フィルタをサポートしています。
- アカウント
- ApplicationFees
- BalanceTransactions
- カード所有者
- 料金
- クーポンの設定
- 導入事例
- 異議申し立て
- EarlyFraudWarnings
- イベント
- FileLinks
- ファイル
- InvoiceItems
- 明細書
- IssuingCards
- IssuingDisputes
- PaymentIntent
- お支払い
- プラン
- 価格
- プロダクト
- PromotionCodes
- 払い戻し
- レビュー
- ShippingRates
- サブスクリプション
- TaxRates
- TopUps
- 転送
- ValueListItems
- ValueLists
転送の設定に関するトラブルシューティング
データ転送の設定に問題がある場合は、Stripe の転送に関する問題をご覧ください。
料金
この機能のプレビュー版では、Stripe データを BigQuery に転送する際に費用は発生しません。
次のステップ
- BigQuery Data Transfer Service の概要については、BigQuery Data Transfer Service の概要をご覧ください。
- 転送構成に関する情報の取得、転送構成の一覧表示、転送の実行履歴の表示など、転送の使用方法については、転送の操作をご覧ください。
- クロスクラウドの操作でデータを読み込む方法を学習する。