Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Microsoft OneLake peut être utilisé avec Snowflake pour le stockage et l’accès aux tables Apache Iceberg.
Suivez ce guide pour utiliser Snowflake sur Azure pour :
- écrire des tables Iceberg directement dans OneLake
- lire les tables Iceberg virtuelles converties du format Delta Lake
Important
Cette fonctionnalité est en version préliminaire.
Avant de commencer, suivez les étapes préalables indiquées ci-dessous.
Prerequisite
Pour utiliser Snowflake sur Azure pour écrire ou lire des tables Iceberg avec OneLake, l’identité de votre compte Snowflake dans Entra ID doit être en mesure de communiquer avec Fabric. Activez les paramètres au niveau du locataire Fabric qui permettent aux principaux de service d’appeler des API Fabric et d’appeler des API OneLake.
Écrire une table Iceberg dans OneLake à l’aide de Snowflake sur Azure
Si vous utilisez Snowflake sur Azure, vous pouvez écrire des tables Iceberg dans OneLake en effectuant ces étapes :
Vérifiez que votre capacité Fabric se trouve au même emplacement Azure que votre instance Snowflake.
Identifiez l’emplacement de la capacité Fabric associée à votre lakehouse Fabric. Ouvrez les paramètres de l’espace de travail Fabric qui contient votre lakehouse.
Dans le coin inférieur gauche de votre interface de compte Snowflake sur Azure, vérifiez la région Azure du compte Snowflake.
Si ces régions sont différentes, vous devez utiliser une capacité Fabric différente dans la même région que votre compte Snowflake.
Ouvrez le menu de la zone Fichiers de votre lakehouse, sélectionnez Propriétés, puis copiez l’URL (chemin d’accès HTTPS) de ce dossier.
Identifiez votre ID de locataire Fabric. Sélectionnez votre profil utilisateur dans le coin supérieur droit de l’interface utilisateur de Fabric, puis pointez sur la bulle d’informations en regard de votre nom de locataire. Copiez l’ID de locataire .
Dans Snowflake, configurez votre
EXTERNAL VOLUMEen utilisant le chemin d'accès vers le dossierFilesde votre lakehouse. Vous trouverez ici plus d’informations sur la configuration des volumes externes Snowflake.Note
Snowflake nécessite que le schéma d’URL soit
azure://, donc veillez à modifier le chemin d’accèshttps://àazure://.CREATE OR REPLACE EXTERNAL VOLUME onelake_write_exvol STORAGE_LOCATIONS = ( ( NAME = 'onelake_write_exvol' STORAGE_PROVIDER = 'AZURE' STORAGE_BASE_URL = 'azure://<path_to_lakehouse>/Files/icebergtables' AZURE_TENANT_ID = '<Tenant_ID>' ) );Dans cet exemple, toutes les tables créées à l’aide de ce volume externe sont stockées dans le lakehouse Fabric, dans le dossier
Files/icebergtables.Maintenant que votre volume externe est créé, exécutez la commande suivante pour récupérer l’URL de consentement et le nom de l’application utilisée par Snowflake pour écrire dans OneLake. Cette application est utilisée par tout autre volume externe dans votre compte Snowflake.
DESC EXTERNAL VOLUME onelake_write_exvol;La sortie de cette commande retourne les propriétés
AZURE_CONSENT_URLetAZURE_MULTI_TENANT_APP_NAME. Prenez note des deux valeurs. Le nom de l’application multilocataire Azure ressemble à<name>_<number>, mais vous devez uniquement capturer la partie<name>.Ouvrez l’URL de consentement de l’étape précédente dans un nouvel onglet de navigateur, si vous ne l’avez pas fait précédemment. Si vous souhaitez continuer, consentez aux autorisations d’application requises, si vous y êtes invité. Vous pouvez être redirigé vers le site web principal de Snowflake.
De retour dans Fabric, ouvrez votre espace de travail et sélectionnez Gérer l’accès, puis Ajouter des personnes ou des groupes. Accordez à l’application utilisée par votre volume externe Snowflake les autorisations nécessaires pour écrire des données dans des lakehouses dans votre espace de travail. Nous vous recommandons d’accorder le rôle Contributeur.
De retour dans Snowflake, utilisez votre nouveau volume externe pour créer une table Iceberg.
CREATE OR REPLACE ICEBERG TABLE MYDATABASE.PUBLIC.Inventory ( InventoryId int, ItemName STRING ) EXTERNAL_VOLUME = 'onelake_write_exvol' CATALOG = 'SNOWFLAKE' BASE_LOCATION = 'Inventory/';Après avoir exécuté cette instruction, un nouveau dossier de table Iceberg nommé Inventory a été créé dans le chemin du dossier défini dans le volume externe.
Ajoutez des données à votre table Iceberg.
INSERT INTO MYDATABASE.PUBLIC.Inventory VALUES (123456,'Amatriciana');Pour finir, dans la zone Tables du même lakehouse, vous pouvez créer un raccourci OneLake vers votre table Iceberg. Grâce à ce raccourci, votre table Iceberg apparaît sous la forme d’une table Delta Lake et peut être consommée dans les charges de travail Fabric.
Lire une table Iceberg virtuelle à partir de OneLake à l’aide de Snowflake sur Azure
Pour utiliser Snowflake sur Azure pour lire une table iceberg virtuelle basée sur une table Delta Lake dans Fabric, procédez comme suit.
Suivez le guide pour confirmer que votre table Delta Lake a été convertie avec succès en Iceberg et notez le chemin d’accès à l’élément de données contenant votre table, ainsi que le fichier le plus récent
*.metadata.jsonde votre table.Identifiez votre ID de locataire Fabric. Sélectionnez votre profil utilisateur dans le coin supérieur droit de l’interface utilisateur de Fabric, puis pointez sur la bulle d’informations en regard de votre nom de locataire. Copiez l’ID de locataire .
Dans Snowflake, configurez votre
EXTERNAL VOLUMEen spécifiant le chemin au dossierTablesde l’élément de données qui contient votre table. Vous trouverez ici plus d’informations sur la configuration des volumes externes Snowflake.CREATE OR REPLACE EXTERNAL VOLUME onelake_read_exvol STORAGE_LOCATIONS = ( ( NAME = 'onelake_read_exvol' STORAGE_PROVIDER = 'AZURE' STORAGE_BASE_URL = 'azure://<path_to_data_item>/Tables/' AZURE_TENANT_ID = '<Tenant_ID>' ) ) ALLOW_WRITES = false;Note
Snowflake exige que le schéma d’URL soit
azure://; veillez donc à remplacerhttps://parazure://.Remplacez
<path_to_data_item>par le chemin d’accès à votre élément de données, commehttps://onelake.dfs.fabric.microsoft.com/83896315-c5ba-4777-8d1c-e4ab3a7016bc/a95f62fa-2826-49f8-b561-a163ba537828.Maintenant que votre volume externe est créé, exécutez la commande suivante pour récupérer l’URL de consentement et le nom de l’application utilisée par Snowflake pour écrire dans OneLake. Cette application est utilisée par tout autre volume externe dans votre compte Snowflake.
DESC EXTERNAL VOLUME onelake_read_exvol;La sortie de cette commande retourne les propriétés
AZURE_CONSENT_URLetAZURE_MULTI_TENANT_APP_NAME. Prenez note des deux valeurs. Le nom de l’application multilocataire Azure ressemble à<name>_<number>, mais vous devez uniquement capturer la partie<name>.Ouvrez l’URL de consentement de l’étape précédente dans un nouvel onglet de navigateur, si vous ne l’avez pas fait précédemment. Si vous souhaitez continuer, consentez aux autorisations d’application requises, si vous y êtes invité. Vous pouvez être redirigé vers le site web principal de Snowflake.
De retour dans Fabric, ouvrez votre espace de travail et sélectionnez Gérer l’accès, puis Ajouter des personnes ou des groupes. Accordez à l’application utilisée par votre volume externe Snowflake les autorisations nécessaires pour lire les données à partir d’éléments de données dans votre espace de travail.
Tip
Vous pouvez plutôt choisir d’accorder des autorisations au niveau de l’élément de données, si vous le souhaitez. En savoir plus sur l’accès aux données OneLake.
Créez l’objet
CATALOG INTEGRATIONdans Snowflake, si vous ne l’avez pas fait précédemment. Cela est requis par Snowflake pour référencer les tables Iceberg existantes dans le stockage.CREATE CATALOG INTEGRATION onelake_catalog_integration CATALOG_SOURCE = OBJECT_STORE TABLE_FORMAT = ICEBERG ENABLED = TRUE;De retour dans Snowflake, créez une table Iceberg référençant le dernier fichier de métadonnées pour la table Iceberg virtualisée dans OneLake.
CREATE OR REPLACE ICEBERG TABLE MYDATABASE.PUBLIC.<TABLE_NAME> EXTERNAL_VOLUME = 'onelake_read_exvol' CATALOG = onelake_catalog_integration METADATA_FILE_PATH = '<metadata_file_path>';Note
Remplacez
<TABLE_NAME>par le nom de votre table et<metadata_file_path>par le chemin du fichier de métadonnées de votre table Iceberg, pardbo/MyTable/metadata/321.metadata.jsonexemple .Après avoir exécuté cette instruction, vous disposez maintenant d’une référence à votre table Iceberg virtualisée que vous pouvez désormais interroger à l’aide de Snowflake.
Interrogez votre table Iceberg virtualisée en exécutant l’instruction suivante.
SELECT TOP 10 * FROM MYDATABASE.PUBLIC.<TABLE_NAME>;
Troubleshooting
Consultez les sections résolution des problèmeset limitations et considérations de notre documentation sur la virtualisation et la conversion de format de table OneLake entre les formats de table Delta Lake et Apache Iceberg.