このプロジェクトについて

delta-explain は、Delta Lake の枝刈りを可視化する読み取り専用の診断ツールである。Delta テーブルのトランザクションログ、またはクラウド上の場所を解析し、指定された SQL 風の述語に対して、パーティション枝刈りと列統計が候補ファイル集合をどのように絞り込むかを示す。 シェルから実行でき(例: delta-explain ./my-table --where 「age が 40 より大きい AND country = 'DE'」)、Python からも実行できる(from delta_explain import explain; report = explain(...))。また CI のゲートとして組み込める(--min-pruning 90 --assert-stats)。このツールは Parquet データファイルには一切触れず、ログのみを扱うため、対象範囲を小さく保ち、保証が文書化されている。 インストール方法には Homebrew、PyPI、Cargo、Docker、およびビルド済みバイナリがある。ローカルパスとクラウド URI(S3、Azure、GCS)をサポートし、プロバイダー固有の資格情報処理を行う。レポートはバージョン付き JSON 契約として出力され、自己完結型 HTML ビューアーが枝刈りファネル、ファイルごとの詳細、診断情報を描画できる。 性能はデータ量ではなくログエントリ数に比例してスケールする。20 万ファイルでは約 1~2 秒で実行され、約 300 MB の RAM を使用する。ワイドスキーマや多数のファイルはメモリを線形に増やし、出力サイズは --limit で制限できる。このプロジェクトは CI ゲート用の GitHub Action も兼ね、枝刈り率とファイル数をステップ出力として公開する。 主な機能: - 段階的な枝刈りの可視化(まずパーティション、次に統計) - ファイルごとの詳細表示(保持/除外理由、サイズ、統計範囲) - しきい値ベースの CI ゲート(--min-pruning、--assert-stats) - JSON スキーマ検証済みレポートと HTML ビューアー - クロスプラットフォームバイナリ(Linux、macOS、Windows)と Docker イメージ - 完全なドキュメント、例、設計に関する詳細記事 このツールは delta-kernel-rs 上に構築され、密に読み取り専用で、MIT ライセンスの下でリリースされている。