Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Szenario wird gezeigt, wie Sie über Azure Databricks eine Verbindung mit OneLake herstellen. Nachdem Sie dieses Tutorial abgeschlossen haben, können Sie Daten in einem Microsoft Fabric Lakehouse aus Ihrem Azure Databricks-Arbeitsbereich lesen und schreiben.
Voraussetzungen
Bevor Sie beginnen können, benötigen Sie Folgendes:
- Ein Fabric-Arbeitsbereich und seehaus.
- Ein Azure Databricks-Premium-Arbeitsbereich. Nur Premium-Arbeitsbereiche von Azure Databricks unterstützen das Microsoft Entra-Anmeldeinformationen-Passthrough, das Sie für dieses Szenario benötigen.
Einrichten Des Databricks-Arbeitsbereichs
Öffnen Sie Ihren Azure Databricks-Arbeitsbereich, und wählen Sie "Cluster> aus.
Um sich mit Ihrer Microsoft Entra-Identität bei OneLake zu authentifizieren, müssen Sie die Passthrough für Azure Data Lake Storage (ADLS)-Anmeldeinformationen auf Ihrem Cluster in den erweiterten Optionen aktivieren.
Hinweis
Sie können auch OneLake mit Databricks über einen Dienstprinzipal verbinden. Weitere Informationen zum Authentifizieren von Azure Databricks mithilfe eines Dienstprinzipals finden Sie unter Verwalten von Dienstprinzipalen.
Erstellen Sie den Cluster mit Ihren bevorzugten Parametern. Weitere Informationen zum Erstellen eines Databricks-Clusters finden Sie unter Konfigurieren von Clustern – Azure Databricks.
Öffnen Sie ein Notizbuch, und verbinden Sie es mit Ihrem neu erstellten Cluster.
Erstellen Ihres Notizbuchs
Navigieren Sie zu Ihrem Fabric Lakehouse und kopieren Sie den ABFS-Pfad (Azure Blob Filesystem) in Ihr Lakehouse. Sie finden ihn im Eigenschaftenbereich .
Hinweis
Azure Databricks unterstützt nur den Azure Blob Filesystem (ABFS)-Treiber beim Lesen und Schreiben in ADLS Gen2 und OneLake:
abfss://myWorkspace@onelake.dfs.fabric.microsoft.com/.Speichern Sie den Pfad zu Ihrem Lakehouse in Ihrem Databricks-Notizbuch. Dieses Seehaus ist der Ort, an dem Sie Ihre verarbeiteten Daten später schreiben:
oneLakePath = 'abfss://myWorkspace@onelake.dfs.fabric.microsoft.com/myLakehouse.lakehouse/Files/'Laden Sie Daten aus einem öffentlichen Databricks-Dataset in einen Datenframe. Sie können auch eine Datei an anderer Stelle in Fabric lesen oder eine Datei aus einem anderen ADLS Gen2-Konto auswählen, das Sie bereits besitzen.
yellowTaxiDF = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/databricks-datasets/nyctaxi/tripdata/yellow/yellow_tripdata_2019-12.csv.gz")Filtern, Transformieren oder Vorbereiten ihrer Daten In diesem Szenario können Sie Das Dataset zum schnelleren Laden, Zum Verbinden mit anderen Datasets oder zum Filtern nach bestimmten Ergebnissen kürzen.
filteredTaxiDF = yellowTaxiDF.where(yellowTaxiDF.fare_amount<4).where(yellowTaxiDF.passenger_count==4) display(filteredTaxiDF)Schreiben Sie Ihren gefilterten Dataframe mithilfe Ihres OneLake-Pfads in Ihr Fabric Lakehouse.
filteredTaxiDF.write.format("csv").option("header", "true").mode("overwrite").csv(oneLakePath)Testen Sie, dass Ihre Daten erfolgreich geschrieben wurden, indem Sie die neu geladene Datei lesen.
lakehouseRead = spark.read.format('csv').option("header", "true").load(oneLakePath) display(lakehouseRead.limit(10))
Dies schließt das Setup ab und jetzt können Sie Daten in Fabric mithilfe von Azure Databricks lesen und schreiben.
Herstellen einer Verbindung mit OneLake mithilfe von Databricks serverless compute
Databricks serverless compute ermöglicht es Ihnen, Workloads ohne Bereitstellung eines Clusters auszuführen. Gemäß der Dokumentation zu Databricks Serverless zur Automatisierung der Konfiguration von Spark auf Serverless-Compute lässt Databricks Serverless das Konfigurieren von Spark-Eigenschaften außerhalb der hier aufgeführten unterstützten Eigenschaften nicht zu.
Hinweis
Diese Einschränkung gilt nicht nur für Azure Databricks. Databricks serverlose Implementierungen auf Amazon Web Services (AWS) und Google Cloud weisen das gleiche Verhalten auf.
Wenn Sie versuchen, eine nicht unterstützte Spark-Konfiguration in einem Notizbuch zu ändern oder festzulegen, das mit serverloser Datenverarbeitung von Databricks verknüpft ist, gibt das System einen CONFIG_NOT_AVAILABLE Fehler zurück.
OneLake unterstützt eingehende Konnektivität von Databricks serverless compute. Sie können eine Verbindung mit OneLake (von Databricks serverless compute) herstellen, sofern Sie über einen geeigneten Zugriff verfügen, und es gibt einen Netzwerkpfad zwischen databricks serverless compute and OneLake. Wenn Databricks serverlos ist, müssen Sie sicherstellen, dass Ihr Code keine nicht unterstützten Spark-Eigenschaften ändert.
Voraussetzungen
Bevor Sie beginnen können, benötigen Sie Folgendes:
- Ein Fabric-Arbeitsbereich und seehaus.
- Ein Azure Databricks-Premium-Arbeitsbereich.
- Ein Dienstprinzipal mit mindestens einer Rollenzuweisung des Mitwirkendenarbeitsbereichs .
- Datenbankgeheimnisse oder Azure Key Vault (AKV), um geheime Schlüssel zu speichern und abzurufen. In diesem Beispiel werden Databricks-Geheimnisse verwendet.
Erstellen Ihres Notizbuchs
Erstellen Sie ein Notizbuch im Databricks-Arbeitsbereich, und verknüpfen Sie es mit serverloser Rechenleistung.
Importieren Sie Python-Module – in diesem Beispiel verwenden Sie drei Module:
- msal ist Microsoft Authentication Library (MSAL) und wurde entwickelt, um Entwicklern bei der Integration der Microsoft Identity Platform-Authentifizierung in ihre Anwendungen zu helfen.
- Das Anforderungsmodul wird verwendet, um HTTP-Anforderungen mithilfe von Python zu senden.
- Delta Lake wird verwendet, um Delta Lake-Tabellen mit Python zu lesen und zu schreiben.
from msal import ConfidentialClientApplication import requests from deltalake import DeltaTableDeklarieren Sie Variablen für den Microsoft Entra-Mandanten einschließlich Anwendungs-ID. Verwenden Sie die Mandanten-ID des Mandanten, in dem Microsoft Fabric bereitgestellt wird.
# 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>")Deklarieren Sie Fabric-Arbeitsbereichsvariablen.
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}"Initialisieren Sie den Client, um ein Token abzurufen.
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']Eine Delta-Tabelle aus OneLake lesen
dt = DeltaTable(onelake_uri, storage_options={"bearer_token": f"{token_val}", "use_fabric_endpoint": "true"}) df = dt.to_pandas() print(df.head())Hinweis
Der Dienstprinzipal verfügt über die Arbeitsbereichszuweisung "Mitwirkender ", und Sie können sie verwenden, um Daten zurück in OneLake zu schreiben.
Dadurch wird das Setup abgeschlossen, und Sie können jetzt Daten aus OneLake mit einem über serverlose Rechnerleistung verbundenen Notizbuch von Databricks lesen.