Що насправді робить dbt?

dbt, або інструмент для побудови даних (data build tool), зараз практично став стандартом промисловості для трансформації, документування та тестування вашої інформації.

У цій статті я хочу пояснити, що насправді це таке – і що воно робить.


Трохи контексту

Перш ніж ми розглянемо, що робить dbt, давайте розглянемо, як може виглядати процес створення централізованої моделі даних у системі зберігання даних без використання dbt.

Побудова централізованої моделі даних означає, що кінцеві користувачі отримують всі висновки з одних і тих же даних, що виявляється набагато кращим, ніж аналог SQL-запити. Але все ще є деякі недоліки:

  • Розробники відокремлені від користувачів: люди, які створюють конвеєри обробки даних, сидять окремо від користувачів, які мають бізнес-логіку та створюють для них запити.
  • Ручно вказані залежності: вам потрібно повідомляти вашому планувальнику (наприклад, Airflow), в якому порядку запускати ваші SQL-моделі.
  • Тестування не є простим: перевірка унікальності вашого первинного ключа або того, що стовпець містить задані значення, є важливим (або забутим) процесом, який в основному виконується вручну.
  • Документування не є простим: документація моделі може бути або відсутня, або ведеться в інструменті документації (і часто є застарілою!).

Навіть за всієї цієї інфраструктури — SQL має багато обмежень з точки зору функціональності порівняно з Python.


Що таке dbt?

Компанія dbt Labs має два основні продукти:

  1. dbt Core: набір відкритих пакетів на мові програмування Python, що запускається через командний рядок, які допомагають вам перетворювати, документувати і тестувати ваші дані.
  2. dbt Cloud: веб-інтерфейс, який дозволяє як розробляти, так і розгортати конвеєри данних (побудований на основі dbt Core).

Ви можете дізнатися більше на їхньому сайті про різницю. Але в основі обидва побудовані на основі каркасу dbt, про який я піду далі.


Так що ж насправді робить dbt?

  • Знижує технічний поріг: будь-хто, хто може писати SQL, може створювати повні конвеєри обробки даних, що означає, що люди з бізнес-контекстом самі будують моделі даних
  • Визначає залежності: якщо SQL-модель B опитує SQL-модель A, dbt знає, що потрібно спочатку виконати A ->B. Звучить просто, але це велика перевага!
  • Робить документування та тестування простими: SQL-моделі супроводжуються yml-файлами, що дозволяє документувати та тестувати моделі та стовпці на рівні моделі
Приклад yml-файлу, який би відповідав dim_transactions.sql
  • Вносить функціональність, схожу на Python, до SQL: dbt відкриває можливість використання змінних, циклів, перевикористовуваних функцій (макросів) та багатьох інших речей, які не знайдеш у звичайному SQL.
Приклад функціональності, схожої на Python

Новачок у dbt або хтось, хто бажає вивчити високорівневі концепції? Мій курс з dbt тепер доступний на Udemy (посилання), і він охоплює все від основ до складних концепцій dbt, включаючи створення повного проекту з нуля, 7 годин відеоматеріалів та 50 завантажуваних навчальних матеріалів!

ОРИГІНАЛ СТАТТІ:What Does dbt Actually Do?

АВТОР СТАТІ:Jack C

🚀Долучайтесь до нашої спільноти Telegram:

🚀Долучайтесь до нашої спільноти FaceBook:

Leave a Reply

Your email address will not be published. Required fields are marked *