AWS Glue Data Catalog vues - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS Glue Data Catalog vues

Cette rubrique décrit comment créer des vues dans le AWS Glue Data Catalog. Vous pouvez utiliser les vues du catalogue de données pour accéder aux données de différentes sources de données en utilisant le même schéma.

En créant des vues dans le catalogue de données, vous pouvez créer un schéma de vue et un objet de métadonnées communs uniques à utiliser sur des moteurs tels qu'Amazon Athena et Amazon EMR Spark. Cela vous permet d’utiliser les mêmes vues sur l’ensemble de vos lacs de données et de vos entrepôts des données pour répondre à vos cas d’utilisation. Les vues du catalogue de données ont ceci de particulier qu’elles sont classées dans la catégorie des vues de définisseur, où les autorisations d’accès sont définies par l’utilisateur qui a créé la vue et non par l’utilisateur qui interroge la vue. Voici quelques cas d’utilisation et avantages de la création de vues dans le catalogue de données :

  • Créer une vue qui restreint l’accès aux données en fonction des autorisations dont l’utilisateur a besoin. Par exemple, vous pouvez utiliser les vues du catalogue de données pour empêcher les employés qui ne travaillent pas dans le service des ressources humaines de voir des informations personnelles identifiables (PII).

  • S’assurer que les utilisateurs ne peuvent pas accéder aux enregistrements incomplets. En appliquant certains filtres aux vues du catalogue de données, vous vous assurez que les enregistrements de données d’une vue du catalogue de données sont toujours complets.

  • Les vues du catalogue de données présentent un avantage en matière de sécurité, car la définition de requête utilisée pour créer la vue doit être complète pour que la vue soit créée. Cet avantage de sécurité signifie que les vues du catalogue de données ne sont pas sensibles aux SQL commandes de joueurs malveillants.

  • Les vues du catalogue de données présentent les mêmes avantages que les vues normales, notamment en permettant aux utilisateurs d’accéder à une vue sans mettre la table sous-jacente à leur disposition.

Pour créer une vue dans le catalogue de données, vous devez disposer d’une table externe Spectrum, d’un objet contenu dans une unité de partage des données gérée par Lake Formation ou d’une table Apache Iceberg.

Les définitions des vues du catalogue de données sont stockées dans le AWS Glue Data Catalog. AWS Lake Formation À utiliser pour accorder l'accès via des autorisations de ressources, des autorisations de colonnes ou des contrôles d'accès basés sur des balises. Pour plus d’informations sur l’octroi et la révocation de l’accès dans Lake Formation, consultez Octroi et révocation d’autorisations liées aux ressources du catalogue de données.

Prérequis

Avant de pouvoir créer une vue dans le catalogue de données, assurez-vous que les conditions préalables suivantes sont remplies :

  • Assurez-vous que votre IAM rôle est soumis à la politique de confiance suivante.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  • Vous avez aussi besoin de la stratégie de transmission de rôle suivante.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1", "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] } } } ] }
  • Enfin, vous aurez également besoin des autorisations suivantes.

    • 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 exemple

Commencez par créer un schéma externe basé sur la base de données de votre catalogue de données.

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';

Vous pouvez désormais créer une vue du catalogue de données.

CREATE EXTERNAL PROTECTED VIEW external_schema.remote_view AS SELECT * FROM external_schema.remote_table;

Vous pouvez ensuite commencer à interroger cette vue.

SELECT * FROM external_schema.remote_view;

Pour plus d'informations sur les SQL commandes associées aux vues du catalogue de données, reportez-vous aux CREATEEXTERNALVIEWsections ALTEREXTERNALVIEW, et DROPEXTERNALVIEW.

Journalisation sécurisée

Redshift masque les métadonnées enregistrées dans les journaux du système Redshift lorsqu'une requête fait référence à une vue collée multidialectale. Le multidialecte signifie que la vue prend en charge les SQL dialectes de différents moteurs de requête, tels que Redshift et Amazon. EMR Les données des tables suivantes sont masquées pour toutes les requêtes ayant le même identifiant de requête. Le tableau suivant répertorie les vues et les colonnes du système auxquelles la journalisation sécurisée est appliquée.

