

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.

# Mise en route avec l’AWS Glue Data Catalog
<a name="start-data-catalog"></a>

 AWS Glue Data Catalog Il s'agit de votre magasin de métadonnées techniques permanent. Il s'agit d'un service géré que vous pouvez utiliser pour stocker, annoter et partager des métadonnées dans le AWS cloud. Pour de plus amples informations, veuillez consulter [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro). 


|  | 
| --- |
| La console AWS Glue et certaines interfaces utilisateur ont été récemment mises à jour. | 

## Présentation de
<a name="start-data-catalog-overview"></a>

 Vous pouvez utiliser ce didacticiel pour créer votre premier Catalogue de données AWS Glue, qui utilise un compartiment Amazon S3 comme source de données. 

 Dans le cadre de ce didacticiel, vous effectuerez les tâches suivantes à l'aide de la console AWS Glue : 

1.  Créer une base de données 

1.  Création d’une table 

1.  Utilisation d'un compartiment Amazon S3 comme source de données 

 Une fois ces étapes terminées, vous aurez utilisé avec succès un compartiment Amazon S3 comme source de données pour remplir le Catalogue de données AWS Glue. 

## Étape 1 : Créer une base de données
<a name="start-data-catalog-database"></a>

 Pour commencer, connectez-vous à la [AWS Glueconsole AWS Management Console et ouvrez-la](https://console.aws.amazon.com/glue). 

 **Pour créer une base de données à l'aide de la console AWS Glue : ** 

1.  Dans la console AWS Glue, choisissez **Databases** (Bases de données) dans le menu de gauche **Data catalog** (Catalogue de données). 

1.  Choisissez **Ajouter une base de données**. 

1.  Sur la page Créer une base de données, saisissez un nom pour la base de données. Dans la section **Emplacement – *facultatif***, définissez l'emplacement de l'URI à utiliser par les clients du catalogue de données. Si vous ne connaissez pas cette information, vous pouvez poursuivre la création de la base de données. 

1.  (Facultatif) Saisissez une description pour la base de données. 

1.  Choisissez **Créer une base de données**. 

 Félicitations, vous venez de configurer votre première base de données à l'aide de la console AWS Glue. Votre nouvelle base de données apparaîtra dans la liste des bases de données disponibles. Vous pouvez modifier la base de données en choisissant le nom de la base de données dans le tableau de bord des **Bases de données**. 

 **Étapes suivantes** 

 ** Autres méthodes pour créer une base de données : ** 

 Vous venez de créer une base de données à l'aide de la console AWS Glue, mais il existe d'autres moyens de créer une base de données : 
+ Vous pouvez utiliser des crawlers pour créer automatiquement une base de données et des tableaux pour vous. Pour configurer une base de données à l'aide d’crawlers, reportez-vous à [Travailler avec des crawlers dans la console AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-crawlers.html). 
+  Vous pouvez utiliser des CloudFormation modèles. Voir [Création de AWS Glue ressources à l'aide AWS Glue Data Catalog de modèles](https://docs.aws.amazon.com/glue/latest/dg/populate-with-cloudformation-templates.html). 
+  Vous pouvez également créer une base de données à l'aide du module Opérations d'API de base de données AWS Glue. 

   Pour créer une base de données à l'aide de l’opération `create`, structurez la demande en incluant les paramètres `DatabaseInput` (obligatoires). 

   Par exemple :   
****  
 Voici des exemples illustrant comment utiliser l'interface de ligne de commande, Boto3 ou DDL pour définir un tableau basé sur le même fichier flights\$1data.csv à partir du compartiment S3 que vous avez utilisé dans le didacticiel.   

  ```
  aws glue create-database --database-input "{\"Name\":\"clidb\"}"                                              
  ```

  ```
  glueClient = boto3.client('glue')
  
  response = glueClient.create_database(
      DatabaseInput={
          'Name': 'boto3db'
      }
  )
  ```

 Pour en savoir plus sur les types de données, la structure et les opérations de l'API de base de données, consultez [API d'une base de données](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-databases.html). 

 **Étapes suivantes** 

 Dans la section suivante, vous allez créer un tableau et l'ajouter à votre base de données. 

Vous pouvez également consulter les paramètres et les autorisations de votre catalogue de données. Consultez [Travailler avec des paramètres de catalogue de base de données dans la console AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-data-catalog-settings.html). 

## Étape 2. Création d’une table
<a name="start-data-catalog-table"></a>

 Au cours de cette étape, vous créez un tableau en utilisant la console AWS Glue. 

1.  Dans la console AWS Glue, choisissez **Tables** (tableaux) dans le menu de gauche. 

1.  Choisissez **Add table (Ajouter une table)**. 

1.  Configurez les propriétés de votre table en saisissant un nom pour votre table dans **Table details** (Détails de la table). 

1.  Dans la section **Databases** (Bases de données), choisissez la base de données que vous avez créée à l'étape 1 dans le menu déroulant. 

1.  Dans la section **Add a data store** (Ajouter un magasin de données), **S3**sera sélectionné par défaut comme type de source. 

1.  Pour **Data is located in** (Les données se trouvent dans), choisissez **Specified path in another account** (Chemin d'accès spécifié dans un autre compte). 

1. Copiez et collez le chemin pour le champ de saisie **Include path** (Chemin à inclure) :

   `s3://crawler-public-us-west-2/flight/2016/csv/`

1.  Dans la section **Data format** (Format de données), pour **Classification** (Catégorie), choisissez **CSV** et pour **Delimiter** (Délimiteur), choisissez **comma (,)** (Virgule (,)). Choisissez **Suivant**. 

1. Il vous est demandé de définir un schéma. Un schéma définit la structure et le format d'un enregistrement de données. Choisissez **Ajouter une colonne**. Pour en savoir plus, consultez [Registre de schémas ](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html#schema-registry-schemas.html).

1.  Spécifiez les propriétés de la colonne : 

   1. Entrez un nom de colonne. 

   1. Pour **Type de colonne**, « chaîne » est déjà sélectionnée par défaut.

   1. Pour **Numéro de colonne**, « 1 » est déjà sélectionné par défaut.

   1. Choisissez **Ajouter**.

1.  Il vous est demandé d'ajouter des index de partition. Ce nom est facultatif. Pour sauter cette étape, choisissez **Next** (Suivant). 

1.  Une synthèse des propriétés du tableau s'affiche. Si tout se présente comme prévu, choisissez **Créer**. Sinon, choisissez **Back** (Retour) et apportez les modifications nécessaires. 

 Félicitations, vous avez créé manuellement un tableau et l'avez associé à une base de données. Le tableau nouvellement créé apparaît dans le tableau de bord des tableaux. Dans le tableau de bord, vous pouvez gérer et modifier tous vos tableaux. 

 Pour en savoir plus, consultez la rubrique [Travailler avec des tableaux dans la console AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html). 

## Étapes suivantes
<a name="start-data-catalog-next-steps"></a>

 **Étapes suivantes** 

 Maintenant que le catalogue de données est renseigné, vous pouvez commencer à autoriser des tâches dans AWS Glue. Consultez [Building visual ETL jobs with AWS Glue Studio](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html). 

 Outre l'utilisation de la console, il existe d'autres moyens de définir des tableaux dans le catalogue de données, notamment :
+  [Création et exécution d'un crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) 
+  [Ajouter des classificateurs à un crawler dans AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/add-classifier.html) 
+  [Utilisation de l’API du tableau AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html) 
+  [Utilisation du modèle AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/populate-with-cloudformation-templates.html) 
+  [Migrer un métastore Apache Hive](https://github.com/aws-samples/aws-glue-samples/tree/master/utilities/Hive_metastore_migration). 
+  [Utilisation du AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/glue/create-table.html) Boto3 ou du langage de définition de données (DDL)   
****  
 Voici des exemples illustrant comment utiliser l'interface de ligne de commande, Boto3 ou DDL pour définir un tableau basé sur le même fichier flights\$1data.csv à partir du compartiment S3 que vous avez utilisé dans le didacticiel.   
 Consultez la documentation pour savoir comment structurer une AWS CLI commande. L'exemple de CLI contient la syntaxe JSON pour la valeur « aws glue create-table --table-input ».   

  ```
  {
          "Name": "flights_data_cli",
          "StorageDescriptor": {
              "Columns": [
                  {
                      "Name": "year",
                      "Type": "bigint"
                  },
                  {
                      "Name": "quarter",
                      "Type": "bigint"
                  }
              ],
              "Location": "s3://crawler-public-us-west-2/flight/2016/csv",
              "InputFormat": "org.apache.hadoop.mapred.TextInputFormat",
              "OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
              "Compressed": false,
              "NumberOfBuckets": -1,
              "SerdeInfo": {
                  "SerializationLibrary": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
                  "Parameters": {
                      "field.delim": ",",
                      "serialization.format": ","
                  }
              }
          },
          "PartitionKeys": [
              {
                  "Name": "mon",
                  "Type": "string"
              }
          ],
          "TableType": "EXTERNAL_TABLE",
          "Parameters": {
              "EXTERNAL": "TRUE",
              "classification": "csv",
              "columnsOrdered": "true",
              "compressionType": "none",
              "delimiter": ",",
              "skip.header.line.count": "1",
              "typeOfData": "file"
          }
      }
  ```

  ```
  import boto3
  
  glue_client = boto3.client("glue")
  
  response = glue_client.create_table(
      DatabaseName='sampledb',
      TableInput={
          'Name': 'flights_data_manual',
      'StorageDescriptor': {
        'Columns': [{
          'Name': 'year',
          'Type': 'bigint'
        }, {
          'Name': 'quarter',
          'Type': 'bigint'
        }],
        'Location': 's3://crawler-public-us-west-2/flight/2016/csv',
        'InputFormat': 'org.apache.hadoop.mapred.TextInputFormat',
        'OutputFormat': 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat',
        'Compressed': False,
        'NumberOfBuckets': -1,
        'SerdeInfo': {
          'SerializationLibrary': 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe',
          'Parameters': {
            'field.delim': ',',
            'serialization.format': ','
          }
        },
      },
      'PartitionKeys': [{
        'Name': 'mon',
        'Type': 'string'
      }],
      'TableType': 'EXTERNAL_TABLE',
      'Parameters': {
        'EXTERNAL': 'TRUE',
        'classification': 'csv',
        'columnsOrdered': 'true',
        'compressionType': 'none',
        'delimiter': ',',
        'skip.header.line.count': '1',
        'typeOfData': 'file'
      }
      }
  )
  ```

  ```
  CREATE EXTERNAL TABLE `sampledb`.`flights_data` (
    `year` bigint, 
    `quarter` bigint)
  PARTITIONED BY ( 
    `mon` string)
  ROW FORMAT DELIMITED 
    FIELDS TERMINATED BY ',' 
  STORED AS INPUTFORMAT 
    'org.apache.hadoop.mapred.TextInputFormat' 
  OUTPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
  LOCATION
    's3://crawler-public-us-west-2/flight/2016/csv/'
  TBLPROPERTIES (
    'classification'='csv', 
    'columnsOrdered'='true', 
    'compressionType'='none', 
    'delimiter'=',', 
    'skip.header.line.count'='1', 
    'typeOfData'='file')
  ```