Étape 2 : Choisir des sources de données et 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.

Étape 2 : Choisir des sources de données et des classificateurs.

Configurez ensuite les sources de données et les classificateurs pour le robot d'exploration.

Pour plus d'informations sur les sources de données prises en charge, consultezSources de données prises en charge pour l'exploration.

Configuration de source de données

Sélectionnez l'option appropriée pour Vos données sont-elles déjà mappées à AWS Glue des tables ? choisissez « Pas encore » ou « Oui ». Par défaut, Pas encore est déjà sélectionné.

L'crawler peut accéder aux magasins de données directement en tant que source de l'analyse, ou il peut utiliser des tables de Data Catalog existantes en tant que source. Si l'crawler utilise des tables de catalogue existantes, il analyse les magasins de données qui sont spécifiés par ces tables de catalogue.

  • Pas encore : Sélectionnez une ou plusieurs sources de données à analyser. Un robot d'exploration peut explorer plusieurs banques de données de différents types (Amazon S3JDBC, etc.).

    Vous ne pouvez configurer qu'un seul magasin de données à la fois. Après avoir fourni les informations de connexion et inclus les chemins et les modèles d'exclusion, vous avez alors la possibilité d'ajouter un autre magasin de données.

  • Oui : sélectionnez les tables existantes dans votre AWS Glue Catalogue de données. Les tables de catalogue spécifient les magasins de données à analyser. L'crawler peut uniquement analyser des tables de catalogue en une seule exécution ; il ne peut pas combiner dans d'autres types de source.

    Généralement, pour spécifier une table de catalogue en tant que source, c'est que vous avez créé la table manuellement (parce que vous connaissiez déjà la structure du magasin de données) et vous voulez qu'un crawler garde la table à jour, y compris ajouter de nouvelles partitions. Pour une discussion sur d'autres raisons, consultez Mise à jour de tables Data Catalog créées manuellement à l’aide d’crawlers.

    Lorsque vous spécifiez des tables existantes en tant que type source d'crawler, les conditions suivantes s'appliquent :

    • Le nom de la base de données est facultatif.

    • Seules les tables de catalogue qui spécifient les magasins de données Amazon S3, Amazon DynamoDB ou Delta Lake sont autorisées.

    • Aucune nouvelle table de catalogue n'est créée lorsque l'crawler s'exécute. Les tables sont mises à jour selon les besoins, y compris en ajoutant de nouvelles partitions.

    • Les objets supprimés trouvés dans les magasins de données sont ignorés ; aucune table de catalogue n'est supprimée. Au lieu de cela, l'crawler rédige un message de journal. (SchemaChangePolicy.DeleteBehavior=LOG)

    • L'option de configuration de l'crawler pour créer un seul schéma pour chaque chemin Amazon S3 est activée par défaut et ne peut pas être désactivée. (TableGroupingPolicy=CombineCompatibleSchemas) Pour plus d'informations, consultez Création d'un schéma unique pour chaque chemin d'inclusion Amazon S3.

    • Vous ne pouvez pas combiner des tables de catalogue en tant que source avec d'autres types de source (par exemple, Amazon S3 ou Amazon DynamoDB).

Pour utiliser les tables Delta, créez d'abord une table Delta à l'aide d'Athena DDL ou du. AWS Glue API

À l'aide d'Athena, définissez l'emplacement de votre dossier Amazon S3 et le type de table sur « ». DELTA

CREATE EXTERNAL TABLE database_name.table_name LOCATION 's3://bucket/folder/' TBLPROPERTIES ('table_type' = 'DELTA')

À l'aide du AWS Glue API, spécifiez le type de table dans la carte des paramètres de table. Les paramètres de la table doivent inclure la paire clé/valeur suivante. Pour plus d'informations sur la création d'une table, consultez la documentation Boto3 pour create_table.

{ "table_type":"delta" }
Sources de données

Sélectionnez ou ajoutez la liste des sources de données à analyser par le crawler.

(Facultatif) Si vous le souhaitez JDBC comme source de données, vous pouvez utiliser vos propres JDBC pilotes lorsque vous spécifiez l'accès à la connexion où les informations du pilote sont stockées.

Chemin à inclure

