# Google Bigquery Export Integration [Google BigQuery Import Integrationについてはこちら](/ja/int/google-bigquery-import-integration)をご覧ください。 ジョブの結果をGoogle BigQueryに直接書き込むことができます。[Google BigQueryからデータをインポート](/ja/int/google-bigquery-import-integration)する方法もご確認いただけます。 ## 前提条件 - [TD Toolbelt](https://toolbelt.treasuredata.com/)を含むTreasure Dataの基本的な知識 - Google Cloud Platformアカウント ## 要件と制限事項 - ARRAYのようなネストされたデータ型や繰り返しデータ型は、宛先カラムとしてサポートされていません。 ## サポート内容 Treasure Dataは「append、replace、replace backup、delete」モードをサポートしています。 ## Google Cloud Platformの認証情報を取得する この機能を使用するには、以下が必要です: - Project ID - JSON Credential ### JSON Credentialを取得する Google BigQueryとの統合は、サーバー間APIの認証に基づいています。 1. Google Developer Consoleに移動します。 2. APIs & auth > Credentialsを選択します。 3. Service accountを選択します。 ![](/assets/image-20191020-190647.052807b7e694bcb32df29765d915392f79ccb6edd0897f35ecb4c142ab6c1e20.b6ab3c42.png) 4. Googleが推奨するJSONベースのキータイプを選択します。キーはブラウザによって自動的にダウンロードされます。 ![](/assets/image-20191020-190703.7d05851cf5d88ecc94508d0db2fdf995434deb98a0c0f88e7aaa0eb9ff973520.b6ab3c42.png) ### Project IDを取得する 1. Google Developer Consoleに移動します。 2. Homeを選択します。 3. Project IDを確認します。 ![](/assets/image-20191020-190726.aa7391fe23cf6e91102e8f6fefdd0a3305df9765947bf94a8fbddd4b98b25853.b6ab3c42.png) ## BigQuery上でDatasetとTableを作成する BigQueryコンソールからDatasetとTableを作成します。 ## TD Consoleから使用する 1. TD Consoleに移動します。 2. Integrations Hub > Catalogに移動します。 3. Google Big Queryを選択します。 ![](/assets/image-20200522-020015.5a39c9b58816af9004a574866c8ddb944c69cfb1c24b7f8866d5f01372cbbc74.b6ab3c42.png) 4. 以下の通り、すべての情報を入力します: ![](/assets/image-20200522-020049.a7151cbd1f128e331e167c6e8be6cba0c7fa4299e7223799724c9c4da331b421.b6ab3c42.png) クエリを記述します。クエリ結果はBigQuery上で事前に定義されたスキーマと一致する必要があります。ジョブを実行すると、Treasure Dataのクエリ結果が自動的にGoogle BigQueryにインポートされます。 ### Appendモード BigQueryにテーブルがすでに存在する場合、以下のようなペインが表示されます: ![](/assets/image-20191020-190812.bcec0ca2989af8eabd467c707a6392198218b82a18aaa5441707cbc4e18951c8.b6ab3c42.png) BigQueryから取得したProject ID、Dataset Name、Table Nameを入力します。 クエリを記述します。クエリ結果はBigQuery上で事前に定義されたスキーマと一致する必要があります。ジョブを実行すると、Treasure Dataのクエリ結果が自動的にGoogle BigQueryにインポートされます。 BigQueryにテーブルが存在しない場合: ![](/assets/image-20191020-190826.c53f438f3905bcc18ee702a08cf011dae0715c974e4e9184bcc748b238b9b886.b6ab3c42.png) BigQueryから取得したProject ID、Dataset Nameを入力します。 BigQuery Datasetに作成されるテーブルの名前を指定します。Auto-create tableをチェックし、新しいテーブルのスキーマを提供します。Schema JSONはクエリ結果(フィールド数とデータ型)と一致する必要があります。ジョブを実行すると、入力した名前とスキーマを持つ新しいテーブルが作成され、Treasure Dataのクエリ結果が自動的にこのテーブルにインポートされます。 Schema JSONの例: [{"name":"id","type":"INTEGER","mode": "REQUIRED"},{"name":"name","type":"STRING"}] ### Replaceモード 以下のようなペインが表示されます: ![](/assets/image-20191020-190841.955517c31c4d7c151c04e54fb1b712a2a32a96c2867ffc85191de7b977cbc2c1.b6ab3c42.png) BigQueryから取得したProject ID、Dataset Name、Table Nameを入力します。 Auto-create tableを選択し、置き換えるテーブルのスキーマを提供します。Schema JSONフィールドの値はクエリ結果(フィールド数とデータ型)と一致する必要があります。ドロップダウンからReplaceを選択します。ジョブを実行すると、BigQueryにテーブルがすでに存在する場合、またはSchema JSONの値がテーブルスキーマと異なる場合、テーブルは置き換えデータとして処理されます。BigQueryにテーブルが存在しない場合、入力した名前とスキーマを持つ新しいテーブルが作成されます。Treasure Dataのクエリ結果が自動的にこのテーブルにインポートされます。 ### Replace Backupモード 以下のようなペインが表示されます: ![](/assets/image-20191020-190908.c978ef79db52ba766dfbc4eb14e7a3cd229a132478363ae521605639aeb435e2.b6ab3c42.png) Replace backupモードはreplaceモードに似ていますが、replace backupモードでは、データとスキーマの両方が、元の名前に「_old」というサフィックスを付けたテーブルにバックアップされます。 ### Deleteモード 以下のようなペインが表示されます: ![](/assets/image-20191020-190929.8dfee7d7a06221d5475320e64546c5ce980aca4bd8af6b53b82f797b6a3ee822.b6ab3c42.png) BigQueryから取得したProject ID、Dataset Name、Table Nameを入力します。 Auto-create tableを選択し、置き換えるテーブルのスキーマを提供します。Schema JSONフィールドの値はクエリ結果(フィールド数とデータ型)と一致する必要があります。ドロップダウンから`Delete`を選択します。BigQueryにテーブルがすでに存在する場合、ジョブを実行するとテーブルが削除され、スキーマとしてJSONを持つ新しいテーブルが追加されます。BigQueryにテーブルが存在しない場合、入力した名前とスキーマを持つ新しいテーブルが作成されます。Treasure Dataのクエリ結果が自動的にこの新しく作成されたテーブルにインポートされます。 ## データ変換について BigQueryのデータ型は、以下の表に示すように、対応するTreasure Dataの型に自動的に変換されます。schema JSONにサポートされていない型を含めたり、クエリ結果がschema JSONのデータ型と一致しない場合、エラーが発生します。 | **Treasure Data** | **BigQuery** | | --- | --- | | string | STRING | | long | INTEGER | | double | FLOAT | | long (true is 1, false is 0) | BOOLEAN | | string (yyyy-MM-dd HH:mm:ss.SSS) | TIMESTAMP | ![](/assets/image-20191020-191034.9b27e371236bc2aaf10355ab55f79ab61d1c40fc882226cc9f8d0446b1421e62.b6ab3c42.png) ## CLIからのスケジューリング 以下のコマンドを使用すると、BigQueryへの結果出力を含むスケジュールされたクエリを設定できます。 json_keyを指定し、改行をバックスラッシュでエスケープしてください。 例: ```bash $ td sched:create scheduled_bigquery "10 6 14 12 *" \ -d dataconnector_db "SELECT id,account,purchase,comment,time FROM data_connectors" \ -r '{"type":"bigquery","project":"YOUR_PROJECT","dataset":"YOUR_DB","table":"YOUR_TABLE","auto_create_table":true,"max_bad_records":0,"ignore_unknown_values":true,"allow_quoted_newlines":true,"schema_file":"[{\"name\": \"id\", \"type\": \"INTEGER\"}, {\"name\": \"account\", \"type\": \"STRING\"},{\"name\": \"purchase\", \"type\": \"STRING\"}, {\"name\": \"comment\", \"type\": \"STRING\", \"mode\": \"REQUIRED\"}, {\"name\": \"time\", \"type\": \"TIMESTAMP\", \"mode\": \"REQUIRED\"}]", "json_keyfile":"{\"private_key_id\": \"ABDE\", \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nABCDE\\nABCDE\\nABCDE\\n-----END PRIVATE KEY-----\\n\", \"client_email\": \"ABCDE.gserviceaccount.com\", \"client_id\": \"ABCDE.apps.googleusercontent.com\", \"type\": \"service_account\"}"}' ``` ## Audience Studio で Segment をアクティベートする Audience Studio で activation を作成することで、segment データをターゲットプラットフォームに送信することもできます。 1. **Audience Studio** に移動します。 2. parent segment を選択します。 3. ターゲット segment を開き、右クリックして、**Create Activation** を選択します。 4. **Details** パネルで、Activation 名を入力し、前述の Configuration Parameters のセクションに従って activation を設定します。 5. **Output Mapping** パネルで activation 出力をカスタマイズします。 ![](/assets/ouput.b2c7f1d909c4f98ed10f5300df858a4b19f71a3b0834df952f5fb24018a5ea78.8ebdf569.png) - 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 番号。 1. **Schedule** を設定します。 ![](/assets/snippet-output-connector-on-audience-studio-2024-08-28.a99525173709da1eb537f839019fa7876ffae95045154c8f2941b030022f792c.8ebdf569.png) - スケジュールを定義する値を選択し、オプションでメール通知を含めます。 1. **Create** を選択します。 batch journey の activation を作成する必要がある場合は、[Creating a Batch Journey Activation](/products/customer-data-platform/journey-orchestration/batch/creating-a-batch-journey-activation) を参照してください。