Greenplum:查找任何外部表的关联错误表

时间:2016-02-23 11:48:48

标签: greenplum external-tables

有没有办法找出与每个外部表关联的所有错误表的列表。

实际要求:我使用Greenplum中的外部表和来自源的文件形式的数据,通过外部表将数据提取到Greenplum。我想将所有被拒绝的行报告给源系统

此致 Gurupreet

2 个答案:

答案 0 :(得分:1)

http://gpdb.docs.pivotal.io/4340/admin_guide/load/topics/g-viewing-bad-rows-in-the-error-table-or-error-log.html

您基本上只使用内置函数gp_read_error_log()并传入外部表名以获取与文件关联的错误。上面的链接也有一个例子。

答案 1 :(得分:1)

pg_exttable的字段fmterrtbl包含任何外部表的错误表的oid。因此,查找数据库中所有外部表的错误表的查询是:

SELECT
    external_namespace.nspname AS external_schema, external_class.relname AS external_table,
    error_namespace.nspname AS error_schema, error_class.relname AS error_table
  FROM pg_exttable AS external_tables
    INNER JOIN pg_class AS external_class ON external_class.oid = external_tables.reloid
    INNER JOIN pg_namespace AS external_namespace ON external_namespace.oid = external_class.relnamespace
    LEFT JOIN (
      pg_class AS error_class 
      INNER JOIN pg_namespace AS error_namespace ON error_namespace.oid = error_class.relnamespace
    ) ON error_class.oid = external_tables.fmterrtbl

对于没有错误表的外部表,error_schema和error_table字段将为NULL。