La fonctionnalité de stockage Lake d'AnalyticDB for MySQL simplifie la construction et la gestion des data lakes. Elle permet de stocker des données tabulaires structurées dans des formats tels qu'Iceberg et Paimon, ainsi que des fichiers non structurés, ce qui la rend idéale pour les scénarios nécessitant à la fois un traitement par lots hors ligne et une analyse en temps réel. Cette rubrique décrit les modes de stockage, les types de stockage et les opérations de gestion des ressources pour le stockage Lake.
Prérequis
Un cluster AnalyticDB for MySQL Enterprise Edition, Basic Edition ou Data Lakehouse Edition est créé.
Activer le stockage Lake
La fonctionnalité de stockage Lake est en aperçu sur invitation. Pour l'activer, soumettez un ticket afin de contacter l'assistance technique.
Modes de stockage
Avant de créer une table de data lake, vous devez décider où stocker vos données. AnalyticDB for MySQL propose deux modes de stockage. Le mode est défini lors de la création de la table et ne peut pas être modifié ultérieurement.
|**Dimension**
|
**Stockage Lake géré (Lake interne)**
|
**OSS détenu par l'utilisateur (Lake externe)**
| | --- | --- | --- | |
Gestion du stockage
|
AnalyticDB for MySQL gère entièrement les buckets de stockage sous-jacents et leur traitement automatique
|
Les utilisateurs gèrent leurs propres buckets OSS
| |
Paramètres clés de création de table
|
`catalog_type='ADB'` + `adb_lake_bucket` (XIHE SQL) ; ou `TBLPROPERTIES ('adb_lake_bucket' = '...')` + `SET spark.adb.lakehouse.enabled=true` (Spark SQL)
|
`LOCATION 'oss://...'`
| |
Activation
|
Nécessite l'activation préalable du stockage Lake
|
Aucune configuration supplémentaire requise pour l'accès au sein du même compte
| |
Cas d'utilisation
|
Nouveaux projets nécessitant des opérations simplifiées
|
Données OSS existantes ou besoins de stockage autogérés
|
Stockage Lake géré : Les données sont stockées dans des buckets sous-jacents gérés automatiquement par AnalyticDB for MySQL. Vous pouvez lire et écrire dans les tables Lake à l'aide du langage SQL standard sans gérer les systèmes de fichiers, les configurations d'autorisations ou les politiques de cycle de vie. Pour plus d'informations, consultez la rubrique Créer un stockage Lake.
OSS détenu par l'utilisateur : Les données sont entièrement stockées dans un bucket OSS que vous spécifiez dans la même région. Indiquez le chemin OSS à l'aide du paramètre
LOCATIONlors de la création d'une table.
La syntaxe de création de table varie selon le moteur. Pour plus d'informations, reportez-vous à la documentation de lecture et d'écriture du moteur correspondant dans la section Étapes suivantes.
Types de stockage
Le stockage Lake géré par AnalyticDB for MySQL offre deux types de stockage. Choisissez la solution de stockage appropriée en fonction de vos besoins métier.
|**Dimension**
|
**Basic**
|
**Standard**
| | --- | --- | --- | |
Stockage sous-jacent
|
Stockage d'objets OSS
|
Stockage d'objets haute performance AFS (AnalyticDB Filesystem)
| |
Protocole d'accès
|
API OSS
|
Protocole compatible S3, avec prise en charge supplémentaire de l'interface POSIX (en aperçu sur invitation)
| |
Cas d'utilisation
|
Analyse de données polyvalente et traitement par lots hors ligne
|
Entraînement et inférence IA/ML, calcul haute performance et traitement de données multimodales
| |
Caractéristiques de performance
|
Débit et latence standards
|
Débit élevé, faible latence, avec mise en cache multiniveau intégrée
| |
Niveaux chaud/froid
|
Non pris en charge
|
Pris en charge : les données chaudes sont stockées sur AFS et les données froides sont automatiquement déplacées vers OSS
| |
Activation
|
Soumettre un ticket
|
Soumettre un ticket
|
Basic (stockage Lake standard OSS)
Le stockage Lake Basic repose sur le stockage d'objets Alibaba Cloud OSS, ce qui le rend adapté à la plupart des scénarios d'analyse de données polyvalente et de traitement par lots hors ligne. Après sa création, le système crée automatiquement un bucket dans OSS sous le compte de service. Ce bucket se trouve dans la même région que votre cluster et porte le même nom que le stockage Lake.
Standard (stockage Lake haute performance AFS)
AFS (AnalyticDB Filesystem) est un stockage d'objets haute performance compatible S3 qui fournit des capacités d'ingestion et de persistance de données hautes performances pour le stockage Lake d'AnalyticDB for MySQL. AFS est conçu pour les scénarios exigeant des performances de stockage supérieures, tels que l'entraînement et l'inférence IA/ML, ainsi que le traitement de données multimodales à grande échelle.
Fonctionnalités principales :
Compatibilité du protocole S3 : Utilisez directement des chaînes d'outils standard telles qu'AWS SDK et Spark/Flink S3A pour accéder à AFS sans modifier vos outils existants.
Interface POSIX (en aperçu sur invitation) : Accédez aux mêmes données via les API S3 et les montages POSIX, couvrant ainsi des scénarios tels que l'entraînement et l'inférence qui dépendent des chemins de fichiers.
Niveaux chaud/froid : Les données chaudes sont stockées sur AFS pour garantir un accès haute performance, tandis que les données froides sont automatiquement déplacées vers OSS. L'espace de noms unifié est transparent pour les applications de niveau supérieur, offrant un équilibre entre coût et performance.
Sécurité et autorisations : AFS prend en charge un modèle d'autorisations granulaire basé sur les politiques S3, permettant une autorisation à privilèges minimaux par bucket, chemin et type d'opération. Il prend également en charge le système d'utilisateurs et d'AccessKey pour l'isolation multi-équipes.
Interface POSIX
Les pipelines d'entraînement et d'inférence IA/ML dépendent généralement des chemins de fichiers POSIX plutôt que des clés S3. AFS fournit une interface POSIX au-dessus de l'API S3, offrant les avantages clés suivants :
Entraînement et inférence sans modification : Les opérateurs Ray et les points de contrôle de modèles peuvent lire et écrire directement dans les points de montage sans passer au SDK S3.
Accès double mode aux mêmes données : Les pipelines de production en amont écrivent via S3, tandis que l'entraînement ou la récupération en aval lit via l'interface POSIX — zéro copie, zéro mouvement de données.
L'interface POSIX est actuellement en aperçu sur invitation. Pour utiliser cette fonctionnalité, soumettez un ticket.
Facturation
Après avoir créé un stockage Lake, AnalyticDB for MySQL vous facture selon le modèle paiement à l'utilisation pour le volume de données et la durée d'utilisation. Pour plus de détails sur les tarifs, consultez les rubriques Tarifs Enterprise Edition et Basic Edition et Tarifs Data Lakehouse Edition.
La lecture ou l'écriture de données dans un stockage Lake engendre des frais de requête. Ces frais incluent les facturations pour les requêtes PUT et GET. Pour plus de détails sur les tarifs, consultez les rubriques Tarifs Enterprise Edition et Basic Edition et Tarifs Data Lakehouse Edition.
Notes d'utilisation
Un compte Alibaba Cloud peut créer jusqu'à cinq stockages Lake dans la même région.
La mise à jour de l'utilisation du stockage affichée pour le stockage Lake présente un délai ; vous ne verrez donc pas immédiatement le volume de données mis à jour après l'écriture des données.
Avant de supprimer un stockage Lake, vous devez d'abord supprimer toutes les données qu'il contient. Sinon, la suppression échoue.
-
Après la création d'un stockage Lake, AnalyticDB for MySQL crée automatiquement un bucket dans OSS sous son compte de service. Ce bucket se trouve dans la même région que votre cluster AnalyticDB for MySQL et porte le même nom que le stockage Lake. Vous pouvez afficher ce bucket dans la console OSS sous votre compte Alibaba Cloud en ajoutant un chemin favori.
La fonctionnalité de sauvegarde et de restauration d'AnalyticDB for MySQL ne prend pas en charge les données du stockage Lake.
Créer un stockage Lake
Standard
Le stockage Lake Standard repose sur le stockage d'objets haute performance AFS. Pour créer un stockage Lake Standard, vous devez d'abord créer un cluster de stockage, puis un bucket.
Connectez-vous à la console AnalyticDB for MySQL. Dans le coin supérieur gauche de la console, sélectionnez une région. Dans le volet de navigation de gauche, cliquez sur Clusters. Recherchez le cluster que vous souhaitez gérer et cliquez sur son ID.
Cliquez sur l'onglet Storage Cluster Management.
Cliquez sur Create Cluster.
-
Dans la boîte de dialogue Create Cluster, la Storage Class est fixée à Standard. Définissez la Reserved Resource Size, saisissez éventuellement une Cluster Description, puis cliquez sur OK.
RemarqueLa création d'un cluster de stockage prend un certain temps. Attendez que le cluster soit créé avant de poursuivre.
Cliquez sur l'onglet Bucket Management.
Cliquez sur Create Bucket.
-
Dans la boîte de dialogue Create Bucket, configurez les paramètres suivants et cliquez sur OK.
Type : Sélectionnez Standard.
Cluster : Sélectionnez le cluster de stockage créé à l'étape précédente.
Bucket Name : Entrez un nom de bucket. Le nom doit être globalement unique et ne peut pas être modifié après la création.
Data Redundancy Type : Sélectionnez Zone-Redundant Storage ou Locally Redundant Storage.
Bucket Description : (Facultatif) Entrez une description pour distinguer les différents scénarios métier.
Basic
Connectez-vous à la console AnalyticDB for MySQL. Dans le coin supérieur gauche de la console, sélectionnez une région. Dans le volet de navigation de gauche, cliquez sur Clusters. Recherchez le cluster que vous souhaitez gérer et cliquez sur son ID.
Dans le volet de navigation de gauche, choisissez .
Sur l'onglet Bucket Management, cliquez sur Create Bucket.
-
Dans la boîte de dialogue Create Bucket, configurez les paramètres suivants et cliquez sur OK.
Type : Sélectionnez Basic.
Bucket Name : Généré automatiquement par le système. Vous n'avez pas besoin de saisir de nom.
Bucket Description : (Facultatif) Entrez une description pour distinguer les différents scénarios métier.
Data Redundancy Type : Sélectionnez Zone-Redundant Storage ou Locally Redundant Storage.
ImportantLe nom du bucket est généré automatiquement au format
adb-lake-<Region ID>-<Random String>. Le nom est globalement unique et ne peut pas être modifié après la création. -
(Facultatif) Modifiez la description du bucket.
Le nom du bucket est généré automatiquement et ne peut pas être modifié. Nous vous recommandons de modifier la description du bucket pour le distinguer des autres utilisés pour différents scénarios métier.
Dans la colonne Bucket Description du bucket cible, cliquez sur l'icône
.Dans la boîte de dialogue Edit Bucket Description, saisissez une description et cliquez sur OK.
-
(Facultatif) Ajoutez une autorisation.
Dans la colonne Actions, cliquez sur Add Authorization et choisissez d'autoriser un utilisateur RAM ou un rôle RAM.
RemarqueRead-only : Permet aux utilisateurs de consulter les données du stockage Lake, mais pas de les modifier ou de les supprimer.
Read/write : Permet aux utilisateurs de lire, d'écrire et de modifier les données.
Seul un compte Alibaba Cloud ou un utilisateur RAM disposant des autorisations requises peut accorder des autorisations.
Les modifications d'autorisations prennent effet immédiatement. Confirmez l'étendue de l'autorisation avant de poursuivre.
Afficher le point de terminaison de connexion
Après avoir créé un stockage Lake Standard, vous pouvez afficher son point de terminaison de connexion S3 dans la console. Utilisez ce point de terminaison pour configurer des outils compatibles S3 tels qu'AWS SDK et Spark/Flink S3A afin d'accéder au stockage Lake AFS.
Sur l'onglet Bucket Management, localisez le bucket Standard cible et affichez son point de terminaison de connexion S3 dans la colonne Endpoint.
Ce point de terminaison est accessible uniquement au sein du même VPC. Assurez-vous que vos outils ou applications sont déployés dans le même VPC.
Le stockage Lake Basic ne prend pas en charge le protocole S3. La colonne Endpoint affiche un tiret (-) pour les buckets Basic.
Afficher le volume de données du stockage Lake
Dans le volet de navigation de gauche, choisissez .
-
Consultez le volume de données dans la colonne Storage Usage du stockage Lake cible.
ImportantLa mise à jour de l'utilisation du stockage affichée pour le stockage Lake présente un délai ; vous ne verrez donc pas immédiatement le volume de données mis à jour après l'écriture des données.
Supprimer un stockage Lake
Dans le volet de navigation de gauche, choisissez .
Dans la colonne Actions du stockage Lake cible, cliquez sur Delete.
-
Dans la boîte de dialogue Delete qui s'affiche, cliquez sur OK.
ImportantAvant de supprimer un stockage Lake, vous devez d'abord supprimer toutes les données qu'il contient. Sinon, la suppression échoue.
Étapes suivantes
Définir le format de table par défaut (Spark SQL uniquement)
Cette fonctionnalité s'applique uniquement au moteur Spark SQL.
Vous pouvez définir un format de table par défaut au niveau de la base de données afin que les nouvelles tables créées dans la base de données utilisent automatiquement le format spécifié sans nécessiter de déclaration par table.
-
Dans le groupe de ressources des travaux Spark, le groupe de ressources interactif ou le travail soumis, définissez le paramètre suivant :
spark.sql.adb.sources.extractProviderFromDBProperties.enabled true -
Lors de la création d'une base de données, spécifiez
DBPROPERTIESavec'storage.format'défini sur l'un des formats suivants :delta,iceberg,parquetouorc. Exemple :CREATE DATABASE IF NOT EXISTS db_storage_format LOCATION 'oss://path/to/db/' WITH DBPROPERTIES ('storage.format'='delta');Après avoir exécuté cette instruction, les tables créées dans la base de données
db_storage_formatutilisent par défaut le formatdelta. Si vous spécifiez explicitement un format de table à l'aide deusing ${tableFormat}lors de la création d'une table, le format explicitement spécifié a la priorité.
Opérations sur les tables de data lake
Selon le moteur et le format Lake choisis, reportez-vous à la documentation correspondante pour créer des tables et effectuer des opérations de lecture/écriture :
Tables de data lake : Pour la documentation sur la lecture et l'écriture par format Lake et moteur, consultez la rubrique Tables de data lake.
Gestion du cycle de vie : Pour gérer les versions de table, les snapshots et les données expirées, consultez la rubrique Gestion du cycle de vie du data lake.
Optimisation des performances : Pour améliorer les performances des requêtes sur les tables Lake, consultez les rubriques Optimisation du stockage Lake et Cache Lake.
-
Ingestion de données :