Параметры MatrixGate

В этом документе приведена подробная информация о параметрах MatrixGate.

1 Параметры конфигурационного файла

Примечание! Параметры в данном разделе — это те, что находятся в конфигурационном файле, сгенерированном до запуска mxgate.

Имя параметра Значение по умолчанию Описание
Категория [database]
--db-database postgres Имя базы данных YMatrix, к которой подключается MatrixGate
--db-master-host Локальное имя хоста Имя хоста YMatrix, к которому подключается MatrixGate
--db-master-port 5432 Номер порта хоста YMatrix, к которому подключается MatrixGate
--db-user Текущее имя пользователя системы Имя пользователя YMatrix для подключения MatrixGate
Примечание! У пользователя должны быть права на создание внешних таблиц. Если используется не суперпользователь, выполните следующую команду для предоставления прав:
alter user {username} CREATEEXTTABLE;
--db-password Пусто Пароль пользователя YMatrix для подключения MatrixGate
--db-max-conn 10 Максимальное количество соединений MatrixGate с YMatrix
Категория [job]
--allow-dynamic false При указании --allow-dynamic=true разрешает динамическое определение целевой таблицы для вставки на основе содержимого POST-данных (первая строка). Этот параметр следует использовать только тогда, когда имя целевой таблицы еще неизвестно при запуске MatrixGate. Если вы хотите вставить данные в известную целевую таблицу, рекомендуется явно указать имя таблицы с помощью --target
--delimiter | Определяет символ, используемый для разделения столбцов в каждой строке (строке) файла
--error-handling accurate Способ обработки строк с ошибками формата
'accurate':Некорректные данные не записываются в базу данных, и регистрируется ошибка. Другие данные в этой пачке не затрагиваются.
'legacy':Вся пачка считается неудачной.
--exclude-columns Пусто По умолчанию порядок и количество столбцов при загрузке данных должны соответствовать определению таблицы. Когда загружаемые данные содержат только часть столбцов, --exclude-columns используется для указания имен исключаемых столбцов. Порядок оставшихся столбцов должен соответствовать определению таблицы. Примечание: если включен --use-auto-increment для пропуска автоинкрементных полей, перечислять эти поля здесь не нужно. Этот параметр должен указывать только другие столбцы, которые необходимо исключить.
--format text Указывает формат исходных данных как text или csv. Формат text самый быстрый, но не поддерживает переносы строк в текстовых типах. Формат csv более универсален, столбцы текстового типа должны быть заключены в двойные кавычки
--null-as пустая строка Определяет строку, представляющую значение NULL. Значение по умолчанию — пустая строка без кавычек. Если ограничение столбца в таблице NOT NULL, а данные для этого столбца имеют значение null, возникнет ошибка загрузки. Примечание: если требуется использовать \N как значение NULL, необходимо экранировать обратный слэш, например: --null-as \N
--time-format unix-second Определяет единицу измерения временной метки: unix-second \| unix-ms\|unix-nano \| raw. По умолчанию MatrixGate интерпретирует первый столбец каждой строки как временную метку в формате Unix и автоматически преобразует её в формат времени базы данных. Если временная метка находится не в первом столбце или пользователь уже преобразовал её в формат базы данных, используйте raw, чтобы MatrixGate не выполнял преобразование времени.
--upsert-key пусто Ключ для операции UPSERT, может быть указан несколько раз.
Таблицы, требующие UPSERT, должны иметь установленные UNIQUE ограничения, и все ключи ограничений должны быть указаны в параметрах.
--deduplicate-key Пусто Аналогично UPSERT, отличие в том, что обновляются только пустые значения. Если старое значение не пустое, новое значение отбрасывается.
Параметр взаимоисключающий с --upsert-key; можно выбрать только один из них
--use-auto-increment true При наличии в целевой таблице автоинкрементного поля указывает, следует ли пропускать присвоение значений этому полю при загрузке данных и использовать системное значение автоинкремента
--target schemaName.tableName Указывает имя целевой таблицы. Имя схемы можно опустить, по умолчанию используется public. Несколько целевых таблиц можно указать в формате «--target table1 --target table2 …». Если этот параметр не задан, можно дополнительно указать --allow-dynamic для динамического определения имени таблицы
--dml-template Путь к файлу шаблона сопоставления, который сопоставляет поля JSON с колонками кортежа
Категория [misc]
--log-archive-hours 72 Файлы журналов MatrixGate в каталоге журнала, которые не изменялись в течение определённого времени, автоматически сжимаются
--log-compress true Глобальный переключатель для включения автоматического сжатия логов
--log-dir /home/mxadmin/gpAdminLogs Каталог журналов
--log-max-archive-files 0 Максимальное количество сжатых файлов журналов для хранения. При превышении этого числа самые старые файлы будут удалены. 0 означает отсутствие удаления
--log-remove-after-days 0 Количество дней, после которых сжатые файлы журналов автоматически удаляются. 0 означает отсутствие удаления
--log-rotate-size-mb 100 Когда текущий файл журнала превышает определённый размер, он автоматически заменяется новым, а старый немедленно сжимается
-v / --verbose Вывод подробных информационных журналов
-V / --debug Вывод подробных журналов отладки (включая информационные и отладочные журналы)
--pprof-port Порт для доступа к информации Pprof. 0 означает отключение
--no-cleanup Сохранять временные режимы даже при нормальном завершении работы
--grpc-port Порт для доступа к gRPC-информации; 0 означает отключение
Категория [metrics]
--metrics-enable true Включить сбор метрик
--metrics-sample-interval 15 (с версии v5.3.2, ранее было 3) Интервал выборки метрик (в секундах). Установите значение >0, чтобы включить сбор метрик (может снижать производительность)
Категория [source]
--source http Источник данных MatrixGate, поддерживает http / stdin / kafka / transfer / grpc
Категория [source] [HTTP] Примечание: Этот режим является режимом подключения источника данных по умолчанию в конфигурационном файле
--http-port 8086 HTTP-интерфейс MatrixGate для отправки пользовательских данных
--max-body-bytes 4194304 Максимальный размер тела каждого HTTP-пакета
--max-concurrency 40000 Максимальное количество одновременных HTTP-соединений
--request-timeout 0 Таймаут запроса, по умолчанию 0. При установке значения больше 0 произойдёт таймаут после ожидания указанного времени в миллисекундах и возвратится timeout(408)
--disable-keep-alive false MatrixGate принудительно закрывает соединение после каждого HTTP-запроса
--http-debug false Вывод дополнительной диагностической информации источника HTTP
Категория [source] [Transfer] Примечание: Режим миграции не является режимом по умолчанию. Если вы хотите использовать этот режим, настройте параметры в этом разделе вручную.
--src-host IP-адрес мастера исходного репозитория
--src-port Порт мастера исходной базы данных
--src-user Имя пользователя для подключения к исходной базе данных (рекомендуется использовать Superuser)
--src-password Пароль подключения
--src-schema Имя схемы исходной таблицы
--src-table Имя исходной таблицы
--src-sql SQL-запрос для фильтрации данных во время миграции
--compress Метод сжатия при передаче данных с сегмента исходной базы данных в эту базу:
Пустая строка «», означает отсутствие сжатия и передачу в открытом виде.
gzip: Для использования сжатия gzip команда gzip Linux должна быть установлена на хосте сегмента исходной базы данных.
lz4: Для использования сжатия lz4 команда lz4 Linux должна быть установлена на хосте сегмента исходной базы данных.
Рекомендуется: lz4 > gzip > Без сжатия
--port-base 9129 Во время передачи будет занят один порт
--local-ip Необходимо использовать IP-адрес, к которому может подключиться исходный репозиторий с локальной машины
Категория [transform]
--transform plain Преобразование формата или типа записываемых данных. Поддерживает plain / json / nil / tsbs / hanagdbc
Категория [writer]
--interval 100 миллисекунд Цикл пакетной загрузки данных MatrixGate
--writer stream MatrixGate записывает данные в YMatrix через Writer. Поддерживает stream / nil

