AWS Glue Data Catalog 檢視 - Amazon Redshift

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

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 資源的權限

先決條件

在 Data Catalog 中建立視觀表之前,請確定您已完成以下先決條件:

  • 確定您的 IAM 角色已定義下列信任政策。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  • 您也需要下列傳遞角色政策。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1", "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] } } } ] }
  • 最後,您也需要下列權限。

    • Glue:GetDatabase

    • Glue:GetDatabases

    • Glue:CreateTable

    • Glue:GetTable

    • Glue:UpdateTable

    • Glue:DeleteTable

    • Glue:GetTables

    • Glue:SearchTables

    • Glue:BatchGetPartition

    • Glue:GetPartitions

    • Glue:GetPartition

    • Glue:GetTableVersion

    • Glue: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 VIEWALTER EXTERNAL VIEWDROP EXTERNAL VIEW

安全記錄

當查詢參考多方向的黏附檢視時,Redshift 會遮罩 Redshift 系統日誌中記錄的中繼資料。多方位表示檢視支援不同查詢引擎的 SQL 方言,例如 Redshift 和 Amazon EMR。下表中的資料會針對具有相同查詢 ID 的所有查詢進行遮罩。下表列出套用安全記錄的系統檢視和資料欄。

系統資料表 敏感資料欄
SYS_EXTERNAL_QUERY_DETAIL

資料欄:source_type、total_partitions、 qualified_partitions、 scanned_files、return_rows、return_bytes、file_format、file_location、external_query_text、 warning_message。如需詳細資訊,請參閱SYS_EXTERNAL_QUERY_DETAIL

SYS_EXTERNAL_QUERY_ERROR

資料欄:file_location、Rowid、Column_name、Original_value、modified_value、 trigger、 action、 action_value、rror_code。如需詳細資訊,請參閱SYS_EXTERNAL_QUERY_ERROR

SYS_QUERY_DETAIL

資料欄:Step_name、table_id、table_name、put_bytes、 input_rows、output_bytes、 output_rows、block_read、block_write、local_read_IO、remote_read_IO、svered_block_local_disk、svered_block_remote_disk。如需詳細資訊,請參閱SYS_QUERY_DETAIL

SYS_QUERY_HISTORY

資料欄:return_rows、return_bytes。如需詳細資訊,請參閱SYS_QUERY_HISTORY

STL_AGGR

資料欄:資料列、位元組、tbl、類型。如需詳細資訊,請參閱STL_AGGR

STL_BCAST

資料欄:資料列、位元組、封包。如需詳細資訊,請參閱STL_BCAST

STL_DDLTEXT

資料欄:文字。如需詳細資訊,請參閱STL_DDLTEXT

STL_DELETE

資料欄:資料列、tbl。如需詳細資訊,請參閱STL_DELETE

STL_DIST

資料欄:資料列、位元組、封包。如需詳細資訊,請參閱STL_DIST

STL_EXPLAIN

資料欄:Plannode、 info。如需詳細資訊,請參閱STL_EXPLAIN

STL_HASH

資料欄:資料列、位元組、tbl、est_rows。如需詳細資訊,請參閱STL_HASH

STL_HASHJOIN

資料欄:資料列、tbl、num_parts、 join_type。如需詳細資訊,請參閱STL_HASHJOIN

STL_INSERT

資料欄:資料列、tbl。如需詳細資訊,請參閱STL_INSERT

STL_LIMIT

資料欄:資料列。如需詳細資訊,請參閱STL_LIMIT

STL_MERGE

資料欄:資料列。如需詳細資訊,請參閱STL_MERGE

STL_MERGEJOIN

資料欄:資料列、tbl。如需詳細資訊,請參閱STL_MERGEJOIN

STL_NESTLOOP

資料欄:資料列、tbl。如需詳細資訊,請參閱STL_NESTLOOP

STL_PARSE

資料欄:資料列。如需詳細資訊,請參閱STL_PARSE

STL_PLAN_INFO

資料欄:資料列、位元組。如需詳細資訊,請參閱STL_PLAN_INFO

STL_PROJECT

資料欄:資料列、tbl。如需詳細資訊,請參閱STL_PROJECT

STL_QUERY

資料欄: querytxt。如需詳細資訊,請參閱STL_QUERY

