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 中的檢視,以防止不在人力資源部門工作的員工查看個人識別資訊 (PII)。

  • 請確定使用者無法存取不完整的記錄。透過將某些篩選條件套用至 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

End-to-end 範例

首先,根據您的 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、 scan_files、 returned_rows、 returned_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、 error_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、資訊。如需詳細資訊,請參閱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、block_read、max_blocks_read、max_blocks_to_disk、block_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、資料列、red_rows、temp、 block_count、 query_scan_size。如需詳細資訊,請參閱STV_TBL_PERM

STV_TBL_TRANS

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

SVCS_EXPLAIN

欄位:Plannode、資訊。如需詳細資訊,請參閱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。如需詳細資訊,請參閱SVCSSUMMARYPARTITION

SVCS_S3QUERY_SUMMARY

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

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

資料欄:資料列、位元組、標籤、資料列_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

資料欄:位置、Rowid、colname、Original_value、Remoded_value。如需詳細資訊,請參閱SVL_SPECTRUM_SCAN_ERROR

SVL_STATEMENTTEXT

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

SVL_STORED_PROC_CALL

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

SVL_STORED_PROC_MESSAGES

欄位:查詢文字。如需詳細資訊,請參閱SVL_STORED_PROC_MESSAGES

SVL_UDF_LOG

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

SVV_DISKUSAGE

欄位:名稱、col、tbl、區塊、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 中建立的視觀表的考量事項和限制。

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

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

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

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

    • 系統表

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

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

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

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