Контракт dds.event_v: атрибуты бизнес-модели #132
Notifications
Due Date
No due date set.
Blocks
Depends on
#135 Витрины DM: форма и состав
ddmitry/clickstream-data-platform
#128 Проталкивание условий сквозь dds.event_v
ddmitry/clickstream-data-platform
Reference: ddmitry/clickstream-data-platform#132
Reference in new issue
Block a user
Part of #127.
Вопрос
Состав контракта
dds.event_v: имена атрибутов модели (snake_case — имяатрибута модели, не нормализованное имя источника, см. CONTEXT.md),
какие коды расшифровываются (
DeviceCategoryназван спекой — что ещё),что скрывается, и форма объекта — представление или материализация — по
итогам research-тикета о проталкивании условий.
Витрины DM читают
dds.event_v, а не ODS напрямую: это первый примерправила «слой — это контракт, а не обязательно копия данных» (спека §7).
Сначала прочитать
ods.event_vиdds.event_v) и раздел 1.1 (решения по именам и типам);CONTEXT.md: «Нормализованное имя», «Хранилище»;docs/formats/clickstream-event.md— состав колонок источника.Зацепка из резолюции #131: счётной DQ-сверке сессий с эталоном нужен VisitID, а сборке самих сессий — нет. Решите его судьбу в контракте явно: либо dds.event_v его отдаёт, либо сверка ходит за ним в ODS. Контекст — docs/architecture/dds/session.md, раздел «Сверка с эталоном».
Резолюция
Форма — обычное представление над
ods.event_v, вторым уровнем:FINALспрятан в один слой, условия доезжают до индексов (research #128). Оговорки соблюдены:event_date— переименованием, не пересчётом; ценаFINAL(без авто-PREWHERE) — свойство ODS.Язык модели — имена атрибутов модели, не нормализованные имена источника. Расхождения:
WatchID→event_id;UTCEventTime→event_timeв поясе счётчика (Europe/Samara), второй метки времени нет — UTC остаётся языком ODS;EventDate→event_date.ClientIDостаётсяclient_id(устоявшееся имя куки, шардирование, мост к identity_map).Расшифровки — только
device_category: коды 1–4 вdesktop/mobile/tablet/tv(у Метрики атрибут и есть строка). Регионы не расшифровываются — названия уже едут рядом с id; идея лабы «справочник регионов руками менти» — #143.Скрыто —
VisitID(чужой суррогат сессии; DQ-сверка идёт за эталоном вods.event_v— решение владельца: опыт показательнее),Sign(колонка формата без механики),ecommerce(сырьё, разобранные массивы в контракте есть),_load_id/_load_ts(у представления нет собственной загрузки). Остальные ~40 колонок отдаются целиком.Дока с отклонёнными вариантами:
docs/architecture/dds/event.md(PR #144).