Skip to content
Last updated

Adobe Analytics Import Integration V2 with CLI

CLIを使用したAdobe Analyticsからのインポート

CLIを使用してconnectorを設定するには、以下の手順に従ってください。

TD Toolbelt Commandのインストール

最新のTreasure Data Toolbeltをインストールできます。

td --version
0.17.1

設定ファイルの作成

次の例に示すように、クラウドストレージサービス(S3)のアクセス情報を含む設定ファイル(例: load.yml)を準備します。 この例では、S3からAdobe Analyticsのdata feedをダンプします:

  • s3_auth_type: s3とのauthenticationの方法
  • access_key_id: S3のaccess key
  • secret_access_key: S3のsecret key
  • bucket: S3のbucket
  • target: 取り込むターゲットデータ(data_feed_dataまたはdata_feed_lookup)
  • rs_id: report suite識別子
in:
  type: adobe_analytics_v2
  storage_type: s3
  s3_auth_type: basic
  access_key_id: <your s3 access_key_id>
  secret_access_key: <your secret_access_key>
  region: global
  bucket: <your bucket>
  target: data_feed_lookup
  path_prefix: <your path prefix>
  rs_id: <your report suite id>
  modified_after: 2024-01-19T04:35:11Z
  incremental: true
filters:
- type: add_time
  to_column:
    name: time
    type: timestamp
  from_value:
    mode: upload_time
- type: rename
  rules:
  - rule: upper_to_lower
  - rule: character_types
    pass_types: [ "a-z", "0-9" ]
    pass_characters: "_"
    replace: "_"
out:
  type: td
  apikey: <td_api_key>
  endpoint: <td_endpoint>
  database: <database>
  table: <table>
  time_column: time
  mode: replace
  default_timestamp_format: '%d/%m/%Y'

Load Jobの実行

load jobを送信します。データサイズによっては数時間かかる場合があります。ユーザーはデータが保存されているdatabaseとtableを指定する必要があります。

Treasure Dataのストレージは時間でパーティション分割されているため、--time-columnオプションを指定することをお勧めします。

オプションが指定されていない場合、data connectorは最初のlongまたはtimestampカラムをパーティショニング時間として選択します。--time-columnで指定されたカラムのタイプは、longまたはtimestampタイプのいずれかである必要があります。データに時間カラムがない場合は、add_timeフィルターオプションを使用して追加できます。詳細については、add_time filter pluginを参照してください。

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

上記のコマンドは、すでに*database(td_sample_db)table(td_sample_table)*を作成していることを前提としています。databaseまたはtableがTDに存在しない場合、このコマンドは成功しません。したがって、databaseとtableを手動で作成するか、td connector:issueコマンドで--auto-create-tableオプションを使用してdatabaseとtableを自動作成します。"--time-column"オプションで"Partitioning Key"にTime Formatカラムを割り当てることができます。

$ td connector:issue load.yml --database td_sample_db --table td_sample_table --time-column modifieddate --auto-create-table

実行のスケジューリング

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

Scheduleの作成

td connector:createコマンドを使用して新しいスケジュールを作成できます。スケジュールの名前、cron形式のスケジュール、データが保存されるdatabaseとtable、およびData Connector設定ファイルが必要です。cronパラメータは、@hourly@daily@monthlyの3つのオプションも受け入れます。デフォルトでは、スケジュールはUTCタイムゾーンで設定されます。-tまたは--timezoneオプションを使用して、タイムゾーン内でスケジュールを設定できます。--timezoneオプションは、'Asia/Tokyo'、'America/Los_Angeles'などの拡張タイムゾーン形式のみをサポートしています。PST、CSTなどのタイムゾーン略語は*サポートされておらず*、予期しないスケジュールになる可能性があります。

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

Scheduleのリスト表示

td connector:listで現在スケジュールされているエントリのリストを確認できます

$ td connector:list

Scheduleの設定と履歴の表示

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

td connector:show daily_adobe_analytics_v2_importName
daily_adobe_analytics_v2_importCron     : 10 0 * * *Timezone : UTCDelay    : 0Database : td_sample_dbTable    : td_sample_table

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

td connector:history daily_adobe_analytics_v2_import

Scheduleの削除

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

td connector:delete daily_adobe_analytics_v2_import

設定可能なオプション

ParametersDescriptionTypeDefault valueNotes
typeadobe_analytics_v2である必要がありますString必須
storage_typeクラウドストレージサービスプロバイダー 現在はs3のみをサポートEnum (s3)s3
s3_auth_typeS3のauthentication方法Enum(basic, session, assume_role )basic
endpointS3のendpointString設定されている場合、regionに関係なく選択されます
regionS3のregionEnum 完全なリストはAmazon Simple Storage Service endpoints and quotas - AWS General Referenceを参照してくださいglobalendpointが空の場合に使用されます
access_key_idS3のAccess Key IdStringbasicおよびsession authenticationを使用する場合に必須
secret_access_keyS3のSecret KeyStringbasicおよびsession authenticationを使用する場合に必須
session_tokenS3のSession TokenStringsession authenticationを使用する場合に必須
bucketS3のBucketString必須
targetData TargetEnum(data_feed_dataおよびdata_feed_lookup)data_feed_data必須
path_prefixdata feedの場所のパスプレフィックスString必須
rs_idReport Suite IdString必須
incrementalIncremental loadingBooleantrue
modified_afterデータのインポートを開始する時間(排他的)TimestampISO-8601形式
max_retry再試行の最大回数Integer7
initial_retry_wait最初の再試行の待機時間(秒単位)Integer2
max_retry_wait再試行の最大待機時間(秒単位)Integer120

Assume Role authenticationはCLIを通じて設定できません。既存のauthenticationを再利用することで設定できます。Reuse the existing Authenticationを参照してください。

サンプル設定

in:
  type: adobe_analytics_v2
  storage_type: s3
  s3_auth_type: basic
  access_key_id: <your s3 access_key_id>
  secret_access_key: <your secret_access_key>
  region: global
  bucket: <your bucket>
  target: data_feed_data
  path_prefix: <your path prefix>
  rs_id: <your report suite id>
  modified_after: 2024-01-19T04:35:11Z
  incremental: false
filters:
- type: add_time
  to_column:
    name: time
    type: timestamp
  from_value:
    mode: upload_time
- type: rename
  rules:
  - rule: upper_to_lower
  - rule: character_types
    pass_types: [ "a-z", "0-9" ]
    pass_characters: "_"
    replace: "_"
out:
  type: td
  apikey: <td_api_key>
  endpoint: <td_endpoint>
  database: <database>
  table: <table>
  time_column: time
  mode: replace
  default_timestamp_format: '%d/%m/%Y'

Lookup Dataの取り込み

in:
  type: adobe_analytics_v2
  storage_type: s3
  s3_auth_type: basic
  access_key_id: <your s3 access_key_id>
  secret_access_key: <your secret_access_key>
  region: global
  bucket: <your bucket>
  target: data_feed_lookup
  path_prefix: <your path prefix>
  rs_id: <your report suite id>
  modified_after: 2024-01-19T04:35:11Z
  incremental: false

filters:
- type: add_time
  to_column:
    name: time
    type: timestamp
  from_value:
    mode: upload_time
- type: rename
  rules:
  - rule: upper_to_lower
  - rule: character_types
    pass_types: [ "a-z", "0-9" ]
    pass_characters: "_"
    replace: "_"

out:
  type: td
  apikey: <td_api_key>
  endpoint: <td_endpoint>
  database: <database>
  table: <table>
  time_column: time
  mode: replace
  default_timestamp_format: '%d/%m/%Y'

External Reference