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 Lake Formation les fonctionnalités inter-comptes permettent aux utilisateurs de partager en toute sécurité des lacs de données distribués entre plusieurs Compte AWS entreprises ou AWS organisations, ou directement avec les responsables IAM d'un autre compte, offrant ainsi un accès détaillé aux métadonnées et aux données sous-jacentes.
Lake Formation utilise le service AWS Resource Access Manager (AWS RAM) pour faciliter le partage des ressources. Lorsque vous partagez une ressource de catalogue avec un autre compte, AWS RAM envoie une invitation au compte bénéficiaire pour qu'il accepte ou rejette la subvention de ressource.
Les services analytiques intégrés tels qu'Amazon Athena et Redshift Spectrum nécessitent des liens de ressources pour pouvoir inclure des ressources partagées dans les requêtes. Les directeurs doivent créer un lien de ressource dans leur répertoire AWS Glue Data Catalog vers une ressource partagée par une autre Compte AWS personne. Pour plus d'informations sur les liens vers des ressources, consultez Comment fonctionnent les liens vers des ressources dans Lake Formation.
Un conteneur de liens de catalogue est un objet de catalogue de données qui fait référence à un catalogue de base de données fédéré local ou entre comptes provenant d'autres comptes. AWS Vous pouvez également créer des liens de base de données et des liens de table dans un conteneur de liens de catalogue. Lorsque vous créez un lien de base de données ou un lien de table, vous devez spécifier une ressource cible résidant dans le même catalogue cible au niveau de la base de données Amazon Redshift (base de données Amazon Redshift).
Pour créer un conteneur de liens de catalogue, vous avez besoin de la Lake Formation CREATE_CATALOG
ou de l'glue:CreateCatalog
autorisation.
Création d'un conteneur de liens de catalogue vers un catalogue fédéré entre comptes
Vous pouvez créer un conteneur de liens de catalogue qui pointe vers un catalogue fédéré au niveau de la base de données Redshift dans n'importe quelle AWS région à l'aide de la AWS Lake Formation console, AWS Glue
CreateCatalog
de l'API ou (). AWS Command Line Interface AWS CLI
Pour créer un conteneur de liens de catalogue vers un catalogue partagé (console)
-
Ouvrez la AWS Lake Formation console à l'adresse https://console.aws.amazon.com/lakeformation/
. Connectez-vous en tant que directeur disposant de l' CREATE_CATALOG
autorisation de Lake Formation. -
Dans le volet de navigation, choisissez Catalogues, puis sélectionnez Créer un catalogue.
-
Sur la page Définir les détails du catalogue, fournissez les informations suivantes :
- Nom
-
Entrez un nom qui respecte les mêmes règles qu'un nom de catalogue. Le nom peut être identique à celui du catalogue partagé cible.
- Type
-
Choisissez le conteneur de liens de catalogue comme type de catalogue.
- Source
-
Sélectionnez
Redshift
. - Catalogue Target Redshift
-
Sélectionnez un catalogue fédéré au niveau de la base de données Redshift ou choisissez un catalogue local (détenu) dans la liste.
La liste contient tous les catalogues partagés avec votre compte. Notez que l'ID de compte du propriétaire du catalogue est indiqué avec chaque catalogue. Si aucun catalogue dont vous savez qu'il a été partagé avec votre compte ne s'affiche, vérifiez les points suivants :
-
Si vous n'êtes pas un administrateur de lac de données, vérifiez que l'administrateur du lac de données vous a accordé les autorisations de Lake Formation sur le catalogue.
-
Si vous êtes administrateur d'un lac de données et que votre compte n'appartient pas à la même AWS organisation que le compte octroyant, assurez-vous d'avoir accepté l'invitation AWS Resource Access Manager (AWS RAM) au partage de ressources pour le catalogue. Pour de plus amples informations, veuillez consulter Acceptation d'une invitation de partage de ressources de AWS RAM.
-
-
Pour permettre aux moteurs de requêtes Apache Iceberg de lire et d'écrire dans les espaces de noms Amazon Redshift AWS Glue , créez un cluster Amazon Redshift géré avec les ressources de calcul et de stockage nécessaires pour effectuer des opérations de lecture et d'écriture sans impact sur les charges de travail de l'entrepôt de données Amazon Redshift. Vous devez fournir un rôle IAM avec les autorisations requises pour transférer des données vers et depuis le compartiment Amazon S3.
-
Choisissez Suivant.
-
(Facultatif) Choisissez Ajouter des autorisations pour accorder des autorisations à d'autres principaux.
Toutefois, l'octroi d'autorisations sur un conteneur de liens de catalogue n'accorde pas d'autorisations sur le catalogue cible (lié). Vous devez accorder des autorisations sur le catalogue cible séparément pour que le lien du catalogue soit visible dans Athena.
Passez ensuite en revue les détails du conteneur de liens du catalogue et sélectionnez Créer un catalogue.
Vous pouvez ensuite afficher le nom du conteneur de liens sur la page Catalogues.
Vous pouvez désormais créer des liens de base de données et des liens de table dans le conteneur de liens de catalogue pour permettre l'accès depuis les moteurs de requête.
Exemple de CLI pour créer un conteneur de liens de catalogue
-
Dans l'exemple suivant, l'
TargetRedshiftCatalog
objet spécifie l'ARN du catalogue fédéré au niveau de la base de données Amazon Redshift (base de données Amazon Redshift). LeDataLakeAccess
doit être activé lorsque vous créez le conteneur de liens de catalogue.aws glue create-catalog \ --cli-input-json '{ "Name":
"linkcontainer"
, "CatalogInput": { "TargetRedshiftCatalog": { "CatalogArn":"arn:aws:us-east-1:123456789012:catalog/nscatalog/dev"
}, "CatalogProperties": { "DataLakeAccessProperties" : { "DataLakeAccess" : true, "DataTransferRole" :"arn:aws:iam::111122223333:role/DataTransferRole"
} } } }'
Création de liens vers des ressources sous le conteneur de liens du catalogue
Vous pouvez créer des liens vers des ressources vers des bases de données et des tables dans un conteneur de liens de catalogue. Lorsque vous créez des liens vers des ressources de base de données ou des liens vers des ressources de table, vous devez spécifier une ressource cible résidant dans le même catalogue cible au niveau de la base de données Amazon Redshift (base de données Amazon Redshift) vers lequel pointe le conteneur de liens.
Vous pouvez créer un lien de ressource vers une base de données Amazon Redshift partagée ou une table à l'aide de la AWS Lake Formation console, de l'API ou AWS Command Line Interface ()AWS CLI.
-
Pour obtenir des instructions complètes, veuillez consulter Création d'un lien de ressource vers une base de données de catalogue de données partagée.
Voici un AWS CLI exemple de création d'un lien vers une ressource de base de données sous un conteneur de liens de catalogue.
aws glue create-database \ --cli-input-json \ '{ "CatalogId":
"111122223333:linkcontainer"
, "DatabaseInput": { "Name":"dblink"
, "TargetDatabase": { "CatalogId":"123456789012:nscatalog/dev"
, "DatabaseName":"schema1"
} } }' -
Pour créer un lien vers une ressource de table sous un conteneur de liens de catalogue, vous devez d'abord créer une AWS Glue base de données dans le répertoire local AWS Glue Data Catalog pour contenir le lien vers une ressource de table.
Pour plus d'informations sur la création de liens de ressources vers des tables partagées, consultezCréation d'un lien de ressource vers une table de catalogue de données partagée.
Création d'une base de données contenant la table (exemple de lien de ressource)
aws glue create-database \ --cli-input-json \ '{ "CatalogId":
"111122223333:linkcontainer"
, "DatabaseInput": { "Name":"db1"
, "Description":"creating parent database for table link"
} }'-
Exemple de lien vers les ressources d'une table
aws glue create-table \ --cli-input-json \ '{ "CatalogId":
"111122223333:linkcontainer"
, "DatabaseName":"db1"
, "TableInput": { "Name": "tablelink", "TargetTable": { "CatalogId":"123456789012:nscatalog/dev"
, "DatabaseName":"schema1"
, "Name":"table1"
} } }'