Skip to content

Установка

Сперва необходимо выполнить установку Datapulse, а также записать необходимые для конструктора DataVault параметры.

Установка пакета automatedv

Пакет automatedv - набор макросов для работы с dbt и разработки DataVault. Мы внесли в него перечень доработок и используем в Datapulse. Вам должен был быть передан файл с файлами пакета.

Чтобы его установить добавьте в файл packages.yml (обычно находится в папке проекта dbt) следующие строки

packages:
  - local: 'path\to\package\folder'
path\to\package\folder - папка с файлами пакета.

После выполните команду в консоли (находясь в консоли в папке проекта dbt)

dbt deps
dbt установит пакет в проект.

Дополнительные настройки

Тип hash

В DataVault hash используется для:

  • генерации суррогатных ключей
  • генерации столбцов hashdiff для определения изменения строк в сателлитах.

Есть две функции в Datapulse, которые рассчитывают hash:

  1. md5
  2. sha256
Плюсы Минусы
MD5 - Быстрее рассчитывается
- Меньше занимает места в памяти
Большой риск коллизии
SHA256 Риск коллизии маловероятен - Медленее расчитывается
- Занимает больше места в памяти

Как видно, ровно противоположные достоинства и недостатки. В Datapulse пользователь сам выбирает, какую функцию использовать.

Для этого в файле dbt_project.yml (обычно находится в папке проекта dbt) введите следующее

vars:
  hash: MD5 # or SHA

⚠️ Важно!

Если вы используете Greenplum установите отдельно расширение pgcrypto.

CREATE EXTENSION pgcrypto;

Только hash join

В некоторых случаях планировщик для SQL хабов, сателлитов и линков может выбирать неоптимальный join, а именно nested-loop, что сильно влияет на скорость выполнения запроса.

Если такой случай произошел, рекомендуется явно указать, какой тип join требуется использовать путем записи в dbt_project.yml

models:
  your_project:
    your_datavault_schema:
      +pre-hook:
        - "set enable_nestloop = off"
        - "set enable_mergejoin = off"
Данная настройка отключает nested loop join и merge join при запуске всех моделей, которые принадлежат схеме, где у вас хранится DataVault.