5.1. Параметры конфигурации, специфичные для procopy #

Ниже приведён пример фрагмента файла конфигурации procopy в формате YAML, в котором перечислены параметры, специфичные для procopy:

version: 1
work_dir: ""
procopy_options:
    readers: 11
    loaders: 11
    batch_bytes: 1MiB
    quick_fetch_lob_size: 20MiB
    money_precision: 2
    window_rows_limit: 1000000
    disable_order_by: false
    inprogress_timeout: 10m0s
    show_load_percent: true
    snapshot_id: null
    parquet_options:
        path: ./parquet
        max_size: 300MiB
        page_size: 8KiB
        compression: GZIP
        row_group_size: 128MiB

О том, как устанавливать значения времени в параметрах конфигурации, можно узнать из Подраздела 4.3.6.

В следующей таблице приводится описание параметров конфигурации, специфичных для procopy:

Таблица 5.1. Специфические параметры конфигурации procopy

НазваниеОписаниеЗначение по умолчаниюПример
versionВерсия файла конфигурации  
procopy_optionsГлобальные параметры procopy  
procopy_options.readersКоличество параллельных потоков чтения. Каждый поток обрабатывает одну задачу от начала до конца.NumCPU/2 
procopy_options.loadersКоличество параллельных потоков записи. Каждый поток извлекает пакеты из очереди и применяет их к приёмнику.NumCPU/2 
procopy_options.load.max_retriesКоличество попыток повторной отправки пакета при ошибке0 
procopy_options.load.​retry_timeoutИнтервал между попытками отправки пакета при ошибке0 
procopy_options.logПараметры журналирования  
procopy_options.batch_bytesГлобальное ограничение размера одного пакета в байтах. Значение параметра должно быть больше 0.1МиБ 
procopy_options.truncate

Глобальный флаг. Если включён, все таблицы в приёмнике будут очищены перед загрузкой данных. Если параметр не указан или установлен в false, таблицы не будут очищаться.

Учтите, что для незавершённых задач по миграции куч (heap) или обычных SQL-запросов необходимо явно указать это значение как true или false — либо глобально здесь, либо для конкретной задачи в параметре конфигурации tasks.truncate.

null 
procopy_options.quick_fetch_lob_sizeПороговое значение размера больших объектов (LOB), определяющее способ его загрузки. Если размер LOB меньше этого значения, используется бинарный протокол, и все данные загружаются в оперативную память (RAM) целиком. Если размер превышает это значение, LOB будет считываться по частям. Минимальное значение должно составлять 1024 байта.20МиБ 
procopy_options.bfile_copyЕсли параметр задан, в ходе загрузки данных все объекты типа BFILE копируются из Oracle целиком. По умолчанию копируются только идентификаторы — псевдонимы каталогов и имена файлов. Обратите внимание: prosync не поддерживает загрузку объектов типа BFILE.false 
procopy_options.problem_rowsРаздел для настройки обработки строк, которые не удалось вставить  
procopy_options.problem_rows.localРаздел для локальной настройки  
procopy_options.problem_rows.local.save_dirПуть к каталогу, в котором будут сохраняться проблемные строки  
procopy_options.money_precisionКоличество знаков после запятой в базе данных-приёмнике. Зависит от параметра конфигурации lc_monetary на сервере приёмника. Значимо только для Postgres Pro и типа MONEY. В остальных случаях оставьте значение по умолчанию.2 
procopy_options.window_rows_limitРазмер скользящего окна. Количество строк, выбираемых за один раз.  
procopy_options.disable_order_byОтключает загрузку данных, отсортированных по уникальному первичному ключу. На практике вся таблица извлекается с помощью курсора.  
procopy_options.disable_index_hintОтключает использование подсказок по индексам при формировании запросов SELECT  
procopy_options.inprogress_timeoutМаксимальное время чтения блока данных1 сек. 
procopy_options.show_load_percentОтображает процент выполнения задачиtrue 
procopy_options.encoder_chan_sizeРазмер буфера, используемого кодировщиками10000 
procopy_options.snapshot_idГлобальный идентификатор снимка PostgreSQL/Postgres Pro. Используется, если параметр конфигурации snapshot требуется, но не задан для конкретной задачи.10000 
procopy_options.sub_task_rowsГлобальный параметр, определяющий количество строк в задаче для параллельного чтения из таблиц. Используется, чтобы при чтении разделить большие таблицы на подзадачи. При значении 0 разделение задачи на подзадачи отключается.0 
procopy_options.enable_auto_snapshotГлобальный флаг для включения автоматического создания снимка в PostgreSQL/Postgres Pro. Если значение true, снимок создаётся и используется для получения данных. Может быть переопределён на уровне задачи с помощью параметра конфигурации tasks.enable_auto_snapshot.false 
procopy_options.parquet_optionsРаздел с параметрами, связанными с использованием формата Parquet в качестве приёмника 
parquet_options:
    path: ./parquet
    max_size: 300MB
    page_size: 8kB
    compression: GZIP
    row_group_size: 128MB
procopy_options.parquet_options.pathАбсолютный или относительный путь к каталогу, в котором будут сохраняться файлы Parquet./parquet 
procopy_options.parquet_options.max_sizeМаксимальный размер файла Parquet. Если размер файла должен превысить эту величину, создастся новый файл. Минимальное значение должно составлять 1024 байта.300МиБ 
procopy_options.parquet_options.page_sizeРазмер страницы в файле Parquet. Подробно о понятии страницы в Parquet можно прочесть здесь: https://parquet.apache.org/docs/file-format/configurations/. Минимальное значение должно составлять 1024 байта.8КиБ 
procopy_options.parquet_options.compressionКодек для сжатия данных в файле Parquet. Поддерживаются кодеки UNCOMPRESSED, SNAPPY, GZIP и LZ4. Кодеки LZO, BROTLI, ZSTD и LZ4_RAW не поддерживаются. Больше информации о кодеках Parquet можно найти здесь: https://parquet.apache.org/docs/file-format/data-pages/compression/.GZIP 
procopy_options.parquet_options.row_group_sizeРазмер группы строк в файле Parquet. Больше информации можно найти здесь https://parquet.apache.org/docs/file-format/configurations/. Минимальное значение должно составлять 1024 байта.128МиБ 
procopy_options.to_charСловарь формата ключ-значение, содержащий типы столбцов, которые следует преобразовать в строки на стороне БД. Используется только с Oracle. Каждый ключ содержит тип столбца, а значение — его формат. Пары ключ-значение разделены запятой. "to_char": {"DATE":"YYYY-MM-DD HH24:MI:SS", "NUMBER":""}
procopy_options.null_char_replaceГлобальный параметр для замены нулевого символа (с нулевым кодом). Можно переопределить на уровне задачи для каждого отдельного столбца с помощью поля null_char_replace параметра конфигурации tasks.transform.Если источником является Oracle, а приёмником — PostgreSQL или Postgres Pro, пустая строка (""), в остальных случаях — ноль.null_char_replace: "\n"