Les tables externes MaxCompute vous permettent d'interroger et d'analyser les données stockées dans des systèmes de stockage externes tels qu'OSS.
Fonctionnement
Le langage SQL de MaxCompute traite des volumes de données hors ligne à l'échelle de l'exaoctet. Avec l'expansion des charges de travail Big Data, les données résident de plus en plus dans des data lakes, des entrepôts de données en temps réel, des bases de données NoSQL et d'autres systèmes.
Grâce à son architecture de stockage et de calcul distribuée, MaxCompute prend en charge les scénarios d'entrepôt de données et de data lake. Deux modes sont disponibles pour le traitement des données externes :
-
Mode 1 : Importation puis calcul
Importez les données dans MaxCompute. Les données structurées sont stockées sous forme de tables pour les requêtes SQL ou l'accès par des moteurs tiers. Les données non structurées peuvent également être stockées et traitées dans MaxCompute pour une meilleure efficacité des entrées/sorties.
-
Mode 2 : Calcul sur place
Utilisez le moteur SQL de MaxCompute comme moteur de calcul pour interroger directement les données dans le stockage externe, tel qu'un data lake.
MaxCompute offre une gouvernance robuste des entrepôts de données et s'intègre aux systèmes de stockage externes. Les tables externes constituent le principal mécanisme d'accès aux données externes.
-
Définition et mécanisme
Une instruction DDL définit le nom de la table, le schéma, les propriétés, les autorisations, l'emplacement et le protocole d'accès aux données externes. Ces métadonnées sont stockées dans MaxCompute.
Les requêtes SQL utilisent ces métadonnées pour se connecter aux sources de données externes, récupérer ou mettre à jour les métadonnées, ainsi que pour lire, calculer ou écrire des données.
-
Cas d'utilisation
Les tables externes permettent un calcul direct sur les données externes, la gestion des sources de données externes au sein de la gouvernance MaxCompute, le traitement par lots des données de lac structurées ou non structurées, l'échange de données et l'archivage des entrepôts de données en temps réel.
Facturation
-
Frais de stockage
Aucun frais de stockage n'est facturé.
Les données des tables externes restent dans le système externe et ne sont pas copiées vers MaxCompute. MaxCompute ne facture aucun frais de stockage pour les tables externes. Consultez les règles de facturation de votre source de données externe pour connaître ses coûts de stockage.
-
Frais de calcul Les frais de calcul suivent les règles de facturation des ressources de calcul MaxCompute :
-
Ressources d'abonnement ou CU réservées :
Les frais de calcul des tables externes sont inclus dans les frais prépayés des ressources de calcul.
-
Paiement à l'utilisation :
Tâches SQL qui référencent des tables externes (y compris les tâches OSS, OTS, Hologres, HBase, JDBC (telles que RDS), HDFS, OSSHDFS et Object Table).
-
-
Frais réseau
La connexion aux tables externes via l'endpoint public MaxCompute entraîne des frais de trafic et de téléchargement sur le réseau public. Présentation des éléments facturables et des méthodes de facturation.
-
Frais de source de données externe
Les sources de données externes peuvent facturer des frais de calcul, d'accès ou de transfert de données. Vérifiez les règles de facturation du service correspondant.
Portée
Tunnel et le SDK Tunnel ne prennent actuellement pas en charge les tables externes. Chargez les données dans les tables internes MaxCompute via Tunnel, ou chargez-les dans OSS via le SDK Python OSS et mappez les données avec une table externe dans MaxCompute.
-
Les tables externes prennent en charge l'écriture de données dans des sources de données externes, mais les capacités d'écriture et la cohérence sont soumises aux limitations du système externe :
Hologres : MaxCompute accède aux métadonnées Hologres via JDBC et ne peut pas garantir l'atomicité des transactions d'écriture. Le moteur SQL MaxCompute peut lire directement les données Pangu Hologres, mais ne peut pas y écrire. En raison de la complexité des écritures parallèles distribuées multiprocessus, MaxCompute ne prend pas en charge
INSERT OVERWRITEpour Hologres, et une tâche échouée peut entraîner des écritures partielles de données.HDFS : Également basé sur HMS. Les écritures HDFS présentent une faible probabilité d'incohérence.
OSS : Les écritures de tables externes OSS utilisent des fichiers de métadonnées .odps pour réduire la probabilité d'écritures incomplètes. Si vous désactivez les fichiers de métadonnées .odps pour la compatibilité du moteur, les écritures présentent également une faible probabilité d'être incomplètes.
Lorsque vous utilisez
INSERT OVERWRITEpour écrire des données externes, MaxCompute écrit d'abord les nouvelles données, puis supprime les données existantes dans la table ou la partition lors de la phase de validation DDL, et les remplace par les nouvelles données. Les données supprimées ne peuvent pas être restaurées. Sauvegardez vos données avant l'écriture et validez les résultats une fois l'écriture terminée. En cas de problème, relancez l'écriture complète.
Références
Tables externes prises en charge
MaxCompute prend en charge les tables externes pour OSS, Hologres, RDS et d'autres services :
Exemples de tables externes
Les exemples suivants montrent comment traiter des données non structurées avec les tables externes MaxCompute :
Accédez aux données non structurées OSS et TableStore (OTS) : Tables externes OSS et Accéder aux données non structurées OTS.
Personnalisez l'autorisation RAM pour que MaxCompute accède à OSS via des tables externes : Autorisation de source de données externe.
Écrivez des données MaxCompute dans OSS en utilisant INSERT : Tables externes OSS.
Traitez les données au format open source : Tables externes OSS.
Utilisez DataWorks avec MaxCompute pour créer, rechercher, interroger, configurer, traiter et analyser visuellement les tables externes : Tables externes.