Partage via


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é.

  1. 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ès synapse/workspaces/.../warehouse/ et sera nommée après votre table et contient un répertoire _delta_log. Sélectionnez Copy 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/

  2. 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/');
    
  3. 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/');
    
  4. 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")

Étapes suivantes

Comment configurer la mise en cache dans Trino