# AWS S3からのEmbulkバルクインポート embulk-input-s3インプットプラグインを使用して、AWS S3バケットからTreasure Dataにファイルをインポートできます。 以下のトピックに進みます: ## 前提条件 - Treasure Dataの基礎知識 - [Embulk](http://www.embulk.org/docs/)の基礎知識 - [バルクデータインポートのインストール](https://docs.treasuredata.com/smart/project-product-documentation/installing-bulk-data-import)の手順に従う - マシンに[EmbulkとEmbulk-output-td](http://www.embulk.org/docs/)プラグインがインストールされていること ## embulk-input-s3プラグインのインストール embulk-input-s3プラグインをインストールするには、以下のコマンドを実行します: ```bash embulk gem install embulk-input-s3 ``` ## シード設定ファイルの作成 お好みのテキストエディタを使用して、インプット(S3)とアウトプット(TD)のパラメータを定義するEmbulk設定ファイル(例:seed.yml)を作成します。例: ```yaml 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](https://github.com/embulk/embulk-input-s3)を参照してください。 ## フィールドの推測 (load.ymlの生成) Embulkのguessオプションは、`seed.yml`を使用してターゲットファイルを読み取り、カラムのタイプ/設定を自動的に推測し、この情報を含む新しいファイル`load.yml`を作成します。 ```bash embulk guess seed.yml -o load.yml ``` 存在しないテーブルが自動的に作成されるように、load.ymlに"auto_create_table: true"パラメータを追加します。 以下は、.ymlファイル内のauto_create_tableパラメータのサンプルです。 ```yaml 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を作成する必要があります。 1) databaseを追加する必要がある場合、または2) .ymlファイルにauto_create_tableパラメータを追加せず、tableを追加する必要がある場合は、以下のTDコマンドを実行してください: ```bash td database:create dbname td table:create dbname tblname ``` TD Consoleを使用してdatabaseとtableを作成することもできます。 `embulk preview load.yml`コマンドを使用してデータをプレビューできます。カラムタイプやデータに誤りがあると思われる場合は、`load.yml`ファイルを直接編集して再度プレビューして確認できます。`guess`オプションが満足のいく結果を得られない場合は、[CSV/TSVパーサープラグインオプション](http://www.embulk.org/docs/built-in.md#csv-parser-plugin)に従って、要件に応じて`load.yml`のパラメータを手動で変更できます。 TD Consoleまたはコマンドラインからdatabaseとtableを作成します: ```bash $ td database:create dbname $ td table:create dbname tblname ``` ## ロードジョブの実行 以下のコマンドを使用してインポートジョブを実行します: ```bash embulk run load.yml ``` データのサイズによっては、ジョブが完了するまで数分から数時間かかる場合があります。