Лучшие практики материализаций
Что действительно происходит, когда вы вводите dbt build
? Вопреки распространенному мнению, команда микроскопических эльфов данных не строит ваши данные строка за строкой, хотя правда кажется не менее волшебной. Это руководство исследует реальный ответ на этот вопрос, с вводным взглядом на объекты, которые создаются в вашем хранилище, почему они важны и как dbt знает, что строить.
Конфигурации, которые указывают dbt, как строить эти объекты, называются материализациями, и знание того, как их использовать, является важным навыком для эффективной аналитической инженерии. Когда вы завершите это руководство, вы сможете использовать три основные материализации, которые охватывают большинство распространенных ситуаций аналитической инженерии.
😌 Материализации абстрагируют DDL и DML. Обычно в сыром SQL- или python-основанном преобразовании данных вам нужно писать конкретные императивные инструкции о том, как строить или изменять ваши объекты данных. Материализации dbt делают это декларативным: мы указываем dbt, как мы хотим, чтобы вещи были построены, и он сам определяет, как это сделать, учитывая уникальные условия и качества нашего хранилища.
Цели обучения
К концу этого руководства вы должны иметь четкое понимание:
- 🛠️ что такое материализации
- 👨👨👧 как три основные материализации, поставляемые с dbt — table, view и incremental — различаются
- 🗺️ когда и где использовать конкретные материализации для оптимизации ваших разработок и производственных сборок
- ⚙️ как настраивать материализации на различных уровнях, от отдельной модели до целой папки
Предварительные требования
- 📒 Вам нужно будет пройти руководство по быстрому старту и иметь проект, чтобы проработать эти концепции.
- 🏃🏻♀️ Концепции, такие как запуски dbt, операторы
ref()
и модели, должны быть вам знакомы. - 🔧 [Опционально] Чтение Как мы структурируем наши проекты dbt будет полезно для последнего раздела этого руководства, когда мы рассмотрим лучшие практики для материализаций, используя подход dbt к этапам моделей и витрин.
Основной принцип
Мы будем подробно исследовать это на протяжении всего руководства, но основное правило — начинайте с самого простого. Мы будем следовать многоуровневому подходу, переходя на следующий уровень только тогда, когда это необходимо.
- 🔍 Начните с представления (view). Когда представление становится слишком длинным для запроса конечными пользователями,
- ⚒️ Сделайте его таблицей (table). Когда таблица становится слишком длинной для построения в ваших dbt Jobs,
- 📚 Стройте его инкрементально (incremental). То есть добавляйте данные по частям по мере их поступления.