Partage via


Lire les tableaux de Delta Lake (Synapse ou emplacement externe)

Important

Cette fonctionnalité est disponible actuellement en mode Aperçu. Les Conditions d’utilisation supplémentaires pour les préversions de Microsoft Azure contiennent davantage de conditions légales qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou ne se trouvant pas encore en disponibilité générale. Pour plus d’informations sur cette préversion spécifique, consultez les Informations sur la préversion d’Azure HDInsight sur AKS. Pour toute question ou pour des suggestions à propos des fonctionnalités, veuillez envoyer vos requêtes et leurs détails sur AskHDInsight, et suivez-nous sur la Communauté Azure HDInsight pour plus de mises à jour.

Cet article donne un aperçu de la façon de lire une table Delta Lake sans avoir accès au metastore (Synapse ou autres metastores sans accès public).

Vous pouvez effectuer les opérations suivantes sur les tables à l’aide de Trino avec HDInsight sur AKS.

  • Suppression
  • UPDATE
  • INSERT
  • MERGE

Prérequis

Créer des schémas et des tables Delta Lake

Cette section montre comment créer une table Delta sur un emplacement préexistant étant donné que vous disposez déjà d'un catalogue Delta Lake configuré.

  1. Parcourez le compte de stockage à l’aide de Storage browser dans le Portail Microsoft Azure jusqu’à l’emplacement du répertoire de base de votre table. Si cette table provient de Synapse, elle se trouve probablement sous un chemin synapse/workspaces/.../warehouse/ et portera le nom de votre table et contiendra un répertoire _delta_log. Sélectionnez Copy URL parmi les trois points situés à côté du dossier.

    Vous devez convertir ce chemin http en chemin ABFS (Azure Blob File System) :

    Le chemin http de stockage est structuré comme ceci : 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 le tableau .

    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. Interrogez la table pour vérifier.

    SELECT * FROM delta.default.table_name
    

Écrire des tables Delta Lake dans Synapse Spark

Utilisez format("delta") pour enregistrer un dataframe en tant que table Delta, puis vous pouvez utiliser le chemin où vous avez enregistré le dataframe au format delta pour enregistrer 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