ngtokuの日記

主に雑記帳です。SNSではngtokuのID取れなかったんで、別のIDでやってます。

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デザインパターンの様なものを考えているそうなので、この辺は今後に期待。