feat(clickhouse): добавлен словарь товаров из каталога
- Зачем: - витринам нужен общий с генератором каталог, а менти — пример штатного обновления словаря. - Что: - каталог смонтирован read-only в обе ноды и создан как dds.products ON CLUSTER. - роли получили dictGet, а check-clickhouse сверяет ответ под etl с исходным CSV. - источник, раскладка и явная политика обновления записаны в документации. - Проверка: - make up с чистыми томами; make lint; make config-test; make smoke; make check-clickhouse. - в generator: make lint typecheck test — 427 тестов прошли.
This commit is contained in:
@@ -13,3 +13,6 @@ CREATE DATABASE IF NOT EXISTS stg ON CLUSTER clickstream_cluster;
|
||||
-- База ODS заводится здесь же, хотя её объекты приносит #43: базы дёшевы, а
|
||||
-- порядок файлов от этого не зависит.
|
||||
CREATE DATABASE IF NOT EXISTS ods ON CLUSTER clickstream_cluster;
|
||||
|
||||
-- DDS начинается со словаря товаров; таблицы слоя появятся на следующем этапе.
|
||||
CREATE DATABASE IF NOT EXISTS dds ON CLUSTER clickstream_cluster;
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
-- Общий с генератором каталог товаров. ClickHouse разрешает файловому
|
||||
-- источнику читать только из user_files; Compose монтирует сюда один и тот же
|
||||
-- файл на обе ноды. Цена хранится в копейках, как и в контракте события.
|
||||
CREATE DICTIONARY IF NOT EXISTS dds.products ON CLUSTER clickstream_cluster
|
||||
(
|
||||
sku String,
|
||||
name String,
|
||||
category String,
|
||||
brand String,
|
||||
price Int64,
|
||||
demand String
|
||||
)
|
||||
PRIMARY KEY sku
|
||||
SOURCE(FILE(PATH './user_files/catalog/products.csv' FORMAT 'CSVWithNames'))
|
||||
LAYOUT(COMPLEX_KEY_HASHED())
|
||||
LIFETIME(0);
|
||||
Reference in New Issue
Block a user