--stream-prepared
10 Вызов нескольких процессов slot одновременно в одной задаче
--stream-host mdw Имя хоста мастера YMatrix, к которому подключается MatrixGate. Предназначено для систем с несколькими сетевыми интерфейсами
--use-gzip auto При отправке данных в Segment можно настроить использование сжатия с помощью параметров auto/yes/no:
auto — предпочтительно использовать алгоритм сжатия zstd;
Установка --use-gzip=yes означает использование алгоритма сжатия gzip.
Установка --use-gzip=no отключит сжатие при передаче. Хотя это сэкономит небольшое количество CPU, значительно увеличит объём передаваемых сетевых данных. Мы рекомендуем использовать значение по умолчанию auto, за исключением случаев, когда база данных развернута на одном компьютере, и mxgate, и база данных находятся на одном хосте.
--max-seg-conn 128 Количество сегментов, запускаемых при получении данных из MatrixGate внешней таблицей. Увеличение этого параметра повышает потребление сетевых ресурсов.
--timing false После установки этого параметра в true MatrixGate будет добавлять информацию о времени в каждый INSERT при записи в журнал.
--insert-timeout 600000 Таймаут оператора INSERT MatrixGate.
Установка значения больше 0 вызовет таймаут после ожидания указанного времени в миллисекундах.
-I / --instrumentation disable Включить детектирование slot(s), поддерживает варианты disable / single / all:
disable означает отключение этой функции;
single означает включение детектирования только для slot[0].
all означает включение детектирования для всех слотов

