Avro Compact Encoding
Avro コンパクトエンコーディングは Avro のバイナリシリアライズ方式であり、型タグとコンパクトな値表現を用いて、JSON Avro よりはるかに小さくなる。
目的
Kafka や Hadoop で効率的な Avro シリアライズを提供する。スキーマはレコードごとに送らず、事前に登録しておく。
メカニズム
レコードはフィールド順にエンコードされる。int/long は zigzag と varint を組み合わせ、string は varint による長さと UTF-8、bytes は varint による長さと生バイト列、union は union のインデックスと値、配列やマップはブロック数と要素で表す。
ユースケース
- Kafka Avro メッセージ
- Hadoop のデータファイル
- 効率的な RPC