La fonctionnalité de stockage de lac d'AnalyticDB for MySQL simplifie la construction du data lake et la gestion du stockage. Elle prend en charge le stockage des données tabulaires structurées dans des formats tels qu'Iceberg et Paimon, ainsi que des objets 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 de lac.
Prérequis
Un cluster AnalyticDB for MySQL Enterprise Edition, Basic Edition, or Data Lakehouse Edition a été créé.
Activer le stockage de lac
Le stockage de lac basique est généralement disponible et peut être utilisé sans soumettre de demande. Le stockage de lac standard est en aperçu sur invitation. Pour activer le stockage de lac standard, 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éterminé au moment de la création de la table et ne peut pas être modifié par la suite.
|
Dimension |
Stockage de lac géré (lac interne) |
OSS appartenant à l'utilisateur (lac externe) |
|
Gestion du stockage |
AnalyticDB for MySQL gère entièrement et traite automatiquement les buckets de stockage sous-jacents |
Les utilisateurs gèrent leurs propres buckets OSS |
|
Paramètres clés de création de table |
|
|
|
Activation |
Le stockage de lac basique peut être utilisé sans soumettre de demande ; le stockage de lac standard nécessite un ticket pour l'activation |
Aucune configuration supplémentaire requise pour l'accès depuis le même compte |
|
Cas d'utilisation |
Nouveaux projets nécessitant des opérations simplifiées |
Données OSS existantes ou exigences de stockage autogérées |
Stockage de lac 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 de lac à l'aide du langage SQL standard sans gérer les systèmes de fichiers, les configurations d'autorisation ou les politiques de cycle de vie. Pour plus d'informations, consultez la section Créer un stockage de lac.
OSS appartenant à l'utilisateur : Les données sont entièrement stockées dans un bucket OSS que vous spécifiez dans la même région. Vous spécifiez 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, consultez la documentation de lecture et d'écriture du moteur correspondant dans la section Étapes suivantes.
Types de stockage
Le stockage de lac géré par AnalyticDB for MySQL propose deux types de stockage. Vous pouvez choisir la solution de stockage appropriée en fonction de vos besoins métier.
|
Dimension |
Basique |
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 |
Généralement disponible ; peut être utilisé sans soumettre de demande |
Soumettre un ticket |
Basique (stockage de lac standard OSS)
Le stockage de lac basique 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 la 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 de lac.
Standard (stockage de lac 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 haute performance pour le stockage de lac 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 : Vous pouvez utiliser directement des chaînes d'outils standard telles qu'AWS SDK et Spark/Flink S3A pour accéder à AFS sans modifier les outils existants.
Interface POSIX (en aperçu sur invitation) : Les mêmes données peuvent être accessibles via les API S3 et les montages POSIX, couvrant 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, permettant d'équilibrer 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ège minimal 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èle peuvent lire et écrire directement dans les points de montage sans passer au SDK S3.
Accès bimodal 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 déplacement de données.
L'interface POSIX est actuellement en aperçu sur invitation. Pour utiliser cette fonctionnalité, soumettez un ticket.
Facturation
Une fois que vous avez créé un stockage lake, AnalyticDB for MySQL vous facture selon le modèle de paiement à l'utilisation en fonction du volume de données et de la durée d'utilisation. Pour plus de détails sur les tarifs, consultez les pages Tarifs des éditions Enterprise et Basic et Tarifs de l'édition Data Lakehouse.
La lecture ou l'écriture de données dans un stockage lake entraîne des frais de requête. Ces frais incluent les coûts liés aux requêtes PUT et GET. Pour plus de détails sur les tarifs, consultez les pages Tarifs des éditions Enterprise et Basic et Tarifs de l'édition Data Lakehouse.
Notes d'utilisation
Un compte Alibaba Cloud peut créer jusqu'à cinq stockages lake dans la même région.
L'affichage de l'utilisation du stockage pour un stockage lake présente un délai de mise à jour ; il est donc possible que vous ne voyiez pas immédiatement le volume de données mis à jour après avoir écrit des données.
Avant de supprimer un stockage lake, vous devez d'abord supprimer toutes les données qu'il contient. Sinon, la suppression échouera.
-
Après la création d'un stockage lake, AnalyticDB for MySQL crée automatiquement un bucket 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 consulter ce bucket dans la console OSS de votre compte Alibaba Cloud en ajoutant un chemin favori.
La fonctionnalité de sauvegarde et de récupération de AnalyticDB for MySQL ne prend pas en charge les données stockées dans un 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. Localisez 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 : Saisissez 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) Saisissez 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. Localisez 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) Saisissez 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 afin de 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 ni 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 permissions requises peut accorder des autorisations.
Les modifications des permissions prennent effet immédiatement. Confirmez l'étendue de l'autorisation avant de poursuivre.
Afficher le point de terminaison de connexion
Une fois que vous avez créé un stockage de lac standard, vous pouvez consulter son point de terminaison de connexion S3 dans la console. Utilisez ce point de terminaison pour configurer des outils compatibles avec S3, tels que AWS SDK et Spark/Flink S3A, afin d'accéder au stockage de lac AFS.
Sous l'onglet Bucket Management > > > Data Management.
-
Consultez le volume de données dans la colonne Storage Usage du stockage de lac cible.
ImportantLa mise à jour de l'utilisation du stockage affichée pour le stockage de lac présente un délai ; il se peut donc que vous ne voyiez pas immédiatement le volume de données mis à jour après l'écriture des données.
Supprimer un stockage de lac
Dans le volet de navigation de gauche, choisissez .
Dans la colonne Lake Storages du stockage de lac cible, cliquez sur Actions.
-
Dans la boîte de dialogue Delete qui s'affiche, cliquez sur Delete.
ImportantAvant de supprimer un stockage de lac, 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, de sorte que les nouvelles tables créées dans cette base utilisent automatiquement le format spécifié sans nécessiter de déclaration individuelle pour chaque table.
-
Dans le groupe de ressources de jobs Spark, le groupe de ressources interactif ou le job 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 en utilisantusing ${tableFormat}lors de la création d'une table, le format spécifié explicitement est prioritaire.
Opérations sur les tables de data lake
Selon le moteur et le format de lac 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 de lac et moteur, consultez 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 Gestion du cycle de vie du data lake.
Optimisation des performances : Pour améliorer les performances des requêtes sur les tables de lac, consultez Optimisation du stockage de lac et Cache de lac.
-
Ingestion de données :