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.
Ce scénario montre comment se connecter à OneLake via Azure Databricks. Une fois ce tutoriel terminé, vous pourrez lire et écrire dans un lac Microsoft Fabric à partir de votre espace de travail Azure Databricks.
Prerequisites
Avant de vous connecter, vous devez avoir :
- Espace de travail Fabric et lakehouse.
- Un espace de travail Azure Databricks premium. Seuls les espaces de travail Azure Databricks Premium prennent en charge la transmission des informations d’identification Microsoft Entra, nécessaire pour ce scénario.
Configurer votre espace de travail Databricks
Ouvrez votre espace de travail Azure Databricks, puis sélectionnez Créer un>cluster.
Pour vous authentifier auprès de OneLake avec votre identité Microsoft Entra, vous devez activer la passe d’informations d’identification Azure Data Lake Storage (ADLS) sur votre cluster dans les options avancées.
Note
Vous pouvez également connecter Databricks à OneLake à l’aide d’un principal de service. Pour plus d’informations sur l’authentification d’Azure Databricks à l’aide d’un principal de service, consultez Gérer les principaux de service.
Créez le cluster avec vos paramètres préférés. Pour plus d’informations sur la création d’un cluster Databricks, consultez Configurer des clusters - Azure Databricks.
Ouvrez un notebook et connectez-le à votre cluster nouvellement créé.
Créer votre bloc-notes
Accédez à votre Fabric lakehouse et récupérez le chemin d'accès au système de fichiers Azure Blob (ABFS) dans votre lakehouse. Vous pouvez le trouver dans le volet Propriétés .
Note
Azure Databricks prend uniquement en charge le pilote ABFS (Azure Blob Filesystem) lors de la lecture et de l’écriture dans ADLS Gen2 et OneLake :
abfss://myWorkspace@onelake.dfs.fabric.microsoft.com/.Enregistrez le chemin d’accès à votre lakehouse dans votre notebook Databricks. Ce lakehouse est l’endroit où vous écrivez vos données traitées ultérieurement :
oneLakePath = 'abfss://myWorkspace@onelake.dfs.fabric.microsoft.com/myLakehouse.lakehouse/Files/'Chargez des données à partir d’un jeu de données public Databricks dans un dataframe. Vous pouvez également lire un fichier à partir d’un autre emplacement dans Fabric ou choisir un fichier à partir d’un autre compte ADLS Gen2 que vous possédez déjà.
yellowTaxiDF = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/databricks-datasets/nyctaxi/tripdata/yellow/yellow_tripdata_2019-12.csv.gz")Filtrez, transformez ou préparez vos données. Pour ce scénario, vous pouvez réduire votre jeu de données pour accélérer le chargement, la jointure avec d’autres jeux de données ou filtrer en fonction de résultats spécifiques.
filteredTaxiDF = yellowTaxiDF.where(yellowTaxiDF.fare_amount<4).where(yellowTaxiDF.passenger_count==4) display(filteredTaxiDF)Écrivez votre trame de données filtrée dans votre entrepôt de données Fabric en utilisant votre chemin OneLake.
filteredTaxiDF.write.format("csv").option("header", "true").mode("overwrite").csv(oneLakePath)Testez que vos données ont été correctement écrites en lisant votre fichier nouvellement chargé.
lakehouseRead = spark.read.format('csv').option("header", "true").load(oneLakePath) display(lakehouseRead.limit(10))
Cette opération termine l’installation et vous pouvez désormais lire et écrire des données dans Fabric à l’aide d’Azure Databricks.
Connexion à OneLake avec le calcul sans serveur de Databricks
Serverless compute de Databricks permet d’exécuter des workloads sans avoir besoin de provisionner un cluster. Conformément à la documentation de Serverless de Databricks, pour automatiser la configuration de Spark sur le calcul serverless, Serverless de Databricks n’autorise pas la configuration des propriétés Spark en dehors des propriétés prises en charge répertoriées ici.
Note
Cette limitation n’est pas unique pour Azure Databricks. Les implémentations serverless databricks sur Amazon Web Services (AWS) et Google Cloud présentent le même comportement.
Si vous tentez de modifier ou de définir une configuration Spark non prise en charge dans un notebook lié au calcul sans serveur Databricks, le système retourne une erreur CONFIG_NOT_AVAILABLE.
OneLake prend en charge la connectivité entrante à partir du calcul sans serveur Databricks. Vous pouvez vous connecter à OneLake (à partir du calcul serverless Databricks) à condition que vous disposiez d’un accès approprié et qu’il existe un chemin réseau entre le calcul serverless Databricks et OneLake. Avec Databricks serverless, vous devez vous assurer que votre code ne modifie aucune propriété Spark non prise en charge.
Prerequisites
Avant de vous connecter, vous devez avoir :
- Espace de travail Fabric et lakehouse.
- Un espace de travail Azure Databricks premium.
- Un principal de service avec un minimum d’attribution de rôle d’espace de travail Contributeur.
- Secrets de base de données ou Azure Key Vault (AKV) pour stocker et récupérer des secrets. Cet exemple utilise les secrets Databricks.
Créer votre bloc-notes
Créez un notebook dans l’espace de travail Databricks et attachez-le au calcul sans serveur.
Importez des modules Python : dans cet exemple, vous utilisez trois modules :
- msal est Microsoft Authentication Library (MSAL) et il est conçu pour aider les développeurs à intégrer l’authentification de la plateforme d’identités Microsoft dans leurs applications.
- le module demandes est utilisé pour effectuer des requêtes HTTP à l’aide de Python.
- Delta Lake est utilisé pour lire et écrire des tables Delta Lake à l’aide de Python.
from msal import ConfidentialClientApplication import requests from deltalake import DeltaTableDéclarez des variables pour le locataire Microsoft Entra, y compris l'ID d’application. Utilisez l’ID de locataire du locataire dans lequel Microsoft Fabric est déployé.
# Fetch from Databricks secrets. tenant_id = dbutils.secrets.get(scope="<replace-scope-name>",key="<replace value with key value for tenant _id>") client_id = dbutils.secrets.get(scope="<replace-scope-name>",key="<replace value with key value for client _id>") client_secret = dbutils.secrets.get(scope="<replace-scope-name>",key="<replace value with key value for secret>")Déclarez les variables d’espace de travail Fabric.
workspace_id = "<replace with workspace name>" lakehouse_id = "<replace with lakehouse name>" table_to_read = "<name of lakehouse table to read>" storage_account_name = workspace_id onelake_uri = f"abfss://{workspace_id}@onelake.dfs.fabric.microsoft.com/{lakehouse_id}.lakehouse/Tables/{table_to_read}"Initialisez le client logiciel pour acquérir un jeton.
authority = f"https://login.microsoftonline.com/{tenant_id}" app = ConfidentialClientApplication( client_id, authority=authority, client_credential=client_secret ) result = app.acquire_token_for_client(scopes=["https://onelake.fabric.microsoft.com/.default"]) if "access_token" in result: access_token = result["access_token"] print("Access token acquired.") token_val = result['access_token']Lire une table delta à partir de OneLake
dt = DeltaTable(onelake_uri, storage_options={"bearer_token": f"{token_val}", "use_fabric_endpoint": "true"}) df = dt.to_pandas() print(df.head())Note
Le principal de service dispose d’une attribution de rôle Contributeur dans l'espace de travail et vous pouvez l’utiliser pour écrire des données sur OneLake.
Cette opération termine la configuration et vous pouvez désormais lire des données de OneLake à l'aide de Databricks et d'un notebook attaché au computing sans serveur.