Format Atlas

FORMAT COMPARISON

Avro vs JSON

Apache Avroはスキーマに基づくデータ直列化システムで、compactなバイナリ符号化とスキーマを含むObject Container Fileを提供します。JSONは人が読めるテキスト交換形式で、Avro自体にもJSON符号化があります。

最終確認: 2026-09-27

AvroとJSON、どちらを選ぶ?

スキーマに沿ったレコードをコンパクトに保存・交換し、書き手と読み手のスキーマ差を解決するならAvroを検討します。汎用的なテキスト連携や人による確認を優先するならJSONが扱いやすい選択です。インターフェースが期待するAvro符号化またはJSON仕様とスキーマ運用を確認してください。

Avro向き

スキーマ付きレコードデータのシリアライズと交換

  • イベントやレコードをスキーマとともに扱うデータ連携

JSON向き

Web API・設定ファイル・データ交換

  • 構造化データの受け渡し

基本情報を比較

AvroとJSONの主な違いを確認できます。

項目AvroJSON
拡張子.avro.json
MIME Typeapplication/avroapplication/json
主な用途スキーマ付きレコードデータのシリアライズと交換Web API・設定ファイル・データ交換
圧縮schema_serialization該当なし
開く方法Avro対応ツールでスキーマ、フィールド、型、レコード内容を確認します。テキストエディタ、IDE、JSON対応ビューアで開けます。
書き出し・変換JSONやParquetへ変換する場合は、フィールド名、型、null、論理型、スキーマ互換性を確認します。アプリケーションや変換ツールでCSVなどへ変換できます。

用途別の選び方

作りたいものや使う場面から選べます。

イベントやレコードをスキーマとともに扱うデータ連携

スキーマ付きレコードデータのシリアライズと交換

Avro向き

構造化データの受け渡し

Web API・設定ファイル・データ交換

JSON向き

確認ポイント 1

Avroバイナリ符号化はスキーマに従って値をエンコードし、Object Container Fileにはデータブロックとスキーマ等のメタデータが入ります。JSONはRFC 8259のテキスト構文です。Avroには別途JSON符号化もあるため、AvroとJSONを単純にバイナリ対テキストと同一視しないでください。

使い分け

確認ポイント 2

Avroの読み取りにはwriter schemaが必要で、reader schemaとの解決をサポートします。JSON構文はデータのスキーマを必須にしないため、アプリ側で別途スキーマや検証規則を定める場合があります。

使い分け

選ぶ理由を詳しく

  • JSONは目視・汎用ツールで扱いやすい一方、数値・null・配列・オブジェクトなどの表現はAvroのunion、bytes、timestamp等の型と一対一とは限りません。変換時は型、既定値、欠損、数値精度、文字コード、スキーマ互換性を検証してください。

詳しく見る

参考資料・仕様