STL_QUERY_METRICS

欄:max_rows、列、max_blocks_read、block_read、max_blocks_to_disk、block_to_disk、max_query_scan_size、 query_scan_size。如需詳細資訊,請參閱STL_QUERY_METRICS

STL_QUERYTEXT

資料欄:文字。如需詳細資訊,請參閱STL_QUERYTEXT

STL_RETURN

資料欄:資料列、位元組。如需詳細資訊,請參閱STL_RETURN

STL_SAVE

資料欄:資料列、位元組、tbl。如需詳細資訊,請參閱STL_SAVE

STL_SCAN

欄:資料列、位元組、擷取、類型、tbl、Rows_pre_filter、perm_table_name、Scaned_mega_value。如需詳細資訊,請參閱STL_SCAN

STL_SORT

資料欄:資料列、位元組、tbl。如需詳細資訊,請參閱STL_SORT

STL_TR_CONFLICT

資料欄:table_id。如需詳細資訊,請參閱STL_TR_CONFLICT

STL_UNDONE

資料欄:table_id。如需詳細資訊,請參閱STL_UNDONE

STL_UNIQUE

資料欄:資料列、類型、位元組。如需詳細資訊,請參閱STL_UNIQUE

STL_UTILITYTEXT

資料欄:文字。如需詳細資訊,請參閱STL_UTILITYTEXT

STL_WINDOW

資料欄:資料列。如需詳細資訊,請參閱STL_WINDOW

STV_BLOCKLIST

欄:col、tbl、num_values、minvalue、maxvalue。如需詳細資訊,請參閱STV_BLOCKLIST

STV_EXEC_STATE

資料欄:資料列、位元組、標籤。如需詳細資訊,請參閱STV_EXEC_STATE

STV_LOCKS

資料欄:table_id。如需詳細資訊,請參閱STV_LOCKS

STV_QUERY_METRICS

資料欄:資料列、max_rows、區塊_read、max_blocks_read、Max_blocks_to_disk、區塊_to_disk、Max_query_scan_size、Query_scan_size。如需詳細資訊,請參閱STV_QUERY_METRICS

STV_STARTUP_RECOVERY_STATE

資料欄:table_id、table_name。如需詳細資訊,請參閱STV_STARTUP_RECOVERY_STATE

STV_TBL_PERM

資料欄:id、資料列、 sorted_rows、temp、block_count、 query_scan_size。如需詳細資訊,請參閱STV_TBL_PERM

STV_TBL_TRANS

資料欄:id、資料列、大小。如需詳細資訊,請參閱STV_TBL_TRANS

SVCS_EXPLAIN

資料欄:Plannode、 info。如需詳細資訊,請參閱SVCS_EXPLAIN

SVCS_PLAN_INFO

資料欄:資料列、位元組。如需詳細資訊,請參閱SVCS_PLAN_INFO

SVCS_QUERY_SUMMARY

資料欄:步驟、資料列、位元組、 rate_row、 rate_byte、 label、 rows_pre_filter。如需詳細資訊,請參閱SVCS_QUERY_SUMMARY

SVCS_S3LIST

欄:儲存貯體、字首、max_file_size、avg_file_size。如需詳細資訊,請參閱SVCS_QUERY_SUMMARY

SVCS_S3LOG

欄:訊息。如需詳細資訊,請參閱SVCS_QUERY_SUMMARY

SVCS_S3PARTITION_SUMMARY

欄:total_partitions、 qualified_partitions、min_assigned_partitions、max_assigned_partitions、avg_assigned_partitions。如需詳細資訊,請參閱SVCS_S3PARTITION_SUMMARY

SVCS_S3QUERY_SUMMARY

欄:external_table_name、file_format、s3_scanned_rows、s3_scanned_bytes、s3query_returned_rows、s3query_returned_bytes。如需詳細資訊,請參閱SVCS_S3QUERY_SUMMARY

SVL_QUERY_METRICS

資料欄:Step_label、Scan_row_count、 join_row_count、nested_loop_join_row_count、return_row_count、Spectrum_scan_row_count、Spectrum_scan_size_mb。如需詳細資訊,請參閱SVL_QUERY_METRICS

SVL_QUERY_METRICS_SUMMARY