Lors de l'évaluation des éléments à inclure ou exclure dans une analyse, un crawler commence par évaluer le chemin d'inclusion requis. Pour les magasins de données Amazon S3, MongoDB, MongoDB Atlas, Amazon DocumentDB (compatible avec MongoDB) et les magasins de données relationnelles, vous devez spécifier un chemin d'inclusion.

Pour un magasin de données Amazon S3

Déterminez si vous souhaitez spécifier un chemin dans ce compte ou dans un autre compte, puis parcourez les chemins Amazon S3 pour en choisir un.

Pour les magasins de données Amazon S3, la syntaxe de chemin d'accès inclut est bucket-name/folder-name/file-name.ext. Pour analyser tous les objets d'un compartiment, spécifiez juste le nom du compartiment dans le chemin d'inclusion. Le modèle d'exclusion est relatif au chemin d'inclusion

Pour un magasin de données Delta Lake

Spécifiez un ou plusieurs chemins Amazon S3 vers les tables Delta sous la forme s3 ://bucket/prefix/object.

Pour un magasin de données Iceberg ou Hudi

Spécifiez un ou plusieurs chemins Amazon S3 contenant des dossiers contenant des métadonnées de table Iceberg ou Hudi sous la forme s3 ://bucket/prefix.

Pour un magasin de données Hudi, le dossier Hudi peut se trouver dans un dossier enfant du dossier racine. Le Crawler examine tous les dossiers situés sous un chemin à la recherche d'un dossier Hudi.

Pour un magasin JDBC de données

Saisissez <database>/<schema>/<table> or <database>/<table>, en fonction du produit de base de données. Oracle Database et My SQL ne supportent pas le schéma dans le chemin. Vous pouvez remplacer le pourcentage (%) par <schema> or <table>. Par exemple, pour une base de données Oracle dont l'identifiant système (SID) estorcl, entrez orcl/% pour importer toutes les tables auxquelles l'utilisateur nommé dans la connexion a accès.

Important

Ce champ est sensible à la casse.

Note

Si vous choisissez d'apporter vos propres versions de JDBC pilotes, AWS Glue les crawlers consommeront des ressources dans AWS Glue jobs et compartiments Amazon S3 pour garantir que le pilote que vous avez fourni est exécuté dans votre environnement. L'utilisation supplémentaire des ressources sera reflétée sur votre compte. Les pilotes sont limités aux propriétés décrites dans la section Ajout d'un AWS Glue connexion.

Pour un magasin de données MongoDB, MongoDB Atlas ou Amazon DocumentDB

Saisissez database/collection.

Pour MongoDB, MongoDB Atlas et Amazon DocumentDB (compatible avec MongoDB), la syntaxe est database/collection.

Pour les magasins de JDBC données, la syntaxe est soit, database-name/schema-name/table-name soitdatabase-name/table-name. La syntaxe varie selon que le moteur de base de données prend en charge ou pas les schémas dans une base de données. Par exemple, pour les moteurs de base de données tels que My SQL ou Oracle, ne spécifiez pas de schema-name dans votre chemin d'inclusion. Vous pouvez remplacer le signe pourcentage (%) d'un schéma ou d'une table dans le chemin d'inclusion pour représenter tous les schémas ou toutes les tables d'une base de données. Vous ne pouvez pas remplacer le signe pourcentage (%) pour la base de données dans le chemin d'inclusion.

Profondeur maximale d'indexation (pour les magasins de données Iceberg ou Hudi uniquement)

Définit la profondeur maximale du chemin Amazon S3 que le Crawler peut parcourir pour découvrir le dossier de métadonnées Iceberg ou Hudi dans votre chemin Amazon S3. L'objectif de ce paramètre est de limiter la durée d'exécution du Crawler. La valeur par défaut est 10 et la valeur maximale est 20.

Modèles d'exclusion

Ils vous permettent d'exclure certains fichiers ou tables de l'analyse. Le chemin à exclure est relatif par rapport au chemin à inclure. Par exemple, pour exclure une table de votre banque de JDBC données, tapez le nom de la table dans le chemin d'exclusion.

