Définition et gestion des classificateurs - 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.

Définition et gestion des classificateurs

Un classifieur lit les données d'un magasin de données. S'il reconnaît le format des données, il génère un schéma. Le classifieur renvoie également un pourcentage de certitude pour indiquer jusqu'à quel degré la reconnaissance du format était certaine.

AWS Glue fournit un ensemble de classifieurs intégrés, mais vous pouvez également créer classifieurs personnalisés. AWS Glue appelle les classifieurs personnalisés en premier, dans l'ordre que vous spécifiez dans votre définition d'crawler. Selon les résultats renvoyés par les classifieurs personnalisés, AWS Glue peut également appeler les classifieurs intégrés. Si un classifieur renvoie certainty=1.0 pendant le traitement, cela indique qu'il est sûr à 100 % de pouvoir créer le schéma correct. AWS Glue utilise ensuite la sortie de ce classifieur.

Si aucun classifieur ne renvoie certainty=1.0, AWS Glue utilise la sortie du classifieur qui a la certitude la plus élevée. Si aucun classifieur ne renvoie une certitude supérieure à 0.0, AWS Glue renvoie la chaîne de classification par défaut UNKNOWN.

Quand dois-je utiliser un classifieur ?

Vous utilisez les classifieurs lorsque vous analysez un magasin de données pour définir les tables de métadonnées dans l' AWS Glue Data Catalog. Vous pouvez configurer votre crawler avec un ensemble ordonné de classifieurs. Lorsque l'crawler appelle un classifieur, le classifieur détermine si les données sont reconnues. Si le classificateur ne peut pas reconnaître les données ou n'est pas certain à 100 %, l'crawler appelle le prochain classificateur de la liste pour déterminer s'il peut reconnaître les données.

Pour plus d'informations sur la création d'un classifieur à l'aide de la console AWS Glue, consultez Création de classificateurs à l'aide de la console AWS Glue.

Classifieurs personnalisés

La sortie d'un classifieur comprend une chaîne qui indique la classification du fichier ou le format (par exemple, json) et le schéma du fichier. Pour les classifieurs personnalisés, vous définissez la logique de création du schéma en fonction du type de classifieur. Les types de classificateurs incluent la définition de schémas basés sur des modèles de grok, des XML balises et des chemins. JSON

Si vous modifiez une définition de classifieur, toutes les données précédemment analysées à l'aide du classifieur ne sont pas reclassées. Un crawler garde trace des données précédemment analysées. Les nouvelles données sont classées avec le classifieur mis à jour, ce qui peut entraîner une mise à jour du schéma. Si le schéma de vos données a évolué, mettez à jour le classifieur pour prendre en compte les modifications de schéma lorsque votre crawler s'exécute. Pour reclasser les données et corriger un classificateur incorrect, créez un nouvel crawler avec le classificateur mis à jour.

Pour plus d'informations sur la création de classifieurs personnalisés dans AWS Glue, consultez Rédaction de classificateurs personnalisés pour divers formats de données.

Note

Si votre format de données est reconnu par l'un des classifieurs intégrés, vous n'avez pas besoin de créer un classifieur personnalisé.

Classificateurs intégrés

AWS Gluefournit des classificateurs intégrés pour différents formats JSONCSV, notamment les journaux Web et de nombreux systèmes de base de données.

Si AWS Glue ne trouve pas de classifieur personnalisé qui correspond au format des données en entrée avec 100 % de certitude, il fait appel aux classifieurs intégrés dans l'ordre indiqué dans le tableau suivant. Les classifieurs intégrés renvoient un résultat pour indiquer si le format correspond à (certainty=1.0) ou ne correspond à (certainty=0.0). Le premier classifieur qui a certainty=1.0 fournit la chaîne de classification et le schéma pour une table de métadonnées de votre Data Catalog.

Type de classifieur Chaîne de classification Remarques
Apache Avro avro Lit le schéma au début du fichier pour déterminer le format.
Apache ORC orc Lit les métadonnées du fichier pour déterminer le format.
Apache Parquet parquet Lit le schéma à la fin du fichier pour déterminer le format.
JSON json Lit le début du fichier pour déterminer le format.
Binaire JSON bson Lit le début du fichier pour déterminer le format.
XML xml Lit le début du fichier pour déterminer le format. AWS Gluedétermine le schéma du tableau en fonction des XML balises du document.

Pour plus d'informations sur la création d'un XML classificateur personnalisé pour spécifier les lignes du document, consultezRédaction XML de classificateurs personnalisés.

