Ниже приведён пример файла конфигурации procheck в формате YAML:
options:
skip_lobs: true
skip_auto_count_test: true
skip_passed_tables: true
source:
drivername: oracle
host: 192.168.23.251
port: 1523
database: db18c
username: pg_migr
password: <password>
destination:
drivername: pgx
host: 192.168.21.191
port: 5432
database: parus
username: data_quality
password: <password>
max_conn: 10
comparison_rules:
schema1:
source_schema: xpress
destination_schema: xpress
exclude_tables: [unnecessary_table]
tests:
- name: test1
tables: [all]
type: count
- name: test2
tables: [all]
type: max_id
schema2:
source_schema: src_schema
destination_schema: dst_schema
table_mapping:
src_table1: dst_table1
src_table2: dst_table2
src_table3: dst_table3
column_mapping:
src_table1:
src_column1: dst_column1
src_column2: dst_column2
skip_lobs:
table1: true
table2: false
exclude_columns:
table1: [column1, column2]
table2: [column3, column4]
source_where:
src_table4: id >= 100 AND id < 1000
tests:
- name: test1
tables: [src_table1, src_table2]
type: count
- name: test2
tables: [all]
exclude_tables: [src_table1]
exclude_columns:
table3: [column5]
type: all_rows
- name: test3
tables: [all_other]
type: max_id
source_where:
src_table3: src_id >= 100 AND src_id < 1000
destination_where:
dst_table3: dst_id >= 100 AND dst_id < 1000
- name: test4
tables: ['@filename.txt']
type: table_list
- name: test5
type: query
source_query: SELECT col1, COUNT(*) FROM src_schema.table1 GROUP BY col1
destination_query: '@query2.sql'В приведённой ниже таблице описаны параметры конфигурации procheck. Обратите внимание, что некоторые глобальные параметры конфигурации могут быть переопределены на уровне схемы, а некоторые параметры можно задавать как на уровне схемы, так и для отдельных тестов. Параметры конфигурации более низкого уровня с тем же именем переопределяют параметры более высокого уровня. См. пример файла конфигурации:
Таблица 5.4. Параметры конфигурации procheck
| Название | Описание | Значение по умолчанию | Пример |
|---|---|---|---|
options | Глобальные параметры конфигурации | ||
options.skip_lobs | Исключает из построчного сравнения столбцы типов CLOB, BLOB, BFILE и SFILE. Для PostgreSQL также исключает столбцы типов, указанных в параметре конфигурации pg_hashed_types. Глобальное значение может быть переопределено для отдельных таблиц. | false | skip_lobs: true |
options.pg_hashed_types | Определяет дополнительные типы данных PostgreSQL, которые сравниваются по хэшу MD5, помимо тех, что всегда сравниваются таким образом (например, SFILE или типы из расширения dbms_lob). Глобальное значение можно переопределить для отдельных таблиц — на уровне схемы или конкретного теста. При указании пустого списка используется значение по умолчанию. | [BYTEA, TEXT] | |
options.compare_large_bfiles_by_size | Сравнивает объекты типа BFILE размером более 1 ГБ по их размеру. | false — объекты BFILE сравниваются путём вычисления их хеша | |
options.skip_auto_count_test | Отключает автоматическое выполнение тестов count для таблиц, для которых тесты были пропущены из-за отсутствия необходимого ключа | false | |
options.skip_passed_tables | Отключает вывод подробной информации о таблицах со статусом теста PASSED, оставляя только общее количество таких таблиц. | false | |
options.all_rows_max_mistakes | Минимальное число ошибок, при котором выполнение тестов all_rows прерывается | 0 — тесты выполняются для всех строк | |
options.chunk_size | Приблизительное количество строк в порциях, на которые разбивается таблица при выполнении тестов all_rows. При значении 0 используется значение по умолчанию. При отрицательном значении таблица не разбивается на порции. | 100000 | |
options.max_parallel_chunks | Максимальное количество порций таблицы, сравниваемых параллельно при выполнении тестов all_rows. При значении меньше либо равном 0 используется значение по умолчанию. | 10 | |
options.max_parallel_tables | Максимальное количество таблиц, сравниваемых параллельно. При значении меньше либо равном 0 используется значение по умолчанию. | 50 | |
options.ora_empty_string_is_null | Определяет обработку пустых строк в Oracle. При значении true пустая строка считается равной NULL. | true | |
options.ora_true_values | Массив строковых значений, эквивалентных логическому значению true в Oracle | [Y] | [Y, YES] |
options.ora_false_values | Массив строковых значений, эквивалентных логическому значению false в Oracle | [N] | [N, NO] |
options.comparison_accuracy | Минимальное количество последовательных 9 или 0 в дробной части, при котором число округляется до предыдущего разряда | 0 — округление не выполняется | |
options.round_places | Количество знаков после запятой, до которых округляется число при сравнении. При отрицательном значении целая часть округляется до ближайшего значения 10^(-round_places) | 0 — округление не выполняется | |
options.ora_string_types | Список типов данных Oracle, для которых при сортировке необходимо указывать COLLATE | [CHAR, VARCHAR2] | |
options.pg_string_types | Список типов данных PostgreSQL, для которых при сортировке необходимо указывать COLLATE | [BPCHAR, VARCHAR] | |
options.skip_type_mismatch | Пропускать ошибки невозможного сравнения разных типов при выполнении тестов all_rows | false | |
source | Параметры конфигурации для подключения к базе данных-источнику | ||
source.drivername | Драйвер подключения. Возможные значения: oracle — драйвер godror, использующий Oracle Instant Client, либо go-ora — драйвер go-ora, разработанный на Go. | ||
source.host | Имя сервера | ||
source.port | Порт подключения | 1521 для Oracle | |
source.database | Имя базы данных для подключения | ||
source.username | Имя пользователя для подключения | ||
source.password | Пароль для подключения | ||
source.max_conn | Максимальное число подключений к базе данных. При значении меньше либо равном 0 число подключений не ограничено. | Unlimited | |
destination | Параметры конфигурации для подключения к базе данных-приёмнику | ||
destination.drivername | Драйвер подключения. Возможные значения: postgresql или псевдоним. pgx — драйвер pgx. | ||
destination.host | Имя сервера | ||
destination.port | Порт подключения | 5432 для PostgreSQL | |
destination.database | Имя базы данных для подключения | ||
destination.username | Имя пользователя для подключения | ||
destination.password | Пароль для подключения | ||
destination.max_conn | Максимальное число подключений к базе данных. При значении меньше либо равном 0 число подключений не ограничено. | Unlimited | |
comparison_rules | Правила сравнения данных | ||
comparison_rules.source_schema | Имя схемы в базе данных-источнике | ||
comparison_rules.destination_schema | Имя схемы в базе данных-приёмнике | ||
comparison_rules.exclude_tables | Список таблиц, исключаемых из всех тестов (через запятую, в квадратных скобках). Можно указать специальное значение, например '@filename', в этом случае список будет прочитан из указанного файла. |
| |
comparison_rules.table_mapping | Сопоставление имён таблиц | src_table1: dst_table1 src_table2: dst_table2 | |
comparison_rules.exclude_columns | Список столбцов таблиц, которые следует исключить из всех тестов. | exclude_columns: table1: [column1, column2] table2: [column3, column4] | |
comparison_rules.column_mapping | Сопоставление имён столбцов в таблицах | src_table1: src_column1: dst_column1 src_column2: dst_column2 | |
comparison_rules.skip_lobs | Переопределяет глобальный параметр skip_lobs для отдельных таблиц | skip_lobs: table1: true table2: false | |
comparison_rules.source_where | Условие фильтрации для таблицы базы данных-источника. SQL-выражение, возвращающее значение типа boolean. | src_table3: src_id >= 100 AND src_id < 1000 | |
comparison_rules.destination_where | Условие фильтрации для таблицы базы данных-приёмника. SQL-выражение, возвращающее значение типа boolean. | dst_table3: src_id >= 100 AND src_id < 1000 | |
comparison_rules.tests | Тесты для данного правила сравнения | ||
comparison_rules.tests.name | Имя теста | ||
comparison_rules.tests.type | Тип теста. Возможные значения приведены в Таблица 6.1. | ||
comparison_rules.tests.tables | Список таблиц для выполнения теста (через запятую, в квадратных скобках). Может содержать специальные значения:
| [src_table1, src_table2] или [all_other] | |
comparison_rules.tests.source_query | Текст запроса к источнику для теста типа query (за подробностями обратитесь к Таблице 6.1 ). Чтобы прочитать запрос из файла, укажите значение в виде '@file_name'. | SELECT col1, COUNT(*) FROM src_schema.table1 GROUP BY col1 | |
comparison_rules.tests.destination_query | Текст запроса к приёмнику для теста типа query (за подробностями обратитесь к Таблице 6.1). Чтобы прочитать запрос из файла, укажите значение в виде '@file_name'. | '@destination_query.sql' |