このData Connectorを使用すると、StripeオブジェクトをTreasure Dataにインポートできます。
- Treasure Dataの基本知識
- Stripeの基本知識
- (オプション) Stripe Webhooks
Integrations Hub > Catalogに移動し、Stripeを検索して選択します。

OAuth認証方式をサポートしています:
Stripe用の既存のOAuth接続を選択するか、OAuth connectionの下にあるリンクを選択して新しい接続を作成します。

Stripeアカウントにログインします:

Treasure Dataアプリへのアクセスを許可します:

Integrations Hubにリダイレクトされます。新しい接続の作成を繰り返し、新しいOAuth接続を選択します。

内部テスト目的:Secret Key — 非推奨、OAuthに置き換えられました
Stripe > Your Account > Account Settings > API KeysからLive Secret Keyを入力します。

上記の接続を作成すると、自動的にMy Connectionsタブに移動します。作成した接続を探してNew Transferを選択します。インクリメンタルオプションはeventオブジェクトのみサポートされています。

詳細を編集してNextを選択します。

データをプレビューします。何か変更したい場合は、Advanced Settingsを選択し、そうでなければNextを選択します。

次のダイアログに従って、データを転送するデータベースとテーブルを選択します:

以下のダイアログを使用してデータ転送のスケジュールを指定し、Start Transferを選択します。

My Input Transfersタブの下に進行中の新しいデータ転送が表示され、対応するジョブがJobsセクションにリストされます。
並列インポートを使用してデータインポートのパフォーマンスを向上させることができます。
プラグインは、Start datetimeとEnd datetimeに依存する時間範囲を作成し、Stripe APIに並列HTTPリクエストを送信します。End datetimeを編集しない場合、プラグインはまずStripeに保存されている最新レコードのタイムスタンプを取得し、それをEnd datetimeとして使用しようとします。
次の例では、プラグインは4つの時間範囲を作成し、すべての時間範囲が並列で処理されます。
Start datetime: 2016-01-25T00:00:00
End datetime: 2017-05-25T00.00.00
Time splitting
Period for each parallel input: 6
unit: month
Time range 1
gte: 2016-01-25T00:00:00
lt: 2016-01-31T00:00:00 # start_datetime to first end of the month
Time range 2
gte: 2016-01-31T00:00:00 # has 6 month period
lt: 2016-07-31T00.00.00
Time range 3
gte: 2016-07-31T00.00.00.000Z # has 6 month period
lt: 2017-02-28T00.00.00
Time range 4
gte: 2017-02-28T00.00.00
lt: 2017-05-25T00.00.00 # to end_datetime
最新のTD Toolbeltをインストールできます。
$ td --version
0.15.0Stripeアカウントのアクセス情報を使用して、次のような設定ファイル(例:load.yml)を準備します。
in:
type: stripe
client_id: xxxxxxxxxxxxx
client_secret: xxxxxxxxxxxxx
refresh_token: xxxxxxxxxxxxx
target: event
incremental: true
start_datetime: 2017-01-01T07:36:22.000Z
formula: gt
out:
mode: replaceStripe Eventオブジェクトのインポートを指定する手順は次のとおりです:
- client_idとclient_secret: StripeアプリのクレデンシャルID
- refresh_token: Stripe OAuth2 refresh_token、Stripeユーザーアカウントを使用してStripeアプリへのアクセスを許可する必要があります
- target: インポートしたいStripeオブジェクト。サポートされる値:account、application_fee、balance_history、charge、coupon、customer、dispute、file_upload、event、invoice_item、invoice、order、plan、product、refund、subscription、transfer
- start_datetime: この日付からデータをインポート、形式は:yyyy-MM-ddThh:mm:ss.000Z
- formula: start_datetimeを評価する式。サポートされる値:gt(より大きい)、gte(以上)、lt(より小さい)、lte(以下)。
- incremental: データインポートを継続的に行うか一度だけ行うか、デフォルトはtrue。インクリメンタルはtargetがeventの場合のみサポートされます。
利用可能なoutモードの詳細については、付録を参照してください。
コマンドtd connector:previewを使用して、インポートされるデータをプレビューできます。
td connector:preview load.ymlロードジョブを送信します。データサイズによっては数時間かかる場合があります。ユーザーは、データが保存されるデータベースとテーブルを指定する必要があります。
Treasure Dataのストレージは時間でパーティション分割されているため、--time-columnオプションを指定することをお勧めします(データパーティション分割も参照してください)。オプションが指定されていない場合、Data Connectorは最初のlong型またはtimestamp型の列をパーティション分割時間として選択します。--time-columnに指定する列の型は、long型またはtimestamp型のいずれかである必要があります。
データに時間列がない場合は、add_timeフィルターオプションを使用して追加できます。詳細については、add_timeフィルタープラグインを参照してください。
td connector:issue load.yml --database td_sample_db --table td_sample_table --time-column updated_date上記のコマンドは、*database(td_sample_db)とtable(td_sample_table)*がすでに作成されていることを前提としています。データベースまたはテーブルがTDに存在しない場合、このコマンドは成功しません。そのため、データベースとテーブルを手動で作成するか、td connector:issueコマンドで--auto-create-tableオプションを使用してデータベースとテーブルを自動作成します:
td connector:issue load.yml --database td_sample_db --table td_sample_table --time-column updated_date --auto-create-table"--time-column"オプションを使用して、Time Format列を"Partitioning Key"に割り当てることができます。
定期的なStripeインポートのために、定期的なData Connector実行をスケジュールできます。高可用性を確保するためにスケジューラーを管理しています。この機能を使用すると、ローカルデータセンターにcronデーモンを用意する必要がなくなります。
新しいスケジュールは、td connector:createコマンドを使用して作成できます。スケジュールの名前、cron形式のスケジュール、データが保存されるデータベースとテーブル、およびData Connector設定ファイルが必要です。
$ td connector:create
daily_stripe_import
"10 0 * * *"
td_sample_db
td_sample_table
load.ymlcronパラメータは、次の3つのオプションも受け入れます:@hourly、@daily、@monthly
デフォルトでは、スケジュールはUTCタイムゾーンで設定されます。-tまたは--timezoneオプションを使用して、タイムゾーンでスケジュールを設定できます。--timezoneオプションは、'Asia/Tokyo'、'America/Los_Angeles'などの拡張タイムゾーン形式のみをサポートします。PST、CSTなどのタイムゾーン略語はサポートされておらず、予期しないスケジュールになる可能性があります。
Webhooksを使用すると、直接APIリクエストを介してではなく、Stripeアカウントで発生するイベントをキャプチャできます。
Stripeアカウントにログインし、Webhooks —> Settings —> Add endpointを選択します。

URLテキストボックスに次のように入力します: http://in.treasuredata.com/postback/v3/event/{td_database}/{td_table}?td_write_key={td_account_write_api_key}
次に、前述のURLで指定された{td_database}.{td_table}に取り込みたいイベントを選択します。

異なるタイプのイベントを異なる{td_database}.{td_table}に取り込むために、追加のエンドポイントをセットアップできます。