トレジャーデータ(Treasure Data)ブログ

トレジャーデータ(Treasure Data)ブログです。

本サイトは移転しました。新サイトにリダイレクトします。

(新機能)「Data Connector for Amazon S3」によるデータロード革命

本記事は移転しました。新サイトにリダイレクトします。

はじめに

トレジャーデータでは,あらゆるデータソースにリーチするデータ収集ツールを用意していますが,新しい収集機能として「Data Connector」を順次リリースする予定です。

↑ 従来の収集ツールに関しては過去記事をご覧下さい。

何が新しいのか?

f:id:doryokujin:20150622113448j:plain

さて,今回紹介する「Data Connector for Amazon S3」はその名の通り,Amazon S3上のデータをトレジャーデータに設定のみで「バルクデータロード」する機能です。この機能は先日オープンソースとしてリリースされた Embulk をベースにしたものです。

Embulk については以下の過去記事をご参照ください。

従来の Bulk Import 機能は「Client to Server」型

従来のトレジャーデータの「バルクインポート」機能は,クライアント上の巨大なデータに対して,トレジャーデータへ安全かつ効率良く実行するものでした。

しかし,もしインポート対象のデータがS3やHDFSといったサードパーティツール上にある場合は,まずはそこからクライアントサーバーへダウンロードしてからバルクインポートする必要がありました。また,ダウンロードからインポート完了までの「人」と「サーバー」のリソースが必要でした。

f:id:doryokujin:20150622105928j:plain

Data Connector は「Server to Server」型

Data Connector はこのクライアント側の悩ましい処理をトレジャーデータが「ホスティング」することで代替します。クライアントサイドからはコマンドだけ実行したら後は放置してマイグレーションが完了するのを待つだけになります。

f:id:doryokujin:20150622114646j:plain

トレジャーデータではこの Server to Server 型の処理を「Data Connector」と名付け,まずは Amazon S3 から,順次データソースをプラグインとして拡張して行く予定です。

f:id:doryokujin:20150622110236p:plain

Embulk の思想を受け継ぐ Data Connector は,あらゆるインプットをプラグインによって増やすことができます。

チュートリアル

それではチュートリアルを行っていきましょう。現時点では管理コンソールではなく,コマンドラインからの実行となることをご理解ください。参照源はこちらです。

Data Connector for Amazon S3 | Treasure Data

Step0:データの準備

今回は以下の内容の購買履歴ログが,

f:id:doryokujin:20150622112438p:plain

以下のバケット名で Amazon S3 に置かれていると仮定します。

f:id:doryokujin:20150622112604p:plain

Step1:Seed Config File (seed.yml) の作成

Data Connector 実行の第一歩は Seed Config File に「ソース源」と「ソースファイル」を指定するところから始めます。

Step2:Guess Formart in the File (load.yml)

次にこの seed.yml をS3に問い合わせを行い,取得したヘッダー情報を load.yml に保存します。guess コマンドによって以下の情報が書き込まれました。

guess コマンドの後は必ず load.yml を開き,内容に間違いが無いかをチェックして下さい。guess コマンドは非常に優秀ですが,人間の方でも今どのようなファイルをバルクロードしようとしているのかをチェックする意味でもチェックは重要です。

Step3:Preview

次に preview コマンドで,トレジャーデータに格納されることになるレコードの先頭を確認します。

Step4:Execute Load Job

あとは以下のコマンドを実行して放置するだけです。

コマンド実行後は,他のクエリと同じように Job ID が発行され,管理コンソール上からjobの進捗確認ができます。

f:id:doryokujin:20150622114325j:plain

おわりに

さて,いかがでしょうか?思ったよりも簡単だと思いませんか?そして,この機能がFTPやSFDCHDFS,RDBMS,オンプレに対しても行えるようになると素晴らしいとは思いませんか?

パブリックリリースまでしばしお待ち下さい。