Begrepp för Azure Databricks-tabeller

Azure Databricks stöder tre primära tabelltyper (hanterade, externa och externa) och två öppna lagringsformat (Delta Lake och Apache Iceberg). Om du väljer rätt kombination avgör du hur data lagras, styrs och optimeras.

En Azure Databricks-tabell finns i ett schema och innehåller rader med data. Standardtabelltypen som skapas i Azure Databricks är en hanterad tabell i Unity Catalog.

Lagringsformat

Lagringsformat definierar hur data är fysiskt strukturerade och spåras i objektlagring.

Azure Databricks har stöd för två primära lagringsformat för öppen tabell:

  • Delta Lake är standardlagringsformatet för hanterade och externa tabeller i Azure Databricks. Delta stöds också för utländska tabeller.
  • Apache Iceberg stöds för hanterade och externa tabeller i Azure Databricks. Det här formatet är användbart när du integrerar med Iceberg-ekosystemet.

Båda formaten lägger till ett transaktionellt lagringslager som spårar metadata och ger stöd för ACID-egenskaper (atomicitet, konsistens, isolering och varaktighet), time travel och andra funktioner.

Tabelltyper

Tabelltyper i Azure Databricks definierar hur data ägs och används.

Azure Databricks stöder tre primära tabelltyper. Tabelltyper bestäms av vilken katalog som äger och hanterar underliggande datafiler enligt beskrivningen i följande tabell:

Tabelltyp Hantera katalogen Läs-/skrivstöd Prestanda optimering Kostnadsoptimering för lagring
Administrerad Unity-katalog Yes Yes Yes
Temporary Ingen (sessionsbegränsad hanterad tabell) Yes Yes Yes
extern Ingen (endast filer) Yes Endast manuellt Endast manuellt
Främmande Ett externt system eller en katalogtjänst Skrivskyddad Nej Nej

Information om hur du väljer rätt tabelltyp för ditt användningsfall finns i Välj en tabelltyp.

Hanterade tabeller

För hanterade tabeller hanterar Unity Catalog både datafilerna och tabellmetadata. Datafilerna lagras på Unity Catalogs hanterade lagringsplats i molnlagring. Hanterade tabeller i Unity Catalog är standard när du skapar tabeller i Azure Databricks.

Databricks rekommenderar att du använder hanterade tabeller när du skapar en ny tabell. Hanterade tabeller implementerar automatiskt prestandaförbättringar, minskar lagrings- och beräkningskostnaderna och aktiverar åtkomst för externa system, till exempel Trino. Se Hanterade tabeller.

I följande exempel visas en hanterad tabell med namnet prod.people_ops_employees som innehåller data om fem anställda:

Exempeltabell som innehåller anställdas data

Externa tabeller

Externa tabeller, som ibland kallas ohanterade tabeller, refererar till data som lagras i ett externt lagringssystem, till exempel lagring av molnobjekt. Azure Databricks registrerar tabellmetadata men hanterar inte de underliggande datafilerna. Unity Catalog stöder externa tabeller i flera format, inklusive Delta Lake, som gör att du kan läsa dem med externa system. Se Externa tabeller.

Externa tabeller

Utländska tabeller representerar data som lagras i externa system som är anslutna till Azure Databricks via Lakehouse Federation. Externa tabeller är skrivskyddade i Azure Databricks. Se främmande tabeller.

Temporära tabeller

Temporära tabeller är sessionsomfattande tabeller som lagrar data under en Azure Databricks-session. De är användbara för att materialisera mellanliggande resultat utan att skapa permanenta tabeller i katalogen. Azure Databricks släpper automatiskt tillfälliga tabeller när sessionen avslutas och du behöver inte katalog- eller schemabehörigheter för att skapa dem. Se Tillfälliga tabeller i Databricks SQL och Databricks Runtime.

Välj en tabelltyp

Använd hanterade tabeller för de flesta nya tabeller. Azure Databricks automatiserar optimering, livscykelhantering för lagring och extern åtkomst.

Använd externa tabeller när:

  • Du måste registrera befintliga data i molnlagringen utan att flytta dem.
  • Du behöver direkt sökvägsbaserad åtkomst från icke-Azure Databricks klienter.
  • Du arbetar med filformat som inte stöds av hanterade tabeller, till exempel CSV eller JSON.
  • Att ta bort tabellen bör inte ta bort de underliggande datafilerna.

Använd sekundärtabeller när du behöver skrivskyddad åtkomst till data i ett externt system som är anslutet via Lakehouse Federation, till exempel ett Hive-metaarkiv eller en AWS Glue-katalog.

För lagringsformat är Delta Lake standard och rekommenderas för de flesta arbetsbelastningar. Använd Apache Iceberg när du integrerar med externa system som kräver Iceberg-formatet.

Tabeller i Unity-katalogen

I Unity Catalog finns tabeller på den tredje nivån i namnområdet på tre nivåer (catalog.schema.table), enligt följande diagram:

Objektmodelldiagram för Unity Catalog, fokuserat på tabell

Grundläggande tabellbehörigheter

De flesta tabellåtgärder kräver USE CATALOG och USE SCHEMA behörigheter för katalogen och schemat som innehåller en tabell.

I följande tabell sammanfattas de ytterligare behörigheter som krävs för vanliga tabellåtgärder i Unity Catalog:

Verksamhet Permissions
Skapa en tabell CREATE TABLE på det innehållande schemat
Fråga en tabell SELECT på bordet
Uppdatera, ta bort, sammanfoga eller infoga data i en tabell SELECT och MODIFY på tabellen. Alternativt kan man ge mer detaljerad skrivåtkomst med behörigheterna INSERT, UPDATE och DELETE (Beta). Se Detaljerade DML-privilegier.
Ta bort en tabell MANAGE på bordet
Ersätt en tabell MANAGE i tabellen, CREATE TABLE i det innehållande schemat

Sql-syntaxreferens för dessa åtgärder finns i:

Mer information om behörigheter för Unity-katalogen finns i Hantera privilegier i Unity Catalog.