資料欄:Step_label、Scan_row_count、 join_row_count、nested_loop_join_row_count、return_row_count、Spectrum_scan_row_count、Spectrum_scan_size_mb。如需詳細資訊,請參閱SVL_QUERY_METRICS_SUMMARY

SVL_QUERY_REPORT

資料欄:資料列、位元組、標籤、Rows_pre_filter。如需詳細資訊,請參閱SVL_QUERY_REPORT

SVL_QUERY_SUMMARY

資料欄:資料列、位元組、資料列_pre_filter。如需詳細資訊,請參閱SVL_QUERY_SUMMARY

SVL_S3LIST

欄:儲存貯體、字首、max_file_size、avg_file_size。如需詳細資訊,請參閱SVL_S3LIST

SVL_S3LOG

欄:訊息。如需詳細資訊,請參閱SVL_S3LOG

SVL_S3PARTITION

資料欄:資料列、位元組、標籤、資料列_pre_filter。如需詳細資訊,請參閱SVL_S3PARTITION

SVL_S3PARTITION_SUMMARY

欄:total_partitions、 qualified_partitions、min_assigned_partitions、max_assigned_partitions、avg_assigned_partitions。如需詳細資訊,請參閱SVL_S3PARTITION_SUMMARY

SVL_S3QUERY

欄:external_table_name、file_format、s3_scanned_rows、s3_scanned_bytes、s3query_returned_rows、s3query_returned_bytes。如需詳細資訊,請參閱SVL_S3QUERY

SVL_S3QUERY_SUMMARY

欄:external_table_name、file_format、s3_scanned_rows、s3_scanned_bytes、s3query_returned_rows、s3query_returned_bytes。如需詳細資訊,請參閱SVL_S3QUERY_SUMMARY

SVL_S3RETRIES

欄:file_size、位置、訊息。如需詳細資訊,請參閱SVL_S3RETRIES

SVL_SPECTRUM_SCAN_ERROR

資料欄: location、rowid、colname、Original_value、modified_value。如需詳細資訊,請參閱SVL_SPECTRUM_SCAN_ERROR

SVL_STATEMENTTEXT

欄:類型、文字。如需詳細資訊,請參閱SVL_STATEMENTTEXT

SVL_STORED_PROC_CALL

資料欄: querytxt。如需詳細資訊,請參閱SVL_STORED_PROC_CALL

SVL_STORED_PROC_MESSAGES

資料欄: querytext。如需詳細資訊,請參閱SVL_STORED_PROC_MESSAGES

SVL_UDF_LOG

資料欄: funcname。如需詳細資訊,請參閱SVL_UDF_LOG

SVV_DISKUSAGE

資料欄:name、col、tbl、blocknum、num_values、minvalue、maxvalue。如需詳細資訊,請參閱SVV_DISKUSAGE

SVV_QUERY_STATE

資料欄:資料列、位元組、標籤。如需詳細資訊,請參閱SVV_QUERY_STATE

SVV_TABLE_INFO

資料欄:table_id、table。如需詳細資訊,請參閱SVV_TABLE_INFO

SVV_TRANSACTIONS

資料欄:關聯。如需詳細資訊,請參閱SVV_TRANSACTIONS

考量與限制

以下是適用於在 Data Catalog 中建立的視觀表的考量事項和限制。

  • AWS Glue Data Catalog 只有 RA3 佈建叢集或 Redshift Serverless 工作群組才支援檢視。

  • 您無法建立以其他視觀表為基礎的 Data Catalog 視觀表。

  • 在 Data Catalog 視觀表中,您只能有 10 個基本資料表。

  • 視觀表的定義者必須擁有基本資料表的完整 SELECT GRANTABLE 權限。

  • 視觀表只能包含 Lake Formation 物件和內建項目。視觀表內不允許使用以下物件。

    • 系統表

    • 使用者定義的函數 (UDF)

    • 不在 Lake Formation 受管資料共用中的 Redshift 資料表、視觀表、具體化視觀表和後期繫結視觀表。

  • 視觀表不能包含巢狀 Redshift Spectrum 表。

  • AWS Glue 檢視基本物件的表示方式必須與檢視位於相同的 AWS 帳戶 和 區域。