400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
系统配置参数
SQL 参考
常见问题(FAQ)
新架构 FAQ
集群部署 FAQ
SQL 查询 FAQ
MatrixGate FAQ
运维 FAQ
监控告警 FAQ
PXF FAQ
PLPython FAQ
性能 FAQ
文件接入是指将现有的文本数据文件导入到目标数据表。文本文件通常是 CSV 格式。
创建 CSV 文件:
$ vi rows.csv
测试 CSV 文件格式如下,第一行为字段名,后面是数据行,3 列的类型分别为时间戳、整型和字符串:
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
的模式(Schema)如下,与 CSV 文件格式一致:
=# CREATE TABLE dest(
time timestamp,
c1 int,
c2 text
)USING MARS3
DISTRIBUTED BY(c1)
ORDER BY(time,c1);
下面介绍几种常用的方法将文件内容导入到目标表中:
COPY
是 YMatrix 自带的 SQL 命令,可以将在主节点(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
在数据量大的时候性能更好,并且数据文件和 Master 也可以分开部署。
$ 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。mxgate 以 stdin 的方式接入数据到 test
库的 dest
表中。
注意!
因为 mxgate 进行数据接入时不需要文件头,所以使用tail -n +2
命令,从第二行进行输出。
更多的 mxgate 使用方法请参考文档