Tables AWS Glue - AWS Glue

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.

Tables AWS Glue

Vous pouvez ajouter des définitions de table au Data Catalog de l'une des façons suivantes :

  • Exécutez un crawler qui se connecte à un ou plusieurs magasins de données, détermine les structures de données et écrit les tables dans Data Catalog. L'crawler utilise des classifieurs intégrés ou personnalisés pour reconnaître la structure des données. Vous pouvez exécuter votre crawler selon une planification. Pour plus d’informations, consultez Définition de crawlers dans AWS Glue.

  • Utilisez la console AWS Glue pour créer manuellement une table dans l’AWS Glue Data Catalog. Pour plus d’informations, consultez Utilisation de tables sur la console AWS Glue.

  • Utilisez l'opération CreateTable de l'API AWS Glue pour créer une table dans le AWS Glue Data Catalog. Pour plus d’informations, consultez Action CreateTable (Python : create_table).

  • Utilisez les modèles AWS CloudFormation. Pour plus d’informations, consultez AWS CloudFormation pour AWS Glue.

  • Migrer un métastore Apache Hive. Pour plus d'informations, consultez la section Migration entre le métastore Hive et le on. AWS Glue Data Catalog GitHub

Lorsque vous définissez une table manuellement à l'aide de la console ou d’une API, vous spécifiez le schéma de table et la valeur d'un champ de classification qui indique le type et le format des données de la source de données. Si un crawler crée la table, le format et le schéma des données sont déterminés par un classifieur intégré ou un classifieur personnalisé. Pour plus d'informations sur la création d'une table à l'aide de la console AWS Glue, consultez Utilisation de tables sur la console AWS Glue.

Partitions de table

Une définition de table AWS Glue d'un dossier Amazon Simple Storage Service (Amazon S3) peut décrire une table partitionnée. Par exemple, pour améliorer la performance des requêtes, une table partitionnée peut séparer les données mensuelles dans différents fichiers en utilisant le nom du mois en tant que clé. Dans AWS Glue, les définitions de table incluent la clé de partitionnement d'une table. Lorsque AWS Glue évalue les données dans les dossiers Amazon S3 pour faire l'inventaire d'une table, il détermine si une table individuelle ou une table partitionnée est ajoutée.

Vous pouvez créer des index de partition sur une table pour récupérer un sous-ensemble des partitions au lieu de charger toutes les partitions de la table. Pour en savoir plus sur l'utilisation des index de partition, consultez Utilisation d’index de partition dans AWS Glue.

Toutes les conditions suivantes doivent être remplies pour que AWS Glue crée une table partitionnée pour un dossier Amazon S3 :

  • Les schémas des fichiers sont similaires, comme déterminé par AWS Glue.

  • Le format de données des fichiers est le même.

  • Le format de compression des fichiers est le même.

Par exemple, imaginons que vous possédez un compartiment Amazon S3 nommé my-app-bucket, où vous stockez des données de vente d'applications iOS et Android. Les données sont partitionnées par année, mois et jour. Les fichiers de données pour les ventes iOS et Android ont le même schéma, format de données et format de compression. Dans le AWS Glue Data Catalog, l'crawler AWS Glue crée une définition de table avec des clés de partitionnement pour l'année, le mois et le jour.

La liste Amazon S3 my-app-bucket suivante présente certaines partitions. Le symbole = est utilisé pour attribuer des valeurs de clé de partition.

my-app-bucket/Sales/year=2010/month=feb/day=1/iOS.csv my-app-bucket/Sales/year=2010/month=feb/day=1/Android.csv my-app-bucket/Sales/year=2010/month=feb/day=2/iOS.csv my-app-bucket/Sales/year=2010/month=feb/day=2/Android.csv ... my-app-bucket/Sales/year=2017/month=feb/day=4/iOS.csv my-app-bucket/Sales/year=2017/month=feb/day=4/Android.csv
La console AWS Glue a été récemment mise à jour. La version actuelle de la console ne prend pas en charge les liens de ressources de table.

Le catalogue de données peut également contenir des liens de ressources vers des tables. Un lien de ressource de table est un lien vers une table locale ou partagée. Actuellement, vous ne pouvez créer des liens de ressources que dans AWS Lake Formation. Après avoir créé un lien de ressource vers une table, vous pouvez utiliser le nom du lien de ressource partout où vous utiliseriez le nom de la table. Avec les tables que vous possédez ou qui sont partagées avec vous, les liens de ressources de table sont renvoyés par glue:GetTables() et apparaissent sous la forme d'entrées sur la page Tables de la console AWS Glue.

Le catalogue de données peut également contenir des liens de ressources de base de données.

Pour plus d'informations sur les liens de ressources, veuillez consulter la rubrique Création de liens de ressources dans le Guide du développeur AWS Lake Formation.

Mise à jour de tables Data Catalog créées manuellement à l’aide d’crawlers

Il se peut que vous souhaitiez manuellement créer des tables AWS Glue Data Catalog, puis les garder à jour avec des crawlers AWS Glue. Les crawlers respectant un calendrier peuvent ajouter de nouvelles partitions et mettre à jour les tables avec des modifications de schéma. Cela s'applique également aux tables migrées depuis un métastore Apache Hive.

Pour ce faire, lorsque vous définissez un crawler, au lieu de spécifier un ou plusieurs magasins de données en tant que source d'une analyse, vous spécifiez une ou plusieurs tables Data Catalog existantes. L'crawler analyse ensuite les magasins de données spécifiés par les tables du catalogue. Dans ce cas, aucune nouvelle table n’est créée ; au lieu de cela, vos tables créées manuellement sont mises à jour.

Voici d'autres raisons qui peuvent vous amener à vouloir créer manuellement des tables de catalogue et spécifier les tables de catalogue en tant qu'crawler source :

  • Vous voulez choisir le nom de la table de catalogue et de ne pas vous fier à l'algorithme d'attribution de noms de la table de catalogue.

  • Vous souhaitez empêcher de nouvelles tables d'être créées au cas où des fichiers dont le format pourrait perturber la détection de partition soient enregistrés par erreur dans le chemin de la source de données.

Pour plus d’informations, consultez Type de source d'crawler.

Propriétés de la table Catalogue de données

Les propriétés de table, ou paramètres, tels qu'ils sont connus dans l'AWS CLI, sont des chaînes de clés et de valeurs non validées. Vous pouvez définir vos propres propriétés sur la table pour prendre en charge les utilisations du Catalogue de données en dehors d'AWS Glue. D'autres services utilisant le Catalogue de données peuvent également le faire. AWS Glue définit certaines propriétés de table lors de l'exécution de tâches ou de Crawlers. Sauf indication contraire, ces propriétés sont destinées à un usage interne. Nous ne garantissons pas le fait qu'elles continueront d'exister sous leur forme actuelle, et nous ne garantissons pas le comportement du produit si ces propriétés sont modifiées manuellement.

Pour plus d'informations sur les propriétés de table définies par les Crawlers AWS Glue, veuillez consulter Paramètres définis sur les tables du Catalogue de données par un Crawler.