Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Обслуживание и мониторинг
Оптимизация производительности
Устранение неполадок
Справочное руководство
Справочник по SQL
Часто задаваемые вопросы
Доступ к файлам означает импорт существующих текстовых файлов данных в целевую таблицу. Как правило, текстовые файлы находятся в формате CSV.
Формат тестового файла CSV следующий: первая строка — это заголовок (HEADER), далее идут строки с данными. Типы трёх столбцов — временная метка, целое число и строка:
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
)DISTRIBUTED BY(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 посредством конвейера (pipe). mxgate выполняет загрузку данных в таблицу dest базы данных test методом test.
Внимание!
Так как mxgate не требует наличия заголовков в файле при загрузке данных, командаtail -n +2используется для вывода данных, начиная со второй строки.
Более подробную информацию об использовании mxgate см. в документации