AWS Glue Data Catalog visualizzazioni - Amazon Redshift

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.