Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Tässä artikkelissa näytetään, miten pääsee käsiksi OneLake-dataan Azure Databricks:sta. Molemmat lähestymistavat käyttävät palvelupään tunnistautumista ja OneLake ABFS -päätelaitetta. Valitse osio, joka vastaa Databricks-laskentatyyppiäsi:
- Standardi tai työryhmä: Käytä Spark ABFS -ajuria OAuth-konfiguraatiolla lukeaksesi ja kirjoittaaksesi dataa suoraan Spark DataFramesin kautta.
-
Serveritön laskenta: Palvelimettomat ajonaikat eivät salli mukautettujen Spark-konfiguraatioiden asettamista. Sen sijaan käytä Microsoft Authentication Library (MSAL) ja Python
deltalake-kirjastoa Delta-taulukoiden todennukseen, lukemiseen ja kirjoittamiseen.
Databricks-integraatioskenaarioita varten katso seuraavat resurssit:
| Esimerkkitilanne | Dokumentaatio |
|---|---|
| Hae OneLake-tietoja Unity Catalogista kopioimatta niitä | Ota OneLake-katalogin federaatio käyttöön |
| Pääsy Databricks Unity Catalogin tietoihin Fabric-sivustolla | Azure Databricks Unity -luettelon peilaus |
edellytykset
Ennen kuin yhdistät, varmista, että sinulla on:
- Fabric-työtila ja järvitalo.
- Azure Databricksin premium-työtila.
- Palvelupäähenkilö, jolla on vähintään Contributor workspace -roolin määritys.
- Databricksin salaisuudet tai Azure Key Vault (AKV) salaisuuksien tallentamiseen ja hakemiseen. Tämän artikkelin esimerkit käyttävät Databricksin salaisuuksia.
Yhdistä OneLakeen vakio-klusterilla
Käytä oikeaa OneLake ABFS -polkumuotoa
Käytä jotakin seuraavista URI-muodoista:
abfss://<workspace_id_or_name>@onelake.dfs.fabric.microsoft.com/<lakehouse_id_or_name>.lakehouse/Files/<path>abfss://<workspace_id_or_name>@onelake.dfs.fabric.microsoft.com/<lakehouse_id_or_name>.lakehouse/Tables/<path>
Voit käyttää henkilöllisyystodistuksia tai nimiä. Jos käytät nimiä, vältä erikoismerkkejä ja valkoisia tiloja työtiloissa ja järventalojen nimissä.
Käytä palvelun päähenkilön todennuksia
Käytä tätä vaihtoehtoa automatisoituihin tehtäviin ja keskitettyyn salaiseen rotaatioon.
workspace_name = "<workspace_name>"
lakehouse_name = "<lakehouse_name>"
tenant_id = dbutils.secrets.get(scope="<scope-name>", key="<tenant-id-key>")
service_principal_id = dbutils.secrets.get(scope="<scope-name>", key="<client-id-key>")
service_principal_secret = dbutils.secrets.get(scope="<scope-name>", key="<client-secret-key>")
spark.conf.set("fs.azure.account.auth.type", "OAuth")
spark.conf.set(
"fs.azure.account.oauth.provider.type",
"org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
)
spark.conf.set("fs.azure.account.oauth2.client.id", service_principal_id)
spark.conf.set("fs.azure.account.oauth2.client.secret", service_principal_secret)
spark.conf.set(
"fs.azure.account.oauth2.client.endpoint",
f"https://login.microsoftonline.com/{tenant_id}/oauth2/token",
)
# Read
df = spark.read.format("parquet").load(
f"abfss://{workspace_name}@onelake.dfs.fabric.microsoft.com/{lakehouse_name}.lakehouse/Files/data"
)
df.show(10)
# Write
df.write.format("delta").mode("overwrite").save(
f"abfss://{workspace_name}@onelake.dfs.fabric.microsoft.com/{lakehouse_name}.lakehouse/Tables/dbx_delta_spn"
)
Yhdistä OneLakeen palvelimettomalla laskentatoimella
Databricksin serveriton laskenta mahdollistaa työkuormien suorittamisen ilman klusterien provisiointia, mutta sallii vain osan tuetuista Spark-ominaisuuksista. Et voi asettaa Spark-konfiguraatiota fs.azure.* , jota käytetään tavallisissa klustereissa.
Note
Tämä rajoitus ei koske vain Azure Databricksiä. Databricksin palvelimettomat toteutukset Amazon Web Servicesissä (AWS) ja Google Cloudissa käyttäytyvät samalla tavalla.
Jos yrität asettaa tuetonta Spark-konfiguraatiota palvelimettomassa muistikirjassa, järjestelmä palauttaa CONFIG_NOT_AVAILABLE-virheen.
Sen sijaan käytä MSAL:ia hankkiaksesi OAuth-tokenin ja Python deltalake-kirjastoa Delta-taulukoiden lukemiseen tai kirjoittamiseen kyseisellä tokenilla.
Perusta palvelimeton muistikirja
Luo muistikirja Databricks-työtilassasi ja liitä se palvelimettomaan laskentaan.
Tuo Python-moduuleja. Tässä esimerkissä käytetään kahta moduulia:
- msal autentikoituu Microsoftin käyttäjätietoympäristö:n kanssa.
- deltalake lukee ja kirjoittaa Delta Lake -taulukoita Python avulla.
from msal import ConfidentialClientApplication from deltalake import DeltaTable, write_deltalakeMääritä Microsoft Entra -vuokraajan muuttujat, mukaan lukien sovellustunnus. Käytä sen vuokraajan vuokraajatunnusta, jossa Microsoft Fabric on otettu käyttöön.
# 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>")Määritä Fabric-työtilan muuttujat.
workspace_id = "<replace with workspace name>" lakehouse_id = "<replace with lakehouse name>" table_to_read = "<name of lakehouse table to read>" onelake_uri = f"abfss://{workspace_id}@onelake.dfs.fabric.microsoft.com/{lakehouse_id}.lakehouse/Tables/{table_to_read}"Alusta asiakas tunnuksen hankkimiseksi.
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: print("Access token acquired.") token_val = result['access_token'] else: raise Exception(f"Failed to acquire token: {result.get('error_description', result)}")Lue OneLaken Delta-taulukko.
dt = DeltaTable(onelake_uri, storage_options={"bearer_token": f"{token_val}", "use_fabric_endpoint": "true"}) df = dt.to_pandas() print(df.head())Kirjoita Delta-taulukko OneLakeen.
target_uri = f"abfss://{workspace_id}@onelake.dfs.fabric.microsoft.com/{lakehouse_id}.lakehouse/Tables/<target_table_name>" write_deltalake( target_uri, df, mode="overwrite", storage_options={"bearer_token": f"{token_val}", "use_fabric_endpoint": "true"} )
Suunnittelussa huomioitavaa
- Käytä yhtä kirjoitusmallia per taulukkopolku mahdollisuuksien mukaan. Samoille tallennuspoluille kirjoittaminen useista laskentamoottoreista tai ajonaikaisista versioista voi aiheuttaa ristiriitoja.
- Käytä salaisuuksien hallintaa palvelupäähenkilön tunnistetietoihin.
- Käytä OneLake-pikanäppäimiä , kun tarvitset virtualisoitua pääsyä, sen sijaan että kirjoittaisit tietoja fyysisesti toiseen lakehouse-paikkaan.
Liittyvä sisältö
Käytä OneLakea Azure Databricks Pilviobjektitallennuksen asentaminen Azure Databricks