переписана реализация scd2
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
-- (в STG/ODS эта колонка будет жить как _load_ts).
|
||||
-- 3) Постройте из ods.customer_status измерение dds.dim_customer_status в стиле SCD2:
|
||||
-- - одна строка на период действия статуса (valid_from / valid_to);
|
||||
-- - is_current = TRUE только у актуальной строки для клиента;
|
||||
-- - актуальная строка для клиента — та, где valid_to IS NULL;
|
||||
-- - hashdiff можно считать, например, от одного поля status.
|
||||
-- 4) При желании добавьте инкрементальную логику (как в 03_demo_increment.sql).
|
||||
-- 5) Опционально: соберите витрину dm.mart_customer_status_daily
|
||||
@@ -31,7 +31,7 @@
|
||||
-- Примерный план:
|
||||
-- - рассчитать hashdiff по (status);
|
||||
-- - по каждому клиенту отсортировать события по времени;
|
||||
-- - построить для каждой строки valid_from и valid_to (LEAD() OVER ...);
|
||||
-- - построить для каждой строки valid_from и valid_to (LEAD() OVER ...), последняя valid_to = NULL;
|
||||
-- - вставить в dds.dim_customer_status.
|
||||
|
||||
-- 3. DDS: инкрементальная загрузка (по желанию)
|
||||
|
||||
Reference in New Issue
Block a user