Установка
Сперва необходимо выполнить установку Datapulse, а также записать необходимые для конструктора DataVault параметры.
Установка пакета automatedv
Пакет automatedv - набор макросов для работы с dbt и разработки DataVault. Мы внесли в него перечень доработок и используем в Datapulse. Вам должен был быть передан файл с файлами пакета.
Чтобы его установить добавьте в файл packages.yml
(обычно находится в папке проекта dbt) следующие строки
packages:
- local: 'path\to\package\folder'
path\to\package\folder
- папка с файлами пакета.
После выполните команду в консоли (находясь в консоли в папке проекта dbt)
dbt deps
Дополнительные настройки
Тип hash
В DataVault hash используется для:
- генерации суррогатных ключей
- генерации столбцов hashdiff для определения изменения строк в сателлитах.
Есть две функции в Datapulse, которые рассчитывают hash:
- md5
- 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.