Del via


Integrer OneLake med Azure Databricks

Denne artikel viser, hvordan man forbinder til OneLake via Azure Databricks serverløse compute.

Forudsætninger

Før du forbinder, skal du sikre dig, at du har:

  • Et stofarbejdsområde og søhus.
  • Et Premium Azure Databricks-arbejdsområde.
  • En serviceprincipal med mindst tildelingen af bidragyder-arbejdsområdet .
  • Databasehemmeligheder eller AKV (Azure Key Vault) til at gemme og hente hemmeligheder. I dette eksempel bruges Databricks-hemmeligheder.

Forbind til OneLake ved at bruge Databricks serverløse beregning

Ved at bruge Databricks serverløse beregning kan du køre arbejdsbelastninger uden at provisionere en klynge. Ifølge Databricks serverløse dokumentation tillader Databricks serverless kun konfiguration af et delmængde af understøttede Spark-egenskaber for at automatisere konfigurationen af Spark på serverløs beregning.

Notat

Denne begrænsning er ikke unik for Azure Databricks. Databricks-serveruafhængige implementeringer på Amazon Web Services (AWS) og Google Cloud udviser den samme funktionsmåde.

Hvis du forsøger at ændre eller angive en ikke-understøttet Spark-konfiguration i en notesbog, der er knyttet til Databricks-serveruafhængig beregning, returnerer systemet en CONFIG_NOT_AVAILABLE fejl.

Skærmbillede, der viser fejlmeddelelse, hvis en bruger forsøger at ændre ikke-understøttet Spark-konfiguration i serveruafhængig beregning.

OneLake understøtter indgående forbindelse fra Databricks-serveruafhængig beregning. Du kan forbinde til OneLake fra Databricks serverløse compute, hvis du har passende adgang, og der er en netværkssti mellem Databricks serverless compute og OneLake. Med Databricks serverløs, sørg for, at din kode ikke ændrer nogen ikke-understøttede Spark-egenskaber.

Oprette din notesbog

  1. Opret en notesbog i Databricks-arbejdsområdet, og vedhæft den til serveruafhængig beregning.

    Skærmbillede, der viser, hvordan du opretter forbindelse mellem Databricks-notesbog og serveruafhængig beregning.

  2. Importer Python-moduler – i dette eksempel bruger du tre moduler:

    • msal er Microsoft Authentication Library (MSAL) og er designet til at hjælpe udviklere med at integrere Microsofts identitetsplatformautentificering i deres applikationer.
    • requests modulet bruges til at lave HTTP-forespørgsler ved hjælp af Python.
    • delta lake bruges til at læse og skrive Delta Lake-tabeller ved hjælp af Python.
    from msal import ConfidentialClientApplication
    import requests
    from deltalake import DeltaTable
    
  3. Erklære variabler for Microsoft Entra-lejer, herunder program-id. Brug lejer-id'et for den lejer, hvor Microsoft Fabric er installeret.

    # 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>")
    
  4. Deklarer variabler for arbejdsområde i struktur.

    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}"
    
  5. Initialiser klienten for at erhverve token.

    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']
    
  6. Læs en deltatabel fra OneLake

    dt = DeltaTable(onelake_uri, storage_options={"bearer_token": f"{token_val}", "use_fabric_endpoint": "true"})
    df = dt.to_pandas()
    print(df.head())
    

    Notat

    Tjenesteprincipalen har rolletildeling af bidragyderarbejdsområdet , og du kan bruge den til at skrive data tilbage til OneLake.

Når du har gennemført de foregående trin, kan du læse data fra OneLake ved at bruge Databricks, en notesbog tilknyttet serverless compute.