Naming convention и структура хранения конфигураций
Соглашение о нейминге
Все сущности в DQ имеют обязательное имя (атрибут name), которое должно быть уникальным в рамках каждого типа сущности. Для систематизации репозитория ваших проверок мы рекомендуем придержиться описанного здесь подхода к наименованию сущностей.
Source
<Project name>_<короткий адрес источника>_<пользовательское описание>
-
Project name: короткий префикс с названием проекта, например, название проекта в таск трекере (CDC)
-
короткий адрес источника: адрес или домен источника данных (etldata01)
-
sпользовательское описание: Пользовательское описание (test)
Пример: CDC_etldata01_test
Check_object
<Table name>.<Schema name>.<DB name>.<Source name>
Пример: test_table.raw.CDC_etldata01_test
Metric
<Metric_name>.<Check_object>
- Metric_name: Пользовательское описание метрики (count_unique_users)
Пример:count_unique_users.test_table.raw.CDC_etldata01_test
Compare
<Compare_name>.<Check_object>
- Compare_name: Пользовательское описание сравнения (count_unique_users_compare_0)
Пример: count_unique_users_compare_0.test_table.raw.CDC_etldata01_test
Group
<Check_object> - если группа будет использоваться для запуска проверок по одному объекту
<Group Name> - если группа более высокоуровневая объединяет в себе несколько групп,например для отображения графиков по продукту в целом. Именование произвольное.
Пример: test_table.raw.CDC_etldata01_test
Alert
<Alert_name>.<Check_object>
<Alert_name>
В зависимости от группы имеет схожий нейминг
Пример: test_table_alert.test_table.raw.CDC_etldata01_test
Dag
tech_dq_<Dag Group>
- Dag Group - указать группу объединяющую все таблицы источника или сущности, с префиксом tech_dq
Пример: tech_dq_test_table.raw.CDC_etldata01_test
Структура хранения
Если вы храните yaml файлы с настройками проверок в git репозитории, мы предлагаем 2 возможных структуры хранения конфигураций:
1.
configs
- project_name (имя проекта как в таск трекере)
- 1_sources.yml (описание всех source для данного проекта)
- database_name_1 (имя базы данных)
- group_name_1.yml (внутри описание объектов/метрик/сравнений/групп аллертов)
- group_name_2.yml
- database_name_2
- group_name_3.yml
- group_name_4.yml
- extra_groups.yml (внутри описание верхнеуровневых групп)
- z_alerts.yml (описание всех alerts для данного проекта)
2.
configs
- project name (имя проекта как в таск трекере)
- 1_sources.yml (описание всех source для данного проекта)
- group_name.yml (внутри описание объектов/метрик/сравнений/групп/алертов)
- group_name_1.yml (внутри описание объектов/метрик/сравнений/групп/алертов)
- group_name_2.yml (внутри описание объектов/метрик/сравнений/групп/алертов)