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

Конфигурации материализации

Оптимизация производительности

Кластеры

Включите конфигурацию кластеров.

Кластер по умолчанию, который используется для поддержки материализованных представлений или индексов, может быть настроен в вашем профиле с использованием параметра подключения cluster. Чтобы переопределить кластер, используемый для конкретных моделей (или групп моделей), используйте параметр конфигурации cluster.

my_view_cluster.sql
{{ config(materialized='materializedview', cluster='not_default') }}

select ...
dbt_project.yml
models:
project_name:
+materialized: materializedview
+cluster: not_default

Инкрементальные модели: Материализованные представления

Materialize, в своей основе, является базой данных реального времени, которая обеспечивает инкрементальные обновления представлений без ущерба для задержки или корректности. Используйте материализованные представления для вычисления и инкрементального обновления результатов вашего запроса.

Индексы

Включите дополнительную конфигурацию для индексов.

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

Материализованные представления (materializedview), представления (view) и источники (source) могут иметь список определенных индексов. Каждый индекс Materialize может иметь следующие компоненты:

  • columns (список, обязательный): один или несколько столбцов, по которым определяется индекс. Чтобы создать индекс, использующий все столбцы, используйте компонент default.
  • name (строка, необязательный): имя для индекса. Если не указано, Materialize использует имя материализации и предоставленные имена столбцов.
  • cluster (строка, необязательный): кластер, который будет использоваться для создания индекса. Если не указано, индексы будут созданы в кластере, используемом для создания материализации.
  • default (логический, необязательный): По умолчанию: False. Если установлено в True, создает индекс по умолчанию, использующий все столбцы.
my_view_index.sql
{{ config(materialized='view',
indexes=[{'columns': ['col_a'], 'cluster': 'cluster_a'}]) }}
indexes=[{'columns': ['symbol']}]) }}

select ...
my_view_default_index.sql
{{ config(materialized='view',
indexes=[{'default': True}]) }}

select ...

Тесты

Если вы установите необязательный флаг --store-failures или store_failures config, dbt создаст материализованное представление для каждого настроенного теста, которое может отслеживать сбои с течением времени. По умолчанию, тестовые представления создаются в схеме с суффиксом dbt_test__audit. Чтобы указать пользовательский суффикс, используйте конфигурацию schema.

dbt_project.yml
tests:
project_name:
+store_failures: true
+schema: test
0