Tableau du système Colonnes sensibles
SYS_EXTERNAL_QUERY_DETAIL

Colonnes : source_type, total_partitions, qualified_partitions, scanned_files, returned_rows, returned_bytes, file_format, file_location, external_query_text, warning_message. Pour de plus amples informations, veuillez consulter SYS_EXTERNAL_QUERY_DETAIL.

SYS_EXTERNAL_QUERY_ERROR

Colonnes : file_location, rowid, column_name, original_value, modified_value, trigger, action, action_value, error_code. Pour de plus amples informations, veuillez consulter SYS_EXTERNAL_QUERY_ERROR.

SYS_QUERY_DETAIL

Colonnes : 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. Pour de plus amples informations, veuillez consulter SYS_QUERY_DETAIL.

SYS_QUERY_HISTORY

Colonnes : returned_rows, returned_bytes. Pour de plus amples informations, veuillez consulter SYS_QUERY_HISTORY.

STL_AGGR

Colonnes : lignes, octets, tbl, type. Pour de plus amples informations, veuillez consulter STL_AGGR.

STL_BCAST

Colonnes : lignes, octets, paquets. Pour de plus amples informations, veuillez consulter STL_BCAST.

STL_DDLTEXT

Colonnes : texte. Pour de plus amples informations, veuillez consulter STL_DDLTEXT.

STL_DELETE

Colonnes : lignes, tabl. Pour de plus amples informations, veuillez consulter STL_DELETE.

STL_DIST

Colonnes : lignes, octets, paquets. Pour de plus amples informations, veuillez consulter STL_DIST.

STL_EXPLAIN

Colonnes : plannode, info. Pour de plus amples informations, veuillez consulter STL_EXPLAIN.

STL_HASH

Colonnes : lignes, octets, tbl, est_rows. Pour de plus amples informations, veuillez consulter STL_HASH.

STL_HASHJOIN

Colonnes : rows, tbl, num_parts, join_type. Pour de plus amples informations, veuillez consulter STL_HASHJOIN.

STL_INSERT

Colonnes : lignes, tabl. Pour de plus amples informations, veuillez consulter STL_INSERT.

STL_LIMIT

Colonnes : lignes. Pour de plus amples informations, veuillez consulter STL_LIMIT.

STL_MERGE

Colonnes : lignes. Pour de plus amples informations, veuillez consulter STL_MERGE.

STL_MERGEJOIN

Colonnes : lignes, tabl. Pour de plus amples informations, veuillez consulter STL_MERGEJOIN.

STL_NESTLOOP

Colonnes : lignes, tabl. Pour de plus amples informations, veuillez consulter STL_NESTLOOP.

STL_PARSE

Colonnes : lignes. Pour de plus amples informations, veuillez consulter STL_PARSE.

STL_PLAN_INFO

Colonnes : lignes, octets. Pour de plus amples informations, veuillez consulter STL_PLAN_INFO.

STL_PROJECT

Colonnes : lignes, tabl. Pour de plus amples informations, veuillez consulter STL_PROJECT.

STL_QUERY

Colonnes : querytxt. Pour de plus amples informations, veuillez consulter STL_QUERY.

STL_QUERY_METRICS

Colonnes : max_rows, rows, max_blocks_read, blocks_read, max_blocks_to_disk, blocks_to_disk, max_query_scan_size, query_scan_size. Pour de plus amples informations, veuillez consulter STL_QUERY_METRICS.

STL_QUERYTEXT

Colonnes : texte. Pour de plus amples informations, veuillez consulter STL_QUERYTEXT.

STL_RETURN

Colonnes : lignes, octets. Pour de plus amples informations, veuillez consulter STL_RETURN.

STL_SAVE

Colonnes : lignes, octets, tbl. Pour de plus amples informations, veuillez consulter STL_SAVE.

STL_SCAN

Colonnes : lignes, octets, extractions, type, tbl, rows_pre_filter, perm_table_name, scanned_mega_value. Pour de plus amples informations, veuillez consulter STL_SCAN.

STL_SORT

Colonnes : lignes, octets, tbl. Pour de plus amples informations, veuillez consulter STL_SORT.

