From d1aad3b1434ade71f60731feb6c95963c545a147 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Tue, 25 Aug 2026 03:25:08 -0400 Subject: [PATCH] =?UTF-8?q?docs(etl):=20=D0=B2=D1=8B=D1=87=D0=B8=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=20=D0=B4=D0=BD=D0=B5=D0=B2=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D0=B2=D0=B5=D0=B9=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Зачем: горячее ревью доки перед слиянием PR #146. Что: «единственный на стенде» больше не читается как «единственный даг стенда»; в пункте про живой день причина порядка триггера названа один раз и по делу; конвейер дёргает работник живого дня, а не работники; в ретро-пометке ADR 0009 расставлены кто кого дёргает. Проверка: перечитка диффа. Co-Authored-By: Claude Fable 5 --- docs/adr/0009-world-control.md | 4 ++-- docs/architecture/etl.md | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/adr/0009-world-control.md b/docs/adr/0009-world-control.md index 07766e6..3757858 100644 --- a/docs/adr/0009-world-control.md +++ b/docs/adr/0009-world-control.md @@ -137,8 +137,8 @@ `etl_pipeline` этапа 5 получает готовую обвязку `DockerOperator` и готовое правило позиции. Позднее резолюция #134 родила `etl_pipeline` этапом 4 — [дневным конвейером трансформаций](../architecture/etl.md) без генераторных -шагов: обвязка и правило позиции остаются работникам, а конвейер живой день -дёргает после установки позиции. +шагов: обвязка и правило позиции остаются работникам, а живой день дёргает +конвейер после установки позиции. Расхождения, внесённые тем же коммитом: раздел 8 спеки генератора (позицию двигал «только даг `next_day`»; теперь — всякий, кто сыграл день, значением diff --git a/docs/architecture/etl.md b/docs/architecture/etl.md index 85f9047..41a4d42 100644 --- a/docs/architecture/etl.md +++ b/docs/architecture/etl.md @@ -12,7 +12,7 @@ ## Форма -Дневной конвейер — даг `etl_pipeline`, единственный на стенде. Своей работы +Дневной конвейер на стенде один — даг `etl_pipeline`. Своей работы у него нет: он дёргает слойные даги последовательно и ждёт каждый — `dds_transform`, затем `dm_transform`. Контур DQ этапа 4 встанет его же звеном после DM; состав звена — предмет развилки витрин (#135) и нарезки. @@ -24,9 +24,10 @@ ## Три пути запуска - **Живой день.** `world_live_day` дёргает конвейер с ожиданием — последним - шагом, после установки позиции. День сыгран — факт, упавшая трансформация - его не отменяет, поэтому позиция уже стоит; но зеленеть, не узнав, - разложился ли день, работник не должен ([ADR 0003](../adr/0003-dag-run-state.md)). + шагом, после установки позиции. Порядок несёт смысл: день сыгран — факт, + упавшая трансформация его не отменяет, поэтому позиция ставится раньше; но + зеленеть, не узнав, разложился ли день, работник не должен + ([ADR 0003](../adr/0003-dag-run-state.md)). Такой отказ чинится перезапуском `etl_pipeline` рукой — перезапуску ничего не нужно помнить, см. «Объём прогона». - **Разгон пачкой.** `world_next_day` конвейер не дёргает: пульт управляет @@ -91,8 +92,8 @@ - [ADR 0003](../adr/0003-dag-run-state.md) — зелёный конец графа не переживает отказ выше: отсюда ожидания в триггерах. -- [ADR 0009](../adr/0009-world-control.md) — пульт мира: работники, которые - дёргают конвейер живого дня. +- [ADR 0009](../adr/0009-world-control.md) — пульт мира: его работник + живого дня и дёргает конвейер. - [ADR 0013](../adr/0013-world-lifecycle.md) — жизненный цикл мира: почему прикладным процессом владеет Airflow и почему `world_initialize` кончается собранными слоями.