Сборка identity_map: трансформация и повторы #133
Notifications
Due Date
No due date set.
Blocks
Depends on
#136 Нарезать тикеты этапа 4 по резолюциям карты
ddmitry/clickstream-data-platform
#129 GLOBAL JOIN двух Distributed-таблиц на стенде
ddmitry/clickstream-data-platform
Reference: ddmitry/clickstream-data-platform#133
Reference in new issue
Block a user
Part of #127.
Вопрос
Механика сборки карты кука↔пользователь: из чего читается мост
(
purchase-событие и заказ), как выглядит трансформация с GLOBAL JOIN,идемпотентность и повторный прогон — как при ReplacingMergeTree не
переписать
first_matched_atпервого совпадения, — и когда сборказапускается.
Схема, движок и шардирование решены спекой §5 и не пересматриваются:
dds.identity_map(client_id, user_id, first_matched_at),ReplacingMergeTree, ORDER BY (client_id, user_id), шардирование
cityHash64(client_id).Сначала прочитать
CONTEXT.md: «Человек», «Посетитель», «Пользователь магазина»;Резолюция
Карта — физическая пакетная модель DDS, а не динамическое соединение на каждом чтении.
dds.identity_map_repнаReplicatedReplacingMergeTree(_load_ts), ключ(client_id, user_id);dds.identity_map_distшардирует поcityHash64(client_id).dds.identity_map_vс явным списком колонок иFINAL. Попутно закреплено общее правило DDS: потребительские роли и витрины читают*_v;*_repи*_distостаются загрузке, диагностике и обслуживанию. Поэтому публичные поверхности получают также заказ и сессия.DEFINER = CURRENT_USER SQL SECURITY DEFINER; потребитель получаетSELECTна_v, а запрос к_repи_distотклоняется.client_idиuser_id; собственные координаты запуска —_load_id,_load_ts.first_matched_atудалён: запланированного читателя нет, а два возможных смысла времени требуют разных исторических моделей. Идея вынесена в #145.dds.event_vи текущее состояниеdds.order_v. Любой сопоставленный заказ устанавливает личность независимо от статуса.GLOBAL INNER JOINпоpurchase_id = order_id, затем различные пары. Для догоняющей пачки — один запуск после всех заказов.FINALв публичном представлении.Решение записано в
docs/architecture/dds/identity.md, карте DDS, документах заказа и сессии, конвенциях хранилища и мастер-спеке.