本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 VIEW、 ALTER EXTERNAL VIEW和 DROP 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 帳戶 和 區域中。