Un robot d'exploration se connecte à un magasin de JDBC données à l'aide d'un AWS Glue connexion contenant une chaîne JDBC URI de connexion. Le robot d'exploration n'a accès aux objets du moteur de base de données qu'à l'aide du nom JDBC d'utilisateur et du mot de passe figurant dans AWS Glue connexion. Le robot d'exploration ne peut créer que des tables auxquelles il peut accéder par le biais de la JDBC connexion. Une fois que le robot a accédé au moteur de base de données avec le JDBCURI, le chemin d'inclusion est utilisé pour déterminer quelles tables du moteur de base de données sont créées dans le catalogue de données. Par exemple, avec MySQL, si vous spécifiez un chemin d'inclusion deMyDatabase/%, toutes les tables qu'il contient MyDatabase sont créées dans le catalogue de données. Lors de l'accès à Amazon Redshift, si vous spécifiez un chemin d'inclusion MyDatabase/%, toutes les tables de tous les schémas de la base de données MyDatabase sont créées dans Data Catalog. Si vous spécifiez un chemin d'inclusion MyDatabase/MySchema/%, toutes les tables de la base de données MyDatabase et du schéma MySchema sont créées.

Après que vous avez spécifié un chemin d'inclusion, vous pouvez exclure les objets de l'analyse qui sinon seraient inclus dans votre chemin d'inclusion en spécifiant un ou plusieurs modèles d'exclusion glob de style Unix. Ces modèles sont appliqués à votre chemin d'inclusion afin de déterminer les objets exclus. Ces modèles sont également stockés comme propriété de tables créée par l'analyseur. AWS Glue PySpark les extensions, telles quecreate_dynamic_frame.from_catalog, lisent les propriétés de la table et excluent les objets définis par le modèle d'exclusion.

AWS Glue prend en charge les glob modèles suivants dans le modèle d'exclusion.

