Линия не обрывается на витрине
В dbt мы давно умеем хорошо рассказывать, как устроены модели: откуда таблица, какие колонки, кто на кого ссылается. Слабее всегда была обратная сторона — кто эти модели реально читает снаружи. Дашборды, отчёты, скрипты, аб-тесты. Заполнить зависимости один раз ещё можно, но постоянно обновлять - утопичненько. В итоге появляются экспожуры Шредингера - вроде есть, а актуальны ли...
Сразу же на ум для решения приходит какая-нибудь openmetadata, но стоит ли она того?..
Ещё в 2023 году на одном из митапов Кирилл рассказывал о своем творении - сервисе парсинга экспожур, и мы задумывались выложить его в open source. И... лучше поздно, чем никогда.
dbt-esync: консольная утилитка для регулярного запуска. За один запуск забирает несколько источников, сопоставляет таблицы с актуальным manifest.json и записывает в репозиторий dbt зависимости «внешних потребителей» (exposures) — одним коммитом, при желании с запросом на МР. Для запуска через Airflow хватает дефолтного конфига: всё нужное задаётся переменными окружения — так мы и крутим его в KubernetesOperator.
Код · образ PS Наш оригинал был на python, эта версия на golang. PPS Поддержка git репок, mysql/hive, redash/superset/qlik sense enterprise, growthbook