--bytes-limit
Ограничение размера пакетной загрузки данных. Обеспечивает равномерное потребление данных при неравномерном потоке данных в MatrixGate. Эта функция отключена по умолчанию. Если включена, размер должен быть задан вручную, значения в диапазоне 0~INT_MAX

--auto-tune
false После установки этого параметра в true MatrixGate может регулировать количество слотов для задач записи.

--abort-by-pause-timeout
10000 После приостановки задачи, если достигнуто указанное время ожидания в этом параметре, данные, накопленные в памяти и готовые к записи в базу данных, будут автоматически отброшены. Допустимый диапазон этого параметра — 0~INT_MAX; рекомендуемый диапазон — 1000~10000, единица измерения — миллисекунды (мс); если установлено значение 0, эта функция отключается. Рекомендуется настраивать это значение значительно ниже, чем --request-timeout, чтобы гарантировать, что когда задача не приостановлена, для таймаута используется --request-timeout. Как только задача приостановлена, mxgate автоматически сравнивает два вышеуказанных параметра таймаута и вызывает ошибку таймаута по меньшему значению. Этот параметр настраивается только при условии writer=“stream”

2 Параметры командной строки

Примечание!
Параметры в этом разделе можно запускать в командной строке после запуска mxgate.

Имя параметра Имя подпараметра Описание
run Запустить MatrixGate из командной строки
start Запустить фоновый процесс MatrixGate
stop Завершить фоновый процесс MatrixGate
-f / --force Принудительно завершить процесс MatrixGate
--grpc-port Завершить процесс MatrixGate, прослушивающий указанный порт, посредством отправки gRPC-запроса
status Вывести статус фонового процесса MatrixGate
config Вывести полный файл конфигурации
log Показать последние 10 записей журнала
-n / --lines int Указать количество последних записей журнала для отображения; параметр int обязателен
version Отобразить версию
help Показать справку и список параметров
-C / --config Загрузить файл конфигурации; в настоящее время поддерживается как подпараметр для start / run
-p / --pid ID процесса экземпляра MatrixGate; в настоящее время поддерживается как подпараметр для stop / log / watch / pause / resume
--job Задача (Job), для которой устанавливаются параметры. Поскольку каждая задача размещается в таблице, на практике достаточно указать соответствующее имя таблицы; в настоящее время поддерживается как подпараметр для stop / log / watch / pause / resume
set --stream-prepared-cli Установить количество активных слотов записи в задаче записи
࠾ По умолчанию --stream-prepared-cli равен 10
࠾ Пример: mxgate set --stream-prepared-cli 3
--job-intervalУстановить интервал работы ETL (извлечение-преобразование-загрузка) для задачи записи (единица измерения: миллисекунды, мс)
࠾ По умолчанию --job-interval равен 100
࠾ Пример: mxgate set --job-interval 150
--high-water-markУстановить высокий уровень (порог нагрузки записи) для целевой задачи
࠾ По умолчанию --high-water-mark равен 0
࠾ Пример: mxgate set --high-water-mark 20
--disable-high-water-markУстановить, следует ли отключить порог высокого уровня
࠾ По умолчанию --disable-high-water-mark равен false
࠾ Пример: mxgate set --disable-high-water-mark=true