Modèle d'exclusion Description
*.csv Correspond à un chemin Amazon S3 qui représente un nom d'objet se terminant par .csv dans le dossier actuel
*.* Correspond à tous les noms d'objets qui contiennent un point
*.{csv,avro} Correspond aux noms d'objets se terminant par .csv ou .avro
foo.? Correspond aux noms d'objets commençant par foo. et suivis par une extension d'un seul caractère
myfolder/* Correspond aux objets situés un niveau en dessous du sous-dossier myfolder, comme /myfolder/mysource
myfolder/*/* Correspond aux objets situés deux niveaux en dessous du sous-dossier myfolder, comme /myfolder/mysource/data
myfolder/** Correspond aux objets situés dans tous les sous-dossiers de myfolder, comme /myfolder/mysource/mydata et /myfolder/mysource/data
myfolder** Correspond au sous-dossier myfolder, ainsi qu'aux fichiers sous myfolder, tels que /myfolder et /myfolder/mydata.txt
Market* Fait correspondre les tables d'une JDBC base de données dont les noms commencent parMarket, tels que Market_us et Market_fr

AWS Glue interprète les modèles glob d'exclusion comme suit :

  • La barre oblique (/) est le délimiteur qui permet de séparer les clés Amazon S3 dans une hiérarchie de dossiers.

  • L'astérisque (*) correspond à zéro ou plusieurs caractères d'un composant de nom sans dépasser les limites d'un dossier.

  • Deux astérisques (**) correspondent à zéro ou plusieurs caractères dépassant les limites d'un dossier ou d'un schéma.

  • Le point d'interrogation (?) correspond exactement à un caractère d'un composant de nom.

  • La barre oblique inverse (\) est utilisée pour échapper des caractères qui seraient sinon interprétés comme des caractères spéciaux. L'expression \\ correspond à une barre oblique inverse, et \{ correspond à une accolade gauche.

  • Les crochets [ ] créent une expression entre crochets qui correspond à un caractère unique d'un composant de nom dans un ensemble de caractères. Par exemple, [abc] correspond à a, b ou c. Le trait d'union (-) peut être utilisé pour spécifier une plage ; [a-z] spécifie une plage allant de a à z (inclus). Ces formulaires peuvent être mélangés ; [abce-g] correspond à a, b, c, e, f ou g. Si le caractère placé après le crochet ([) est un point d'exclamation (!), l'expression entre crochets est inversée. Par exemple, [!a-c] correspond à un caractère quelconque, à l'exception de a, b ou c.

    Dans une expression entre crochets, les caractères *, ? et \ correspondent à eux-mêmes. Le trait d'union (-) correspond à lui-même lorsqu'il est placé en première position entre les crochets, ou s'il est le premier caractère placé après le point d'exclamation ! lors d'une inversion.

  • Les accolades ({ }) entourent un groupe de sous-modèles, où le groupe correspond si un des sous-modèles du groupe correspond. La virgule (,) est utilisée pour séparer les sous-modèles. Les groupes ne peuvent pas être imbriqués.

  • Une virgule ou un point placé au début d'un nom de fichier est traité comme un caractère normal dans les opérations de correspondance. Par exemple, le modèle d'exclusion * correspond au nom de fichier .hidden.

Exemple Modèles d'exclusion Amazon S3

Chaque modèle d'exclusion est évalué par rapport au chemin d'inclusion. Par exemple, supposons que vous disposiez de la structure de répertoires Amazon S3 suivante :

/mybucket/myfolder/ departments/ finance.json market-us.json market-emea.json market-ap.json employees/ hr.json john.csv jane.csv juan.txt

Soit le chemin d'inclusion s3://mybucket/myfolder/, voici quelques exemples de résultats pou les chemins d'exclusion :

Modèle d'exclusion Résultats
departments/** Exclut tous les fichiers et dossiers sous departments et inclut le dossier employees et ses fichiers
departments/market* Exclut market-us.json, market-emea.json et market-ap.json
**.csv Exclut tous les objets sous myfolder dont le nom se termine par .csv
employees/*.csv Exclut tous les fichiers .csv du dossier employees
Exemple Exclusion d'un sous-ensemble de partitions Amazon S3

Supposons que vos données soient partitionnées par jour, de telle sorte que chaque jour d'une année se trouve dans une partition Amazon S3 distincte. Pour le mois de janvier 2015, il y a 31 partitions. Maintenant, pour analyser uniquement les données de la première semaine de janvier, vous devez exclure toutes les partitions, à l'exception des jours 1 à 7 :

2015/01/{[!0],0[8-9]}**, 2015/0[2-9]/**, 2015/1[0-2]/**

Examinons les différentes parties de ce modèle glob. La première partie, 2015/01/{[!0],0[8-9]}**, exclut tous les jours qui ne commencent pas par un « 0 », ainsi que le jour 08 et le jour 09 du mois 01 de l'année 2015. Notez que « ** » est utilisé comme suffixe du modèle de numéro du jour et dépasse les limites de dossier vers les dossiers de niveau inférieur. Si « * » est utilisé, les dossiers de niveau inférieur ne sont pas exclus.

La deuxième partie, 2015/0[2-9]/**, exclut les jours des mois 02 à 09 de l'année 2015.

La troisième partie, 2015/1[0-2]/**, exclut les jours des mois 10, 11 et 12 de l'année 2015.

Exemple JDBCexclure les modèles

Supposons que vous analysiez une JDBC base de données dont la structure de schéma est la suivante :

MyDatabase/MySchema/ HR_us HR_fr Employees_Table Finance Market_US_Table Market_EMEA_Table Market_AP_Table

Soit le chemin d'inclusion MyDatabase/MySchema/%, voici quelques exemples de résultats pou les chemins d'exclusion :

Modèle d'exclusion Résultats
HR* Exclut les tables dont le nom commence par HR
Market_* Exclut les tables dont le nom commence par Market_
**_Table Exclut toutes les tables dont le nom se termine par _Table
Paramètres de source d'crawler supplémentaires

Chaque type de source requiert un jeu différent de paramètres supplémentaires.

Connexion

Sélectionnez ou ajoutez un AWS Glue connexion. Pour obtenir des informations sur les connexions, consultez Connexion aux données.

Métadonnées supplémentaires : facultatif (pour les magasins de JDBC données)

Sélectionnez des propriétés de métadonnées supplémentaires à analyser par le crawler.

  • Commentaires : analysez des commentaires associés au niveau de la table et au niveau de la colonne.

  • Types bruts : conservez les types de données bruts des colonnes de la table dans les métadonnées supplémentaires. Par défaut, le crawler traduit les types de données bruts en types compatibles avec Hive.

JDBCNom de la classe de pilote : facultatif (pour les magasins de JDBC données)

Entrez un nom de classe de JDBC pilote personnalisé pour que le robot d'exploration se connecte à la source de données :

  • Postgres : org.postgresql.Driver

  • Mon SQL : com.mysql.jdbc.driver, com.mysql.cj.jdbc.driver

  • Redshift : com.amazon.redshift.jdbc.Driver, com.amazon.redshift.jdbc42.Driver

  • Oracle : oracle.jdbc.driver. OracleDriver

  • SQLServeur : com.microsoft.sqlserver.jdbc. SQLServerDriver

JDBCPilote S3 Path : facultatif (pour les magasins de JDBC données)

Choisissez un chemin Amazon S3 existant vers un fichier .jar. C'est là que le .jar fichier sera stocké lorsque vous utiliserez un JDBC pilote personnalisé pour que le robot d'exploration se connecte à la source de données.

Activer l'échantillonnage de données (pour les magasins de données Amazon DynamoDB, MongoDB, MongoDB Atlas et Amazon DocumentDB uniquement)

Indiquez si vous souhaitez analyser un échantillon de données uniquement. Si ce n'est pas sélectionné, la table entière est analysée. L'analyse de tous les enregistrements peut prendre beaucoup de temps lorsque la table n'est pas à haut débit.

Créer des tables pour les requêtes (uniquement pour les magasins de données Delta Lake)

Sélectionnez la façon dont vous souhaitez créer les tables Delta Lake :

  • Créer des tables natives : permettre l'intégration avec les moteurs de requêtes qui prennent directement en charge l'interrogation du journal de transactions Delta.

  • Créer des tables avec des liens symboliques : créer un dossier manifeste de lien symbolique avec les fichiers manifestes partitionnés par les clés de partition, en fonction des paramètres de configuration spécifiés.

Taux d'analyse : facultatif (pour les magasins de données DynamoDB uniquement)

Spécifiez le pourcentage des unités de capacité de lecture de la table DynamoDB à utiliser par le crawler. Unités de capacité de lecture est un terme défini par DynamoDB et est une valeur numérique qui sert de limiteur de vitesse pour le nombre de lectures pouvant être effectuées sur cette table par seconde. Saisissez une valeur comprise entre 0,1 et 1.5^63 - 1. Si ce n'est pas spécifié, la valeur par défaut est 0,5 pour les tables provisionnées et 1/4 de la capacité maximale configurée pour les tables à la demande. Notez que seul le mode de capacité provisionnée doit être utilisé avec les AWS Glue robots d'exploration.

Note

Pour les magasins de données DynamoDB, définissez le mode de capacité provisionnée pour traiter les lectures et écritures dans vos tables. Le AWS Glue robot ne doit pas être utilisé avec le mode de capacité à la demande.

Connexion réseau : facultatif (pour les magasins de données Amazon S3 uniquement)

Vous pouvez également inclure une connexion réseau à utiliser avec cette cible Amazon S3. Notez que chaque crawler est limité à une connexion réseau et toutes les autres cibles Amazon S3 utilisent la même connexion (ou aucune, si ce champ est laissé vide).

Pour obtenir des informations sur les connexions, consultez Connexion aux données.

Échantillon portant sur un seul sous-ensemble de fichiers et taille de l'échantillon (pour les magasins de données Amazon S3 uniquement)

Spécifiez le nombre de fichiers dans chaque dossier feuille à analyser lors de l'analyse d'échantillons de fichiers dans un jeu de données. Lorsque cette fonction est activée, au lieu d'analyser tous les fichiers de ce jeu de données, l'crawler sélectionne au hasard certains fichiers dans chaque dossier feuille à analyser.

Le crawler d'échantillonnage est le mieux adapté aux clients qui ont des connaissances préalables sur leurs formats de données et savent que les schémas de leurs dossiers ne changent pas. L'activation de cette fonction réduira considérablement le temps d'exécution de l'crawler.

Une valeur valide est un entier compris entre 1 et 249. Si ce n'est pas spécifié, tous les fichiers sont analysés.

Exécutions ultérieures du crawler

Ce champ est un champ global qui concerne toutes les sources de données Amazon S3.

Classifieurs personnalisés - facultatif

Définissez des classifieurs personnalisés avant de définir des crawlers. Un classifieur vérifie si un fichier donné est dans un format que le crawler peut gérer. Si c'est le cas, le classifieur crée un schéma sous la forme d'un objet StructType correspondant à ce format de données.

Pour de plus amples informations, veuillez consulter Définition et gestion des classificateurs.