docs(labs): уточнены самопроверка и формулировки заданий
Зачем: убрать механические повторы в итогах и избежать ложных расхождений при проверке графика Superset. Что: уточнены правила итоговых списков и название задания о проверках заказов. В разборе событий разделены учет повторных доставок и выбор событий ODS для сравнения. Первый график Superset и проверочный SQL используют весь период витрины. Проверка: git diff --check, локальные ссылки и переходы к измененным заголовкам прошли. Блоки кода и таблицы требований сохранены. Согласованность периода графика с SQL проверена по тексту; повторный проход через интерфейс Superset не выполнялся.
This commit is contained in:
1 parent
4058e18864
commit
3bfe9ca4ee
15 files changed
+51
-46
No files matched your search
@@ -116,6 +116,8 @@ Airflow. При включенном `world_live` посмотрите его т
|
||||
|
||||
## Приведите стороны к одному зерну
|
||||
|
||||
### Учтите повторные доставки
|
||||
|
||||
В STG одна строка представляет доставку. Повтор сообщения остается второй
|
||||
строкой. В `ods.event_v` одна строка представляет актуальное событие, потому
|
||||
что представление читает физическую таблицу с `FINAL`.
|
||||
@@ -124,17 +126,20 @@ Airflow. При включенном `world_live` посмотрите его т
|
||||
полных ключей среди годных доставок. Разница между числом доставок и этим
|
||||
счетом показывает повторы в исходном срезе.
|
||||
|
||||
Выберите строки ODS для сравнения независимо от своего условия отбора и
|
||||
результата вставки. Снова возьмите весь исходный STG-срез. По координатам Kafka
|
||||
исключите доставки, которые есть в `ods.event_errors_dist`. У оставшихся
|
||||
доставок извлеките `WatchID` без риска прервать запрос и выберите эти события из свежего
|
||||
`ods.event_v`.
|
||||
### Выберите события ODS для сравнения
|
||||
|
||||
Свяжите сырую доставку с ODS по `WatchID`: по договору генератора это уникальный
|
||||
идентификатор события. Здесь он нужен только для выбора событий ODS.
|
||||
Удаление повторов и последующее соединение используют полный физический ключ.
|
||||
Не берите список событий из своей таблицы и не применяйте к нему свое условие
|
||||
отбора. Иначе ошибочно отвергнутая строка исчезнет с обеих сторон сверки.
|
||||
Теперь нужно найти в ODS события из выбранного среза. Список стройте по
|
||||
исходным доставкам: если взять его из своей таблицы, ошибочно отвергнутое
|
||||
событие исчезнет с обеих сторон сверки и потеря останется незамеченной.
|
||||
|
||||
Снова возьмите весь исходный STG-срез. По координатам Kafka исключите
|
||||
доставки, которые есть в `ods.event_errors_dist`. У оставшихся извлеките
|
||||
`WatchID` без риска прервать запрос и выберите эти события из свежего
|
||||
`ods.event_v`. Свое условие отбора здесь не применяйте: решение о годности
|
||||
доставки вы берете из результата стендового разбора.
|
||||
|
||||
`WatchID` связывает доставку с событием в ODS. Для удаления повторов и
|
||||
сравнения полей дальше используйте полный физический ключ из схемы таблицы.
|
||||
|
||||
## Сверьте 47 полей
|
||||
|
||||
@@ -198,8 +203,8 @@ Kafka после опыта не нужно.
|
||||
|
||||
- [ ] у вас сохранены границы выбранного среза, число строк и координаты
|
||||
доставки по партициям Kafka;
|
||||
- [ ] вы собрали свою таблицу со всеми 47 полями и `_load_ts`, используя
|
||||
те же правила удаления повторов, что и ODS;
|
||||
- [ ] ваша таблица содержит все 47 полей и `_load_ts` и обрабатывает
|
||||
повторы по тем же правилам, что и ODS;
|
||||
- [ ] ваш разбор принимает только JSON-объекты с точным набором ключей и
|
||||
пятью опорными полями, которые преобразуются в нужные типы;
|
||||
- [ ] вы сверили число исходных строк с суммой годных и отвергнутых,
|
||||
|
||||
Reference in new issue
Block a user