Начало работы
Подключение
Тесты производительности
Развёртывание
Использование данных
Загрузка данных
Миграция данных
Запрос данных
Управление кластерами
Обновление
Глобальное обслуживание
Масштабирование
Мониторинг
Безопасность
Лучшие практики
Технические принципы
Типы данных
Хранилище
Исполняющий движок
Потоковая обработка (Domino)
MARS3 Индексы
Расширения
Расширенные функции
Расширенный запрос
Федеративные запросы
Grafana
Резервное копирование и восстановление
Аварийное восстановление
Графовая база данных
Введение
Предложения
Функции
Расширенные темы
Руководство
Настройка производительности
Устранение неполадок
Инструменты
Параметры конфигурации
SQL-команда
Часто задаваемые вопросы
Инструктивное видео доступно по ссылке YMatrix Data Ingestion
MatrixGate, сокращённо mxgate — это высокопроизводительный инструмент загрузки данных, входящий в состав YMatrix. Расположен в каталоге установки YMatrix по пути bin/mxgate. В настоящее время поддерживает загрузку данных через интерфейсы SDK, HTTP и STDIN. Поддерживаемые форматы данных: TEXT и CSV.
Загрузка данных с использованием mxgate значительно превосходит производительность нативных операторов INSERT, поскольку mxgate взаимодействует напрямую с узлами данных (Segments), минуя мастер-узел (Master) и устраняя его как узкое место.
MatrixGate в настоящее время поддерживает следующие функции:
Рабочий процесс загрузки данных в MatrixGate показан ниже:

Сравнение методов INSERT и MatrixGate:
| Метод записи | Преимущества | Недостатки | Сценарии использования |
|---|---|---|---|
| Прямой INSERT | Простой интерфейс | Низкая пропускная способность | Сценарии с низкой нагрузкой: сотни тысяч точек данных в секунду |
| MatrixGate | Высокая пропускная способность Почти в реальном времени |
Требуется дополнительное развертывание и эксплуатационные усилия | Сценарии с высокой нагрузкой: миллионы точек данных в секунду |
Тесты показывают, что производительность загрузки данных с помощью MatrixGate примерно в 79 раз выше, чем у InfluxDB.
MatrixGate предоставляет следующие режимы работы:
Ниже приведены примеры использования этих режимов для загрузки данных в таблицу. Схема целевой таблицы dest выглядит следующим образом:
=# CREATE TABLE dest(
time timestamp,
c1 int,
c2 text
)USING MARS3
DISTRIBUTED BY(c1)
ORDER BY(c1);
В режиме службы фоновый процесс работает постоянно и предоставляет HTTP-интерфейс для отправки временных рядов. Это стандартный метод, используемый в рабочих средах.
Для использования режима службы сначала необходимо создать файл конфигурации, указав параметры подключения к базе данных и целевой таблицы.
$ mxgate config --db-database test \
--db-master-host localhost \
--db-master-port 5432 \
--db-user mxadmin \
--target public.dest \
--time-format raw \
--delimiter ',' \
> mxgate.conf
Приведённая команда задаёт следующие параметры:
| Параметр | Описание | Значение |
|---|---|---|
| --db-database | Имя базы данных | test |
| --db-master-host | Хост базы данных | localhost |
| --db-master-port | Порт базы данных | 5432 |
| --db-user | Пользователь базы данных | mxadmin |
| --target | Целевая таблица | public.dest |
| --time-format | Формат времени | raw (обычный текст) |
| --delimiter | Разделитель полей | , |
Далее запустите MatrixGate, указав созданный файл конфигурации:
$ mxgate start --config mxgate.conf
******************************************************
__ __ _ _ ____ _
| \/ | __ _| |_ _ __(_)_ __/ ___| __ _| |_ ___
| |\/| |/ _` | __| '__| \ \/ / | _ / _` | __/ _ \
| | | | (_| | |_| | | |> <| |_| | (_| | || __/
|_| |_|\__,_|\__|_| |_/_/\_\\____|\__,_|\__\___|
Version: v5.2.0
Your Copy is Licensed to: yMatrix.cn; 2023-10-25; any
******************************************************
Launching MatrixGate daemon...
MatrixGate daemon started successfully
После успешного запуска используйте инструмент curl, чтобы отправить HTTP-запрос и передать данные.
Примечание!
В рабочих средах для отправки данных рекомендуется использовать HTTP-библиотеку вашего языка программирования.
Создайте тестовый файл данных rows_header.csv:
$ vi rows_header.csv
Содержимое:
public.dest
2021-01-01 00:00:00,1,a1
2021-01-01 00:00:00,2,a2
2021-01-01 00:00:00,3,a3
При отправке данных первая строка должна содержать имя целевой таблицы, так как служба MatrixGate может обрабатывать несколько таблиц.
Отправьте данные:
$ curl http://localhost:8086/ -X POST -H 'Content-Type: text/plain' --data-binary "@rows_header.csv"
По умолчанию MatrixGate привязывается к порту 8086. Этот порт можно изменить в конфигурационном файле.
Выполните запрос для проверки загруженных данных:
=# SELECT * FROM dest;
time | c1 | c2
---------------------+----+-----
2021-01-01 00:00:00 | 1 | a1
2021-01-01 00:00:00 | 2 | a2
2021-01-01 00:00:00 | 3 | a3
(3 rows)
Подробную информацию о параметрах API см. в документации.
MatrixGate предоставляет дополнительные команды для управления работой службы.
Проверка состояния
$ mxgate status
******************************************************
__ __ _ _ ____ _
| \/ | __ _| |_ _ __(_)_ __/ ___| __ _| |_ ___
| |\/| |/ _` | __| '__| \ \/ / | _ / _` | __/ _ \
| | | | (_| | |_| | | |> <| |_| | (_ic) | || __/
|_| |_|\__,_|\__|_| |_/_/\_\\____|\__,_|\__\___|
Version: v5.2.0
Your Copy is Licensed to: yMatrix.cn; 2023-10-25; any
******************************************************
PID 29429 alive
Launched At 2023-07-26 08:26:22
Up For 4 minutes 12 seconds
Binary /opt/ymatrix/matrixdb6/bin/mxgated
Log /home/mxadmin/gpAdminLogs/matrixgate.2023-07-26_082622-29429.log
Config /home/mxadmin/mxgate.conf
This output shows the service status, configuration file path, and log location, which are useful for troubleshooting.
Stop Service
$ mxgate stop
******************************************************
__ __ _ _ ____ _
| \/ | __ _| |_ _ __(_)_ __/ ___| __ _| |_ ___
| |\/| |/ _` | __| '__| \ \/ / | _ / _` | __/ _ \
| | | | (_| | |_| | | |> <| |_| | (_ic) | || __/
|_| |_|\__,_|\__|_| |_/_/\_\\____|\__,_|\__\___|
Version: v5.2.0
Your Copy is Licensed to: yMatrix.cn; 2023-10-25; any
******************************************************
PID 29429 stopped
Мониторинг службы
Используйте подкоманду mxgate watch для непрерывного мониторинга службы:
$ mxgate watch
******************************************************
__ __ _ _ ____ _
| \/ | __ _| |_ _ __(_)_ __/ ___| __ _| |_ ___
| |\/| |/ _` | __| '__| \ \/ / | _ / _` | __/ _ \
| | | | (_ic) | |_| | | |> <| |_| | (_ic) | || __/
|_| |_|\__,_|\__|_| |_/_/\_\\____|\__,_|\__\___|
Version:v5.2.0
Your Copy is Licensed to: yMatrix.cn; 2023-10-25; any
******************************************************
watch cmd will run forever until killed, you can use watch -T n to change the duration to n seconds;and you can use mxgate watch --info to get info of columns;
Time WCount ICount WSpeed/s ISpeed/s WBandWidth MB/S BlocakItems
2022-04-28 15:20:58 14478858 14527011 2598081 2627887 2395 0
2022-04-28 15:21:01 22231035 22633254 2584059 2702081 2222 0
2022-04-28 15:21:04 30494310 30500874 2754425 2622540 3551 0
2022-04-28 15:21:07 38004210 38032956 2503300 2510694 2862 0
2022-04-28 15:21:10 46188696 46298223 2728162 2755089 2227 0
...
Альтернативно, используйте mxgate watch --history для просмотра исторической статистики:
$ mxgate watch --history
******************************************************
__ __ _ _ ____ _
| \/ | __ _| |_ _ __(_)_ __/ ___| __ _| |_ ___
| |\/| |/ _` | __| '__| \ \/ / | _ / _` | __/ _ \
| | | | (_ic) | |_| | | |> <| |_| | (_ic) | || __/
|_| |_|\__,_|\__|_| |_/_/\_\\____|\__,_|\__\___|
Version: v5.2.0
Your Copy is Licensed to: yMatrix.cn; 2023-10-25; any
******************************************************
TIME RANGE | SPEED/S | BANDWIDTH MB/S | BLOCK ITEMS
2023-07-28 16:00:00-2023-07-28 17:00:00 | 2208010 | 1254.48 | 0
2023-07-28 17:00:00-2023-07-28 18:00:00 | 1157920 | 1327.00 | 0
2023-07-28 18:00:00-2023-07-28 19:00:00 | 2228666 | 2162.32 | 0
2023-07-28 19:00:00-2023-07-28 20:00:00 | 1371092 | 2881.30 | 0
2023-07-28 20:00:00-2023-07-28 21:00:00 | 1575320 | 2608.20 | 0
Command-line mode is used for one-time data file ingestion. The process exits after completion.
Using the same data file, remove the first line (table name), keeping only data rows, then execute:
$ cat rows.csv | mxgate --source stdin --db-database test --db-master-host localhost --db-master-port 5432 --db-user mxadmin --time-format raw --target public.dest --parallel 2 --delimiter ','
Другие способы загрузки данных из файлов см. в разделе Загрузка файлов.
Режим миграции MatrixGate обеспечивает миграцию одной таблицы с высокой скоростью. Поддерживается перенос таблиц из других кластеров Greenplum 5, Greenplum 6 или YMatrix в текущий кластер YMatrix. Основные сценарии использования:
Примечание!
Подробную информацию о режиме миграции см. в разделе Инструмент миграции одной таблицы — mxgate. Для миграции всей базы данных обратитесь к Инструменту миграции всей базы данных — mxshift.
Примечание!
Полный обзор инструмента MatrixGate доступен в разделе MatrixGate.