Skip to content
Last updated

CLI を使用した Marketo インポート接続

CLI を使用して接続を設定できます。

このトピックには以下が含まれます:

制限事項

  • -c、--config CONFIG_FILE オプションを使用した td connector:update によるコネクタ設定の更新はサポートされていません。

Treasure Data Toolbelt のインストール

ターミナルを開き、次のコマンドを実行して最新の Treasure Data Toolbelt をインストールします。

$ td --version
0.11.10

Guess と Preview は、リスト内のリード、プログラム内のリードでサポートされています。

設定ファイルの作成 (seed.yml)

以下の例に示すように、パラメータを指定して seed.yml を準備します

in:
  type: marketo
  <parameter: value>
out:
  <mode: append
パラメータ説明
account_idstringこれらの値は、Marketo の Admin > Web Services ページで確認できます。必要に応じて、Marketo のドキュメントで認証情報へのアクセスに関する詳細情報を確認できます: http://developers.marketo.com/blog/quick-start-guide-for-marketo-rest-api/
client_idstring
client_secretstring
targetstring次のターゲットのインポートをサポートします: - lead - activity - campaign - all_lead_with_list_id - all_lead_with_program_id - program - custom_object - program_members
list_idsstringtarget: all_lead_with_list_id。カンマ区切りのリスト ID。このフィールドを空白のままにすると、すべての個人レコードをインポートします。
program_idsstring**target: all_lead_with_program_id
activity_type_idsstringtarget: activity。特定のタイプのアクティビティのみをフィルタリングします。指定しない場合はすべてのタイプを取得します。
incrementalboolean**target: lead
use_updated_atbooleantarget: lead。デフォルトでは、リードのインポートは createdAt 列でフィルタリングされます。選択すると、updatedAt 列でデータをフィルタリングします。この機能は、すべての Marketo サブスクリプションで利用できるわけではありません。https://developers.marketo.com/rest-api/bulk-extract/bulk-lead-extract/#filters を参照してください
from_datestring**target: lead
fetch_daysinteger**target: lead
escapestring**target: lead
quotestring**target: lead
query_bystringtarget: program. サポートされる値: tag_type
tag_typestringtarget: program。フィルタリングする Marketo タグのタイプ
tag_valuestringtarget: program。Marketo プログラムをフィルタリングするタグ値
earliest_updated_atstringtarget: program。この日付以前のプログラムを除外します。有効な ISO-8601 文字列である必要があります。Datetime フィールドタイプの説明を参照してください。
latest_updated_atstringtarget: program。この日付以降のプログラムを除外します。有効な ISO-8601 文字列である必要があります。Datetime フィールドタイプの説明を参照してください。
filter_typestringtarget: program。サポートされるフィルタタイプ: - id - programId - folderId - workspace
filter_valuesstring arraytarget: program。フィルタ値
custom_object_api_namestringtarget: custom_object. カスタムオブジェクトの API 名
custom_object_fieldsstringtarget: custom_object. カスタムオブジェクトのフィールドのカンマ区切り API 名 (オプション)。
custom_object_filter_typestringtarget: custom_object. 結果をフィルタリングするために使用するカスタムオブジェクトのフィールドの API 名。整数フィールドのみをサポートします。
custom_object_filter_valuesstringtarget: custom_object. 一致するフィールド値のカンマ区切りリスト。この値が設定されている場合、custom_object_filter_from_value および custom_object_filter_to_value は無視されます
custom_object_filter_from_valueintegertarget: custom_object. この値より大きい値を持つ Marketo カスタムオブジェクトをフィルタリングします
custom_object_filter_to_valueintegertarget: custom_object. この値より小さい値を持つ Marketo カスタムオブジェクトをフィルタリングします。設定されていない場合、「From Value」より大きい値を持つレコードのみが返されます。300 回連続で値が見つからない場合、ジョブは停止します。
included_fieldsstring arrayデータインポートに含めるリードフィールドのリストを追加します。リードファミリーターゲットにのみ影響します。
marketo_limit_interval_milisintegerリクエストが Marketo の同時実行制限に達した場合に次の呼び出しを待機する時間 (デフォルト 20000 ~ 20 秒)
maximum_retriesintegerエラーが発生した場合に Marketo リクエストを再試行する最大回数 (デフォルト 7)
batch_sizeintegerMarketo REST API バッチサイズ (デフォルト 300)
max_returninteger単一のリクエストで返される最大レコード数。プログラムエンドポイントはページングにオフセットを使用します (デフォルト 200)
bulk_job_timeout_secondintegerジョブが失敗する前にバルク抽出を待機する合計時間 (デフォルト 3600 ~ 1時間)
polling_interval_secondintegerジョブステータスをポーリングする間隔 (デフォルト 60 秒)
read_timeout_millisintegerMarketo レスポンスを待機する時間 (デフォルト 60000~ 60 秒)

