Avro
Avro は Hadoop エコシステム由来の行指向バイナリシリアライズ形式であり、スキーマの埋め込みと外部参照の両方をサポートし、ビッグデータの保存や Kafka で使われる。
目的
ビッグデータやストリーム処理向けに、コンパクトでスキーマ対応のシリアライズを提供する。
メカニズム
データのエンコード時、スキーマはヘッダーへの埋め込みか外部のレジストリで管理される。フィールドタグがなく、スキーマがフィールド位置を特定するため、Protobuf よりコンパクトである。スキーマ進化(デフォルト値を伴うフィールドの追加と削除)をサポートする。行指向の保存は OLAP に適する。
ユースケース
- Kafka メッセージのシリアライズ
- Hadoop のファイル形式
- Hive テーブルの保存
- Confluent スキーマレジストリ
例
- 入力
schema + dataOutputCompact binary bytesSchema-aware encoding
よくあるエラー
- Schema mismatch causes decoding errors
- Manage schema versions with a Schema Registry
関連用語
Protocol Buffers
Protocol Buffersは、Googleが設計した言語非依存のバイナリシリアライズ形式である。.proto スキーマ定義を必要とし、JSON/XMLよりコンパクトで型安全である。 用語集
Parquet
Parquetは列指向のバイナリストレージ形式である。Apacheプロジェクトであり、OLAP分析に使われ、列単位の圧縮により効率的なクエリを実現する。 用語集
JSON
JSON(JavaScript Object Notation)は、JavaScript のオブジェクトリテラルに基づく軽量なデータ交換形式である。キー・バリューペアと配列を使う。 用語集