MAGELLAN BLOCK使ってみた
ちょっとMAGELLAN BLOCKS(https://www.magellanic-clouds.com/blocks/)をいじってみたので作業メモ。
お題は「郵便番号データを読み込ませてみる」
1. 事前準備
以下から郵便番号csvダウンロード。折角なので全国一括(KEN_ALL.CSV)を取ってきた。
http://www.post.japanpost.jp/zipcode/download.html
そのまま直接BigQueryに読み込ませてみたところ文字化けしたのでUTF-8に変換し、ファイル名をKEN_ALL_UTF8.CSVとした。
csvをBLOCKSに直接アップロードすることはできない様なので、Google Cloud Storageに放り込む。バケット名は仮に"xxxxx"とした。
この場合、GCS URLは gs://xxxxx/KEN_ALL_UTF8.CSV となる。
それからアップロードしたデータを格納するテーブルをGoogle BigQueryに作成する。
ここの形式を、http://www.post.japanpost.jp/zipcode/dl/readme.html そのまま落とし込んだ感じ。
ついでだからちょっと細工して、都道府県名+市区町村名+町域名のフィールドを足したテーブルも作っておいた。
検索で遊ぶ用である。
2. MAGELLAN BLOCKS
フローの開始とGCSからの単一テーブルロードのブロックをつなげて、取り込むファイルと放り込むテーブルを定義する
上の写真からはわからないが、BigQueryで "ZIP"というデータセットを作成し、その下にテーブルを作成しているので
以下の様な定義になる。
GCS URLについては前述した通り。GCSサービスアカウントは各自設定の事。
前述の検索で遊ぶ用テーブルへの投入も定義する。
クエリーは全文が見えないが、見える範囲でお察しな感じなので省略。
あとは右上の保存ボタンを押せば終了。残るは実行するだけ。
保存ボダン重要。押さずに実行したためエラーになってしまって、しばらく悩んだ。
3. ロード結果
BigQueryでデータ確認、csvファイルの行数と同じ123,929件、投入を確認。
それから以下の様に全件検索する様なSQLの処理時間も1秒前後ってところ。
興が乗ったのでそのままGoogle Cloud Endpoints使ってREST API作ったり、それをiOSアプリで呼び出したりして
遊んでいたが、そこは主題と外れるので省略。
以上、非常に簡単でございました。
事前準備やってれば5分くらいで終わるので、営業の人が即興でデモしてあげられるのではなかろうか。
ただベータ版なこともあり、入力不足や記法ミスのままでも実行できてしまうため、現状だと非エンジニアにはキツイかもしれない。
説明会の質疑応答ではMAGELLAN BLOCKデザインパターンの様なものを考えているそうなので、この辺は今後に期待。