Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章
AWS Glue Data Catalog 檢視
此主題說明如何在 AWS Glue Data Catalog 中建立檢視。您可以使用 Data Catalog 中的檢視,存取不同資料來源中使用相同結構描述的資料。
透過在 Data Catalog 中建立檢視,您可以建立單一通用檢視結構描述和中繼資料物件以跨引擎使用,例如 Amazon Athena 和 Amazon EMR Spark。這樣做可讓您跨資料湖和資料倉儲使用相同的視觀表,以符合您的使用案例。Data Catalog 中的視觀表的特殊之處在於它們被歸類為定義者視觀表,其中存取權限由建立視觀表的使用者定義,而不是由查詢視觀表的使用者定義。以下是在 Data Catalog 中建立視觀表的一些使用案例和好處:
-
建立根據使用者需要的權限來限制資料存取的視觀表。例如,您可使用 Data Catalog 中的視觀表阻止不在 HR 部門工作的員工查看個人身分識別資訊 (PII)。
-
請確定使用者無法存取不完整的記錄。透過將某些篩選條件套用至 Data Catalog 視觀表,您可確保 Data Catalog 視觀表中的資料記錄始終是完整的。
-
Data Catalog 視觀表具有包含的安全優勢,可確保用於建立視觀表的查詢定義必須完成才能建立視觀表。此安全優勢表示 Data Catalog 中的視觀表不容易受到惡意播放程式的 SQL 命令影響。
-
Data Catalog 中的視觀表支援與一般視觀表相同的優點,例如允許使用者存取視觀表,而無需將基礎資料表提供給使用者。
若要在 Data Catalog 中建立視觀表,您必須具有 Spectrum 外部資料表、Lake Formation 受管資料共用中包含的物件,或 Apache Iceberg 資料表。
Data Catalog 視觀表的定義存放在 AWS Glue Data Catalog 中。使用 AWS Lake Formation 以透過資源授權、資料欄授權或以標籤為基礎的存取控制來授予存取權。如需有關在 Lake Formation 中授予和撤銷存取權的詳細資訊,請參閱授予和撤銷 Data Catalog 資源的權限。
當您使用 Amazon Redshift 執行參考此類 AWS Glue Data Catalog 檢視的查詢時,Amazon Redshift 會在記錄有關該查詢的中繼資料時,自動為特定系統資料表中的欄位和檢視欄加上遮罩。如需詳細資訊,請參閱《Amazon Redshift 管理指南》中的安全記錄。
必要條件
在 Data Catalog 中建立視觀表之前,請確定您已完成以下先決條件:
確定您的 IAM 角色已定義下列信任政策。
-
您也需要下列傳遞角色政策。
最後,您也需要下列權限。
Glue:GetDatabaseGlue:GetDatabasesGlue:CreateTableGlue:GetTableGlue:UpdateTableGlue:DeleteTableGlue:GetTablesGlue:SearchTablesGlue:BatchGetPartitionGlue:GetPartitionsGlue:GetPartitionGlue:GetTableVersionGlue:GetTableVersions
端對端範例
首先,根據您的 Data Catalog 資料庫建立外部結構描述。
CREATE EXTERNAL SCHEMA IF NOT EXISTS external_schema FROM DATA CATALOG DATABASE 'external_data_catalog_db' IAM_ROLE 'arn:aws:iam::123456789012:role/sample-role';
您現在可以建立 Data Catalog 視觀表。
CREATE EXTERNAL PROTECTED VIEW external_schema.remote_view AS SELECT * FROM external_schema.remote_table;
然後,您可以開始查詢您的視觀表。
SELECT * FROM external_schema.remote_view;
若要取得有關與 Data Catalog 中的視觀表相關之 SQL 命令的更多資訊,請參閱CREATE EXTERNAL VIEW、ALTER EXTERNAL VIEW 和 DROP EXTERNAL VIEW。
考量與限制
以下是適用於在 Data Catalog 中建立的視觀表的考量事項和限制。
只有 RA3 佈建叢集或 Redshift Serverless 工作群組才支援 AWS Glue Data Catalog 檢視。
您無法建立以其他視觀表為基礎的 Data Catalog 視觀表。
在 Data Catalog 視觀表中,您只能有 10 個基本資料表。
視觀表的定義者必須擁有基本資料表的完整
SELECT GRANTABLE權限。視觀表只能包含 Lake Formation 物件和內建項目。視觀表內不允許使用以下物件。
系統表
使用者定義的函數 (UDF)
不在 Lake Formation 受管資料共用中的 Redshift 資料表、視觀表、具體化視觀表和後期繫結視觀表。
視觀表不能包含巢狀 Redshift Spectrum 表。
視觀表基準物件的 AWS Glue 表示法必須與視觀表位於相同 AWS 帳戶 和區域中。