Lire les tables Delta Lake (emplacement Synapse ou externe)
Important
Azure HDInsight sur AKS a été mis hors service le 31 janvier 2025. En savoir plus avec cette annonce.
Vous devez migrer vos charges de travail vers Microsoft Fabric ou un produit Azure équivalent pour éviter l’arrêt brusque de vos charges de travail.
Important
Cette fonctionnalité est actuellement en préversion. Les Conditions d’utilisation supplémentaires pour les préversions Microsoft Azure incluent des termes juridiques supplémentaires qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou qui ne sont pas encore publiées en disponibilité générale. Pour plus d’informations sur cette préversion spécifique, consultez informations concernant la préversion d'Azure HDInsight sur AKS. Pour des questions ou des suggestions de fonctionnalités, envoyez une demande sur AskHDInsight avec les détails et suivez-nous pour plus de mises à jour sur Communauté Azure HDInsight.
Cet article fournit une vue d’ensemble de la lecture d’une table Delta Lake sans avoir accès au metastore (Synapse ou d’autres metastores sans accès public).
Vous pouvez effectuer les opérations suivantes sur les tables à l’aide de Trino avec HDInsight sur AKS.
- SUPPRIMER
- METTRE À JOUR
- INSÉRER
- FUSIONNER
Conditions préalables
Créer des schémas et des tables Delta Lake
Cette section montre comment créer une table Delta sur un emplacement préexistant, à condition qu'un catalogue Delta Lake soit déjà configuré.
Parcourez le compte de stockage à l’aide de l'
Storage browser
dans le portail Azure vers l’emplacement où se trouve le répertoire de base de votre table. Si cette table provient de Synapse, elle est probablement sous un chemin d’accèssynapse/workspaces/.../warehouse/
et sera nommée après votre table et contient un répertoire_delta_log
. SélectionnezCopy URL
à partir des trois points situés à côté du dossier.Vous devez convertir ce chemin d'accès HTTP en chemin d'accès ABFS (Système de fichier blob Azure) :
Le chemin http de stockage est structuré comme suit :
https://{{AZURE_STORAGE_ACCOUNT}}.blob.core.windows.net/{{AZURE_STORAGE_CONTAINER}}/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/
Les chemins ABFS doivent ressembler à ceci :
abfss://{{AZURE_STORAGE_CONTAINER}}@{{AZURE_STORAGE_ACCOUNT}}.dfs.core.windows.net/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/
Exemple :
abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/
Créez un schéma Delta Lake dans Trino.
CREATE SCHEMA delta.default;
Vous pouvez également créer un schéma dans un compte de stockage spécifique :
CREATE SCHEMA delta.default WITH (location = 'abfss://container@storageaccount.dfs.core.windows.net/trino/');
Utilisez la procédure
register_table
pour créer la table.CALL delta.system.register_table(schema_name => 'default', table_name => 'table_name', table_location => 'abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/');
Consultez le tableau pour vérifier.
SELECT * FROM delta.default.table_name
Créer des tables Delta Lake dans Synapse Spark
Utilisez format("delta")
pour enregistrer un dataframe en tant que table Delta, vous pouvez utiliser le chemin d’accès où vous avez enregistré le dataframe en tant que format delta pour inscrire la table dans Trino.
my_dataframe.write.format("delta").save("abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name")