dbt Advanced Patterns: Англійська для аналітичних інженерів

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

Інженери-аналітики, що працюють з dbt, проводять більшу частину свого дня обговорюючи перетворення даних, стратегії планування і шаблони повторного використання коду. Незалежно від того, переглядаєте ви запит на витягання від колеги або пояснюєте свою інкрементну логіку під час виступу, вам потрібна точна англійська мова, щоб ясно спілкуватися. Цей посібник містить словниковий запас і фрази, які досвідчені користувачі dbt використовують щодня.

Ключовий словник

** Інкрементальна модель ** — модель dbt, яка обробляє тільки нові або змінені рядки, а не перебудовує всю таблицю при кожному запуску, зменшуючи обчислювальні витрати і час виконання. * “Ми переключили модель замовлень на інкрементальну, оскільки повне оновлення займало сорок хвилин щоночі.” *

Snapshot — об’єкт dbt, який відстежує повільно змінювані дані розмірів, записуючи історію рядків протягом часу за допомогою налаштованої стратегії, наприклад, timestamp або check. “Снімок клієнта дозволяє нам побачити, яка адреса була в файлі на час кожної транзакції.”

** Макро ** — блок багаторазового використання логіки SQL з шаблонами Jinja, визначений у каталогу macros/ і викликаний всередині моделей або інших макросів. * “Я написав макрос для створення датового хребта, щоб кожна модель могла послідовно посилатися на нього.” *

** ref function** — вбудована функція dbt, що використовується для посилання на іншу модель за назвою, яка автоматично створює графік залежностей і обробляє розв’ язання схеми, специфічної для середовища. “Завжди використовуйте ref замість жорсткого кодування назви схеми, інакше графік залежностей буде пошкоджено.”

** source function** — вбудована функція dbt, яку використовують для посилання на таблицю сирого коду, оголошену у файлі sources.yml, що дозволяє перевірку свіжості і відстеження послідовності. * “Конвейєр записує до зони приземлення, і ми оголошуємо цю таблицю як source, щоб dbt міг стежити за її свіжістю.” *

** Exposure ** — об’ єкт dbt, який документує нижні споживачі ваших моделей, такі як панель приладів, модель ML або звіт, роблячи послідовність даних видимою за межами складу. * “Ми додали експозицію для панелі фінансів, щоб команда знала, які моделі її живлять.” *

Package — збірник моделей dbt, макросів і тестів, що можуть бути використані повторно, опублікований в dbt Hub або репозиторії Git і встановлений за допомогою packages.yml. “Ми встановили dbt-utils з Hub, щоб отримати доступ до макроса surrogate_key.”

Metric — багаторазове використання, версія-контрольоване бізнес-визначення, оголошене в dbt, яке стандартизує, як KPI обчислюється на всіх нижніх споживачах. *“Визначення прибутку як метрики означає, що кожна панель управління запитує ту ж саму логіку, а не кожен аналітик пише свій власний.” *

Корисні фрази

«Ми повинні вирішити щодо інкрементальної стратегії — чи ми використовуємо unique_key з delete+insert, чи тільки додавання?»

«Стратегія знімок встановлена на timestamp, тому dbt використовує стовпчик updated_at для виявлення змін.»

«Я перетворив цю логіку в макрос, щоб три моделі, які потребували її, могли викликати її без дублювання коду»

“Чи можете ви додати запис про експозицію для панелі KPI на рівні дошки? Граф лінії неповний без нього»

«Версія пакунка в packages.yml прикріплена до конкретного затвердження, тому ми не отримаємо несподіваних змін.»

Поширені помилки

Плутанина ref з source. Нерідні носії іноді використовують ці терміни взаємозамінно, але вони служать різним цілям. Використовуйте source лише для необроблених таблиць, які надходять ззовні dbt — конвеєрів поглинання, подачі даних або операційних баз даних. Використовуйте ref для кожної моделі, яку dbt сам побудує. Поєднання їх руйнує контроль свіжості і графік попередників.

