5.4. Параметры конфигурации procheck #

Ниже приведён пример файла конфигурации 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. Глобальное значение может быть переопределено для отдельных таблиц.falseskip_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_rowsfalse 
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', в этом случае список будет прочитан из указанного файла. 
[unnecessary_table] или ['@filename.txt']
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Список таблиц для выполнения теста (через запятую, в квадратных скобках). Может содержать специальные значения:
  • all — все таблицы в схеме

  • all_other — все таблицы в схеме, не перечисленные явно в описаниях тестов

  • '@filename' — список будет прочитан из указанного файла

 [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'