Ниже приведён пример фрагмента файла конфигурации 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 | Глобальный флаг. Если включён, все таблицы в приёмнике будут очищены перед загрузкой данных. Если параметр не указан или установлен в Учтите, что для незавершённых задач по миграции куч (heap) или обычных SQL-запросов необходимо явно указать это значение как | 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" |