Dela via


Lägga till en Unity Catalog-tabellresurs i en Databricks-app

Lägg till Unity Catalog-tabeller som Databricks Apps-resurser så att din app kan köra frågor mot och ändra data som lagras i Unity Catalog med styrning och åtkomstkontroll. Unity Catalog-tabeller ger strukturerad datalagring med detaljerade behörigheter, så att din app på ett säkert sätt kan läsa och skriva data utan hårdkodning av autentiseringsuppgifter.

Behörighetskrav

För att få åtkomst till en Unity Catalog-tabell måste appens tjänsthuvudnamn ha behörigheten USE CATALOG för den överordnade katalogen, behörigheten USE SCHEMA för det överordnade schemat och SELECT eller MODIFY -behörigheten i tabellen. När du lägger till tabellresursen beviljar Azure Databricks automatiskt dessa privilegier till appens tjänsthuvudnamn.

För att den här automatiska beviljandet ska lyckas måste något av följande gälla för varje behörighet:

  • För USE CATALOG: Antingen har alla kontoanvändare behörigheten USE CATALOG i katalogen eller så har du behörigheten MANAGE för katalogen.
  • För USE SCHEMA: Antingen har USE SCHEMA alla kontoanvändare behörigheten för schemat eller så har du behörigheten MANAGE för schemat.
  • För SELECT eller MODIFY: Antingen har alla kontoanvändare behörigheten SELECT eller MODIFY i tabellen, eller så har du behörigheten MANAGE i tabellen.

Se Behörigheter och skyddsbara objekt i Unity Catalog.

Lägga till en Unity Catalog-tabellresurs

Innan du lägger till en tabell som en resurs granskar du kraven för appresursen.

  1. När du skapar eller redigerar en app går du till steget Konfigurera .
  2. I avsnittet Appresurser klickar du på + Lägg till resurs.
  3. Välj UC-tabell som resurstyp.
  4. Välj en Unity Catalog-tabell från de tillgängliga tabellerna på din arbetsyta. Tabellen måste redan finnas i Unity Catalog.
  5. Välj lämplig behörighetsnivå för din app:
    • Välj: Ger appen behörighet att fråga och läsa data från tabellen. Detta är lämpligt för appar som bara behöver läsa data.
    • Ändra: Ger appen behörighet att infoga, uppdatera och ta bort data i tabellen. Den här behörigheten innehåller implicit SELECT, vilket gör att appen även kan läsa data.
  6. (Valfritt) Ange en anpassad resursnyckel, vilket är hur du refererar till tabellen i appkonfigurationen. Standardnyckeln är table.

Anmärkning

MODIFY är inte tillgängligt för alla tabelltyper. Vyer stöder till exempel inte behörigheten MODIFY . Om tabellen inte stöder MODIFYär endast SELECT tillgänglig.

Miljövariabler

När du distribuerar en app med en Unity Catalog-tabellresurs exponerar Azure Databricks tabellens fullständiga namn på tre nivåer via miljövariabler som du kan referera till med hjälp av fältet valueFrom .

Exempelkonfiguration:

env:
  - name: UC_TABLE_NAME
    valueFrom: table # Use your custom resource key if different

Använda tabellen i ditt program:

import os
from databricks.sdk import WorkspaceClient

# Access the table name
table_name = os.getenv("UC_TABLE_NAME")

# Initialize workspace client
w = WorkspaceClient()

# Query the table using a SQL warehouse resource
result = w.statement_execution.execute_statement(
    warehouse_id=os.getenv("DATABRICKS_WAREHOUSE_ID"),  # Requires a SQL warehouse resource
    statement=f"SELECT * FROM {table_name} LIMIT 10"
)

Mer information finns i Använda miljövariabler för att komma åt resurser.

Ta bort en Unity Catalog-tabellresurs

När du tar bort en Unity Catalog-tabellresurs från en app, förlorar appens tjänstehuvud sina SELECT, MODIFY och ALL PRIVILEGES behörigheter i tabellen. Azure Databricks försöker också återkalla hierarkiska katalog- och schemabehörigheter. Själva tabellen förblir oförändrad och fortsätter att vara tillgänglig för andra användare och program som har rätt behörighet.

Metodtips

Tänk på följande när du arbetar med Unity Catalog-tabellresurser:

  • Bevilja minimala behörigheter. Använd SELECT om inte appen behöver skriva data till tabellen.
  • Kombinera tabellresurser med en SQL-lagerresurs när din app behöver köra SQL-frågor mot tabellen.
  • Använd separata tabellresurser för olika tabeller i stället för att bevilja bred åtkomst på schemanivå, så att du kan tillämpa principen om lägsta behörighet.
  • Överväg att använda Unity Catalog-volymer för ostrukturerade data och Unity Catalog-tabeller för strukturerade data.