Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
AWS Glue Data Catalog visualizzazioni
Questo argomento descrive come creare viste in AWS Glue Data Catalog. È possibile utilizzare le viste del Data Catalog per accedere ai dati in diverse fonti di dati utilizzando lo stesso schema.
Creando viste nel Data Catalog, puoi creare un unico schema di visualizzazione comune e un oggetto di metadati da utilizzare su più motori come Amazon Athena e Amazon EMR Spark. In questo modo puoi utilizzare le stesse viste su data lake e data warehouse e adattarle ai tuoi casi d'uso. Le viste nel Catalogo dati sono speciali in quanto sono classificate come viste di definizione, in cui le autorizzazioni di accesso sono definite dall'utente che ha creato la vista anziché dall'utente che esegue la query sulla vista. Di seguito sono riportati alcuni casi d'uso e i vantaggi derivanti dalla creazione di viste nel Catalogo dati:
-
Crea una vista che limiti l'accesso ai dati in base alle autorizzazioni necessarie all'utente. Ad esempio, puoi utilizzare le viste nel Catalogo dati per impedire ai dipendenti che non lavorano nel reparto delle risorse umane di visualizzare le informazioni di identificazione personale (PII).
-
Assicurati che gli utenti non possano accedere ai record incompleti. Applicando i filtri alla vista nel Catalogo dati, ti assicuri che i record di dati all'interno di una vista nel Catalogo dati siano sempre completi.
-
Le viste del Catalogo dati includono un vantaggio di sicurezza nel garantire che la definizione della query utilizzata debba essere completata per creare la vista. Questo vantaggio di sicurezza significa che le viste del Catalogo dati non sono suscettibili ai comandi SQL di utenti malintenzionati.
-
Le viste del Catalogo dati offrono gli stessi vantaggi delle viste normali, ad esempio consentono agli utenti di accedere a una vista senza rendere disponibile la tabella sottostante.
Per creare una vista nel Catalogo dati è necessario disporre di una tabella esterna Spectrum, un oggetto contenuto in un'unità di condivisione dati gestita da Lake Formation o una tabella Apache Iceberg.
Le definizioni delle viste del Catalogo dati sono archiviate nel AWS Glue Data Catalog. Utilizzalo AWS Lake Formation per concedere l'accesso tramite concessioni di risorse, concessioni di colonne o controlli di accesso basati su tag. Per ulteriori informazioni sull'assegnazione e la revoca dell'accesso a Lake Formation, consulta Granting and revoking permissions on Data Catalog resources.
Prerequisiti
Prima di poter creare una vista nel Catalogo dati, assicurati di aver soddisfatto i seguenti prerequisiti:
Assicurati che il ruolo IAM abbia la seguente policy di trust.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
È inoltre necessaria la seguente policy per il passaggio di ruoli.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1", "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] } } } ] }
Infine, sono necessarie anche le seguenti autorizzazioni.
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 esempio
Inizia creando uno schema esterno basato sul database Catalogo dati.
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';
Ora puoi creare una vista nel Catalogo dati.
CREATE EXTERNAL PROTECTED VIEW external_schema.remote_view AS SELECT * FROM external_schema.remote_table;
Puoi quindi iniziare a eseguire le query sulla tua vista.
SELECT * FROM external_schema.remote_view;
Per ulteriori informazioni sui comandi SQL relativi alle viste nel Catalogo dati, consulta CREATE EXTERNAL VIEW, ALTER EXTERNAL VIEW e DROP EXTERNAL VIEW.
Registrazione sicura
Redshift maschera i metadati registrati nei log di sistema Redshift quando una query fa riferimento a una vista collante multidialettale. Multidialetto significa che la vista supporta i dialetti SQL di diversi motori di query, come Redshift e Amazon EMR. I dati nelle tabelle seguenti sono mascherati per tutte le query con lo stesso ID di query. La tabella seguente elenca le viste di sistema e le colonne a cui è applicata la registrazione sicura.
Tabella di sistema | Colonne sensibili |
---|---|
SYS_EXTERNAL_QUERY_DETAIL | Colonne: source_type, total_partitions, qualified_partitions, scanned_files, returned_rows, returned_bytes, file_format, file_location, external_query_text, warning_message. Per ulteriori informazioni, consulta SYS_EXTERNAL_QUERY_DETAIL. |
SYS_EXTERNAL_QUERY_ERROR | Colonne: file_location, rowid, column_name, original_value, modified_value, trigger, action, action_value, error_code. Per ulteriori informazioni, consulta SYS_EXTERNAL_QUERY_ERROR. |
SYS_QUERY_DETAIL | Colonne: step_name, table_id, table_name, input_bytes, input_rows, output_bytes, output_rows, blocks_read, blocks_write, local_read_io, remote_read_io, spilled_block_local_disk, spilled_block_remote_disk. Per ulteriori informazioni, consulta SYS_QUERY_DETAIL. |
SYS_QUERY_HISTORY | Colonne: returned_rows, returned_bytes. Per ulteriori informazioni, consulta SYS_QUERY_HISTORY. |
STL_AGGR | Colonne: righe, byte, tbl, tipo. Per ulteriori informazioni, consulta STL_AGGR. |
STL_BCAST | Colonne: righe, byte, pacchetti. Per ulteriori informazioni, consulta STL_BCAST. |
STL_DDLTEXT | Colonne: testo. Per ulteriori informazioni, consulta STL_DDLTEXT. |
STL_DELETE | Colonne: righe, tbl. Per ulteriori informazioni, consulta STL_DELETE. |
STL_DIST | Colonne: righe, byte, pacchetti. Per ulteriori informazioni, consulta STL_DIST. |
STL_EXPLAIN | Colonne: plannode, info. Per ulteriori informazioni, consulta STL_EXPLAIN. |
STL_HASH | Colonne: righe, byte, tbl, est_rows. Per ulteriori informazioni, consulta STL_HASH. |
STL_HASHJOIN | Colonne: rows, tbl, num_parts, join_type. Per ulteriori informazioni, consulta STL_HASHJOIN. |
STL_INSERT | Colonne: righe, tbl. Per ulteriori informazioni, consulta STL_INSERT. |
STL_LIMIT | Colonne: righe. Per ulteriori informazioni, consulta STL_LIMIT. |
STL_MERGE | Colonne: righe. Per ulteriori informazioni, consulta STL_MERGE. |
STL_MERGEJOIN | Colonne: righe, tbl. Per ulteriori informazioni, consulta STL_MERGEJOIN. |
STL_NESTLOOP | Colonne: righe, tbl. Per ulteriori informazioni, consulta STL_NESTLOOP. |
STL_PARSE | Colonne: righe. Per ulteriori informazioni, consulta STL_PARSE. |
STL_PLAN_INFO | Colonne: righe, byte. Per ulteriori informazioni, consulta STL_PLAN_INFO. |
STL_PROJECT | Colonne: righe, tbl. Per ulteriori informazioni, consulta STL_PROJECT. |
STL_QUERY | Colonne: querytxt. Per ulteriori informazioni, consulta STL_QUERY. |
STL_QUERY_METRICS | Colonne: max_rows, rows, max_blocks_read, blocks_read, max_blocks_to_disk, blocks_to_disk, max_query_scan_size, query_scan_size. Per ulteriori informazioni, consulta STL_QUERY_METRICS. |
STL_QUERYTEXT | Colonne: testo. Per ulteriori informazioni, consulta STL_QUERYTEXT. |
STL_RETURN | Colonne: righe, byte. Per ulteriori informazioni, consulta STL_RETURN. |
STL_SAVE | Colonne: righe, byte, tbl. Per ulteriori informazioni, consulta STL_SAVE. |
STL_SCAN | Colonne: righe, byte, recuperi, type, tbl, rows_pre_filter, perm_table_name, scanned_mega_value. Per ulteriori informazioni, consulta STL_SCAN. |
STL_SORT | Colonne: righe, byte, tbl. Per ulteriori informazioni, consulta STL_SORT. |
STL_TR_CONFLICT | Colonne: table_id. Per ulteriori informazioni, consulta STL_TR_CONFLICT. |
STL_UNDONE | Colonne: table_id. Per ulteriori informazioni, consulta STL_UNDONE. |
STL_UNIQUE | Colonne: righe, tipo, byte. Per ulteriori informazioni, consulta STL_UNIQUE. |
STL_UTILITYTEXT | Colonne: testo. Per ulteriori informazioni, consulta STL_UTILITYTEXT. |
STL_WINDOW | Colonne: righe. Per ulteriori informazioni, consulta STL_WINDOW. |
STV_BLOCKLIST | Colonne: col, tbl, num_values, minvalue, maxvalue. Per ulteriori informazioni, consulta STV_BLOCKLIST. |
STV_EXEC_STATE | Colonne: righe, byte, etichetta. Per ulteriori informazioni, consulta STV_EXEC_STATE. |
STV_LOCKS | Colonne: table_id. Per ulteriori informazioni, consulta STV_LOCKS. |
STV_QUERY_METRICS | Colonne: righe, max_rows, blocks_read, max_blocks_read, max_blocks_to_disk, blocks_to_disk, max_query_scan_size, query_scan_size. Per ulteriori informazioni, consulta STV_QUERY_METRICS. |
STV_STARTUP_RECOVERY_STATE | Colonne: table_id, table_name. Per ulteriori informazioni, consulta STV_STARTUP_RECOVERY_STATE. |
STV_TBL_PERM | Colonne: id, rows, sorted_rows, temp, block_count, query_scan_size. Per ulteriori informazioni, consulta STV_TBL_PERM. |
STV_TBL_TRANS | Colonne: id, righe, dimensione. Per ulteriori informazioni, consulta STV_TBL_TRANS. |
SVCS_EXPLAIN | Colonne: plannode, info. Per ulteriori informazioni, consulta SVCS_EXPLAIN. |
SVCS_PLAN_INFO | Colonne: righe, byte. Per ulteriori informazioni, consulta SVCS_PLAN_INFO. |
SVCS_QUERY_SUMMARY | Colonne: step, rows, bytes, rate_row, rate_byte, label, rows_pre_filter. Per ulteriori informazioni, consulta SVCS_QUERY_SUMMARY. |
SVCS_S3LIST | Colonne: bucket, prefix, max_file_size, avg_file_size. Per ulteriori informazioni, consulta SVCS_QUERY_SUMMARY. |
SVCS_S3LOG | Colonne: messaggio. Per ulteriori informazioni, consulta SVCS_QUERY_SUMMARY. |
SVCS_S3PARTITION_SUMMARY | Colonne: total_partitions, qualified_partitions, min_assigned_partitions, max_assigned_partitions, avg_assigned_partitions. Per ulteriori informazioni, consulta SVCS_S3PARTITION_SUMMARY. |
SVCS_S3QUERY_SUMMARY | Colonne: external_table_name, file_format, s3_scanned_rows, s3_scanned_bytes, s3query_returned_rows, s3query_returned_bytes. Per ulteriori informazioni, consulta SVCS_S3QUERY_SUMMARY. |
SVL_QUERY_METRICS | Colonne: step_label, scan_row_count, join_row_count, nested_loop_join_row_count, return_row_count, spectrum_scan_row_count, spectrum_scan_size_mb. Per ulteriori informazioni, consulta SVL_QUERY_METRICS. |
SVL_QUERY_METRICS_SUMMARY | Colonne: step_label, scan_row_count, join_row_count, nested_loop_join_row_count, return_row_count, spectrum_scan_row_count, spectrum_scan_size_mb. Per ulteriori informazioni, consulta SVL_QUERY_METRICS_SUMMARY. |
SVL_QUERY_REPORT | Colonne: righe, byte, label, rows_pre_filter. Per ulteriori informazioni, consulta SVL_QUERY_REPORT. |
SVL_QUERY_SUMMARY | Colonne: righe, byte, rows_pre_filter. Per ulteriori informazioni, consulta SVL_QUERY_SUMMARY. |
SVL_S3LIST | Colonne: bucket, prefix, max_file_size, avg_file_size. Per ulteriori informazioni, consulta SVL_S3LIST. |
SVL_S3LOG | Colonne: messaggio. Per ulteriori informazioni, consulta SVL_S3LOG. |
SVL_S3PARTITION | Colonne: righe, byte, label, rows_pre_filter. Per ulteriori informazioni, consulta SVL_S3PARTITION. |
SVL_S3PARTITION_SUMMARY | Colonne: total_partitions, qualified_partitions, min_assigned_partitions, max_assigned_partitions, avg_assigned_partitions. Per ulteriori informazioni, consulta SVL_S3PARTITION_SUMMARY. |
SVL_S3QUERY | Colonne: external_table_name, file_format, s3_scanned_rows, s3_scanned_bytes, s3query_returned_rows, s3query_returned_bytes. Per ulteriori informazioni, consulta SVL_S3QUERY. |
SVL_S3QUERY_SUMMARY | Colonne: external_table_name, file_format, s3_scanned_rows, s3_scanned_bytes, s3query_returned_rows, s3query_returned_bytes. Per ulteriori informazioni, consulta SVL_S3QUERY_SUMMARY. |
SVL_S3RETRIES | Colonne: file_size, location, messaggio. Per ulteriori informazioni, consulta SVL_S3RETRIES. |
SVL_SPECTRUM_SCAN_ERROR | Colonne: location, rowid, colname, original_value, modified_value. Per ulteriori informazioni, consulta SVL_SPECTRUM_SCAN_ERROR. |
SVL_STATEMENTTEXT | Colonne: tipo, testo. Per ulteriori informazioni, consulta SVL_STATEMENTTEXT. |
SVL_STORED_PROC_CALL | Colonne: querytxt. Per ulteriori informazioni, consulta SVL_STORED_PROC_CALL. |
SVL_STORED_PROC_MESSAGES | Colonne: querytext. Per ulteriori informazioni, consulta SVL_STORED_PROC_MESSAGES. |
SVL_UDF_LOG | Colonne: funcname. Per ulteriori informazioni, consulta SVL_UDF_LOG. |
SVV_DISKUSAGE | Colonne: name, col, tbl, blocknum, num_values, minvalue, maxvalue. Per ulteriori informazioni, consulta SVV_DISKUSAGE. |
SVV_QUERY_STATE | Colonne: righe, byte, etichetta. Per ulteriori informazioni, consulta SVV_QUERY_STATE. |
SVV_TABLE_INFO | Colonne: table_id, tabella. Per ulteriori informazioni, consulta SVV_TABLE_INFO. |
SVV_TRANSACTIONS | Colonne: relazione. Per ulteriori informazioni, consulta SVV_TRANSACTIONS. |
Considerazioni e limitazioni
Di seguito sono riportate le considerazioni e le limitazioni che si applicano alle viste create nel Catalogo dati.
AWS Glue Data Catalog le visualizzazioni sono supportate solo su cluster con RA3 provisioning o gruppi di lavoro Redshift Serverless.
Non è possibile creare una vista del Catalogo dati basata su un'altra vista.
È possibile avere solo 10 tabelle di base in una vista del Catalogo dati.
Il definitore della vista deve disporre delle autorizzazioni
SELECT GRANTABLE
complete per le tabelle di base.Le viste possono contenere solo oggetti e integrazioni di Lake Formation. I seguenti oggetti non sono consentiti all'interno di una vista.
Tabelle di sistema
UDFsFunzioni definite dall'utente ()
Tabelle, viste, viste materializzate e viste con associazione tardiva di Redshift che non si trovano in una condivisione dati gestita da Lake Formation.
Le viste non possono contenere tabelle Redshift Spectrum annidate.
AWS Glue le rappresentazioni degli oggetti di base di una vista devono trovarsi nella stessa Account AWS regione della vista.