LoginSignup
3
3

More than 5 years have passed since last update.

Bluemixでデータ分析!「dashDB」:大量データロードその1 ーmoveToCloud

Last updated at Posted at 2016-05-16

csvをDBにロードしたい、というときに複数の方法があるようで、大量データを扱いたい時のパターンもいくつかあるみたい。今回はmoveToCloudというdashDBが提供しているスクリプトを使ってデータロードをしてみた。
このスクリプトでは、大量データを分割してそれぞれをgzipに固めてuploadしてくれるので、自力でえっちらおっちらアップするより高速と思われ。

キャプチャ多めで長い記事になってしまいましたが、10分もかからずできるはずです。

ローカルPCにあるデータを専用スクリプトを使って、softlayerのobjectstorageか、amazonのs3にアップロードして、そのデータをdashから抜き出すことができるものみたい。

(ちょろっとしたデータのロードはこちら→ http://qiita.com/azzeten/items/d10fa47d115093cffef8 )

S3の環境をつくる

①S3の環境を作成します。
・S3の画面にいきます。
・バケットの作成をクリックします。
・バケット名とリージョンを選べと言われるので、適当に選んで、作成。
(アップロードしたいファイル置き場を作る、といったイメージです)
スクリーンショット 2016-05-15 12.55.17.png

②S3にアクセスするためのユーザを作成し、access key等の認証情報をゲットする。

・IAMをクリックして、「新規ユーザの作成」をクリックします。
スクリーンショット 2016-05-16 10.43.08.png

・ユーザ名は適当に・・。作成をしたら、以下のような画面が出てくるので、「ユーザーのセキュリティ認証情報を表示」をクリックして、キーをメモります。これ、あとで使うので、大事な情報です!
スクリーンショット 2016-05-15 13.02.36.png

・S3をいじるようの権限をつけます。
「アクセス許可」タブから「ポリシーのアタッチ」で「AmazonS3FullAccess」を選びます。
(たぶんこれがないと、dashDBからS3の中身を見ようとした時に、エラーではじかれます。)
スクリーンショット 2016-05-16 10.46.52.png

専用スクリプトで、ローカルのデータをupload

①専用スクリプトをダウンロード&セットアップします。
・dashDBのWEB画面から「Load」をクリックして「Move to cloud」をクリックします。スクリプトをダウンロードできるリンクがあるので、これをクリックしてPCに落とします。
・落としたらunzipします。
・plファイルが本体で、creds.txtというのが認証情報を記載するファイルです。plファイルに実行権限がついていない場合は、権限をつけてあげてください(適当に777で・・・。本当はもっと厳密にやりましょうw)

$ chmod 777 moveToCloud.pl

・creds.txtには、先ほどAWSで作ったユーザの認証キーを入力しておきます。26行目、27行目あたりです。

accesskey=xxxxxxxxx
secretkey=xxxxxxxx

②スクリプトを実行して、ファイルをアップロードします。

・テスト実行
エラー無く帰ってくればOK。

$ ./moveToCloud.pl -test -target s3::ap-northeast-1::dashtest2016::/dashloadtest -creds creds.txt

・アップロード開始!成功〜

$ ./moveToCloud.pl -source /パス/emptest.csv -target s3::ap-northeast-1::dashtest2016::/dashloadtest -creds creds.txt

Successfully uploaded to "dashloadtest.gz"

dashDBに突っ込む

①ロードするデータのあるS3の場所を選択します。
・「Load」から「Load from Cloud」を選択。Amazon S3を選んで、アップロードしたリージョン(endpoint)とaccess key とsecret access keyを入力して「Browse S3 Files」を選びます。
スクリーンショット 2016-05-15 19.31.21.png

・別窓が開いて、どのファイルをアップロードするか聞かれるので、選んで、Nextをクリック。
スクリーンショット 2016-05-15 19.31.59.png

②データをロードする対象のスキーマとテーブル名を選択します。
・クリックして選びます。
・「データを追記でinsertする(append)」か「既存データを消して新規でつっこむか」を選択します。今回はappendにしてみました。
スクリーンショット 2016-05-15 19.44.03.png

③あとは道なりに「Next」で進みまくる。Run Nowを選んでNextをクリックすると、すぐにロードが開始されます。
・「Status and history」をクリックすると、ジョブのOK/NGや進捗状況を確認することができます。100%かつ緑のチェックが出てるので、successということで・・。
・ちなみに、JobIDの下の行をクリックして、青く反転させた状態で、「View log in blowser」をクリックすると詳細なログを確認することができます。NGのときはここでトレースとかをするのかなーといった具合です。たぶん。
スクリーンショット 2016-05-15 19.51.44.png

④確認。
・「Table」をクリックして、データをロードしたテーブルをクリック。データの中身が見れればOK。(コマンドラインからselect * してもよかったですが・・・)
スクリーンショット 2016-05-15 19.52.33.png

おまけ

今回はMacでやったのでスムーズにいきましたが、WindowsからだとCygwin入れてやるか、中にlinuxのVM入れてそこからやるとかする必要があるっぽい。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3