各外部テーブルに関連付けられているすべてのエラー テーブルのリストを見つける方法はありますか。
実際の要件: Greenplum で外部テーブルを使用しており、ソースからファイル形式でデータを取得し、外部テーブルを介して Greenplum にデータを取り込みます。拒否されたすべての行をソース システムに報告したい
よろしく、グルプリート
各外部テーブルに関連付けられているすべてのエラー テーブルのリストを見つける方法はありますか。
実際の要件: Greenplum で外部テーブルを使用しており、ソースからファイル形式でデータを取得し、外部テーブルを介して Greenplum にデータを取り込みます。拒否されたすべての行をソース システムに報告したい
よろしく、グルプリート
基本的に、組み込み関数 gp_read_error_log() を使用して外部テーブル名を渡すだけで、ファイルに関連付けられたエラーを取得できます。上記のリンクにも例があります。
fmterrtbl
pg_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 になります。