Зачем: помочь начинающему инженеру проследить событие и версию заказа от генератора до хранилища, включая ошибки и повторные поступления. Что: обновлены вводная генератора, справочники приема и модели заказа, разделы хранилища и комментарии SQL и дага. Сохранены технические условия; исполняемый код, схемы и поведение стенда не изменены. Проверка: make lint, git diff --check, 142 локальные ссылки и справка CLI. SQL без комментариев и Python AST без строк документации совпали с исходными. Генерация данных и сброс состояния не выполнялись. Refs #250
26 lines
1.3 KiB
SQL
26 lines
1.3 KiB
SQL
-- Прием событий из Kafka в STG.
|
|
-- Подключение этого представления запускает чтение топика. Поэтому файл 40
|
|
-- применяется после таблиц и представлений разбора из файлов 20 и 30:
|
|
-- иначе часть сообщений сохранится в STG, но не попадет в ODS.
|
|
--
|
|
-- Запись через stg.hits_raw_dist распределяет сообщения по ключу таблицы.
|
|
-- Она фоновая; возможную потерю при сбое описывает раздел «Приём»
|
|
-- в docs/architecture/storage.md.
|
|
--
|
|
-- Сведения о доставке вычисляются здесь, на ноде чтения Kafka.
|
|
-- DEFAULT hostName() только в локальной таблице назвал бы шард-получатель.
|
|
-- Порядок SELECT совпадает с порядком колонок цели.
|
|
|
|
CREATE MATERIALIZED VIEW IF NOT EXISTS stg.hits_raw_mv ON CLUSTER clickstream_cluster
|
|
TO stg.hits_raw_dist
|
|
AS
|
|
SELECT
|
|
raw,
|
|
_topic AS kafka_topic,
|
|
_partition AS kafka_partition,
|
|
_offset AS kafka_offset,
|
|
_timestamp_ms AS kafka_timestamp,
|
|
hostName() AS consumer_host,
|
|
now64(3) AS _load_ts
|
|
FROM stg.hits_raw_kafka;
|