Skip to content
Last updated

Google Analytics Import Integration CLI

CLIからのData Connectorの作成

コンソールUIの代わりに、コマンドラインインターフェース(CLI)からTreasure Data connectorを設定することもできます。Treasure Dataのconnectorは、Treasureデータアカウントへのエクスポートを可能にするYAMLプラグイン形式の設定ファイルを使用します。

開始する前に、'td'コマンドv0.11.9以降がインストールされていることを確認してください。

$ td —version

必要に応じて、Treasure Data Toolbeltにアクセスしてください。

データ転送の指定

data connector .ymlファイルを作成または取得します。

データ設定ファイルのIn:セクションで入力データを指定します。次に、out:セクションで、Treasureデータアカウントの詳細情報である宛先情報を指定します。

この例では、セクション2で元々作成されたservice accountが指定されています。また、セクション2で作成されたJSONファイルの秘密鍵情報も使用します。

設定ファイルのセクション:

"type"はこのインスタンスではgoogle analyticsです。 "json_key_content"には、開き括弧から閉じ括弧( {} )まで、JSONファイルの内容をここに貼り付けます。 "view_id": セクション2で説明されているGoogle Analytics View IDをここに入力します。 "Start_date": "YYYY-MM-DD"形式で指定されたデータ取得期間の開始日。(デフォルト: 7日前) "end_date": "YYYY-MM-DD"形式で指定されたデータ取得期間の終了日。(デフォルト: 1日前) "time_series": TDへのインポート時に"time"カラムのタイムスタンプを指定する必要があります。"date"または"dateHour"を指定できます。これにより、time_seriesで1つのdimensionを消費します。 さらに最大6つのdimensionsを設定できます。"dimension", "metrics": Google Analyticsからアクセスするディメンションカラムとメトリクスを指定します。"Out:"既存のテーブルに入ってくるデータを追加するには"mode: append"と入力します。既存のテーブルのデータを置き換えるには"mode:replace"と入力します。

データ転送のプレビュー

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

$ td connector:preview config.yml

システムが予期しない方法でカラム名またはカラムタイプを検出した場合は、config.ymlを直接変更して再度プレビューしてください。data connectorは"boolean"、"long"、"double"、"string"、および"timestamp"タイプの解析をサポートしています。

設定ファイルで指定されたtime series ("date_hour")、dimensions ("browser")、およびmetrics ("visits", "pageviews")が表示されます。

プレビューは転送結果の感覚をつかむのに役立ちます。Google Analyticsの"time_series"は、TDデータテーブルのtimeカラムにマップされます。通常、timeカラムはTDのパーティショニングキーです。"date_hour"の代わりに"ga: date"を使用することもできます。一部の"time-series"の組み合わせは無効であることに注意してください。たとえば、ga:1dayUsersとga:7dayUsersを同じ設定で使用することはできません。

オプション—追加のDimensionsまたはMetricsの追加

Google API V4 > Reporting > Dimensions& Metrics Explorerでは、Treasure Dataにインポートできるディメンションとメトリクスのリストを確認できます。

データ転送プロセスの開始

Treasure Dataへのデータ転送は、データのサイズに応じて数時間かかる場合があります。

データが保存されるdatabaseとtableを指定する必要があります。

Load Jobの送信

td connector:issue config.yml --database td_sample_db --table td_sample_table \
  --time-column date_hour

上記のコマンドは、すでに*database(td_sample_db)table(td_sample_table)*を作成していることを前提としています。databaseまたはtableがTDに存在しない場合、このコマンドは成功しないため、databaseとtableを手動で作成するか、TD connector:issueコマンドで--auto-create-tableオプションを使用してdatabaseとtableを自動作成してください:

td connector:issue config.yml --database td_sample_db --table td_sample_table --time-column date_hour --auto-create-table

data connectorはサーバー側でレコードをソートしません。時間ベースのパーティショニングを効果的に使用するには、事前にファイル内のレコードをソートしてください。

次の例では、databaseが既に存在しない場合、それが作成されることがわかります。Treasure DataのバルクデータローダーであるEmbulkによってインポートされる指定を確認できます。デフォルトでは、In:セクションで指定されたtime_series項目がOut:セクションのtimeカラムに変換されることがわかります。timeカラムはTreasure Dataで'パーティションキー'として使用されます。

スケジュール実行

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

スケジュールされたインポートの場合、Data Connector for Google Analyticsは最初にすべてのデータをインポートします。

スケジュール実行は、ネイティブタイムスタンプの1つに基づいてGoogle Analyticsからデータを取得する際のData Connectorの動作を制御する追加の設定パラメータをサポートしています:

  • incremental この設定は、ロードモードを制御するために使用され、ネイティブタイムスタンプの1つに基づいてData ConnectorがGoogle Analyticsからデータを取得する方法を管理します。

    • incremental: true (デフォルト) このモードでは、data connectorはconnectorの前回の実行以降に更新されたレコードのみを取得します。これは、ユーザーが時間範囲内のレコードのみを取得したい場合に便利です。

      • start_date
      • end_date これらのオプションは、次の例のように、Google Analyticsから必要なデータのみをロードするために、増分モードで必要です。
    • incremental: false このモードでは、data connectorは、最後に更新された時期に関係なく、指定されたすべてのレコードを取得します。

  • last_record_time この設定は、この時間からレコードを取得するために使用されます。

例: 増分モードとlast_record_timeを使用したシードファイル

in:
  type: google_analytics
  json_key_content: |
    {
      ... paste here you got key file content on Step 1 ...
    }
  view_id: 104222666
  time_series: "ga:dateHour"
  incremental: true
  start_date: '2016-01-30'
  end_date: '2017-01-01'
  last_record_time: '2016-12-01 08:00:00 UTC'
  dimensions:
    - "ga:browser"
  metrics:
    - "ga:visits"
    - "ga:pageviews"

上記の設定では、data connectorは2016-12-01 00:00:00から始まるすべてのレコードをロードします。

2回目以降の実行では、最後の実行後に来たデータのみがインポートされます。

スケジュールの作成

TD connector:createコマンドを使用して新しいスケジュールを作成できます。次の項目が必要です: スケジュールの名前、cron形式のスケジュール、データが保存されるdatabaseとtable、およびdata connector設定ファイル。

$ td connector:create \
    daily_import \
    "10 0 * * *" \
    td_sample_db \
    td_sample_table \
    config.yml

Treasure Dataのストレージは時間でパーティション化されているため、--time-columnオプションを指定することも推奨されます(データパーティショニングについても参照してください)。

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

cronパラメータは、@hourly@daily@monthlyの3つの特別なオプションも受け入れます。デフォルトでは、スケジュールはUTCタイムゾーンで設定されます。-tまたは--timezoneオプションを使用して、タイムゾーンでスケジュールを設定できます。--timezoneオプションは'Asia/Tokyo'、'America/Los_Angeles'などの拡張タイムゾーン形式のみをサポートしていることに注意してください。PST、CSTなどのタイムゾーンの略語は*サポートされておらず*、予期しないスケジュールにつながる可能性があります。

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

TD connector:listコマンドを実行すると、スケジュールされたエントリのリストを確認できます。

$ td connector:list

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

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

td connector:show daily_import

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

td connector:history daily_import

スケジュールの削除

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

$ td connector:delete daily_import