Карта идентичностей: dds.identity_map и полный пересчёт #153
Notifications
Due Date
No due date set.
Blocks
Depends on
#154 Витрины стенда: даг dm_transform, revenue_daily и daily_traffic
ddmitry/clickstream-data-platform
#150 Контракт события: представление dds.event_v
ddmitry/clickstream-data-platform
#151 Модель заказа в DDS: dds.order и пересборка окна
ddmitry/clickstream-data-platform
Reference: ddmitry/clickstream-data-platform#153
Reference in new issue
Block a user
Part of #6.
Цель
Мост «кука ↔ пользователь»: физическая карта с точным публичным
представлением, полный пакетный пересчёт через GLOBAL JOIN. Учебный
результат (identity.md): ко-локация по ключу будущего соединения и
сочетание полного пересчёта с точным
_v.Что войдёт
dds.identity_map_rep—ReplicatedReplacingMergeTree(_load_ts),ORDER BY (client_id, user_id), без партиционирования;dds.identity_map_dist— шардированиеcityHash64(client_id);dds.identity_map_v— четыре колонки явно,FINAL; грантbi_readerна_v.dds.event_vи заказов
dds.order_vчерезGLOBAL INNER JOIN, обе стороны —подзапросы (#129); соединение по
purchase_id[1] = order_id— имяконтракта, в ODS это
purchaseID; правило одного элемента массива —комментарием в SQL (спека §4).
identity_mapвdds_transformпосле заказов; при догоняющемзапуске — одна сборка после всей пачки.
Границы
first_matched_atне заводить (лаба #145); инкремент и anti-joinотклонены развилкой (identity.md).
daily_traffic— тикет витрин.Кому что
SQL пересчёта — Opus. Codex — опыты по брифу: два прогона подряд,
физические дубли до слияния против точного
_v.Сначала прочитать
капкан вставки между разными ключами шардирования;
Проверка
make lint; на стендеmake smoke,make check-clickhouseиmake check-services(в даг пришла новая задача) зелёные.пара в
_vуникальна (повторы скрытыFINAL).purchaseэтой куки, чейpurchase_id[1]— заказ этого пользователя.client_id— ко-локация с событиями исессиями.