Amazon Ion ion Lit le début du fichier pour déterminer le format.
Journal Apache combiné combined_apache Détermine les formats de journaux par le biais d'un modèle grok.
Journal Apache apache Détermine les formats de journaux par le biais d'un modèle grok.
Journal du noyau Linux linux_kernel Détermine les formats de journaux par le biais d'un modèle grok.
Journal Microsoft microsoft_log Détermine les formats de journaux par le biais d'un modèle grok.
Journal Ruby ruby_logger Lit le début du fichier pour déterminer le format.
Journal Squid 3.x squid Lit le début du fichier pour déterminer le format.
Journal de surveillance Redis redismonlog Lit le début du fichier pour déterminer le format.
Journal Redis redislog Lit le début du fichier pour déterminer le format.
CSV csv Recherche les séparateurs suivants : virgule (,), barre verticale (|), tabulation (\t), point-virgule (;) et Ctrl-A (\u0001). Ctrl-A est le caractère de contrôle Unicode pour Start Of Heading.
Amazon Redshift redshift Utilise JDBC une connexion pour importer des métadonnées.
Mon SQL mysql Utilise JDBC une connexion pour importer des métadonnées.
Poster SQL postgresql Utilise JDBC une connexion pour importer des métadonnées.
Oracle Database oracle Utilise JDBC une connexion pour importer des métadonnées.
Microsoft SQL Server sqlserver Utilise JDBC une connexion pour importer des métadonnées.
Amazon DynamoDB dynamodb Lit les données de la table DynamoDB.

Les fichiers aux formats compressés suivants peuvent être classés :

  • ZIP(pris en charge pour les archives ne contenant qu'un seul fichier). Notez que Zip n'est pas correctement pris en charge dans d'autres services (en raison de l'archive).

  • BZIP

  • GZIP

  • LZ4

  • Snappy (pris en charge pour les formats Snappy standard et natifs Hadoop)

CSVClassificateur intégré

Le CSV classificateur intégré analyse le contenu des CSV fichiers afin de déterminer le schéma d'une AWS Glue table. Le classifieur vérifie les délimiteurs suivants :

  • Virgule (,)

  • Pipe (|)

  • Tabulation (\t)

  • Point-virgule (;)

  • Ctrl-A (\u0001)

    Ctrl-A est le caractère de contrôle Unicode pour Start Of Heading.

Pour être classé comme telCSV, le schéma de table doit comporter au moins deux colonnes et deux lignes de données. Le CSV classificateur utilise un certain nombre d'heuristiques pour déterminer si un en-tête est présent dans un fichier donné. Si le classifieur ne peut pas déterminer un en-tête à partir de la première ligne de données, les en-têtes de colonne sont affichés en tant que col1, col2, col3, et ainsi de suite. Le CSV classificateur intégré détermine s'il faut déduire un en-tête en évaluant les caractéristiques suivantes du fichier :

  • Chaque colonne d'un en-tête potentiel est analysée comme un type de STRING données.

  • À l'exception de la dernière colonne, chaque colonne d'un en-tête potentiel a un contenu de moins de 150 caractères. Pour autoriser un délimiteur de fin, la dernière colonne peut être vide dans le fichier.

  • Chaque colonne d'un en-tête potentiel doit répondre aux exigences AWS Glue regex pour un nom de colonne.

  • La ligne d'en-tête doit être suffisamment différente des lignes de données. Pour le déterminer, une ou plusieurs lignes doivent être analysées autrement que par STRING type. Si toutes les colonnes sont de typeSTRING, la première ligne de données n'est pas suffisamment différente des lignes suivantes pour être utilisée comme en-tête.

Note

Si le CSV classificateur intégré ne crée pas votre AWS Glue table comme vous le souhaitez, vous pouvez peut-être utiliser l'une des alternatives suivantes :

  • Modifiez les noms des colonnes dans le catalogue de données, définissez la valeur sur SchemaChangePolicy et définissez la configuration de sortie de la partition sur InheritFromTable pour les futures exécutions du robot d'exploration. LOG

  • Créez un classifieur grok personnalisés pour analyser les données et attribuez les colonnes de votre choix.

  • Le CSV classificateur intégré crée des tables faisant référence à la LazySimpleSerDe bibliothèque de sérialisation, ce qui constitue un bon choix pour l'inférence de type. Toutefois, si les CSV données contiennent des chaînes entre guillemets, modifiez la définition de la table et remplacez la SerDe bibliothèque parOpenCSVSerDe. Ajustez tous les types déduits surSTRING, définissez le sur SchemaChangePolicy et définissez la configuration de sortie des partitions sur InheritFromTable pour les futures exécutions du robot d'exploration. LOG Pour plus d'informations sur SerDe les bibliothèques, consultez la section SerDe Référence du guide de l'utilisateur Amazon Athena.