Skip to content
Last updated

CLIからのData Connectorジョブ実行のスケジュール設定

スケジュール実行は、連携元からデータを取得する定期的な試行中のData Connectorの動作を制御する追加の設定パラメーターをサポートしています:

  • incremental この設定は、ロードモードを制御するために使用されます。ロードモードは、各オブジェクトに関連付けられたネイティブのタイムスタンプまたは数値フィールドの1つに基づいて、Data Connectorが連携からデータを取得する方法を管理します
  • incremental_columnn この設定は、Treasure Dataにインポートされるベースカラムを定義するために使用されます。このフィールドには1つのカラムのみを定義できます。推奨値は created, createdTimestamp, updated, updatedTimestamp です
  • PST、CSTなどのTimezoneの略語はサポートされておらず、予期しないスケジュールになる可能性があります。
  • --timezoneオプションは、'Asia/Tokyo'、'America/Los_Angeles'などの拡張Timezone形式のみをサポートしています。

incremental modeを使用したロードファイルの例を次に示します:

in:
  type: intg_type
  data_center: US1
  authentication_mode: key_secret
  application_key: your_application_user_key
  secret_key: your_application_secret_key
  api_key: your_api_key
  data_source: account
  batch_size: 1000
  query: SELECT * FROM table_name
  incremental: true
  incremental_column: created
filters:
- type: add_time
  from_value:
    mode: upload_time
  to_column:
    name: time

スケジュールの作成

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

cronパラメーターは、@hourly@daily@monthlyのオプションを受け入れます。

デフォルトでは、スケジュールはUTC timezoneで設定されます。-tまたは--timezoneオプションを使用して、timezoneでスケジュールを設定できます。

たとえば、td connector:createコマンドを使用して日次で実行されるスケジュールジョブを作成できます:

td connector:create connector_name @daily connector_database connector_table load.yml

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

td connector:create daily_import "10 0 * * *" \
    td_sample_db td_sample_table load.yml \
    --time-column created_at

cronパラメータは、3つの特別なオプション:@hourly@daily、および@monthlyも受け入れます。

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

すべてのスケジュールをリスト

td connector:listコマンドを実行することで、現在スケジュールされているエントリのリストを表示できます。

$ td connector:list
+--------------+--------------+----------+-------+--------------+-----------------+------------------------------------------+
| Name         | Cron         | Timezone | Delay | Database     | Table           | Config                                   |
+--------------+--------------+----------+-------+--------------+-----------------+------------------------------------------+
| daily_import | 10 0 * * *   | UTC      | 0     | td_sample_db | td_sample_table | {"in"=>{"type"=>"s3", "access_key_id"... |
+--------------+--------------+----------+-------+--------------+-----------------+------------------------------------------+

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

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

td connector:show daily_import
Name     : daily_import
Cron     : 10 0 * * *
Timezone : UTC
Delay    : 0
Database : td_sample_db
Table    : td_sample_table
Config
---
in:
  type: s3
  access_key_id: access_key_id
  secret_access_key: secret_access_key
  endpoint: endpoint
  bucket: bucket
  path_prefix: path_prefix
  parser:
    charset: UTF-8
    ...

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

td connector:history daily_import
+--------+---------+---------+--------------+-----------------+----------+---------------------------+----------+
| JobID  | Status  | Records | Database     | Table           | Priority | Started                   | Duration |
+--------+---------+---------+--------------+-----------------+----------+---------------------------+----------+
| 578066 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-18 00:10:05 +0000 | 160      |
| 577968 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-17 00:10:07 +0000 | 161      |
| 577914 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-16 00:10:03 +0000 | 152      |
| 577872 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-15 00:10:04 +0000 | 163      |
| 577810 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-14 00:10:04 +0000 | 164      |
| 577766 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-13 00:10:04 +0000 | 155      |
| 577710 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-12 00:10:05 +0000 | 156      |
| 577610 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-11 00:10:04 +0000 | 157      |
+--------+---------+---------+--------------+-----------------+----------+---------------------------+----------+
8 rows in set

スケジュールの削除

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

$ td connector:delete daily_import