STL_TR_ CONFLICT

Colonnes : table_id. Pour de plus amples informations, veuillez consulter STL_TR_CONFLICT.

STL_UNDONE

Colonnes : table_id. Pour de plus amples informations, veuillez consulter STL_UNDONE.

STL_UNIQUE

Colonnes : lignes, type, octets. Pour de plus amples informations, veuillez consulter STL_UNIQUE.

STL_UTILITYTEXT

Colonnes : texte. Pour de plus amples informations, veuillez consulter STL_UTILITYTEXT.

STL_WINDOW

Colonnes : lignes. Pour de plus amples informations, veuillez consulter STL_WINDOW.

STV_BLOCKLIST

Colonnes : col, tbl, num_values, minvalue, maxvalue. Pour de plus amples informations, veuillez consulter STV_BLOCKLIST.

STV_EXEC_STATE

Colonnes : lignes, octets, étiquette. Pour de plus amples informations, veuillez consulter STV_EXEC_STATE.

STV_LOCKS

Colonnes : table_id. Pour de plus amples informations, veuillez consulter STV_LOCKS.

STV_QUERY_METRICS

Colonnes : lignes, max_rows, blocks_read, max_blocks_read, max_blocks_to_disk, blocks_to_disk, max_query_scan_size, query_scan_size. Pour de plus amples informations, veuillez consulter STV_QUERY_METRICS.

STV_STARTUP_RECOVERY_STATE

Colonnes : table_id, table_name. Pour de plus amples informations, veuillez consulter STV_STARTUP_RECOVERY_STATE.

STV_TBL_PERM

Colonnes : id, rows, sorted_rows, temp, block_count, query_scan_size. Pour de plus amples informations, veuillez consulter STV_TBL_PERM.

STV_TBL_TRANS

Colonnes : identifiant, lignes, taille. Pour de plus amples informations, veuillez consulter STV_TBL_TRANS.

SVCS_EXPLAIN

Colonnes : plannode, info. Pour de plus amples informations, veuillez consulter SVCS_EXPLAIN.

SVCS_PLAN_INFO

Colonnes : lignes, octets. Pour de plus amples informations, veuillez consulter SVCS_PLAN_INFO.

SVCS_QUERY_SUMMARY

Colonnes : step, rows, bytes, rate_row, rate_byte, label, rows_pre_filter. Pour de plus amples informations, veuillez consulter SVCS_QUERY_SUMMARY.

SVCS_S3 LIST

Colonnes : bucket, prefix, max_file_size, avg_file_size. Pour de plus amples informations, veuillez consulter SVCS_QUERY_SUMMARY.

SVCS_S3 LOG

Colonnes : message. Pour de plus amples informations, veuillez consulter SVCS_QUERY_SUMMARY.

SVCS_S3 _ PARTITION SUMMARY

Colonnes : total_partitions, qualified_partitions, min_assigned_partitions, max_assigned_partitions, avg_assigned_partitions. Pour de plus amples informations, veuillez consulter SVCS_S3 _ PARTITION SUMMARY.

SVCS_S3 _ QUERY SUMMARY

Colonnes : external_table_name, file_format, s3_scanned_rows, s3_scanned_bytes, s3query_returned_rows, s3query_returned_bytes. Pour de plus amples informations, veuillez consulter SVCS_S3 _ QUERY SUMMARY.

SVL_QUERY_METRICS

Colonnes : step_label, scan_row_count, join_row_count, nested_loop_join_row_count, return_row_count, spectrum_scan_row_count, spectrum_scan_size_mb. Pour de plus amples informations, veuillez consulter SVL_QUERY_METRICS.

SVL_QUERY_METRICS_SUMMARY

Colonnes : step_label, scan_row_count, join_row_count, nested_loop_join_row_count, return_row_count, spectrum_scan_row_count, spectrum_scan_size_mb. Pour de plus amples informations, veuillez consulter SVL_QUERY_METRICS_SUMMARY.

SVL_QUERY_REPORT

Colonnes : lignes, octets, label, rows_pre_filter. Pour de plus amples informations, veuillez consulter SVL_QUERY_REPORT.

