20151215 embulk 『新人がembulk mbaasプラグインを開発した話』

30
Embulk mBaaS

Upload: yuya-niimi

Post on 14-Apr-2017

1.075 views

Category:

Data & Analytics


2 download

TRANSCRIPT

Page 1: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

Embulk mBaaS

Page 2: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

Embulk mBaaS

Page 3: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

• ニフティ株式会社 • 2015年4月 新卒入社 • 研修中 • 研修中 • 研修中

Page 4: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』
Page 5: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』
Page 6: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

• EmbulkのmBaaSプラグインを書きました!

Page 7: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

mBaaS

Page 8: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

mBaaS

REST API

Page 9: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

mBaaS

Page 10: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

• アプリで利用するデータを保存できるクラウドストレージ (mongoDB, ニフティクラウド上で稼動)

• データのインポート機能の提供はなし(2015/12/15現在)

• エクスポートは一括・JSON形式でのみ提供

• EmbulkのmBaaS用Importプラグインを開発し データのインポートをできるようにしよう!

mBaaS

Page 11: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

OJT

弊社エンジニア (OJTトレーナー)

Page 12: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

弊社開発リーダー

Page 13: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

OJT 6

Embulk mBaaS Input / Output

Page 14: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

OJT 6

Embulk mBaaS Input / Output

Page 15: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

大丈夫だよ!絶対、大丈夫だよっ!

Page 16: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

•  (´-`).。o0(Embulkとは…)

古橋さんによるリリース時の資料を読む →理解した気がしてくる

1: Embulk

Page 17: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

•  (´-`).。o0(次はコードを読もう!)

2: Embulk

→よくわからない

•  embulk-core •  embulk-cli •  embulk-output-s3

•  embulk-input-gcs

•  embulk-output-gcs

•  embulk-output-hdfs

•  embulk-output-salesforce

Page 18: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

• データストアの操作は提供されているAPI・SDKを用いて実行可能.

3:

Page 19: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

• API• APIリクエストにはアプリケーションキー等を含む 署名用文字列を元に生成したシグネチャの付加が必須。

• ヘッダの付加→メソッドの設定→キーの昇順並び替え→ クライアントキーを秘密鍵としてエンコード→ さらにエンコード…

• つらさ

3:

Page 20: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

Outputembulk-core OutputPlugin.java

• ここにたどり着くのが遅かったのが今回の敗因。

5: Output

Page 21: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

弊社エンジニア (OJTトレーナー)

˘ ˘

Page 22: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

弊社開発リーダー

Page 23: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

• Embulk-output-mbaas https://github.com/NIFTYCloud-mbaas/embulk-output-ncmb

• よろしくお願いします!!!!!

Page 24: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

: Output

* 100MB (0.3M [rows] * 16 [columns]) * まさかの20時間

  * 検証不足

- OutputではなくInput (単一csvファイル)の問題? - データの分割と冪等性の確保を両方行うのが大変

Page 25: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

ToDo: Input

問題:mbaasが返してくるJSONをページスライスできない 原因: JSON->Javaオブジェクト変換用のクラスの宣言ができない

クラスの要素はymlファイルの中身で決定されるため起動時まで わからない。

Page 26: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

: mBaaS JSON

Page 27: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

ToDo:

Blog by Sadayuki Furuhashi: http://frsyuki.hatenablog.com/entry/2015/02/16/080150

Page 28: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

• 会社の宣伝をします。

大事なことなので2回

Page 29: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

• 

We are hiring!!

Page 30: 20151215 embulk  『新人がEmbulk mBaaSプラグインを開発した話』

•