data

Schema Diff

Parquet / CSV / TSV / JSONL / NDJSONの2ファイルを比べ、スキーマの追加・削除・型変更などを確認します。

ローカル処理
ファイルについてこのツールで選択したファイルや入力内容は、Browser Kittyのバックエンドへアップロードせずブラウザ内で処理します。
操作デモ 実際の操作の流れを短い動画で確認できます。

このツールについて

Schema Diffは、BeforeとAfterの2ファイルを読み込み、データの中身そのものではなくスキーマがどう変わったかを確認するブラウザツールです。Parquet / CSV / TSV / JSONL / NDJSONに対応し、フィールドの追加・削除、型やNULL可否、Decimal、Nested構造などの差分を一覧で確認できます。

Parquetではファイルに定義されたDeclared Schemaを使い、CSV / TSV / JSONL / NDJSONでは観測データからスキーマを推定します。推定スキーマを明示的なデータ契約と同一視せず、形式をまたぐ比較でも保守的な共通型を使って差分を整理します。選択したファイル、検索、比較結果、レポート生成はブラウザ内で処理し、Browser Kittyへアップロードしません。

こんなときに便利

  • データパイプラインの変更前後で、Parquetの列や型が意図せず変わっていないか確認したい
  • CSV / TSV / JSONLのフィールド構成や推定型が前回ファイルから変わったか調べたい
  • ParquetとCSVなど形式が違うデータでも、意味の近い型へ正規化してスキーマ差分を確認したい
  • スキーマ変更の影響を整理し、MarkdownやJSONのレポートとして保存したい

できること

このツールで利用できる主な機能です。

使い方

  1. 「ツールを開く」を押し、比較元をBefore、比較先をAfterへ追加します。
  2. CSV / TSV / JSONL / NDJSONでは、必要に応じて推定行数を変更します。CSV / TSVではヘッダー設定も調整できます。
  3. 必要ならBefore / Afterそれぞれの先頭10行プレビューを開き、比較対象を確認します。
  4. 「スキーマを比較」を押して、追加・削除・型変更・NULL可否・構造などの差分を確認します。
  5. field path検索や表示フィルターで、確認したい変更だけに絞り込みます。
  6. 必要に応じて結果をコピーするか、Markdown / JSONレポートとして保存します。

対応範囲

  • 入力: Parquet / CSV / TSV / JSONL / NDJSON。対応形式どうしの横断比較も可能です。
  • Parquet: Nested STRUCT / LIST / MAP、Physical / Logical Type、REQUIRED / OPTIONAL / REPEATED、Decimal、Field IDを比較します。
  • CSV / TSV / JSONL / NDJSON: 観測データから推定Schemaを作り、Declared Schemaとは区別して表示します。
  • 結果: field path検索、変更フィルター、Markdownコピー、Markdown / JSON保存に対応します。

制限・注意点

  • 互換性への影響は一般的な目安です。実際の互換性は利用するreader / writer、table format、アプリ側の契約によって変わります。
  • CSV / TSV / JSONL / NDJSONは明示スキーマを持たないため、表示される型やNULLの扱いは観測データと推定設定に依存します。
  • 名前が似ているだけではrenameと判断しません。Parquetでは両側で一意なField IDが一致するときだけrename対応付けに利用します。
  • Parquetの先頭10行プレビューは対応コーデックに制限があります。プレビューできない場合でもSchema比較を継続できることがあります。

よくある質問

比較するファイルはサーバーへアップロードされますか?

いいえ。Before / Afterのファイル読込、スキーマ推定・比較、プレビュー、レポート生成はブラウザ内で行い、Browser Kittyへアップロードしません。

ParquetとCSVのように、違う形式どうしでも比較できますか?

はい。各形式の元の型情報を残しつつ、意味が近い型だけを保守的なNormalized Typeへ対応付けて比較します。意味が同じと確認できない情報は無理に同一視しません。

列名の変更を自動でrenameとして認識できますか?

Parquetでは、両側で一意なField IDが一致する場合にrenameとして対応付けます。名前が似ているという理由だけでrenameとは判断しません。

CSVやJSONLにも本当のSchemaがありますか?

このツールではCSV / TSV / JSONL / NDJSONのSchemaを観測データから推定します。ParquetのDeclared Schemaとは性質が違うため、画面でも区別し、推定が関係する変更は原則として要確認として扱います。

オフライン版・ソースコード

単一HTML版を保存すれば、Parquet / CSV / TSV / JSONL / NDJSONのSchema比較、プレビュー、検索・フィルター、Markdown / JSONレポート生成を実行時の外部通信なしで利用できます。

GitHubでソースを見る