I would start by verifying the integrity of the data. Then, I would send any rejected rows to a file. You can specify this in your COPY
command:
COPY CSI.MKT_RSRCH_AGG_ALL
FROM '/opt/vertica/CSI/MKT_RSRCH_AGG_ALL.txt'
DELIMITER '|'
NULL ''
REJECTED DATA '/path/to/rejected/data'
DIRECT;
If you haven't already, I would recommend that you start using stream names to identify the process:
COPY ... DIRECT STREAM NAME 'My stream name';
You can than easily monitor the stream:
SELECT * FROM v_monitor.load_streams WHERE stream_name = 'My stream name';
Documentation