diff --git a/dwh-modeling/Homework_Customer_Status_DDS_DM.md b/dwh-modeling/Homework_Customer_Status_DDS_DM.md index dff1dfc..55b6c2f 100644 --- a/dwh-modeling/Homework_Customer_Status_DDS_DM.md +++ b/dwh-modeling/Homework_Customer_Status_DDS_DM.md @@ -217,8 +217,16 @@ ORDER BY customer_bk, valid_from; Если хочется потренироваться глубже: -1. Добавьте в CSV ещё несколько событий смены статуса (например, переход части клиентов из `churned` обратно в `active`). -2. Загрузите новые строки только в `stg.customer_status_raw`. +1. Добавьте ещё несколько событий смены статуса (например, переход части клиентов из `churned` обратно в `active`). + - Можно дописать в исходный CSV самостоятельно. + - Либо взять готовую порцию “для инкремента” из файла `dwh-modeling/data/customer_status_events_increment.csv`. +2. Загрузите **только новые строки** в `stg.customer_status_raw` (не делайте `TRUNCATE`): + +```bash +cat dwh-modeling/data/customer_status_events_increment.csv | ./postgres-bookings/psql_sh -c \ + "\\copy stg.customer_status_raw(customer_id,status,event_ts,_load_id,_load_ts) FROM STDIN WITH (FORMAT csv, HEADER true)" +``` + 3. Напишите логику инкрементального обновления `dds.dim_customer_status`: - ориентируйтесь на пример из `03_demo_increment.sql` для `dds.dim_customer`; diff --git a/dwh-modeling/data/customer_status_events_increment.csv b/dwh-modeling/data/customer_status_events_increment.csv new file mode 100644 index 0000000..83d32d6 --- /dev/null +++ b/dwh-modeling/data/customer_status_events_increment.csv @@ -0,0 +1,5 @@ +customer_id,status,event_ts,_load_id,load_ts +101,active,2024-11-15 09:00:00,batch_20241115_1000,2024-11-15 10:00:00 +102,active,2024-05-05 09:30:00,batch_20240505_1000,2024-05-05 10:00:00 +103,active,2024-03-20 12:00:00,batch_20240320_1300,2024-03-20 13:00:00 +104,new,2024-06-01 08:00:00,batch_20240601_0900,2024-06-01 09:00:00