本文僅涉及 Vertica 導入導出本地文件, 以及兩個 Vertica 集群相互導出, 不涉及 Vertica 和 hdfs/Hive 導入導出和互操作.
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
, 下面是一個示例.
COPY schema.table
(column_a, column_b...)
FROM '/tmp/bigdata.csv.gz' GZIP
on v_dbname_node0002
WITH
DELIMITER AS ','
ENCLOSED BY '"'
SKIP 1
從客戶端本地導入(copy local)
copy local 更常用一些.
COPY schema.table
(column_a, column_b...)
FROM LOCAL '/tmp/bigdata.csv.gz' GZIP
WITH
DELIMITER AS ','
ENCLOSED BY '"'
SKIP 1
導出數據到本地文件
可以使用 vsql 命令行工具導出數據到本地文件, vsql 有非常強大的輸出格式定制功能, 我們甚至可以使用 html 模版進行文件的導出.
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 集群中
--首先執行連接目標集群
CONNECT TO VERTICA my_database USER my_user PASSWORD 'my_password' ON '10.205.10.00',5433;
--執行數據 Export
EXPORT TO VERTICA my_database.my_schema.my_table as
select * from my_schema.my_table where my_date_column=date'2017-06-13';
---關閉連接
DISCONNECT my_database;