この設定は、「replace」モードが指定されているため、target フィールドで指定された Marketo オブジェクトをダンプします。

利用可能な出力モードの詳細については、付録を参照してください。

フィールドの推測 (load.yml の生成)

connector:guess を使用します。このコマンドは、ターゲットファイルを自動的に読み取り、ファイル形式を評価し(ロジックを使用して推測)、load.yml に出力します。ファイル load.yml には、リードのスキーマが含まれます。

td connector:guess seed.yml -o load.yml

load.yml を開くと、場合によってはファイル形式、エンコーディング、列名、タイプなど、評価されたファイル形式の定義が表示されます。

次に、preview コマンドを使用して、システムがファイルをどのように解析するかをプレビューできます。

td connector:preview load.yml

システムが列名またはタイプを誤って検出した場合は、load.yml を直接変更して再度プレビューします。

Data Connector は、「boolean」、「long」、「double」、「string」、および「timestamp」タイプの解析をサポートしています。

ロードジョブの実行

ロードジョブを送信します。データサイズによっては数時間かかる場合があります。ユーザーは、データが保存されるデータベースとテーブルを指定する必要があります。

td connector:issue load.yml \
--database td_sample_db \
--table td_sample_table \
--time-column activity_date_time

connector:issue コマンドは、すでにデータベース(td_sample_db)テーブル(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 activity_date_time \
--auto-create-table

"--time-column" オプションを使用して、Time Format カラムを「パーティショニングキー」に割り当てることができます。

スケジュール実行

定期的なMarketo インポートのために、定期的なデータコネクタの実行をスケジュールすることができます。高可用性を確保するために、スケジューラーは慎重に設定されています。この機能を使用することで、ローカルデータセンターで cron デーモンを実行する必要がなくなります。

スケジュールインポートの場合、Data Connector for Marketo はすべてのレコードをインポートします。

スケジュールの作成

新しいスケジュールは、td connector:create コマンドを使用して作成できます。スケジュール名、cron形式のスケジュール、データが格納されるデータベースとテーブル、およびData Connector設定ファイルが必要です。

$ td connector:create \
    daily_marketo_leads_import \
    "10 0 * * *" \
    td_sample_db \
    td_sample_table \
    load.yml

cron パラメータは、@hourly@daily@monthly の3つの特別なオプションも使用できます。詳細については、Scheduled Jobsを参照してください。

デフォルトでは、スケジュールはUTCタイムゾーンで設定されます。-t または —timezone オプションを使用して、タイムゾーンでスケジュールを設定できます。--timezone オプションは、'Asia/Tokyo'、'America/Los_Angeles' などの拡張タイムゾーン形式のみをサポートしています。PST、CST などのタイムゾーン略語はサポートされておらず、予期しないスケジュールになる可能性があります。

スケジュールのリスト表示

td connector:list を使用して、スケジュールエントリのリストを表示できます。

$ td connector:list
+-----------------------------------+---------------+----------+-------+-----------------+----------------------+
| Name                              | Cron          | Timezone | Delay | Database        | Table                |
+-----------------------------------+---------------+----------+-------+-----------------+----------------------+
| daily_marketo_leads_import.       | 10 0 * * *    | UTC      | 0     | td_sample_table | sample_table         |
+-----------------------------------+---------------+----------+-------+-----------------+----------------------+

スケジュールの設定と履歴の表示

td connector:show は、スケジュールエントリの実行設定を表示します。

% td connector:show daily_marketo_leads_import

td connector:history は、スケジュールエントリの実行履歴を表示します。各実行の結果を調査するには、td job jobid を使用してください。

td connector:history daily_marketo_leads_import

スケジュールの削除

td connector:delete は、スケジュールを削除します。

$ td connector:delete daily_marketo_leads_import

Out Plugin のモード

seed.yml の out セクションで、ファイルインポートモードを指定できます。

append (デフォルト)

これはデフォルトのモードで、レコードはターゲットテーブルに追加されます。

in:
  ...
out:
  mode: append

replace (td 0.11.10 以降)

このモードは、ターゲットテーブルのデータを置き換えます。ターゲットテーブルに手動で加えたスキーマの変更は、このモードでは保持されます。

in:
  ...
out:
  mode: replace