Lorsque les services d'entreprise téléversent des fichiers de données, tels que des journaux et des formulaires standard, vers Object Storage Service (OSS), ces fichiers ne disposent généralement pas de gestion des métadonnées, ce qui rend leur analyse complexe. La découverte de métadonnées résout ce problème en analysant automatiquement les chemins OSS, en déduisant les schémas de table à partir de la structure et du contenu des fichiers, et en créant des tables interrogeables dans AnalyticDB for MySQL sans nécessiter de DDL manuel. Vous pouvez planifier des tâches récurrentes pour maintenir la synchronisation des métadonnées à mesure que vos fichiers évoluent.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un cluster AnalyticDB for MySQL Enterprise Edition, Basic Edition ou Data Lakehouse Edition
-
Un compte de base de données pour le cluster :
Compte Alibaba Cloud : un compte privilégié
Utilisateur Resource Access Management (RAM) : un compte privilégié et un compte standard, avec le compte standard associé à l'utilisateur RAM
Un compartiment OSS situé dans la même région que votre cluster, contenant des fichiers de données téléversés
Exigences relatives au chemin OSS
Votre chemin OSS doit respecter l'un des formats suivants :
<BucketName>/directory/.../directory/table/file<BucketName>/directory/.../directory/table/partition/.../partition/file
Toutes les conditions suivantes doivent également être remplies :
Le compartiment OSS comporte au moins un niveau de sous-répertoires
Les fichiers appartenant à la même table ou partition sont au même format
Les fichiers appartenant à la même table ou partition possèdent les mêmes types de champs et le même nombre de champs
Le chemin de l'emplacement du répertoire OSS se termine par une barre oblique (
/)
Limitations
| Limitation | Détails |
|---|---|
| Tâches par cluster et par chemin | Une seule tâche de découverte de métadonnées par cluster et par chemin OSS |
| Mode d'entrepôt de données | Mode standard uniquement. Le mode gratuit n'est pas pris en charge. |
| Format de table Iceberg | En aperçu public. Ouvrez un ticket pour l'activer. |
| Suppression de colonnes des tables mappées | Si vous supprimez une colonne d'une table mappée dans AnalyticDB for MySQL, la colonne est rajoutée lors de la prochaine exécution de la tâche. |
| Suppression d'objets | Seule l'option Ignore Deletion Updates est prise en charge : si un fichier OSS est supprimé, la table mappée existe toujours après la prochaine exécution de la tâche. |
Mappage des chemins OSS vers les tables
Le résultat du mappage dépend de la structure de vos fichiers OSS et de l'emplacement OSS Directory Location que vous définissez. Le système mappe le premier niveau de répertoire sous OSS Directory Location à un nom de table, et tous les niveaux de répertoire plus profonds à des champs de partition.
Nommage des champs de partition :
Si les noms de répertoire utilisent le format
key=value(par exemple,year=2022), les clés deviennent les noms des champs de partition (year,month,day).Si les noms de répertoire sont de simples chaînes de caractères (par exemple,
year,month,day), les champs de partition sont nomméspartition_0,partition_1, etc.
Règles de mappage :
L'emplacement OSS Directory Location doit comporter au moins un niveau de répertoire supplémentaire en dessous. Si le niveau suivant ne contient que des fichiers sans sous-répertoires, le mappage échoue.
Les fichiers appartenant à la même table ou partition doivent partager le même format et la même structure de colonnes. Des formats ou des types de champs incompatibles entraînent l'échec du mappage.
Les noms des répertoires de partition doivent respecter les conventions de nommage des tables dans AnalyticDB for MySQL.
Exemples :
| Chemin OSS | Emplacement du répertoire OSS | Résultat du mappage |
|---|---|---|
|
|
oss://adb/ |
Impossible de mapper. Les fichiers dans Table1 ont des formats différents (CSV et JSON). |
|
|
oss://adb/ |
Table partitionnée Table2 avec les champs de partition partition_0, partition_1, partition_2. |
| Mêmes fichiers que ci-dessus | oss://adb/Table2/ |
Table partitionnée year avec les champs de partition partition_0, partition_1. |
| Mêmes fichiers que ci-dessus | oss://adb/Table2/year/month/ |
Table non partitionnée day. |
| Mêmes fichiers que ci-dessus | oss://adb/Table2/year/month/day/ |
Impossible de mapper. Aucun niveau de répertoire n'existe après l'emplacement OSS Directory Location spécifié. |
|
|
oss://adb/ |
Table partitionnée Table3 avec les champs de partition year, month, day. |
| Mêmes fichiers que ci-dessus | oss://adb/Table3/ ou oss://adb/Table3/year=2022/ |
Impossible de mapper. year=2022 et month=03 ne respectent pas les conventions de nommage des tables. |
|
|
oss://adb/ |
Table partitionnée Table4 avec les champs de partition partition_0, partition_1, partition_2. |
| Mêmes fichiers que ci-dessus | oss://adb/Table3/ ou oss://adb/Table3/2020/ |
Impossible de mapper. 2020 et 03 ne respectent pas les conventions de nommage des tables. |
Créer une tâche de découverte de métadonnées
Connectez-vous à la console AnalyticDB for MySQL. Dans le coin supérieur gauche, sélectionnez une région. Dans le volet de navigation de gauche, cliquez sur Clusters, puis cliquez sur l'ID du cluster que vous souhaitez gérer.
Dans le volet de navigation de gauche, choisissez Data Ingestion > Metadata Discovery.
-
Sur la page Metadata Discovery, dans la zone OSS Data Source, cliquez sur Start Wizard.
Si Start Wizard est estompé, créez un compte privilégié au préalable.
-
Dans l'onglet OSS Data Source, configurez les paramètres suivants.
Datasource Config
Paramètre Description Data Warehouse Mode Définissez-le sur le mode standard. Le mode gratuit n'est pas pris en charge. OSS Directory Location Chemin OSS à analyser. Le chemin doit se terminer par /. Le système mappe le premier niveau de répertoire sous ce chemin à un nom de table, et tous les répertoires plus profonds à des champs de partition. Pour les tables de lac de données (Iceberg), définissez cet emplacement sur le répertoire parent du répertoire de la table — par exemple, si votre table Iceberg se trouve à l'emplacementoss://adb/testdb/iceberg_table/, définissez l'emplacement suross://adb/testdb/.Path Filter Rule (facultatif) Restreint les fichiers à mapper : sélectionnez Include pour mapper uniquement les fichiers d'un chemin spécifié, ou Exclude pour ignorer les fichiers d'un chemin spécifié. Les fichiers situés sous un chemin inclus doivent partager le même format et la même structure de colonnes. Format Resolver Sélectionnez le résolveur correspondant au format de votre fichier. Pour les formats courants, sélectionnez automatic pour essayer chaque résolveur séquentiellement. Formats pris en charge pour les fichiers courants : csv,json,parquet,avro,orcetautomatic. Format pris en charge pour les tables de lac de données :iceberg. Si le type de résolveur ne correspond pas au format du fichier, le mappage échoue.Configuration Item (facultatif) Paramètres CSV avancés : délimiteur de colonne, identifiant de référence, mode d'en-tête de table et autorisation ou non des lignes à colonne unique ( trueoufalse). Pour configurer l'utilisation ou non de la première ligne d'un fichier CSV comme noms de colonnes, contactez le support technique.Scheduling Configuration
Paramètre Description Scheduling Frequency Fréquence d'exécution de la tâche pour détecter les modifications de schéma et les nouvelles données. Lorsque les fichiers OSS changent, les tables mappées dans AnalyticDB for MySQL sont mises à jour selon les règles de la section Destination Metadata Configuration. Destination Metadata Configuration
Paramètre Description Schema Name Nom du schéma, mappé à un nom de base de données dans AnalyticDB for MySQL. Doit être unique — il ne peut pas correspondre à une base de données existante ni au nom de schéma d'une autre tâche de découverte. File Field Change Rule (facultatif) Contrôle la manière dont la table mappée change lorsque les colonnes du fichier OSS sont modifiées : Add Only Columns ajoute de nouvelles colonnes à la table mappée lorsqu'une colonne est ajoutée à un fichier OSS ; Ignore Table Updates synchronise uniquement les modifications de partition, sans ajouter ni supprimer de colonnes. Object Deletion Change Rule (facultatif) Seule l'option Ignore Deletion Updates est prise en charge. Si un fichier OSS est supprimé, la table mappée existe toujours après la prochaine exécution de la tâche. ImportantVous pouvez exécuter des opérations DML directement sur les tables mappées. Si vous ajoutez une colonne à une table mappée dans AnalyticDB for MySQL, la colonne est conservée après la prochaine exécution de la tâche. Si vous supprimez une colonne d'une table mappée, la colonne est rajoutée après la prochaine exécution de la tâche.
-
Cliquez sur Create.
Une fois la tâche créée, elle s'exécute automatiquement à l'intervalle planifié. Pour l'exécuter immédiatement, localisez la tâche dans la liste Job List et cliquez sur Execute dans la colonne Actions.
Vérifier la tâche
Une fois la tâche exécutée, accédez à la page Job List pour vérifier son statut et modifier sa configuration.
Lorsque la tâche se termine avec succès, accédez à Job Development > SQL Development pour afficher les bases de données, les tables et les partitions mappées vers AnalyticDB for MySQL.