0

各外部テーブルに関連付けられているすべてのエラー テーブルのリストを見つける方法はありますか。

実際の要件: Greenplum で外部テーブルを使用しており、ソースからファイル形式でデータを取得し、外部テーブルを介して Greenplum にデータを取り込みます。拒否されたすべての行をソース システムに報告したい

よろしく、グルプリート

4

2 に答える 2

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() を使用して外部テーブル名を渡すだけで、ファイルに関連付けられたエラーを取得できます。上記のリンクにも例があります。

于 2016-02-24T16:28:49.817 に答える
1

fmterrtblpg_exttableのフィールドには、外部テーブルのエラー テーブルの 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 になります。

于 2016-03-13T14:22:10.787 に答える