查詢目錄資料表 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

查詢目錄資料表

通常,您可以將目錄資料表和檢視 (其名稱開頭為 PG_ 的關係) 聯結至 Amazon Redshift 資料表和檢視。

目錄資料表使用 Amazon Redshift 不支援的各種資料類型。下列資料類型在將查詢對 Amazon Redshift 資料表聯結目錄資料表時受到支援:

  • bool

  • "char"

  • float4

  • int2

  • int4

  • int8

  • name

  • oid

  • text

  • varchar

如果您寫入加入查詢,其明確或隱含地參考擁有不受支援之資料類型的欄位,則查詢會傳回錯誤。除了 PG_SETTINGS 和LOCKS PG_ 資料表所使用的函數之外,某些目錄資料表中使用的SQL函數也不受支援。

例如,由於不支援的函數,無法在與 Amazon Redshift 資料表的聯結中查詢 PG_STATS 資料表。

下列目錄資料表和檢視提供的資訊很有用,您可以將其與 Amazon Redshift 資料表中的資訊結合在一起。因為資料類型和函數限制,部分資料表僅允許部分存取權。當您查詢可部分存取的資料表時,請小心地選取或參考其欄位。

以下資料表是可完整存取的,且未包含不受支援的函數類型:

以下資料表是可部分存取的,且包含一些不受支援類型、函數和遭截斷的文字欄位。文字欄位中的值遭截斷為 varchar(256) 值。

未在此處列出的目錄資料表為不可存取或可能未供 Amazon Redshift 管理員使用。然而,如果您的查詢不包含對 Amazon Redshift 資料表的加入時,您可以開放地查詢任何目錄資料表或檢視。

您可以使用 Postgres 目錄資料表中的OID資料欄作為聯結資料欄。例如,聯結條件會將每個 PG_DATABASE 資料列的內部資料庫物件 ID 與 STV__ 資料表中可見的 DBTBL_PERMID 資料欄pg_database.oid = stv_tbl_perm.db_id相符。當您從資料表中選取 時,資料OID欄是看不到的內部主索引鍵。目錄檢視沒有OID資料欄。

某些 Amazon Redshift 函數必須只能在運算節點上執行。如果查詢參考使用者建立的資料表, 會在運算節點SQL上執行。

僅參考目錄資料表 (具有 PG 字首的資料表,例如 PG_TABLE_DEF) 或不參考任何資料表的查詢,僅在領導節點上執行。

如果使用運算節點函數的查詢未參考使用者定義的資料表或 Amazon Redshift 系統資料表傳回下列錯誤。

[Amazon](500310) Invalid operation: One or more of the used functions must be applied on at least one user created table.