Pentaho DI
October 22

Реализация Data Vault в Pentaho DI

Это даже не заметка, просто ссылка на главу в древней книге "Pentaho Kettle Solutions" и мои комментарии, как можно этим воспользоваться. Приложена ссылка на sql-код для создания таблиц хабов, линков и сателлитов и файлы джобов и трансформаций Pentaho DI.

Итак, глава 19 Data Vault Management.

Источником является учебная БД Sakila, MySQL. В книге она описывается, но можно и тут про неё прочитать https://dev.mysql.com/doc/sakila/en/.

Почему-то репозиторий с файлами книги у меня на раз не нагуглился, поэтому выложил примеры к 19 главе на свой гитхаб. Все файлы джобов и трансформаций можно взять здесь

Там же находится файл sakila_data_vault_schema.sql с DDL формирующим таблицы хабов, линков и сателлитов.

Основная проблема, на которую я наткнулся при воспроизведении ETL из книги, это незаполненный степ Filter rows в трансформациях по сбору сателлитов (на картинке ниже)

Трансформация по сбору сателлита sat_staff.ktr
Баг со степом.

Я в паре трансформаций этот баг исправил, и сбор этих сателлитов завёлся.

Степ с заполненным условием

И, к сожалению, авторы не приложили sql-код для эмуляции изменений данных на источнике. Т.е. доступно только первичное наполнение данных, без инкремента. Так что для проверки корректности ведения SCD2 это тоже нужно будет делать самому.

После построения хоронилища по Data Vault предлагается натянуть на него star schema. Джобы и трансформации прилагаются, но их работоспособность и корректность я уже не проверял.

Файлы репозитория

И, кстати, странно, что не был создан финальный джоб, запускающий наполнение Data Vault целиком. Что-то вроде такого

Вариант финального джоба, которого в файлах книги нет.

В общем и целом для "потрогать" data vault приемлемый вариант.