We are trying to insert a batch of records(100k) in green plum. In case a particular record has some issue, is there a way to trace back to the specific record which is causing the issue? 
Currently, it's failing the whole batch and we are trying to filter the error records.
If you are using the COPY command to load or gpfdist and external tables to do the insert, you can set a segment reject limit and an error log that will allow the command to insert all good rows with any rejected rows placed in the error log.   The default is to roll back everything on one error.  You can check the Greenplum documentation or, in psql, use \h COPY or \h CREATE EXTERNAL TABLE.   A simple example with COPY is:
COPY your_table from '/your_path/your_file' with delimiter as '|' 
LOG ERRORS
SEGMENT REJECT LIMIT 1000 rows;
That means it will log up to 1000 bad rows before rolling everything back.  Set as needed for your data.   You can see what bad rows are in the log with:
select gp_read_error_log('your_table');
One of the columns in the log shows the bad row with exactly where and what the error is.
Jim McCann
Pivotal
Track error records when doing a multi row update in Greenplum(Postgres 8.4)?