embulk-input-s3インプットプラグインを使用して、AWS S3バケットからTreasure Dataにファイルをインポートできます。
以下のトピックに進みます:
- Treasure Dataの基礎知識
- Embulkの基礎知識
- バルクデータインポートのインストールの手順に従う
- マシンにEmbulkとEmbulk-output-tdプラグインがインストールされていること
embulk-input-s3プラグインをインストールするには、以下のコマンドを実行します:
embulk gem install embulk-input-s3お好みのテキストエディタを使用して、インプット(S3)とアウトプット(TD)のパラメータを定義するEmbulk設定ファイル(例:seed.yml)を作成します。例:
in:
type: s3
bucket: s3bucket
path_prefix: path/to/sample_file # s3バケット上の*.csvまたは*.tsvファイルのパス
access_key_id: xxxxxxxxxx
secret_access_key: xxxxxxxxxxx
out:
type: td
apikey: xxxxxxxxxxxx
endpoint: api.treasuredata.com
database: dbname
table: tblname
time_column: datecolumn
mode: replace
#デフォルトでは、定義されていない場合mode: appendが使用されます。
# インポートされたレコードは、このモードでターゲットテーブルに追加されます。
#mode: replaceは、既存のターゲットテーブルを置き換えます
default_timestamp_format: '%d/%m/%Y'embulk-input-s3で利用可能な追加パラメータの詳細については、Embulk Input S3を参照してください。
Embulkのguessオプションは、seed.ymlを使用してターゲットファイルを読み取り、カラムのタイプ/設定を自動的に推測し、この情報を含む新しいファイルload.ymlを作成します。
embulk guess seed.yml -o load.yml存在しないテーブルが自動的に作成されるように、load.ymlに"auto_create_table: true"パラメータを追加します。
以下は、.ymlファイル内のauto_create_tableパラメータのサンプルです。
out:
type: td
apikey: your apikey
endpoint: api.treasuredata.com
database: dbname
table: tblname
time_column: created_at
auto_create_table: true
mode: appendロードジョブを実行する前に、TDでdatabaseとtableを作成する必要があります。
- databaseを追加する必要がある場合、または2) .ymlファイルにauto_create_tableパラメータを追加せず、tableを追加する必要がある場合は、以下のTDコマンドを実行してください:
td database:create dbname
td table:create dbname tblnameTD Consoleを使用してdatabaseとtableを作成することもできます。
embulk preview load.ymlコマンドを使用してデータをプレビューできます。カラムタイプやデータに誤りがあると思われる場合は、load.ymlファイルを直接編集して再度プレビューして確認できます。guessオプションが満足のいく結果を得られない場合は、CSV/TSVパーサープラグインオプションに従って、要件に応じてload.ymlのパラメータを手動で変更できます。
TD Consoleまたはコマンドラインからdatabaseとtableを作成します:
$ td database:create dbname
$ td table:create dbname tblname以下のコマンドを使用してインポートジョブを実行します:
embulk run load.ymlデータのサイズによっては、ジョブが完了するまで数分から数時間かかる場合があります。