2014年10月21日火曜日

シリアライズ

これらのシリアライズ、デシリアライズは、どの分野でも使える汎用的な物だけど
hadoop (hive)で使うことに絞って書いてます。

JSON (テキスト)
avro, protocol buffer, thrift (バイナリ)
msgpackも良さげだけど、あまり使われていない感じ。

avroなどバイナリ系の規格は、データサイズを押さえる以外にも
データ型を指定できる点が便利。
特に、hive, javaなどとの利用を考えると。

JSONは便利なようで不便な気がする。
(hadoopの世界では)
5 Reasons to Use Protocol Buffers Instead of JSON For Your Next Service

thriftはRPCの機能でもhadoopで便利に使われているので、もっと調べる。
avroはjsonでスキーマ定義できる(テキストエディターでは見れないけど扱いはJSONと同じ感じか?)。

Hive で利用できるSerDe
JSON SerDe
https://github.com/rcongiu/Hive-JSON-Serde
protocol buffer
https://github.com/twitter/elephant-bird

パフォーマンス比較
https://gist.github.com/joshsz/11299196

0 件のコメント:

コメントを投稿