Skip to content

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 (внутри описание объектов/метрик/сравнений/групп/алертов)