

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.

# Commencer à utiliser Amazon DataZone
<a name="getting-started"></a>

Les informations contenues dans cette section vous aideront à commencer à utiliser Amazon DataZone. Si vous utilisez Amazon pour la première DataZone fois, commencez par vous familiariser avec les concepts et la terminologie présentés dans[DataZone Terminologie et concepts d'Amazon](datazone-concepts.md).

Avant de commencer les étapes de l'un ou l'autre de ces flux de travail de démarrage rapide, vous devez suivre les procédures décrites dans la section [Configuration](setting-up.md) de ce guide. Si vous utilisez un tout nouveau AWS compte, vous devez [configurer les autorisations requises pour utiliser la console DataZone de gestion Amazon](create-iam-roles.md). Si vous utilisez un AWS compte qui possède des objets AWS Glue Data Catalog existants, vous devez également [configurer les autorisations Lake Formation pour Amazon DataZone](lake-formation-permissions-for-datazone.md). 

Cette section de mise en route vous présente les flux de travail Amazon DataZone Quickstart suivants :

**Topics**
+ [Amazon DataZone Quickstart avec les données AWS Glue](quickstart-glue.md)
+ [Amazon DataZone QuickStart avec les données Amazon Redshift](quickstart-rs.md)
+ [Amazon DataZone QuickStart avec des exemples de scripts](quickstart-apis.md)

# Amazon DataZone Quickstart avec les données AWS Glue
<a name="quickstart-glue"></a>

Suivez les étapes de démarrage rapide suivantes pour passer en revue l'ensemble des flux de production et de consommation de données sur Amazon DataZone avec des exemples de données AWS Glue. 

**Topics**
+ [Étape 1 - Création du DataZone domaine Amazon et du portail de données](#create-domain-gs-glue)
+ [Étape 2 - Création du projet de publication](#create-publishing-project-gs-glue)
+ [Étape 3 - Création de l'environnement](#create-environment-gs-glue)
+ [Étape 4 - Produire des données pour publication](#produce-data-for-publishing-gs-glue)
+ [Étape 5 - Collectez les métadonnées à partir de AWS Glue](#gather-metadata-from-glue-gs-glue)
+ [Étape 6 - Organiser et publier la ressource de données](#curate-data-asset-gs-glue)
+ [Étape 7 - Création du projet pour l'analyse des données](#create-project-for-data-analysis-gs-glue)
+ [Étape 8 - Création d'un environnement pour l'analyse des données](#create-environment-gs2-glue)
+ [Étape 9 - Rechercher dans le catalogue de données et s'abonner aux données](#search-catalog-subscribe-gs-glue)
+ [Étape 10 - Approuver la demande d'abonnement](#approve-subscription-request-gs-glue)
+ [Étape 11 - Création d'une requête et analyse des données dans Amazon Athena](#analyze-data-gs-glue)

## Étape 1 - Création du DataZone domaine Amazon et du portail de données
<a name="create-domain-gs-glue"></a>

Cette section décrit les étapes de création d'un DataZone domaine Amazon et d'un portail de données pour ce flux de travail.

Suivez la procédure ci-dessous pour créer un DataZone domaine Amazon. Pour plus d'informations sur DataZone les domaines Amazon, consultez[DataZone Terminologie et concepts d'Amazon](datazone-concepts.md). 

1. **Accédez à la DataZone console Amazon à l'adresse [https://console.aws.amazon.com/datazone](https://console.aws.amazon.com/datazone), connectez-vous, puis choisissez Create domain.** 
**Note**  
Si vous souhaitez utiliser un DataZone domaine Amazon existant pour ce flux de travail, choisissez **Afficher les domaines**, puis choisissez le domaine que vous souhaitez utiliser, puis passez à l'étape 2 de création d'un projet de publication.

1. Sur la page **Créer un domaine**, entrez des valeurs pour les champs suivants : 
   + **Nom** : spécifiez le nom de votre domaine. Dans le cadre de ce flux de travail, vous pouvez appeler ce domaine **Marketing**.
   + **Description** : spécifiez une description de domaine facultative.
   + **Chiffrement des données** : vos données sont cryptées par défaut à l'aide d'une clé qui vous AWS appartient et qui est gérée pour vous. Dans ce cas d'utilisation, vous pouvez conserver les paramètres de chiffrement des données par défaut.

     Pour plus d'informations sur l'utilisation des clés gérées par le client, consultez[Le chiffrement des données est au repos pour Amazon DataZone](encryption-rest-datazone.md). Si vous utilisez votre propre clé KMS pour le chiffrement des données, vous devez inclure l'instruction suivante dans votre clé par défaut[AmazonDataZoneDomainExecutionRole](AmazonDataZoneDomainExecutionRole.md).

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "Statement1",
                 "Effect": "Allow",
                 "Action": [
                     "kms:Decrypt",
                     "kms:DescribeKey",
                     "kms:GenerateDataKey"
                 ],
                 "Resource": [
                     "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
                 ]
             }
         ]
     }
     ```

------
   + **Accès au service** : laissez inchangée l'option **Utiliser un rôle par défaut** sélectionnée par défaut.
**Note**  
Si vous utilisez un DataZone domaine Amazon existant pour ce flux de travail, vous pouvez choisir **l'option Utiliser un rôle de service existant**, puis choisir un rôle existant dans le menu déroulant.
   + Sous **Configuration rapide**, choisissez **Configurer ce compte pour la consommation et la publication de données**. Cette option active les DataZone plans Amazon intégrés du **lac de données** et de l'**entrepôt de données**, et configure les autorisations, les ressources, un projet par défaut et les profils d'environnement de lac de données et d'entrepôt de données par défaut pour ce compte. Pour plus d'informations sur les DataZone plans Amazon, consultez[DataZone Terminologie et concepts d'Amazon](datazone-concepts.md).
   + Conservez les champs restants sous **Détails des autorisations** inchangés. 
**Note**  
Si vous possédez déjà un DataZone domaine Amazon, vous pouvez choisir l'option **Utiliser un rôle de service existant, puis choisir un rôle** existant dans le menu déroulant pour le rôle **Glue Manage Access, le rôle** **Redshift Manage Access et le rôle** **Provisioning**. 
   + Ne modifiez pas les champs **situés sous Tags**.
   + Choisissez **Create domain (Créer un domaine)**.

1. Une fois le domaine créé avec succès, choisissez-le et, sur la page de résumé du domaine, notez l'**URL du portail de données** pour ce domaine. Vous pouvez utiliser cette URL pour accéder à votre portail de DataZone données Amazon afin d'effectuer les autres étapes de ce flux de travail. Vous pouvez également accéder au portail de données en choisissant Portail de **données ouvertes**.

**Note**  
Dans la version actuelle d'Amazon DataZone, une fois le domaine créé, l'URL générée pour le portail de données ne peut pas être modifiée.

La création d'un domaine peut prendre plusieurs minutes. Attendez que le statut du domaine soit défini **sur Disponible** avant de passer à l'étape suivante.

## Étape 2 - Création du projet de publication
<a name="create-publishing-project-gs-glue"></a>

Cette section décrit les étapes requises pour créer le projet de publication pour ce flux de travail.

1. Une fois que vous aurez terminé l'étape 1 ci-dessus et créé un domaine, vous verrez le message **Welcome to Amazon DataZone \$1** fenêtre. Dans cette fenêtre, choisissez **Créer un projet**.

1. Spécifiez le nom du projet, par exemple, pour ce flux de travail **SalesDataPublishingProject**, vous pouvez le nommer, puis laisser les autres champs inchangés, puis choisir **Créer**.

## Étape 3 - Création de l'environnement
<a name="create-environment-gs-glue"></a>

Cette section décrit les étapes requises pour créer un environnement pour ce flux de travail.

1. Une fois que vous avez terminé l'étape 2 ci-dessus et créé votre projet, vous verrez la fenêtre **Votre projet est prêt à être utilisé**. Dans cette fenêtre, choisissez **Create environment**.

1. Sur la page **Créer un environnement**, spécifiez ce qui suit, puis choisissez **Créer un environnement**.

1. Spécifiez les valeurs suivantes :
   + **Nom** : spécifiez le nom de l'environnement. Pour cette procédure pas à pas, vous pouvez l'`Default data lake environment`appeler.
   + **Description** : spécifiez une description de l'environnement.
   + **Profil d'environnement** : choisissez le profil d'**DataLakeProfile**environnement. Cela vous permet d'utiliser Amazon DataZone dans ce flux de travail pour travailler avec des données dans Amazon S3, AWS Glue Catalog et Amazon Athena.
   + Pour cette procédure pas à pas, conservez les autres champs inchangés.

1. Choisissez **Create environment**.

## Étape 4 - Produire des données pour publication
<a name="produce-data-for-publishing-gs-glue"></a>

Cette section décrit les étapes requises pour produire des données destinées à être publiées dans ce flux de travail.

1. Une fois que vous avez terminé l'étape 3 ci-dessus, dans votre `SalesDataPublishingProject` projet, dans le panneau de droite, sous **Outils d'analyse**, sélectionnez **Amazon Athena**. Cela ouvre l'éditeur de requêtes Athena en utilisant les informations d'identification de votre projet pour l'authentification. Assurez-vous que votre environnement de publication est sélectionné dans le menu déroulant de ** DataZone l'environnement Amazon** et que la `<environment_name>%_pub_db` base de données est sélectionnée comme dans l'éditeur de requêtes.

1. Pour cette procédure pas à pas, vous utilisez le script de requête **Create Table as Select** (CTAS) pour créer une nouvelle table que vous souhaitez publier sur Amazon. DataZone Dans votre éditeur de requêtes, exécutez ce script CTAS pour créer une `mkt_sls_table` table que vous pouvez publier et rendre disponible pour la recherche et l'abonnement. 

   ```
   CREATE TABLE mkt_sls_table AS
   SELECT 146776932 AS ord_num, 23 AS sales_qty_sld, 23.4 AS wholesale_cost, 45.0 as lst_pr, 43.0 as sell_pr, 2.0 as disnt, 12 as ship_mode,13 as warehouse_id, 23 as item_id, 34 as ctlg_page, 232 as ship_cust_id, 4556 as bill_cust_id
   UNION ALL SELECT 46776931, 24, 24.4, 46, 44, 1, 14, 15, 24, 35, 222, 4551
   UNION ALL SELECT 46777394, 42, 43.4, 60, 50, 10, 30, 20, 27, 43, 241, 4565
   UNION ALL SELECT 46777831, 33, 40.4, 51, 46, 15, 16, 26, 33, 40, 234, 4563
   UNION ALL SELECT 46779160, 29, 26.4, 50, 61, 8, 31, 15, 36, 40, 242, 4562
   UNION ALL SELECT 46778595, 43, 28.4, 49, 47, 7, 28, 22, 27, 43, 224, 4555
   UNION ALL SELECT 46779482, 34, 33.4, 64, 44, 10, 17, 27, 43, 52, 222, 4556
   UNION ALL SELECT 46779650, 39, 37.4, 51, 62, 13, 31, 25, 31, 52, 224, 4551
   UNION ALL SELECT 46780524, 33, 40.4, 60, 53, 18, 32, 31, 31, 39, 232, 4563
   UNION ALL SELECT 46780634, 39, 35.4, 46, 44, 16, 33, 19, 31, 52, 242, 4557
   UNION ALL SELECT 46781887, 24, 30.4, 54, 62, 13, 18, 29, 24, 52, 223, 4561
   ```

   Assurez-vous que la table **mkt\$1sls\$1table** est correctement créée dans la section **Tables et vues sur** le côté gauche. Vous disposez désormais d'un actif de données qui peut être publié dans le DataZone catalogue Amazon.

## Étape 5 - Collectez les métadonnées à partir de AWS Glue
<a name="gather-metadata-from-glue-gs-glue"></a>

Cette section décrit l'étape de collecte des métadonnées à partir de AWS Glue pour ce flux de travail.

1. Une fois que vous avez terminé l'étape 4 ci-dessus, dans le portail de DataZone données Amazon, choisissez le `SalesDataPublishingProject` projet, puis choisissez l'onglet **Données**, puis choisissez **Sources de données** dans le panneau de gauche.

1. Choisissez la source créée dans le cadre du processus de création de l'environnement. 

1. Choisissez **Exécuter** à côté du menu déroulant **Action**, puis cliquez sur le bouton d'actualisation. Une fois l'exécution de la source de données terminée, les actifs sont ajoutés à l' DataZone inventaire Amazon.

## Étape 6 - Organiser et publier la ressource de données
<a name="curate-data-asset-gs-glue"></a>

Cette section décrit les étapes de conservation et de publication de la ressource de données dans ce flux de travail.

1. Une fois que vous avez terminé l'étape 5 ci-dessus, dans le portail de DataZone données Amazon, choisissez le `SalesDataPublishingProject` projet que vous avez créé à l'étape précédente, choisissez l'onglet **Données**, choisissez **Données d'inventaire** dans le panneau de gauche et recherchez le `mkt_sls_table` tableau.

1. Ouvrez la page de détails de l'`mkt_sls_table`actif pour voir les noms commerciaux générés automatiquement. Cliquez sur l'icône de **métadonnées générées automatiquement** pour afficher les noms générés automatiquement pour les actifs et les colonnes. Vous pouvez accepter ou rejeter chaque nom individuellement ou choisir **Accepter tout** pour appliquer les noms générés. Vous pouvez également éventuellement ajouter le formulaire de métadonnées disponible à votre ressource et sélectionner des termes du glossaire pour classer vos données.

1. Choisissez **Publier la ressource** pour publier la `mkt_sls_table` ressource.

## Étape 7 - Création du projet pour l'analyse des données
<a name="create-project-for-data-analysis-gs-glue"></a>

Cette section décrit les étapes de création du projet pour l'analyse des données. C'est le début des étapes de consommation de données de ce flux de travail.

1. Une fois que vous avez terminé l'étape 6 ci-dessus, dans le portail de DataZone données Amazon, choisissez **Create project** dans le menu déroulant **Project**.

1. Sur la page **Créer un projet**, spécifiez le nom du projet. Par exemple, pour ce flux de travail **MarketingDataAnalysisProject**, vous pouvez le nommer, laisser les autres champs inchangés, puis choisir **Créer**.

## Étape 8 - Création d'un environnement pour l'analyse des données
<a name="create-environment-gs2-glue"></a>

Cette section décrit les étapes de création d'un environnement pour l'analyse des données.

1. Une fois que vous avez terminé l'étape 7 ci-dessus, dans le portail de DataZone données Amazon, choisissez le `MarketingDataAnalysisProject` projet, puis choisissez l'onglet **Environnements**, puis choisissez **Create environment**.

1. Sur la page **Créer un environnement**, spécifiez ce qui suit, puis choisissez **Créer un environnement**.
   + **Nom** : spécifiez le nom de l'environnement. Pour cette procédure pas à pas, vous pouvez l'`Default data lake environment`appeler.
   + **Description** : spécifiez une description de l'environnement.
   + **Profil d'environnement** : choisissez le profil d'**DataLakeProfile**environnement intégré.
   + Pour cette procédure pas à pas, conservez les autres champs inchangés.

## Étape 9 - Rechercher dans le catalogue de données et s'abonner aux données
<a name="search-catalog-subscribe-gs-glue"></a>

Cette section décrit les étapes de recherche dans le catalogue de données et d'abonnement aux données.

1. Une fois que vous avez terminé l'étape 8 ci-dessus, dans le portail de DataZone données Amazon, choisissez l' DataZoneicône Amazon, et dans le champ de DataZone **recherche** Amazon, recherchez des actifs de données à l'aide de mots clés (par exemple, « catalogue » ou « ventes ») dans la barre de **recherche** du portail de données. 

   Si nécessaire, appliquez des filtres ou effectuez un tri. Une fois que vous avez localisé la ressource **Product Sales Data**, vous pouvez la choisir pour ouvrir la page de détails de la ressource.

1. Sur la page de détails de la ressource **Catalog Sales Data**, choisissez **Subscribe**.

1. Dans la boîte de dialogue **S'abonner**, choisissez votre projet **MarketingDataAnalysisProject**client dans la liste déroulante, puis spécifiez le motif de votre demande d'abonnement, puis choisissez **S'abonner**.

## Étape 10 - Approuver la demande d'abonnement
<a name="approve-subscription-request-gs-glue"></a>

Cette section décrit les étapes d'approbation de la demande d'abonnement.

1. Une fois que vous avez terminé l'étape 9 ci-dessus, dans le portail de DataZone données Amazon, choisissez le **SalesDataPublishingProject**projet avec lequel vous avez publié votre ressource.

1. Cliquez sur l'onglet **Données**, puis **sur Données publiées**, puis sur **Demandes entrantes**.

1. Vous pouvez maintenant voir la ligne correspondant à la nouvelle demande nécessitant une approbation. Choisissez **Afficher la demande**. Indiquez le motif de l'approbation et choisissez **Approuver**.

## Étape 11 - Création d'une requête et analyse des données dans Amazon Athena
<a name="analyze-data-gs-glue"></a>

Maintenant que vous avez publié avec succès une ressource dans le DataZone catalogue Amazon et que vous vous y êtes abonné, vous pouvez l'analyser.

1. Sur le portail de DataZone données Amazon, choisissez votre projet **MarketingDataAnalysisProject**client, puis, dans le panneau de droite, sous **Outils d'analyse**, choisissez le lien de **données Query** avec Amazon Athena. Cela ouvre l'éditeur de requêtes Amazon Athena en utilisant les informations d'identification de votre projet pour l'authentification. Choisissez l'environnement du **MarketingDataAnalysisProject**consommateur dans le menu déroulant **Amazon DataZone Environment** de l'éditeur de requêtes, puis choisissez celui de votre projet dans le menu déroulant `<environment_name>%sub_db` de la base de données.

1. Vous pouvez désormais exécuter des requêtes sur la table abonnée. Vous pouvez choisir le tableau dans **Tables et vues**, puis choisir **Aperçu pour afficher** l'instruction de sélection sur l'écran de l'éditeur. Exécutez la requête pour voir les résultats. 

# Amazon DataZone QuickStart avec les données Amazon Redshift
<a name="quickstart-rs"></a>

Suivez les étapes de démarrage rapide suivantes pour passer en revue l'ensemble des flux de production et de consommation de données d'Amazon DataZone avec des exemples de données Amazon Redshift. 

**Topics**
+ [Étape 1 - Création du DataZone domaine Amazon et du portail de données](#create-domain-gs-rs)
+ [Étape 2 - Création du projet de publication](#create-publishing-project-gs-rs)
+ [Étape 3 - Création de l'environnement](#create-environment-gs-rs)
+ [Étape 4 - Produire des données pour publication](#produce-data-for-publishing-gs-rs)
+ [Étape 5 - Collectez les métadonnées depuis Amazon Redshift](#gather-metadata-from-glue-gs-rs)
+ [Étape 6 - Organiser et publier la ressource de données](#curate-data-asset-gs-rs)
+ [Étape 7 - Création du projet pour l'analyse des données](#create-project-for-data-analysis-gs-rs)
+ [Étape 8 - Création d'un environnement pour l'analyse des données](#create-environment-gs2-rs)
+ [Étape 9 - Rechercher dans le catalogue de données et s'abonner aux données](#search-catalog-subscribe-gs-rs)
+ [Étape 10 - Approuver la demande d'abonnement](#approve-subscription-request-gs-rs)
+ [Étape 11 - Création d'une requête et analyse des données dans Amazon Redshift](#analyze-data-gs-rs)

## Étape 1 - Création du DataZone domaine Amazon et du portail de données
<a name="create-domain-gs-rs"></a>

Suivez la procédure ci-dessous pour créer un DataZone domaine Amazon. Pour plus d'informations sur DataZone les domaines Amazon, consultez[DataZone Terminologie et concepts d'Amazon](datazone-concepts.md). 

1. **Accédez à la DataZone console Amazon à l'adresse [https://console.aws.amazon.com/datazone](https://console.aws.amazon.com/datazone), connectez-vous, puis choisissez Create domain.**
**Note**  
Si vous souhaitez utiliser un DataZone domaine Amazon existant pour ce flux de travail, choisissez Afficher les domaines, puis choisissez le domaine que vous souhaitez utiliser, puis passez à l'étape 2 de création d'un projet de publication.

1. Sur la page **Créer un domaine**, entrez des valeurs pour les champs suivants : 
   + **Nom** : spécifiez le nom de votre domaine. Dans le cadre de ce flux de travail, vous pouvez appeler ce domaine`Marketing`.
   + **Description** : spécifiez une description de domaine facultative.
   + **Chiffrement des données** : vos données sont cryptées par défaut à l'aide d'une clé qui vous AWS appartient et qui est gérée pour vous. Pour cette procédure pas à pas, vous pouvez conserver les paramètres de chiffrement des données par défaut.

     Pour plus d'informations sur l'utilisation des clés gérées par le client, consultez[Le chiffrement des données est au repos pour Amazon DataZone](encryption-rest-datazone.md). Si vous utilisez votre propre clé KMS pour le chiffrement des données, vous devez inclure l'instruction suivante dans votre clé par défaut[AmazonDataZoneDomainExecutionRole](AmazonDataZoneDomainExecutionRole.md).

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "Statement1",
                 "Effect": "Allow",
                 "Action": [
                     "kms:Decrypt",
                     "kms:DescribeKey",
                     "kms:GenerateDataKey"
                 ],
                 "Resource": [
                     "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
                 ]
             }
         ]
     }
     ```

------
   + **Accès au service** : choisissez l'option **Utiliser un rôle de service personnalisé**, puis choisissez-la dans le **AmazonDataZoneDomainExecutionRole**menu déroulant.
   + Sous **Configuration rapide**, choisissez **Configurer ce compte pour la consommation et la publication de données**. Cette option active les DataZone plans Amazon intégrés du **lac de données** et de l'**entrepôt de données**, et configure les autorisations et les ressources requises pour effectuer les autres étapes de ce flux de travail. Pour plus d'informations sur les DataZone plans Amazon, consultez[DataZone Terminologie et concepts d'Amazon](datazone-concepts.md).
   + Conservez les champs restants sous **Détails des autorisations** et **Tags** inchangés, puis choisissez **Créer un domaine**.

1. Une fois le domaine créé avec succès, choisissez-le et, sur la page de résumé du domaine, notez l'**URL du portail de données** pour ce domaine. Vous pouvez utiliser cette URL pour accéder à votre portail de DataZone données Amazon afin d'effectuer les autres étapes de ce flux de travail.

**Note**  
Dans la version actuelle d'Amazon DataZone, une fois le domaine créé, l'URL générée pour le portail de données ne peut pas être modifiée.

La création d'un domaine peut prendre plusieurs minutes. Attendez que le statut du domaine soit défini **sur Disponible** avant de passer à l'étape suivante.

## Étape 2 - Création du projet de publication
<a name="create-publishing-project-gs-rs"></a>

La section suivante décrit les étapes de création du projet de publication dans ce flux de travail.

1. Une fois l'étape 1 terminée, accédez au portail de DataZone données Amazon à l'aide de l'URL du portail de données et connectez-vous à l'aide de vos informations d'identification unique (SSO) ou AWS IAM. 

1. Choisissez **Créer un projet**, spécifiez le nom du projet. Par exemple, pour ce flux de travail **SalesDataPublishingProject**, vous pouvez le nommer, laisser les autres champs inchangés, puis choisir **Créer**.

## Étape 3 - Création de l'environnement
<a name="create-environment-gs-rs"></a>

La section suivante décrit les étapes de création d'un environnement dans ce flux de travail.

1. Une fois que vous avez terminé l'étape 2, dans le portail de DataZone données Amazon, choisissez le `SalesDataPublishingProject` projet que vous avez créé à l'étape précédente, puis choisissez l'onglet **Environnements**, puis choisissez **Create environment**.

1. Sur la page **Créer un environnement**, spécifiez ce qui suit, puis choisissez **Créer un environnement**.
   + **Nom** : spécifiez le nom de l'environnement. Pour cette procédure pas à pas, vous pouvez l'`Default data warehouse environment`appeler.
   + **Description** : spécifiez une description de l'environnement.
   + **Profil d'environnement** : choisissez le profil d'**DataWarehouseProfile**environnement.
   + Indiquez le nom de votre cluster Amazon Redshift, le nom de la base de données et l'ARN secret du cluster Amazon Redshift dans lequel vos données sont stockées. 
**Note**  
Assurez-vous que votre secret dans AWS Secrets Manager inclut les balises suivantes (clé/valeur) :  
Pour le cluster Amazon Redshift - datazone.rs.cluster : <cluster\$1name:database name>  
Pour le groupe de travail Amazon Redshift Serverless - datazone.rs.workgroup : <workgroup\$1name:database\$1name>
AmazonDataZoneProject: <projectID> 
AmazonDataZoneDomain: <domainID>
Pour plus d'informations, consultez [Stockage des informations d'identification de base de données dans AWS Secrets Manager](https://docs.aws.amazon.com//redshift/latest/mgmt/data-api-access.html#data-api-secrets).  
L'utilisateur de base de données que vous indiquez dans le Gestionnaire AWS des Secrets doit disposer des autorisations de superutilisateur.

## Étape 4 - Produire des données pour publication
<a name="produce-data-for-publishing-gs-rs"></a>

La section suivante décrit les étapes de production des données destinées à être publiées dans ce flux de travail.

1. Une fois l'étape 3 terminée, dans le portail de DataZone données Amazon, choisissez le `SalesDataPublishingProject` projet, puis, dans le panneau de droite, sous **Outils d'analyse**, choisissez **Amazon Redshift**. Cela ouvre l'éditeur de requêtes Amazon Redshift en utilisant les informations d'identification de votre projet pour l'authentification.

1. Pour cette procédure pas à pas, vous utilisez le script de requête **Create Table as Select** (CTAS) pour créer une nouvelle table que vous souhaitez publier sur Amazon. DataZone Dans votre éditeur de requêtes, exécutez ce script CTAS pour créer une `mkt_sls_table` table que vous pouvez publier et rendre disponible pour la recherche et l'abonnement. 

   ```
   CREATE TABLE mkt_sls_table AS
   SELECT 146776932 AS ord_num, 23 AS sales_qty_sld, 23.4 AS wholesale_cost, 45.0 as lst_pr, 43.0 as sell_pr, 2.0 as disnt, 12 as ship_mode,13 as warehouse_id, 23 as item_id, 34 as ctlg_page, 232 as ship_cust_id, 4556 as bill_cust_id
   UNION ALL SELECT 46776931, 24, 24.4, 46, 44, 1, 14, 15, 24, 35, 222, 4551
   UNION ALL SELECT 46777394, 42, 43.4, 60, 50, 10, 30, 20, 27, 43, 241, 4565
   UNION ALL SELECT 46777831, 33, 40.4, 51, 46, 15, 16, 26, 33, 40, 234, 4563
   UNION ALL SELECT 46779160, 29, 26.4, 50, 61, 8, 31, 15, 36, 40, 242, 4562
   UNION ALL SELECT 46778595, 43, 28.4, 49, 47, 7, 28, 22, 27, 43, 224, 4555
   UNION ALL SELECT 46779482, 34, 33.4, 64, 44, 10, 17, 27, 43, 52, 222, 4556
   UNION ALL SELECT 46779650, 39, 37.4, 51, 62, 13, 31, 25, 31, 52, 224, 4551
   UNION ALL SELECT 46780524, 33, 40.4, 60, 53, 18, 32, 31, 31, 39, 232, 4563
   UNION ALL SELECT 46780634, 39, 35.4, 46, 44, 16, 33, 19, 31, 52, 242, 4557
   UNION ALL SELECT 46781887, 24, 30.4, 54, 62, 13, 18, 29, 24, 52, 223, 4561
   ```

   Assurez-vous que la table **mkt\$1sls\$1table** est correctement créée. Vous disposez désormais d'un actif de données qui peut être publié dans le DataZone catalogue Amazon.

## Étape 5 - Collectez les métadonnées depuis Amazon Redshift
<a name="gather-metadata-from-glue-gs-rs"></a>

La section suivante décrit les étapes de collecte de métadonnées depuis Amazon Redshift.

1. Une fois l'étape 4 terminée, dans le portail de DataZone données Amazon, choisissez le `SalesDataPublishingProject` projet, puis l'onglet **Données**, puis choisissez **Sources de données**.

1. Choisissez la source créée dans le cadre du processus de création de l'environnement. 

1. Choisissez **Exécuter** à côté du menu déroulant **Action**, puis cliquez sur le bouton d'actualisation. Une fois l'exécution de la source de données terminée, les actifs sont ajoutés à l' DataZone inventaire Amazon.

## Étape 6 - Organiser et publier la ressource de données
<a name="curate-data-asset-gs-rs"></a>

La section suivante décrit les étapes de conservation et de publication de la ressource de données dans ce flux de travail.

1. Une fois l'étape 5 terminée, dans le portail de DataZone données Amazon, choisissez le `SalesDataPublishingProject` projet, puis l'onglet **Données**, choisissez les **données d'inventaire** et localisez le `mkt_sls_table` tableau.

1. Ouvrez la page de détails de l'`mkt_sls_table`actif pour voir les noms commerciaux générés automatiquement. Cliquez sur l'icône de **métadonnées générées automatiquement** pour afficher les noms générés automatiquement pour les actifs et les colonnes. Vous pouvez accepter ou rejeter chaque nom individuellement ou choisir **Accepter tout** pour appliquer les noms générés. Vous pouvez également éventuellement ajouter le formulaire de métadonnées disponible à votre ressource et sélectionner des termes du glossaire pour classer vos données.

1. Choisissez **Publier** pour publier la `mkt_sls_table` ressource.

## Étape 7 - Création du projet pour l'analyse des données
<a name="create-project-for-data-analysis-gs-rs"></a>

La section suivante décrit les étapes de création du projet pour l'analyse des données dans ce flux de travail.

1. Une fois l'étape 6 terminée, dans le portail de DataZone données Amazon, choisissez **Create project**.

1. Dans la page **Créer un projet**, spécifiez le nom du projet. Par exemple, pour ce flux de travail **MarketingDataAnalysisProject**, vous pouvez le nommer, laisser les autres champs inchangés, puis choisir **Créer**.

## Étape 8 - Création d'un environnement pour l'analyse des données
<a name="create-environment-gs2-rs"></a>

La section suivante décrit les étapes de création d'un environnement pour l'analyse des données dans ce flux de travail.

1. Une fois l'étape 7 terminée, dans le portail de DataZone données Amazon, choisissez le `MarketingDataAnalysisProject` projet que vous avez créé à l'étape précédente, puis choisissez l'onglet **Environnements**, puis choisissez **Ajouter un environnement**.

1. Sur la page **Créer un environnement**, spécifiez ce qui suit, puis choisissez **Créer un environnement**.
   + **Nom** : spécifiez le nom de l'environnement. Pour cette procédure pas à pas, vous pouvez l'`Default data warehouse environment`appeler.
   + **Description** : spécifiez une description de l'environnement.
   + **Profil d'environnement** : choisissez le profil d'**DataWarehouseProfile**environnement.
   + Indiquez le nom de votre cluster Amazon Redshift, le nom de la base de données et l'ARN secret du cluster Amazon Redshift dans lequel vos données sont stockées. 
**Note**  
Assurez-vous que votre secret dans AWS Secrets Manager inclut les balises suivantes (clé/valeur) :  
Pour le cluster Amazon Redshift - datazone.rs.cluster : <cluster\$1name:database name>  
Pour le groupe de travail Amazon Redshift Serverless - datazone.rs.workgroup : <workgroup\$1name:database\$1name>
AmazonDataZoneProject: <projectID> 
AmazonDataZoneDomain: <domainID>
Pour plus d'informations, consultez [Stockage des informations d'identification de base de données dans AWS Secrets Manager](https://docs.aws.amazon.com//redshift/latest/mgmt/data-api-access.html#data-api-secrets).  
L'utilisateur de base de données que vous indiquez dans le Gestionnaire AWS des Secrets doit disposer des autorisations de superutilisateur.
   + Pour cette procédure pas à pas, conservez les autres champs inchangés.

## Étape 9 - Rechercher dans le catalogue de données et s'abonner aux données
<a name="search-catalog-subscribe-gs-rs"></a>

La section suivante décrit les étapes de recherche dans le catalogue de données et d'abonnement aux données.

1. Une fois l'étape 8 terminée, dans le portail de DataZone données Amazon, recherchez des actifs de données à l'aide de mots clés (par exemple, « catalogue » ou « ventes ») dans la barre de **recherche** du portail de données. 

   Si nécessaire, appliquez des filtres ou effectuez un tri. Une fois que vous avez localisé la ressource Product Sales Data, vous pouvez la choisir pour ouvrir la page de détails de la ressource.

1. Sur la page de détails de la ressource Product Sales Data, choisissez **S'abonner**.

1. Dans la boîte de dialogue, choisissez votre projet client dans la liste déroulante, indiquez le motif de la demande d'accès, puis choisissez **S'abonner**.

## Étape 10 - Approuver la demande d'abonnement
<a name="approve-subscription-request-gs-rs"></a>

La section suivante décrit les étapes d'approbation de la demande d'abonnement dans ce flux de travail.

1. Une fois l'étape 9 terminée, dans le portail de DataZone données Amazon, choisissez le **SalesDataPublishingProject**projet avec lequel vous avez publié votre ressource.

1. Choisissez l'onglet **Données**, puis **Données publiées**, puis **Demandes entrantes**.

1. Choisissez le lien de demande de consultation, puis sélectionnez **Approuver**. 

## Étape 11 - Création d'une requête et analyse des données dans Amazon Redshift
<a name="analyze-data-gs-rs"></a>

Maintenant que vous avez publié avec succès une ressource dans le DataZone catalogue Amazon et que vous vous y êtes abonné, vous pouvez l'analyser.

1. Dans le portail de DataZone données Amazon, sur le panneau de droite, cliquez sur le lien Amazon Redshift. Cela ouvre l'éditeur de requêtes Amazon Redshift en utilisant les informations d'identification du projet pour l'authentification.

1. Vous pouvez désormais exécuter une requête (instruction select) sur la table abonnée. Vous pouvez cliquer sur le tableau (three-vertical-dots option) et choisir l'aperçu pour afficher l'instruction sélectionnée sur l'écran de l'éditeur. Exécutez la requête pour voir les résultats. 

# Amazon DataZone QuickStart avec des exemples de scripts
<a name="quickstart-apis"></a>

Vous pouvez accéder à Amazon DataZone via le portail de gestion ou le portail de DataZone données Amazon, ou par programmation à l'aide de l'API Amazon DataZone HTTPS, qui vous permet d'envoyer des requêtes HTTPS directement au service. Cette section contient des exemples de scripts qui invoquent Amazon et DataZone APIs que vous pouvez utiliser pour effectuer les tâches courantes suivantes :

**Topics**
+ [Création d'un DataZone domaine Amazon et d'un portail de données](#create-domain-gs-glue-api)
+ [Création d'un projet de publication](#create-publishing-project-gs-glue-api)
+ [Création d'un profil d'environnement](#create-environment-profile-gs-glue-api)
+ [Création d'un environnement](#create-environment-gs-glue-api)
+ [Collectez des métadonnées à partir de AWS Glue](#gather-metadata-from-glue-gs-glue-api)
+ [Organiser et publier un actif de données](#curate-data-asset-gs-glue-api)
+ [Rechercher dans le catalogue de données et s'abonner aux données](#search-catalog-subscribe-gs-glue-api)
+ [Rechercher des actifs dans le catalogue de données](#search-catalog-subscribe-gs-glue-api)
+ [Autres exemples de scripts utiles](#other-useful-scripts-api)

## Création d'un DataZone domaine Amazon et d'un portail de données
<a name="create-domain-gs-glue-api"></a>

Vous pouvez utiliser l'exemple de script suivant pour créer un DataZone domaine Amazon. Pour plus d'informations sur DataZone les domaines Amazon, consultez[DataZone Terminologie et concepts d'Amazon](datazone-concepts.md). 

```
import sys
import boto3

// Initialize datazone client
region = 'us-east-1'
dzclient = boto3.client(service_name='datazone', region_name='us-east-1')

// Create DataZone domain
def create_domain(name):
    return dzclient.create_domain(
        name = name,
        description = "this is a description",
        domainExecutionRole = "arn:aws:iam::<account>:role/AmazonDataZoneDomainExecutionRole",
    )
```

## Création d'un projet de publication
<a name="create-publishing-project-gs-glue-api"></a>

Vous pouvez utiliser l'exemple de script suivant pour créer un projet de publication sur Amazon DataZone.

```
// Create Project
def create_project(domainId):
    return dzclient.create_project(
        domainIdentifier = domainId,
        name = "sample-project"
    )
```

## Création d'un profil d'environnement
<a name="create-environment-profile-gs-glue-api"></a>

Vous pouvez utiliser les exemples de scripts suivants pour créer un profil d'environnement dans Amazon DataZone.

Cet exemple de charge utile est utilisé lorsque l'`CreateEnvironmentProfile`API est invoquée :

```
Sample Payload
{
    "Content":{
        "project_name": "Admin_project",
        "domain_name": "Drug-Research-and-Development",
        "blueprint_account_region": [
            {
                "blueprint_name": "DefaultDataLake",
                "account_id": ["066535990535",
                "413878397724",
                "676266385322", 
                "747721550195", 
                "755347404384"
                ],
                "region": ["us-west-2", "us-east-1"]
            },
            {
                "blueprint_name": "DefaultDataWarehouse",
                "account_id": ["066535990535",
                "413878397724",
                "676266385322", 
                "747721550195", 
                "755347404384"
                ],
                "region":["us-west-2", "us-east-1"]
            }
        ]
    }
}
```

Cet exemple de script appelle l'`CreateEnvironmentProfile`API :

```
def create_environment_profile(domain_id, project_id, env_blueprints)    
        try:
            response = dz.list_environment_blueprints(
                domainIdentifier=domain_id,
                managed=True
            )
            env_blueprints = response.get("items")
            env_blueprints_map = {}
            for i in env_blueprints:
                env_blueprints_map[i["name"]] = i['id']
            
            print("Environment Blueprint map", env_blueprints_map)
            for i in blueprint_account_region:
                print(i)
                for j in i["account_id"]:
                    for k in i["region"]:
                        print("The env blueprint name is", i['blueprint_name'])
                        dz.create_environment_profile(
                            description='This is a test environment profile created via lambda function',
                            domainIdentifier=domain_id,
                            awsAccountId=j,
                            awsAccountRegion=k,
                            environmentBlueprintIdentifier=env_blueprints_map.get(i["blueprint_name"]),
                            name=i["blueprint_name"] + j + k + "_profile",
                            projectIdentifier=project_id
                        )
        except Exception as e:
            print("Failed to created Environment Profile")
            raise e
```

Voici l'exemple de charge utile de sortie une fois que l'`CreateEnvironmentProfile`API est invoquée :

```
{
    "Content":{
        "project_name": "Admin_project",
        "domain_name": "Drug-Research-and-Development",
        "blueprint_account_region": [
            {
                "blueprint_name": "DefaultDataWarehouse",
                "account_id": ["111111111111"],
                "region":["us-west-2"],
                "user_parameters":[
                    {
                        "name": "dataAccessSecretsArn",
                        "value": ""
                    }
                ] 
            }
        ]
    }
}
```

## Création d'un environnement
<a name="create-environment-gs-glue-api"></a>

Vous pouvez utiliser l'exemple de script suivant pour créer un environnement dans Amazon DataZone.

```
def create_environment(domain_id, project_id,blueprint_account_region ):
         try:
            #refer to get_domain_id and get_project_id for fetching ids using names.
            sts_client = boto3.client("sts")
            # Get the current account ID
            account_id = sts_client.get_caller_identity()["Account"]
            print("Fetching environment profile ids")
            env_profile_map = get_env_profile_map(domain_id, project_id)

            for i in blueprint_account_region:
                for j in i["account_id"]:
                    for k in i["region"]:
                        print(" env blueprint name", i['blueprint_name'])
                        profile_name = i["blueprint_name"] + j + k + "_profile"
                        env_name = i["blueprint_name"] + j + k + "_env"
                        description = f'This is environment is created for {profile_name}, Account {account_id} and region {i["region"]}'
                        try:
                            dz.create_environment(
                                description=description,
                                domainIdentifier=domain_id,
                                environmentProfileIdentifier=env_profile_map.get(profile_name),
                                name=env_name,
                                projectIdentifier=project_id
                            )
                            print(f"Environment created - {env_name}")
                        except:
                            dz.create_environment(
                                description=description,
                                domainIdentifier=domain_id,
                                environmentProfileIdentifier=env_profile_map.get(profile_name),
                                name=env_name,
                                projectIdentifier=project_id,
                                userParameters= i["user_parameters"] 
                            )
                            print(f"Environment created - {env_name}")
        except Exception as e:
            print("Failed to created Environment")
            raise e
```

## Collectez des métadonnées à partir de AWS Glue
<a name="gather-metadata-from-glue-gs-glue-api"></a>

Vous pouvez utiliser cet exemple de script pour collecter des métadonnées à partir de AWS Glue. Ce script s'exécute selon un calendrier standard. Vous pouvez récupérer les paramètres à partir de l'exemple de script et les rendre globaux. Récupérez le projet, l'environnement et l'ID de domaine à l'aide des fonctions standard. La source de données AWS Glue est créée et exécutée à une heure standard qui peut être mise à jour dans la section cron du script. 

```
def crcreate_data_source(domain_id, project_id,data_source_name)
        print("Creating Data Source")
        data_source_creation = dz.create_data_source(
            # Define data source : Customize the data source to which you'd like to connect
            # define the name of the Data source to create, example: name ='TestGlueDataSource'
            name=data_source_name,
            # give a description for the datasource (optional), example: description='This is a dorra test for creation on DZ datasources'
            description=data_source_description,
            # insert the domain identifier corresponding to the domain to which the datasource will belong, example: domainIdentifier= 'dzd_6f3gst5jjmrrmv'
            domainIdentifier=domain_id,
            # give environment identifier , example: environmentIdentifier= '3weyt6hhn8qcvb'
            environmentIdentifier=environment_id,
            # give corresponding project identifier, example: projectIdentifier= '6tl4csoyrg16ef',
            projectIdentifier=project_id,
            enableSetting="ENABLED",
            # publishOnImport used to select whether assets are added to the inventory and/or discovery catalog .
            # publishOnImport = True : Assets will be added to project's inventory as well as published to the discovery catalog
            # publishOnImport = False : Assets will only be added to project's inventory.
            # You can later curate the metadata of the assets and choose subscription terms to publish them from the inventory to the discovery catalog.
            publishOnImport=False,
            # Automated business name generation : Use AI to automatically generate metadata for assets as they are published or updated by this data source run.
            # Automatically generated metadata can be be approved, rejected, or edited by data publishers.
            # Automatically generated metadata is badged with a small icon next to the corresponding metadata field.
            recommendation={"enableBusinessNameGeneration": True},
            type="GLUE",
            configuration={
                "glueRunConfiguration": {
                    "dataAccessRole": "arn:aws:iam::"
                    + account_id
                    + ":role/service-role/AmazonDataZoneGlueAccess-"
                    + current_region
                    + "-"
                    + domain_id
                    + "",
                    "relationalFilterConfigurations": [
                        {
                            #
                            "databaseName": glue_database_name,
                            "filterExpressions": [
                                {"expression": "*", "type": "INCLUDE"},
                            ],
                            #    "schemaName": "TestSchemaName",
                        },
                    ],
                },
            },
            # Add metadata forms to the data source (OPTIONAL).
            # Metadata forms will be automatically applied to any assets that are created by the data source.
            # assetFormsInput=[
            #     {
            #         "content": "string",
            #         "formName": "string",
            #         "typeIdentifier": "string",
            #         "typeRevision": "string",
            #     },
            # ],
            schedule={
                "schedule": "cron(5 20 * * ? *)",
                "timezone": "UTC",
            },
        )
        # This is a suggested syntax to return values
        #        return_values["data_source_creation"] = data_source_creation["items"]
        print("Data Source Created")


//This is the sample response payload after the CreateDataSource API is invoked:

{
    "Content":{
        "project_name": "Admin",
        "domain_name": "Drug-Research-and-Development",
        "env_name": "GlueEnvironment",
        "glue_database_name": "test",
        "data_source_name" : "test",
        "data_source_description" : "This is a test data source"
    }
}
```

## Organiser et publier un actif de données
<a name="curate-data-asset-gs-glue-api"></a>

Vous pouvez utiliser les exemples de scripts suivants pour organiser et publier des actifs de données sur Amazon DataZone.

Vous pouvez utiliser le script suivant pour créer des types de formulaires personnalisés :

```
 
def create_form_type(domainId, projectId):
    return dzclient.create_form_type(
        domainIdentifier = domainId,
        name = "customForm",
        model = {
            "smithy": "structure customForm { simple: String }"
        },
        owningProjectIdentifier = projectId,
        status = "ENABLED"
    )
```

Vous pouvez utiliser l'exemple de script suivant pour créer des types de ressources personnalisés :

```
def create_custom_asset_type(domainId, projectId):
    return dzclient.create_asset_type(
        domainIdentifier = domainId,
        name = "userCustomAssetType",
        formsInput = {
            "Model": {
                "typeIdentifier": "customForm",
                "typeRevision": "1",
                "required": False
            }
        },
        owningProjectIdentifier = projectId,
    )
```

Vous pouvez utiliser l'exemple de script suivant pour créer des ressources personnalisées :

```
def create_custom_asset(domainId, projectId):
    return dzclient.create_asset(
        domainIdentifier = domainId,
        name = 'custom asset',
        description = "custom asset",
        owningProjectIdentifier = projectId,
        typeIdentifier = "userCustomAssetType",
        formsInput = [
            {
                "formName": "UserCustomForm",
                "typeIdentifier": "customForm",
                "content": "{\"simple\":\"sample-catalogId\"}"
            }
        ]
    )
```

Vous pouvez utiliser l'exemple de script suivant pour créer un glossaire :

```
def create_glossary(domainId, projectId):
    return dzclient.create_glossary(
        domainIdentifier = domainId,
        name = "test7",
        description = "this is a test glossary",
        owningProjectIdentifier = projectId
    )
```

Vous pouvez utiliser l'exemple de script suivant pour créer un terme de glossaire :

```
def create_glossary_term(domainId, glossaryId):
    return dzclient.create_glossary_term(
        domainIdentifier = domainId,
        name = "soccer",
        shortDescription = "this is a test glossary",
        glossaryIdentifier = glossaryId,
    )
```

Vous pouvez utiliser l'exemple de script suivant pour créer une ressource à l'aide d'un type de ressource défini par le système :

```
def create_asset(domainId, projectId):
    return dzclient.create_asset(
        domainIdentifier = domainId,
        name = 'sample asset name',
        description = "this is a glue table asset",
        owningProjectIdentifier = projectId,
        typeIdentifier = "amazon.datazone.GlueTableAssetType",
        formsInput = [
            {
                "formName": "GlueTableForm",
                "content": "{\"catalogId\":\"sample-catalogId\",\"columns\":[{\"columnDescription\":\"sample-columnDescription\",\"columnName\":\"sample-columnName\",\"dataType\":\"sample-dataType\",\"lakeFormationTags\":{\"sample-key1\":\"sample-value1\",\"sample-key2\":\"sample-value2\"}}],\"compressionType\":\"sample-compressionType\",\"lakeFormationDetails\":{\"lakeFormationManagedTable\":false,\"lakeFormationTags\":{\"sample-key1\":\"sample-value1\",\"sample-key2\":\"sample-value2\"}},\"primaryKeys\":[\"sample-Key1\",\"sample-Key2\"],\"region\":\"us-east-1\",\"sortKeys\":[\"sample-sortKey1\"],\"sourceClassification\":\"sample-sourceClassification\",\"sourceLocation\":\"sample-sourceLocation\",\"tableArn\":\"sample-tableArn\",\"tableDescription\":\"sample-tableDescription\",\"tableName\":\"sample-tableName\"}"
            }
        ]
    )
```

Vous pouvez utiliser l'exemple de script suivant pour créer une révision de ressource et y joindre un terme du glossaire :

```
def create_asset_revision(domainId, assetId):
    return dzclient.create_asset_revision(
        domainIdentifier = domainId,
        identifier = assetId,
        name = 'glue table asset 7',
        description = "glue table asset description update",
        formsInput = [
            {
                "formName": "GlueTableForm",
                "content": "{\"catalogId\":\"sample-catalogId\",\"columns\":[{\"columnDescription\":\"sample-columnDescription\",\"columnName\":\"sample-columnName\",\"dataType\":\"sample-dataType\",\"lakeFormationTags\":{\"sample-key1\":\"sample-value1\",\"sample-key2\":\"sample-value2\"}}],\"compressionType\":\"sample-compressionType\",\"lakeFormationDetails\":{\"lakeFormationManagedTable\":false,\"lakeFormationTags\":{\"sample-key1\":\"sample-value1\",\"sample-key2\":\"sample-value2\"}},\"primaryKeys\":[\"sample-Key1\",\"sample-Key2\"],\"region\":\"us-east-1\",\"sortKeys\":[\"sample-sortKey1\"],\"sourceClassification\":\"sample-sourceClassification\",\"sourceLocation\":\"sample-sourceLocation\",\"tableArn\":\"sample-tableArn\",\"tableDescription\":\"sample-tableDescription\",\"tableName\":\"sample-tableName\"}"
            }
        ],
        glossaryTerms = ["<glossaryTermId:>"]
    )
```

Vous pouvez utiliser l'exemple de script suivant pour publier une ressource :

```
def publish_asset(domainId, assetId):
    return dzclient.create_listing_change_set(
        domainIdentifier = domainId,
        entityIdentifier = assetId,
        entityType = "ASSET",
        action = "PUBLISH",
    )
```

## Rechercher dans le catalogue de données et s'abonner aux données
<a name="search-catalog-subscribe-gs-glue-api"></a>

Vous pouvez utiliser les exemples de scripts suivants pour effectuer des recherches dans le catalogue de données et vous abonner aux données :

```
def search_asset(domainId, projectId, text):
    return dzclient.search(
        domainIdentifier = domainId,
        owningProjectIdentifier = projectId,
        searchScope = "ASSET",
        searchText = text,
    )
```

Vous pouvez utiliser l'exemple de script suivant pour obtenir l'ID de liste de l'actif :

```
def search_listings(domainId, assetName, assetId):
    listings = dzclient.search_listings(
        domainIdentifier=domainId,
        searchText=assetName,
        additionalAttributes=["FORMS"]
    )
    
    assetListing = None
    for listing in listings['items']:
        if listing['assetListing']['entityId'] == assetId: 
            assetListing = listing
    
    return listing['assetListing']['listingId']
```

Vous pouvez utiliser les exemples de scripts suivants pour créer une demande d'abonnement à l'aide de l'ID de liste :

```
create_subscription_response = def create_subscription_request(domainId, projectId, listingId):
    return dzclient.create_subscription_request(
        subscribedPrincipals=[{
            "project": {
                "identifier": projectId
            }
        }],
        subscribedListings=[{
            "identifier": listingId
        }],
        requestReason="Give request reason here."
    )
```

À l'aide de `create_subscription_response` ce qui précède, obtenez le` subscription_request_id`, puis accept/approve l'abonnement à l'aide de l'exemple de script suivant : 

```
subscription_request_id = create_subscription_response["id"]

def accept_subscription_request(domainId, subscriptionRequestId): 
    return dzclient.accept_subscription_request(
        domainIdentifier=domainId,
        identifier=subscriptionRequestId
    )
```

## Rechercher des actifs dans le catalogue de données
<a name="search-catalog-subscribe-gs-glue-api"></a>

Vous pouvez utiliser les exemples de scripts suivants qui utilisent la recherche en texte libre pour rechercher vos actifs de données publiés (listes) dans le DataZone catalogue Amazon.
+ L'exemple suivant effectue une recherche par mot clé en texte libre dans le domaine et renvoie toutes les listes correspondant au mot clé « crédit » fourni :

  ```
  aws datazone search-listings \
    --domain-identifier dzd_c1s7uxe71prrtz \
    --search-text "credit"
  ```
+ Vous pouvez également combiner plusieurs mots clés pour affiner davantage le champ de recherche. Par exemple, si vous recherchez tous les actifs de données publiés (listes) contenant des données relatives aux ventes au Mexique, vous pouvez formuler votre requête avec deux mots clés « Mexique » et « ventes ». 

  ```
              aws datazone search-listings \
    --domain-identifier dzd_c1s7uxe71prrtz \
    --search-text "mexico sales"
  ```

Vous pouvez également rechercher une annonce à l'aide de filtres. Le `filters` paramètre de l' SearchListings API vous permet de récupérer les résultats filtrés du domaine. L'API prend en charge plusieurs filtres par défaut et vous pouvez également combiner deux filtres ou plus et effectuer une opération ET/OU sur eux. La clause filter prend en compte deux paramètres : attribut et valeur. Les attributs de filtre pris en charge par défaut sont `typeName``owningProjectId`, et`glossaryTerms`. 
+ L'exemple suivant effectue une recherche dans toutes les listes d'un domaine donné à l'aide du `assetType` filtre dans lequel la liste est un type de Redshift Table.

  ```
              aws datazone search-listings \
  --domain-identifier dzd_c1s7uxe71prrtz \
  --filters '{"or":[{"filter":{"attribute":"typeName","value":"RedshiftTableAssetType"}} ]}'
  ```
+ Vous pouvez également combiner plusieurs filtres à l'aide d' AND/OR opérations. Dans l'exemple suivant, vous combinez `typeName` et `project` filtrez.

  ```
              aws datazone search-listings \
  --domain-identifier dzd_c1s7uxe71prrtz \
  --filters '{"or":[{"filter":{"attribute":"typeName","value":"RedshiftTableAssetType"}},  {"filter":{"attribute":"owningProjectId","value":"cwrrjch7f5kppj"}} ]}'
  ```
+ Vous pouvez même combiner la recherche en texte libre avec des filtres pour obtenir des résultats exacts et les trier en fonction de l'heure de creation/last mise à jour de la liste, comme indiqué dans l'exemple suivant :

  ```
              aws datazone search-listings \
  --domain-identifier dzd_c1s7uxe71prrtz \
  --search-text "finance sales" \
  --filters '{"or":[{"filter":{"attribute":"typeName","value":"GlueTableViewType"}} ]}' \
  --sort '{"attribute": "UPDATED_AT", "order":"ASCENDING"}'
  ```

## Autres exemples de scripts utiles
<a name="other-useful-scripts-api"></a>

Vous pouvez utiliser les exemples de scripts suivants pour effectuer diverses tâches lorsque vous travaillez avec vos données sur Amazon DataZone.

Utilisez l'exemple de script suivant pour répertorier les DataZone domaines Amazon existants :

```
def list_domains():
    datazone = boto3.client('datazone')
    response = datazone.list_domains(status='AVAILABLE')
    [print("%12s | %16s | %12s | %52s" % (item['id'], item['name'], item['managedAccountId'], item['portalUrl'])) for item in response['items']]
    return
```

Utilisez l'exemple de script suivant pour répertorier les DataZone projets Amazon existants :

```
def list_projects(domain_id):
    datazone = boto3.client('datazone')
    response = datazone.list_projects(domainIdentifier=domain_id)
    [print("%12s | %16s " % (item['id'], item['name'])) for item in response['items']]
    return
```

Utilisez l'exemple de script suivant pour répertorier les formulaires de DataZone métadonnées Amazon existants :

```
def list_metadata_forms(domain_id):
    datazone = boto3.client('datazone')
    response = datazone.search_types(domainIdentifier=domain_id, 
        managed=False,
        searchScope='FORM_TYPE')
    [print("%16s | %16s | %3s | %8s" % (item['formTypeItem']['name'], item['formTypeItem']['owningProjectId'],item['formTypeItem']['revision'], item['formTypeItem']['status'])) for item in response['items']]
    return
```