これらのシリアライズ、デシリアライズは、どの分野でも使える汎用的な物だけど
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 件のコメント:
コメントを投稿