# CLIを使用したThe Trade Deskインポート連携 ## Treasure Data Toolbeltのインストール 最新の[Treasure Data Toolbelt](https://toolbelt.treasuredata.com/)をインストールしてください。 ## 設定ファイル(load.yml)の作成 設定ファイルには、The Trade Deskからコネクタに取り込まれるものを指定するin:セクションと、コネクタがTreasure Dataのデータベースに出力するものを指定するout:セクションが含まれます。利用可能なoutモードの詳細については、[付録](https://docs.treasuredata.com/articles/project-integrations/the-trade-desk-import-integration+using+CLI#TheTradeDeskImportIntegrationusingCLI-Appendix)を参照してください。 以下の例は、Advertiserのインポート指定方法を示しています。 ```yaml in: type: the_trade_desk login_credential: login_credential password: password target: advertiser out: mode: append ``` 以下の例は、Campaignのインポート指定方法を示しています。 ```yaml in: type: the_trade_desk login_credential: login_credential password: password target: campaign advertiser_id: advertiser_id1, advertiser_id2, advertiser_id3 out: mode: append ``` 以下の例は、Data Groupのインポート指定方法を示しています。 ```yaml in: type: the_trade_desk login_credential: login_credential password: password target: data_group advertiser_id: advertiser_id1, advertiser_id2, advertiser_id3 out: mode: append ``` 以下の例は、Tracking Tagsのインポート指定方法を示しています。 ```yaml in: type: the_trade_desk login_credential: login_credential password: password target: tracking_tags advertiser_id: advertiser_id1, advertiser_id2, advertiser_id3 out: mode: append ``` ## インポートするデータのプレビュー(オプション) td connector:previewコマンドを使用してインポートするデータをプレビューできます。 ``` $ td connector:preview load.yml ``` ## ロードジョブの実行 ジョブを実行するには、`td connector:issue` を使用します。 ロードジョブを実行する前に、データを保存するデータベースとテーブルを指定する必要があります。例:td_sample_db、td_sample_table ```bash $ td connector:issue load.yml \ --database td_sample_db \ --table td_sample_table \ --time-column date_time_column ``` Treasure Data のストレージは時間によってパーティション分割されるため、`--time-column` オプションを指定することを推奨します。このオプションが指定されていない場合、データコネクタは最初の long 型または timestamp 型のカラムをパーティション時刻として選択します。`--time-column` で指定するカラムの型は、long 型または timestamp 型である必要があります(使用可能なカラム名と型を確認するには、プレビュー結果を使用してください。一般的に、ほとんどのデータ型には last_modified_date カラムがあります)。 データに時刻カラムがない場合は、add_time フィルターオプションを使用してカラムを追加できます。詳細は [add_time filter](https://support.treasuredata.com/hc/en-us/articles/360001405587-add-time-filter-plugin-for-Data-Connector) プラグインを参照してください。 `td connector:issue` は、データベース(sample_db)とテーブル(sample_table)が既に作成されていることを前提としています。データベースまたはテーブルが TD に存在しない場合、`td connector:issue` は失敗します。したがって、データベースとテーブルを手動で作成するか、`td connector:issue` で `--auto-create-table` を使用してデータベースとテーブルを自動的に作成する必要があります。 ```bash $ td connector:issue load.yml \ --database td_sample_db \ --table td_sample_table \ --time-column date_time_column \ --auto-create-table ``` コマンドラインからロードジョブを送信します。データサイズによっては、処理に数時間かかる場合があります。 # 付録 ## out プラグインのモード load.yml ファイルの out セクションでファイルインポートモードを指定できます。 out: セクションは、データを Treasure Data テーブルにインポートする方法を制御します。 たとえば、Treasure Data の既存のテーブルにデータを追加するか、データを置換するかを選択できます。 出力モードは、データが Treasure Data に配置されるときにデータを変更する方法です。 - **Append**(デフォルト):レコードがターゲットテーブルに追加されます。 - **Replace**(td 0.11.10 以降で利用可能):ターゲットテーブルのデータを置き換えます。ターゲットテーブルに対して行われた手動のスキーマ変更はそのまま残ります。 例: ``` in: ... out: mode: append in: ... out: mode: replace ``` ## 無効な ID のエラーハンドリング ユーザーが無効な ID(広告主 ID)の文字列を入力すると、最初の無効な ID が検出され、エラーメッセージが表示されます。無効な ID が最初の ID でない場合、無効な ID は検出されず、ジョブは実行されますが、無効な ID は出力ログに表示されます。