docs(warehouse): объяснены расчет строк и замена дневных разделов
Зачем: выражения «собираются в донор» и «публикуются дни» требовали знать устройство конвейера до чтения объяснения. Что: описаны назначение промежуточных таблиц и последовательность расчета, записи и замены разделов. Перечитаны остальные объяснения: выбор дней, разворачивание позиций заказа, проверка сессий и повтор запуска. Проверка: make lint, git diff --check, локальные ссылки и якоря. SQL без комментариев и AST обоих дагов без строк документации не изменились. Refs: #249
This commit is contained in:
1 parent
5f317ba8d2
commit
086007fbd4
12 files changed
+216
-166
No files matched your search
@@ -1,5 +1,5 @@
|
||||
-- DDS: дни для сборки сессий, от first_day до last_day включительно.
|
||||
-- Пустой ответ означает пустой ODS; NULL в first_day — отсутствие работы.
|
||||
-- Без событий ODS строк в ответе нет; NULL в first_day — дней для расчета нет.
|
||||
--
|
||||
-- position — номер следующего дня для генерации. Последний прожитый день
|
||||
-- равен min(EventDate) + position - 1. В отличие от max(EventDate), эта
|
||||
@@ -13,9 +13,10 @@
|
||||
WITH
|
||||
(SELECT min(EventDate) FROM ods.event_dist) AS first_source_day,
|
||||
first_source_day + ({position:UInt16} - 1) AS last_lived_day,
|
||||
-- Ищем первый день ODS, которого нет в DDS: максимум собранного дня
|
||||
-- пропустил бы более ранний пробел. Частично заполненный день так не найти.
|
||||
-- GLOBAL сравнивает со списком дней всего DDS, а не одного шарда.
|
||||
-- Ищем первую дату событий ODS, за которую еще нет сессий DDS.
|
||||
-- Поиск после max(session_date) пропустил бы более раннюю потерянную дату.
|
||||
-- Если за день есть хотя бы одна сессия, он уже не считается пропущенным.
|
||||
-- GLOBAL берет даты сессий со всех шардов.
|
||||
-- minOrNull возвращает NULL, если пропусков нет.
|
||||
(
|
||||
SELECT minOrNull(day)
|
||||
|
||||
Reference in new issue
Block a user