- Зачем: - показать расхождения трекера и бэкенда на зерне заказа - сохранить отложенные покупки наблюдаемыми до следующего слепка - Что: - добавлены таблицы, представление и пересборка purchase_vs_orders - сумма покупки нормализована в Decimal на границе ODS - обновлены договоры и указатели на механику пересборки - Проверка: - `make config-test`, `make lint` - `cd generator && make docs lint typecheck test` - `make rebuild-storage`, явные `dds_transform` и `dm_transform` - `make smoke`, `make check-clickhouse`, `make check-services`
45 lines
1.5 KiB
SQL
45 lines
1.5 KiB
SQL
-- DM: публичные договоры стендовых витрин.
|
|
|
|
-- День и категория — зерно выручки. Служебные колонки показывают запуск,
|
|
-- который последним заменил дневную партицию.
|
|
CREATE VIEW IF NOT EXISTS dm.revenue_daily_v ON CLUSTER clickstream_cluster
|
|
AS
|
|
SELECT
|
|
report_date,
|
|
product_category,
|
|
orders,
|
|
units,
|
|
revenue,
|
|
aov,
|
|
_load_id,
|
|
_load_ts
|
|
FROM dm.revenue_daily_dist;
|
|
|
|
-- Непарные стороны остаются NULL. При join_use_nulls = 0 ClickHouse заполнил
|
|
-- бы их нулями и пустыми строками, скрыв отсутствие источника.
|
|
-- Служебные колонки называют запуск, который последним заменил день.
|
|
CREATE VIEW IF NOT EXISTS dm.purchase_vs_orders_v ON CLUSTER clickstream_cluster
|
|
AS
|
|
SELECT
|
|
order_day,
|
|
order_id,
|
|
declared_revenue,
|
|
items_total,
|
|
status,
|
|
mismatch_class,
|
|
_load_id,
|
|
_load_ts
|
|
FROM dm.purchase_vs_orders_dist;
|
|
|
|
-- Полный пересчет пишет новую версию каждого дня. FINAL оставляет текущие
|
|
-- счетчики и прячет повторы запусков от потребителя.
|
|
CREATE VIEW IF NOT EXISTS dm.daily_traffic_v ON CLUSTER clickstream_cluster
|
|
AS
|
|
SELECT
|
|
report_date,
|
|
visitors,
|
|
known_users,
|
|
_load_id,
|
|
_load_ts
|
|
FROM dm.daily_traffic_dist FINAL;
|