Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Расширение кластера
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Конфигурация
Справочник по 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 заключается в использовании высокоскоростного инструмента доступа к данным mxgate, предоставляемого YMatrix, для импорта данных.
По сравнению с 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 ','
Приведённая выше команда передаёт данные из файла rows.csv в mxgate посредством конвейера (pipeline). mxgate осуществляет загрузку данных в таблицу dest базы данных test методом test.
Внимание!
Так как mxgate не требует наличия заголовков в файле данных, командаtail -n +2используется для вывода данных, начиная со второй строки.
Дополнительную информацию об использовании mxgate см. в документации