NDJSON ファイルとは?
NDJSON — 改行区切りJSON
どんな形式か
NDJSONでは、各行に完結したJSONオブジェクトを1つずつ記述し、全体を囲む角括弧も行間のカンマも使用しません。各行はそれぞれ独立して読み取ることができます。
この方式の利点は大容量データを扱う際に顕著に表れます。通常のJSONファイルは、利用可能な状態にするために全体を一度メモリに読み込む必要があります。一方NDJSONは1行ずつ読み込めるため、メモリが8GBしかないマシンでも50GBのファイルを処理できます。
歴史と由来
この形式は、データ量の増大によりファイル全体を読み込む方式が現実的でなくなるにつれ、ストリーム処理の普及とともに自然に定着していきました。
現在では、アプリケーションのログや大規模データベースのエクスポートにおける事実上の標準形式となっています。
便利な理由
ファイル全体の容量に関係なく、1行ずつストリーム処理できます。
一部の行が破損していても、残りのデータには影響しません。通常のJSONでは、カンマの位置を一つ間違えただけでファイル全体が読み込み不能になるのとは対照的です。
限界と欠点
厳密な意味では正規のJSONではないため、通常のJSONパーサーでは読み込めません。
公式な仕様が存在しないため、実装によって細部に差異が生じることがあります。
使い方のヒント
ログデータ、大規模なエクスポート、データストリームを扱う場合にはNDJSONが適しています。
表計算ソフトで利用する場合は、構造がフラットであることを条件にCSV形式へ変換してください。
フランスにある安全なサーバーで、NDJSON を数秒で変換できます。
NDJSON を変換する