この記事では、Amazon S3からTreasure Dataにデータを直接インポートする方法について説明します。
まず、バルクローダープログラムを含むToolbeltをお使いのコンピューターにインストールします。
インストール後、お使いのコンピューターに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/javaTreasure 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に保存されたファイルから、サポートされている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*.csvmy_bucket/path/to/配下にある、プレフィックスがdataで拡張子が.csvのすべてのファイルs3://my_bucket/path/to/*.csvmy_bucket/path/to/配下にある、拡張子が.csvのすべてのファイルs3://my_bucket/path/to/*my_bucket/path/to/配下のすべてのファイルs3://my_bucket/path/to/*/*.csvmy_bucket/path/の直接のサブフォルダ内にある、拡張子が.csvのすべてのファイルs3://my_bucket/**/*.csvmy_bucket/path/のすべてのサブフォルダ内にある、拡張子が.csvのすべてのファイル
詳細については、以下のページを参照してください: