Начало работы
Подключение
Тесты производительности
Развёртывание
Использование данных
Загрузка данных
Миграция данных
Запрос данных
Управление кластерами
Обновление
Глобальное обслуживание
Масштабирование
Мониторинг
Безопасность
Лучшие практики
Технические принципы
Типы данных
Хранилище
Исполняющий движок
Потоковая обработка (Domino)
MARS3 Индексы
Расширения
Расширенные функции
Расширенный запрос
Федеративные запросы
Grafana
Резервное копирование и восстановление
Аварийное восстановление
Руководство
Настройка производительности
Устранение неполадок
Инструменты
Параметры конфигурации
SQL-команда
Часто задаваемые вопросы
Ввод файлов — это процесс импорта существующих текстовых файлов с данными в целевую таблицу. Как правило, текстовые файлы имеют формат CSV.
Создайте CSV-файл:
$ vi rows.csv
Тестовый CSV-файл имеет следующий формат. Первая строка содержит названия столбцов, а последующие строки — данные. Три столбца имеют типы timestamp, integer и string соответственно:
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
Целевая база данных — test, а схема целевой таблицы dest соответствует формату CSV-файла:
=# CREATE TABLE dest(
time timestamp,
c1 int,
c2 text
)USING MARS3
DISTRIBUTED BY(c1)
ORDER BY(time,c1);
Ниже приведены несколько распространённых способов импорта содержимого файла в целевую таблицу:
Команда COPY — это встроенная SQL-команда в YMatrix, предназначенная для импорта файлов данных, расположенных на узле Master (мастер-узле), в целевую таблицу.
Сначала подключитесь к целевой базе данных с помощью psql, затем выполните команду COPY:
[mxadmin@mdw ~]$ psql test
psql (12)
Type "help" for help.
test=# COPY dest FROM '/home/mxadmin/rows.csv' DELIMITER ',' HEADER;
COPY 3
Параметр DELIMITER задаёт разделитель полей. Опция HEADER указывает, что строка заголовка должна быть пропущена при импорте.
Метод COPY прост в использовании, однако имеет следующие ограничения:
MatrixGate использует высокоскоростной инструмент ввода данных YMatrix — mxgate — для импорта данных.
По сравнению с COPY, mxgate обеспечивает лучшую производительность при работе с большими объёмами данных и позволяет размещать файлы данных независимо от мастер-узла.
$ tail -n +2 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 ','
Приведённая выше команда использует конвейер (pipe), чтобы перенаправить данные из rows.csv (начиная со второй строки) в mxgate. Утилита mxgate вводит данные из стандартного потока ввода (stdin) в таблицу dest базы данных test.
Примечание!
Поскольку при вводе данных с помощьюmxgateзаголовок файла не требуется, командаtail -n +2используется для вывода содержимого файла, начиная со второй строки.
Дополнительную информацию об mxgate см. в документации.