** Використання « запустити знімок », коли ви маєте на увазі « виконати повне оновлення ». ** У dbt запуск знімку і запуск повного оновлення є різними операціями. Знімок додає історію; повне оновлення відкидає і перебудовує таблицю призначення. Колеги можуть неправильно зрозуміти ваші наміри, якщо ви використовуватимете ці фрази нерозбірливо. Щоб бути точним, скажіть « запустити завдання знімка » або « викликати повне оновлення інкрементальної моделі ».

** Неправильне вживання слова « макро » у значенні « модель ». ** Деякі інженери, які не знають dbt, використовують слово « макро » для опису будь- якого об’ єкта SQL, який можна використовувати знову. У dbt, модель є SELECT інструкцією, яка матеріалізується як таблиця або перегляд, в той час як макрос є функцією Jinja, яка генерує SQL. Ця відмінність має значення при обговоренні тестування, документації і планування.

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

Навигація по нумерації: практичний підхід до лексики dbt

Коли ви занурюєтесь у більш складні шаблони dbt - особливо ті, що включають інкрементальні моделі, знімки і використання макро - тонкощі англійського словника стають все більш критичним. Це не просто про розуміння технічних термінів; це про чітке вираження ваших ідей таким чином, що резонує з іншими розробниками, аналітиками і зацікавленими сторонами. Неправильне спілкування може призвести до марних зусиль, неправильних інтерпретацій і, врешті-решт, неефективних конвеєрів даних. У цьому розділі описано практичні стратегії підвищення рівня ваших навичок англійської мови у екосистемі dbt, з акцентом на ясність і точність.

Однією з поширених перешкод є перехід від простого визначення концепцій - що часто робиться в технічній документації - і фактично пояснення їх. Наприклад, замість того, щоб сказати « Ми використовуємо інкрементну модель для оптимізації швидкодії запиту », ефективнішим підходом буде: « Щоб підвищити швидкість запиту, ми реалізували інкрементну модель, яка оновлює лише рядки, змінені з часу останньої повної синхронізації, значно зменшуючи навантаження на наші джерела даних ». Різниця полягає у тому, що концепція розглядається у її ширшому контексті і впливі. Аналогічно, при обговоренні макросів - які можуть швидко стати складними - важливо чітко описати їх ціль, вхідні дані і очікувані результати. Короткий опис, наприклад, « Цей макроагрегат об’ єднує дані замовлення з декількох таблиць джерел, перетворюючи їх у стандартизований формат, який підходить для створення панелей керування », буде набагато корисним, ніж розгорнуте визначення його внутрішньої логіки.

Іншою ключовою областю є оволодіння фразуванням, пов’ язаним з співпрацею і управлінням змінами в рамках проекту dbt. Використання таких термінів, як «рефакторизація», «розширення» або «оптимізація» не є просто технічним жаргоном; це сигнал того, що ви розглядаєте ширші наслідки ваших змін. При наданні зворотнього зв’язку на запит pull, конструктивне оформлення пропозицій - а не висловлювання критики - є ключовим для підтримки позитивних відносин і забезпечення успішної інтеграції. Замість того, щоб сказати «Цей макрос погано написаний», кращим підходом було б: «Я думаю, ми могли б поліпшити читабельність цього макроса, додавши більше коментарів, що пояснюють перетворення даних»

Нарешті, точність мови безпосередньо впливає на ясність документації і комунікації. Неоднозначні терміни, такі як «очистити» або «перетворити», можуть призвести до непорозумінь. Часто краще використовувати більш конкретні фрази, такі як «фільтрувати незначні записи на основі визначених критеріїв», а не просто стверджувати, що ми «очищаємо дані»

Ось приклад використання dbt run з коментарем:

dbt run --select <model_name> --vars={'my_param': 'some_value'} --explain
# This command runs the specified model with provided variables and includes detailed execution logs for debugging. 
# Useful for understanding query performance and identifying potential bottlenecks.  Reviewing these logs can quickly pinpoint issues related to data types or relationships.

Поширені запитання

Про що ця стаття "dbt Advanced Patterns: Англійська для аналітичних інженерів"?

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

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "dbt Advanced Patterns: Англійська для аналітичних інженерів"?

Приблизно 9 min.