Utilisation de l’AWS CLI pour recréer une base de données AWS Glue et ses tables - Amazon Athena

Utilisation de l’AWS CLI pour recréer une base de données AWS Glue et ses tables

Il n'est pas possible de renommer directement une base de données AWS Glue, mais vous pouvez copier sa définition, modifier la définition et utiliser la définition pour recréer la base de données sous un autre nom. De même, vous pouvez copier les définitions des tables de l'ancienne base de données, modifier les définitions et utiliser les définitions modifiées pour recréer les tables de la nouvelle base de données.

Note

La méthode présentée ne copie pas le partitionnement des tables.

La procédure suivante pour Windows suppose que votre AWS CLI est configuré pour la sortie JSON. Pour modifier le format de sortie par défaut dans l'AWS CLI, exécutez aws configure.

Pour copier une base de données AWS Glue à l'aide de l'AWS CLI
  1. À l'invite de commande, exécutez la commande suivante AWS CLI pour récupérer la définition de la base de données AWS Glue que vous souhaitez copier.

    aws glue get-database --name database_name

    Pour obtenir plus d'informations sur la commande get-database, consultez get-database.

  2. Enregistrez la sortie JSON dans un fichier portant le nom de la nouvelle base de données (par exemple,new_database_name.json) sur votre bureau.

  3. Ouvrez le fichier new_database_name.json dans un éditeur de texte.

  4. Dans le fichier JSON, effectuez les étapes suivantes :

    1. Supprimez l’entrée { "Database": extérieure et le crochet de fermeture correspondant } à la fin du fichier.

    2. Remplacez l’entrée Name par le nom de la nouvelle base de données.

    3. Supprimez le champ CatalogId.

  5. Enregistrez le fichier.

  6. À l'invite de commande, exécutez la commande AWS CLI suivante pour utiliser le fichier de définition de base de données modifié pour créer la base de données sous le nouveau nom.

    aws glue create-database --database-input "file://~/Desktop\new_database_name.json"

    Pour obtenir plus d'informations sur la commande create-database, consultez create-database. Pour de plus amples informations sur le chargement des paramètres AWS CLI à partir d'un fichier, consultez Chargement de paramètres AWS CLI à partir d'un fichier dans le Guide de l'utilisateur AWS Command Line Interface.

  7. Pour vérifier que la nouvelle base de données a été créée dans AWS Glue, exécutez la commande suivante :

    aws glue get-database --name new_database_name

Vous êtes maintenant prêt à obtenir la définition d'une table à copier dans la nouvelle base de données, à modifier la définition et à utiliser la définition modifiée pour recréer la table dans la nouvelle base de données. Cette procédure ne modifie pas le nom de la table.

Pour copier une table AWS Glue à l'aide de l'AWS CLI
  1. À partir d'une invite de commande, exécutez la commande AWS CLI suivante.

    aws glue get-table --database-name database_name --name table_name

    Pour obtenir plus d'informations sur la commande get-table, consultez get-table.

  2. Enregistrez la sortie JSON dans un fichier portant le nom de la table (par exemple, table_name.json) sur votre bureau Windows.

  3. Ouvrez le fichier dans un éditeur de texte.

  4. Dans le fichier JSON, supprimez l'entrée {"Table": extérieure et le crochet de fermeture correspondant } à la fin du fichier.

  5. Dans le fichier JSON, supprimez les entrées suivantes et leurs valeurs :

    • DatabaseName – Cette entrée n'est pas obligatoire, car la commande CLI create-table utilise le paramètre --database-name.

    • CreateTime

    • UpdateTime

    • CreatedBy

    • IsRegisteredWithLakeFormation

    • CatalogId

    • VersionId

  6. Enregistrez le fichier de définition de table.

  7. À partir d'une invite de commande, exécutez la commande AWS CLI suivante pour recréer la table dans la nouvelle base de données :

    aws glue create-table --database-name new_database_name --table-input "file://~/Desktop\table_name.json"

    Pour obtenir plus d'informations sur la commande create-table, consultez create-table.

    La table apparaît désormais dans la nouvelle base de données dans AWS Glue et peut être interrogée à partir d'Athena.

  8. Répétez les étapes pour copier chaque table supplémentaire dans la nouvelle base de données dans AWS Glue.