From 4b24e8847fcc42f73355e2ab707f0ebe643f9c41 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sun, 21 Dec 2025 21:40:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=B8=D0=BD=D0=BA=D1=80=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dwh-modeling/Homework_Customer_Status_DDS_DM.md | 12 ++++++++++-- .../data/customer_status_events_increment.csv | 5 +++++ 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 dwh-modeling/data/customer_status_events_increment.csv 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