--auto-tune
Установить, включена ли автоматическая настройка количества слотов
࠾ Включить для всех задач: mxgate set --auto-tune=true
࠾ Выключить для всех задач: mxgate set --auto-tune=false
࠾ Включить для конкретной задачи: mxgate set --auto-tune=true --job public.t1
get --stream-prepared-get Получить количество слотов записи в задаче записи
࠾ Пример: mxgate get --stream-prepared-get
--stream-status-getПолучить статус слотов записи в задаче записи
࠾ Пример: mxgate get --stream-status-get
--job-interval-getПолучить интервал работы задачи записи
࠾ Пример: mxgate get --job-interval-get
--job-listПолучить информацию обо всех задачах записи
࠾ Пример: mxgate get --job-list
--job-stateПолучить статус всех задач записи
࠾ Пример: mxgate get --job-state
--current-configПолучить текущую конфигурацию процесса MatrixGate
࠾ Пример: mxgate get --current-config
--kafka-topicsПолучить все тестовые топики Kafka
࠾ Пример: mxgate get --kafka-topics
--kafka-messagesПолучить все сообщения из определённого топика Kafka
࠾ Пример: mxgate get --kafka-messages
--source-pressureПолучить нагрузку на стороне источника данных для целевой задачи
࠾ Пример: mxgate get --source-pressure
--high-water-mark-getПолучить установленный высокий уровень (порог нагрузки записи) для целевой задачи
࠾ Пример: mxgate get --high-water-mark-get

--auto-tune-status
Получить статус автоматической настройки количества слотов записи в задачах записи
࠾ Получить статус автонастройки для всех задач записи: mxgate get --auto-tune-status
࠾ Получить статус автонастройки для конкретной задачи: mxgate get --auto-tune-status --job public.t1
pause -X / --disconnect При приостановке mxgate указывает, следует ли разорвать соединение слотов между Segment и mxgate (это прервёт все слоты для всех задач)
࠾ Пример: mxgate pause -X
-S / --sync Без этого подпараметра mxgate приостанавливается асинхронно; при явном указании mxgate ожидает, пока все задачи записи не будут приостановлены, прежде чем завершить выполнение команды
࠾ Пример: mxgate pause -S
resume-R / --reload При возобновлении записи указывает, следует ли перезагрузить метаданные задачи
࠾ Пример: mxgate resume -R
watch
-D / --daemon-addr Адрес gRPC-сервиса (host:port) процесса MatrixGate
-i / --info Непрерывно выводить описание каждого столбца, отображаемого командой mxgate watch
࠾ Пример: mxgate watch --info
-T / --time Указать продолжительность (в секундах, с) мониторинга метрик
࠾ По умолчанию -1, что означает непрерывный вывод
࠾ Пример: mxgate watch --time 200
-H / --history Показать исторические метрики
࠾ Пример: mxgate watch --history
--watch-latency Непрерывно выводить метрики, связанные с задержкой
࠾ Пример: mxgate watch --watch-latency
--watch-start Просмотреть исторические записи начала, по умолчанию за последние 24 часа до текущего времени, например, 2022-04-11 11:09:20
࠾ Пример: mxgate watch --watch-start
--watch-end Просмотреть исторические записи завершения, по умолчанию — текущее время, например, 2022-04-11 11:09:20
࠾ Пример: mxgate watch --watch-end
--watch-duration Просмотреть историческую длительность
࠾ Пример: mxgate watch --watch-duration

Примечание!
Обзор основных функций MatrixGate см. в разделе Основные функции MatrixGate.