SVL_QUERY_SUMMARY

Colonnes : lignes, octets, rows_pre_filter. Pour de plus amples informations, veuillez consulter SVL_QUERY_SUMMARY.

SVL_S3 LIST

Colonnes : bucket, prefix, max_file_size, avg_file_size. Pour de plus amples informations, veuillez consulter SVL_S3LIST.

SVL_S3 LOG

Colonnes : message. Pour de plus amples informations, veuillez consulter SVL_S3LOG.

SVL_S3 PARTITION

Colonnes : lignes, octets, label, rows_pre_filter. Pour de plus amples informations, veuillez consulter SVL_S3PARTITION.

SVL_S3 _ PARTITION SUMMARY

Colonnes : total_partitions, qualified_partitions, min_assigned_partitions, max_assigned_partitions, avg_assigned_partitions. Pour de plus amples informations, veuillez consulter SVL_S3PARTITION_SUMMARY.

SVL_S3 QUERY

Colonnes : external_table_name, file_format, s3_scanned_rows, s3_scanned_bytes, s3query_returned_rows, s3query_returned_bytes. Pour de plus amples informations, veuillez consulter SVL_S3QUERY.

SVL_S3 _ QUERY SUMMARY

Colonnes : external_table_name, file_format, s3_scanned_rows, s3_scanned_bytes, s3query_returned_rows, s3query_returned_bytes. Pour de plus amples informations, veuillez consulter SVL_S3QUERY_SUMMARY.

SVL_S3 RETRIES

Colonnes : file_size, location, message. Pour de plus amples informations, veuillez consulter SVL_S3RETRIES.

SVL_SPECTRUM_SCAN_ERROR

Colonnes : location, rowid, colname, original_value, modified_value. Pour de plus amples informations, veuillez consulter SVL_SPECTRUM_SCAN_ERROR.

SVL_STATEMENTTEXT

Colonnes : type, texte. Pour de plus amples informations, veuillez consulter SVL_STATEMENTTEXT.

SVL_STORED_PROC_CALL

Colonnes : querytxt. Pour de plus amples informations, veuillez consulter SVL_STORED_PROC_CALL.

SVL_STORED_PROC_MESSAGES

Colonnes : texte de requête. Pour de plus amples informations, veuillez consulter SVL_STORED_PROC_MESSAGES.

SVL_UDF_LOG

Colonnes : funcname. Pour de plus amples informations, veuillez consulter SVL_UDF_LOG.

SVV_DISKUSAGE

Colonnes : name, col, tbl, blocknum, num_values, minvalue, maxvalue. Pour de plus amples informations, veuillez consulter SVV_DISKUSAGE.

SVV_QUERY_STATE

Colonnes : lignes, octets, étiquette. Pour de plus amples informations, veuillez consulter SVV_QUERY_STATE.

SVV_TABLE_INFO

Colonnes : table_id, table. Pour de plus amples informations, veuillez consulter SVV_TABLE_INFO.

SVV_TRANSACTIONS

Colonnes : relation. Pour de plus amples informations, veuillez consulter SVV_TRANSACTIONS.

Considérations et restrictions

Les considérations et restrictions suivantes s’appliquent aux vues créées dans le catalogue de données.

  • Vous ne pouvez pas créer une vue du catalogue de données basée sur une autre vue.

  • Une vue du catalogue de données ne peut comporter que 10 tables de base.

  • Le définisseur de la vue doit disposer d’autorisations SELECT GRANTABLE complètes sur les tables de base.

  • Les vues ne peuvent contenir que des éléments intégrés et des objets Lake Formation. Les objets suivants ne sont pas autorisés à l’intérieur d’une vue.

    • Tables système

    • Fonctions définies par l'utilisateur () UDFs

    • Tables, vues, vues matérialisées et vues à liaison tardive Redshift qui ne se trouvent pas dans une unité de partage des données gérée par Lake Formation.

  • Les vues ne peuvent pas contenir de tables Redshift Spectrum imbriquées.

  • AWS Glue les représentations des objets de base d'une vue doivent être dans la même Compte AWS région que la vue.