copy 数据导入工具
copy 命令无疑是最常用的导入工具了, 它是Vertica的bulk copy工具, 性能非常好. 可以直接从文本文件或者压缩文件导入数据,
支持的压缩格式有: BZIP | GZIP | LZO | UNCOMPRESSED
支持的文件格式有: csv | FIXEDWIDTH | json | ORC | parquet
设置为json 格式设置 parser.
从数据库 node 节点导入
从数据库节点的文件系统中导入数据, 需要有 vertica 的 superuser 的权限, 一般用比较少. 数据文件可以仅仅存放在某个节点上, 或者所有节点上. 比如在节点2上, 使用 on v_dbname_node0002 ; 在所有节点上, 使用 ON ANY NODE, 下面是一个示例
1 | COPY schema.table |
从客户端本地导入(copy local)
今天使用过,发现若是平面文件存在空行,会自动跳过,但若有对应列存在’NULL’值,这行也会不处理。
(工作时间,没细查,尚不知道是目标表该列定义为数值型的原因,还是因为只要是NULL就会导致问题。)
100多列,3万行,大概1-2秒就能完成。
1 | COPY schema.table |
导出数据到本地文件
可以使用 vsql 命令行工具导出数据到本地文件, vsql 有非常强大的输出格式定制功能, 我们甚至可以使用 html 模版进行文件的导出.
1 | vsql -U username -w passwd -h testdb01 -d vmart "select * from export_query_result " -Aq -P footer=off -F ',' -o "/tmp/example.csv" |
export table 到另一个 vertica 集群中
1 | --首先执行连接目标集群 |