我正尝试从管道分隔的文本文件中通过COPY DIRECT
在HP Vertica中加载分段表。
COPY CSI.MKT_RSRCH_AGG_ALL FROM '/opt/vertica/CSI/MKT_RSRCH_AGG_ALL.txt' DELIMITER '|' NULL '' DIRECT;
结果
Rows Loaded
-------------
582006
dbadmin=> select get_num_rejected_rows();
get_num_rejected_rows
-----------------------
6046
我无法弄清楚导致数据被拒绝的原因。
我的所有维度都定义为NOT NULL
。
我可以检查被拒绝记录的任何日志/信息。
答案 0 :(得分:6)
我首先要验证数据的完整性。然后,我会将任何被拒绝的行发送到文件。您可以在COPY
命令中specify this:
COPY CSI.MKT_RSRCH_AGG_ALL
FROM '/opt/vertica/CSI/MKT_RSRCH_AGG_ALL.txt'
DELIMITER '|'
NULL ''
REJECTED DATA '/path/to/rejected/data'
DIRECT;
如果您还没有,我建议您开始使用流名称来识别流程:
COPY ... DIRECT STREAM NAME 'My stream name';
您可以轻松监控流:
SELECT * FROM v_monitor.load_streams WHERE stream_name = 'My stream name';
<强>文档强>