Об этом проекте
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-просмотрщик может отображать воронки отсечения, детали по каждому файлу и диагностические данные.
Производительность инструмента зависит от количества записей в журнале, а не от объёма данных. На 200 тыс. файлов он работает примерно за 1–2 секунды и использует около 300 МБ оперативной памяти. Широкие схемы или большое количество файлов линейно увеличивают потребление памяти, а размер вывода можно ограничить с помощью параметра `--limit`. Проект также доступен в виде GitHub Action для гейтов CI, выводит процент отсечения и количество файлов как выходные данные шага.
Ключевые возможности включают:
* Пошаговая визуализация отсечения (сначала по разделам, затем по статистикам)
* Подробные списки по каждому файлу (причины оставления/пропуска, размеры, диапазоны статистик)
* Гейты для CI на основе порогов (`--min-pruning`, `--assert-stats`)
* JSON-отчёты с проверкой по схеме и HTML-просмотрщик
* Кроссплатформенные бинарные файлы (Linux, macOS, Windows) и образы Docker
* Полная документация, примеры и подробная статья о принципах работы инструмента.
Инструмент построен на основе delta-kernel-rs, работает строго в режиме только для чтения и распространяется под лицензией MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.