Apache Avroとは?
あぱっちあぶろ
Apache Avroとは、Hadoopエコシステムで広く使われるデータシリアライズフレームワークで、コンパクトなバイナリ形式と柔軟なスキーマ管理が特徴です。
Apache Avroは、Apache Software Foundationが開発するオープンソースのデータシリアライズシステムです。シリアライズとは、プログラム内のデータ構造をネットワーク転送やストレージ保存に適したバイト列へ変換する処理のことです。
Avroの最大の特徴は、データのスキーマ(型や構造の定義)をJSON形式で記述し、データ本体と一緒に保持する点にあります。これにより、スキーマが変化しても後方互換・前方互換を保ちながらデータを読み書きできます。転送時はスキーマなしのコンパクトなバイナリ形式となるため、転送量を大幅に削減できます。
主な特徴をまとめると以下のとおりです。
- スキーマをJSONで定義し、データと同梱できる
- バイナリ形式による高い圧縮効率と処理速度
- スキーマ進化(フィールドの追加・削除)に対応
- 多言語対応(Java、Python、C、C++、C#、Rubyなど)
- Apache Kafka・Hadoop・Sparkなどと親和性が高い
特にApache Kafkaとの組み合わせが広まっており、Schema Registryを用いてスキーマを一元管理しながら大量のイベントデータを効率よく扱うアーキテクチャが普及しています。プロトコルバッファ(Protocol Buffers)やApache Thriftと並ぶデータシリアライズ標準の一つとして、データエンジニアリングの現場で幅広く採用されています。
使い方・例文
KafkaでユーザーのクリックイベントをAvroフォーマットで送受信し、HadoopのHDFSにそのままAvroファイルとして蓄積してHiveで分析する、といった場面で登場します。
この用語をシェア
最終更新: