dbt, або інструмент для побудови даних (data build tool), зараз практично став стандартом промисловості для трансформації, документування та тестування вашої інформації.
У цій статті я хочу пояснити, що насправді це таке – і що воно робить.
Трохи контексту
Перш ніж ми розглянемо, що робить dbt, давайте розглянемо, як може виглядати процес створення централізованої моделі даних у системі зберігання даних без використання dbt.
Побудова централізованої моделі даних означає, що кінцеві користувачі отримують всі висновки з одних і тих же даних, що виявляється набагато кращим, ніж аналог SQL-запити. Але все ще є деякі недоліки:
- Розробники відокремлені від користувачів: люди, які створюють конвеєри обробки даних, сидять окремо від користувачів, які мають бізнес-логіку та створюють для них запити.
- Ручно вказані залежності: вам потрібно повідомляти вашому планувальнику (наприклад, Airflow), в якому порядку запускати ваші SQL-моделі.
- Тестування не є простим: перевірка унікальності вашого первинного ключа або того, що стовпець містить задані значення, є важливим (або забутим) процесом, який в основному виконується вручну.
- Документування не є простим: документація моделі може бути або відсутня, або ведеться в інструменті документації (і часто є застарілою!).
Навіть за всієї цієї інфраструктури — SQL має багато обмежень з точки зору функціональності порівняно з Python.
Що таке dbt?
Компанія dbt Labs має два основні продукти:
- dbt Core: набір відкритих пакетів на мові програмування Python, що запускається через командний рядок, які допомагають вам перетворювати, документувати і тестувати ваші дані.
- dbt Cloud: веб-інтерфейс, який дозволяє як розробляти, так і розгортати конвеєри данних (побудований на основі dbt Core).
Ви можете дізнатися більше на їхньому сайті про різницю. Але в основі обидва побудовані на основі каркасу dbt, про який я піду далі.
Так що ж насправді робить dbt?
- Знижує технічний поріг: будь-хто, хто може писати SQL, може створювати повні конвеєри обробки даних, що означає, що люди з бізнес-контекстом самі будують моделі даних
- Визначає залежності: якщо SQL-модель B опитує SQL-модель A, dbt знає, що потрібно спочатку виконати A ->B. Звучить просто, але це велика перевага!
- Робить документування та тестування простими: SQL-моделі супроводжуються yml-файлами, що дозволяє документувати та тестувати моделі та стовпці на рівні моделі
- Вносить функціональність, схожу на Python, до SQL: dbt відкриває можливість використання змінних, циклів, перевикористовуваних функцій (макросів) та багатьох інших речей, які не знайдеш у звичайному SQL.
Новачок у dbt або хтось, хто бажає вивчити високорівневі концепції? Мій курс з dbt тепер доступний на Udemy (посилання), і він охоплює все від основ до складних концепцій dbt, включаючи створення повного проекту з нуля, 7 годин відеоматеріалів та 50 завантажуваних навчальних матеріалів!
🚀Долучайтесь до нашої спільноти Telegram:
🚀Долучайтесь до нашої спільноти FaceBook: