Перейти к основному содержимому

Настройка Materialize

Плагин, поддерживаемый поставщиком

Некоторая основная функциональность может отличаться. Если вы хотите сообщить об ошибке, запросить функцию или внести свой вклад, вы можете посетить связанный репозиторий и открыть задачу.

  • Поддерживается: Materialize Inc.
  • Авторы: Materialize team
  • Репозиторий на GitHub: MaterializeInc/materialize
  • Пакет на PyPI: dbt-materialize
  • Канал в Slack: #db-materialize
  • Поддерживаемая версия dbt Core: v0.18.1 и новее
  • Поддержка dbt Cloud: Not Supported
  • Минимальная версия платформы данных: v0.28.0

Установка dbt-materialize

Используйте pip для установки адаптера. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с версии 1.8, установка адаптера не устанавливает автоматически dbt-core. Это связано с тем, что адаптеры и версии dbt Core были разделены, и мы больше не хотим перезаписывать существующие установки dbt-core. Используйте следующую команду для установки:

Конфигурация dbt-materialize

Для конфигурации, специфичной для Materialize, пожалуйста, обратитесь к конфигурациям Materialize.

Подключение к Materialize

После того как вы создали аккаунт Materialize, адаптируйте ваш profiles.yml для подключения к вашей инстанции, используя следующую конфигурацию профиля:

~/.dbt/profiles.yml
materialize:
target: dev
outputs:
dev:
type: materialize
host: [host]
port: [port]
user: [user@domain.com]
pass: [password]
dbname: [database]
cluster: [cluster] # по умолчанию 'default'
schema: [dbt schema]
sslmode: require
keepalives_idle: 0 # по умолчанию: 0, что означает системное значение по умолчанию
connect_timeout: 10 # по умолчанию: 10 секунд
retries: 1 # по умолчанию: 1, повтор при ошибке/тайм-ауте при открытии соединений

Конфигурации

cluster: По умолчанию используется кластер для поддержания материализованных представлений или индексов. default кластер предустановлен в каждой среде, но мы рекомендуем создавать выделенные кластеры для изоляции рабочих нагрузок в вашем проекте dbt (например, staging и data_mart).

keepalives_idle: Количество секунд до отправки пинга для поддержания активного соединения с Materialize. Если вы сталкиваетесь с ошибкой SSL SYSCALL error: EOF detected, возможно, вам стоит уменьшить значение keepalives_idle, чтобы предотвратить закрытие соединения с базой данных.

Чтобы протестировать соединение с Materialize, выполните:

dbt debug

Если вывод гласит "All checks passed!", вы готовы к работе! Ознакомьтесь с руководством по dbt и Materialize, чтобы узнать больше и начать работу.

Поддерживаемые функции

Материализации

Поскольку Materialize оптимизирован для преобразований потоковых данных, а ядро dbt построено вокруг пакетной обработки, адаптер dbt-materialize реализует несколько пользовательских типов материализации:

ТипПоддерживается?Подробности
sourceДАСоздает источник.
viewДАСоздает представление.
materializedviewДАСоздает материализованное представление.
tableДАСоздает материализованное представление. (Поддержка реальных таблиц ожидается #5266)
sinkДАСоздает синк.
ephemeralДАВыполняет запросы с использованием CTE.
incrementalНЕТИспользуйте вместо этого materializedview . Материализованные представления всегда будут возвращать актуальные результаты без ручных или настроенных обновлений. Для получения дополнительной информации ознакомьтесь с документацией Materialize.

Индексы

Материализованные представления (materializedview), представления (view) и источники (source) могут иметь список индексов.

Seeds

Запуск dbt seed создаст статическое материализованное из CSV-файла. Вы не сможете добавить или обновить это представление после его создания.

Тесты

Запуск dbt test с опциональным флагом --store-failures или конфигурацией store_failures создаст материализованное представление для каждого настроенного теста, которое может отслеживать неудачи с течением времени.

Ресурсы

0