Данные для инкремента статусов

This commit is contained in:
2025-12-21 21:40:43 +03:00
parent 20ea175e3a
commit 6fa530dab5
2 changed files with 15 additions and 2 deletions
@@ -217,8 +217,16 @@ ORDER BY customer_bk, valid_from;
Если хочется потренироваться глубже: Если хочется потренироваться глубже:
1. Добавьте в CSV ещё несколько событий смены статуса (например, переход части клиентов из `churned` обратно в `active`). 1. Добавьте ещё несколько событий смены статуса (например, переход части клиентов из `churned` обратно в `active`).
2. Загрузите новые строки только в `stg.customer_status_raw`. - Можно дописать в исходный 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`: 3. Напишите логику инкрементального обновления `dds.dim_customer_status`:
- ориентируйтесь на пример из `03_demo_increment.sql` для `dds.dim_customer`; - ориентируйтесь на пример из `03_demo_increment.sql` для `dds.dim_customer`;
@@ -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
1 customer_id status event_ts _load_id load_ts
2 101 active 2024-11-15 09:00:00 batch_20241115_1000 2024-11-15 10:00:00
3 102 active 2024-05-05 09:30:00 batch_20240505_1000 2024-05-05 10:00:00
4 103 active 2024-03-20 12:00:00 batch_20240320_1300 2024-03-20 13:00:00
5 104 new 2024-06-01 08:00:00 batch_20240601_0900 2024-06-01 09:00:00