Treasure DataからWebサーバーまたはPUTリクエストを受け入れるHTTP APIにジョブ結果を直接書き込むことができます。
- TD Toolbeltを含むTreasure Dataの基本的な知識。
- PUTリクエストとしてクエリ結果を受け入れるように設定されたWebサーバー。
セキュリティポリシーで IP ホワイトリストが必要な場合は、接続を成功させるために Treasure Data の IP アドレスを許可リストに追加する必要があります。
リージョンごとに整理された静的 IP アドレスの完全なリストは、次のリンクにあります: https://api-docs.treasuredata.com/en/overview/ip-addresses-integrations-result-workers/
TD Consoleを使用して接続を設定できます。
TD Catalogに移動し、統合を検索して選択します。
必要に応じて、HTTPエンドポイントにアクセスするための認証情報を取得します。
TD Consoleクエリエディタページに移動し、クエリをコンパイルします。
クエリの設定が完了したら、クエリエディタの右上にあるExport Resultsを選択します。

Choose Integrationダイアログが開きます。検索ボックスに接続名を入力してフィルタし、接続を選択します。Create Integrationペインで、ドロップダウンメニューからHTTP PUTを選択します。該当する場合は、Host、Port、ユーザー名とパスワードを含むすべての情報を編集します。

ポート番号が指定されていない場合、デフォルト値はHTTPの場合は80、HTTPSの場合は443です。ユーザー名とパスワードが指定されていない場合、認証は使用されません。
Save and Continueを選択します。
接続を設定した後、転送パラメータを設定します。エンドポイントのパスとパラメータ情報を入力します。

hostフィールドにはドメイン情報のみを入力します。hostフィールドにURLパスを含めないでください。次の例は、エンドポイントURLとそれぞれの値を示しています。
エンドポイント例 #1: http://www.yourdomain.com:80/api/custom_resources/resources
Host: www.yourdomain.com
Port: 80
Path & Params: /api/custom_resources/resources
エンドポイント例 #2: http://testapis.co/rest/api
Host:testapis.co
Path & Params: /rest/api
エンドポイント例 #3: http://www.randomapi.com/rest/api?parameter1
Host:www.randomapi.com
Path & Params: /rest/api?parameter1
名前を付けてクエリを保存して実行するか、クエリを実行するだけです。クエリが正常に完了すると、クエリ結果はPUTリクエストを使用して指定されたエンドポイントに自動的にエクスポートされます。
Audience Studio で activation を作成することで、segment データをターゲットプラットフォームに送信することもできます。
- Audience Studio に移動します。
- parent segment を選択します。
- ターゲット segment を開き、右クリックして、Create Activation を選択します。
- Details パネルで、Activation 名を入力し、前述の Configuration Parameters のセクションに従って activation を設定します。
- Output Mapping パネルで activation 出力をカスタマイズします。

- Attribute Columns
- Export All Columns を選択すると、変更を加えずにすべての列をエクスポートできます。
- + Add Columns を選択して、エクスポート用の特定の列を追加します。Output Column Name には、Source 列名と同じ名前があらかじめ入力されます。Output Column Name を更新できます。+ Add Columns を選択し続けて、activation 出力用の新しい列を追加します。
- String Builder
- + Add string を選択して、エクスポート用の文字列を作成します。次の値から選択します:
- String: 任意の値を選択します。テキストを使用してカスタム値を作成します。
- Timestamp: エクスポートの日時。
- Segment Id: segment ID 番号。
- Segment Name: segment 名。
- Audience Id: parent segment 番号。
- + Add string を選択して、エクスポート用の文字列を作成します。次の値から選択します:
- Schedule を設定します。

- スケジュールを定義する値を選択し、オプションでメール通知を含めます。
- Create を選択します。
batch journey の activation を作成する必要がある場合は、Creating a Batch Journey Activation を参照してください。
HTTPエンドポイントへの結果エクスポートにCLIを使用することもできます。
オンデマンドジョブの場合は、td queryコマンドに--resultオプションを追加するだけです。ジョブが完了すると、結果はPUTリクエストを介して指定されたURLに送信されます。
$ td query
--result 'web://domain.com/path'
-w -d testdb
"SELECT code, COUNT(1) AS cnt FROM www_access GROUP BY code"または、method=postクエリパラメータでPOSTリクエストを実行します。
$ td query
--result 'web://domain.com/path?method=post'
-w -d testdb
"SELECT code, COUNT(1) AS cnt FROM www_access GROUP BY code"別のURL例を次に示します。Basic HTTP認証とポート指定がサポートされています。
web://user:pass@domain.com:8080/path1/path2プロトコルヘッダーとしてwebの代わりにwebsを使用すると、HTTPS経由の転送もサポートされます。例:
webs://securedomain.com/path1/path2ポート番号が指定されていない場合、デフォルト値はHTTPの場合は80、HTTPSの場合は443です。ユーザー名とパスワードが指定されていない場合、認証は使用されません。
リクエストボディは、次のフィールドを持つJSONです:column_names、column_types、およびdata(クエリの結果)。上記のクエリが出力する可能性のある例を以下に示します。
{ "column_names": [ "code", "cnt" ],
"column_types": [ "string", "long" ],
"data": [ [ "200", 4981 ], [ "500", 2 ], [ "404", 17 ] ] }最大行数は100,000です。結果が100,000行を超える場合、残りの行は破棄されます。
スケジュールされたジョブの場合は、ジョブをスケジュールするときに--resultオプションを追加するだけです。ジョブが実行されるたびに、オンデマンドジョブと同じ方法でPUTリクエストを介して結果が送信されます。
$ td result:create myweb web://domain.com/
$ td sched:create hourly_count_example "0 * * * *"
-d testdb
--result myweb:path
"SELECT code, COUNT(1) AS cnt FROM www_access GROUP BY code"