# AWS S3向けレガシーバルクインポート この記事では、Amazon S3からTreasure Dataにデータを直接インポートする方法について説明します。 # バルクインポートのインストール まず、バルクローダープログラムを含む[Toolbelt](https://support.treasuredata.com/hc/en-us/articles/command-line)をお使いのコンピューターにインストールします。 ## ダウンロード - [Toolbelt Installer for Windows](https://toolbelt.treasuredata.com/win) - [Toolbelt Installer for Mac OS X](https://toolbelt.treasuredata.com/mac) - [Toolbelt Installer for Linux](https://toolbelt.treasuredata.com/linux) インストール後、お使いのコンピューターに`td`コマンドがインストールされます。ターミナルを開いて`td`と入力してコマンドを実行してください。また、`java`もインストールされていることを確認してください。`td import:jar_update`を実行して、最新バージョンのバルクローダーをダウンロードします: ``` $ td usage: td [options] COMMAND [args] $ java Usage: java [-options] class [args...] $ td import:jar_update Installed td-import.jar 0.x.xx into /path/to/.td/java ``` # 認証 Treasure Dataアカウントにログインします。 ``` $ td account -f Enter your Treasure Data credentials. Email: xxxxx Password (typing will be hidden): Authenticated successfully. Use 'td db:create db_name' to create a database. ``` # Amazon S3からのデータインポート バルクローダーは、Amazon S3に保存されたファイルから、サポートされている3つのファイル形式でデータを読み取ることができます: - CSV(デフォルト) - JSON - TSV Amazon S3に次の内容の`data.csv`というファイルがあるとします: ``` "host","log_name","date_time","method","url","res_code","bytes","referer","user_agent" "64.242.88.10","-","2004-03-07 16:05:49","GET","/twiki/bin/edit/Main/Double_bounce_sender?topicparent=Main.ConfigurationVariables",401,12846,"","" "64.242.88.10","-","2004-03-07 16:06:51","GET","/twiki/bin/rdiff/TWiki/NewUserTemplate?rev1=1.3&rev2=1.2",200,4523,"","" "64.242.88.10","-","2004-03-07 16:10:02","GET","/mailman/listinfo/hsdivision",200,6291,"","" "64.242.88.10","-","2004-03-07 16:11:58","GET","/twiki/bin/view/TWiki/WikiSyntax",200,7352,"","" ``` 次のコマンドを実行してCSVファイルをアップロードします: ``` $ td db:create my_db $ td table:create my_db my_tbl $ td import:auto \ --format csv --column-header \ --time-column date_time \ --time-format "%Y-%m-%d %H:%M:%S" \ --auto-create my_db.my_tbl \ "s3://s3_access_key:s3_secret_key@/my_bucket/path/to/data.csv" ``` ファイルの場所は、AWSのパブリックおよびプライベートアクセスキーが埋め込まれたS3パスとして表現されます。 `td import:auto`は無効な行をチェックするためにMapReduceジョブを実行するため、少なくとも**1〜2分**かかります。`--time-column`に選択したカラムがエポックタイムスタンプ(またはUnix時間)の場合、`--time-format`フラグは不要です。 上記のコマンドでは、次のことを想定しています: - CSVファイルはAmazon S3上の`my_bucket`というバケット内の`/path/to/`というパス/キー配下に配置されています。 - ファイルの最初の行にはカラム名が記載されているため、`--column-header`オプションを指定しています。ファイルの最初の行にカラム名がない場合は、`--columns`オプションでカラム名を指定する必要があります(オプションで`--column-types`オプションでカラム型を指定できます)。または、ファイル内の各カラムに対して`--column-types`を使用します。 - 時刻フィールドは"date_time"と呼ばれ、`--time-column`オプションで指定されています - 時刻形式は`%Y-%m-%d %H:%M:%S`であり、`--time-format`オプションで指定されています ### ワイルドカード バルクローダーでインポートするソースファイルは、完全なAmazon S3パスまたはワイルドカードを使用して指定できます。以下にいくつかの例を示します: - `s3://my_bucket/path/to/data*` `my_bucket/path/to/`配下にある、プレフィックスが`data`のすべてのファイル - `s3://my_bucket/path/to/data*.csv` `my_bucket/path/to/`配下にある、プレフィックスが`data`で拡張子が`.csv`のすべてのファイル - `s3://my_bucket/path/to/*.csv` `my_bucket/path/to/`配下にある、拡張子が`.csv`のすべてのファイル - `s3://my_bucket/path/to/*` `my_bucket/path/to/`配下のすべてのファイル - `s3://my_bucket/path/to/*/*.csv` `my_bucket/path/`の直接のサブフォルダ内にある、拡張子が`.csv`のすべてのファイル - `s3://my_bucket/**/*.csv` `my_bucket/path/`のすべてのサブフォルダ内にある、拡張子が`.csv`のすべてのファイル 詳細については、以下のページを参照してください: - [Bulk Import Internals](/ja/int/legacy-bulk-import-internals) - [Bulk Import Tips and Tricks](/ja/int/legacy-bulk-import-tips-and-tricks)