Concepten van Azure Databricks-tabellen

Azure Databricks ondersteunt drie primaire tabeltypen (beheerd, extern en extern) en twee open opslagindelingen (Delta Lake en Apache Iceberg). Door de juiste combinatie te kiezen, wordt bepaald hoe gegevens worden opgeslagen, beheerd en geoptimaliseerd.

Een Azure Databricks-tabel bevindt zich in een schema en bevat rijen met gegevens. Het standaardtabeltype dat is gemaakt in Azure Databricks, is een beheerde tabel in Unity Catalog.

Opslagindelingen

Opslagindelingen definiëren hoe gegevens fysiek zijn gestructureerd en bijgehouden in objectopslag.

Azure Databricks ondersteunt twee primaire open-tabelopslagindelingen:

  • Delta Lake is de standaardopslagindeling voor beheerde en externe tabellen in Azure Databricks. Delta wordt ook ondersteund voor externe tabellen.
  • Apache Iceberg wordt ondersteund voor beheerde en externe tabellen in Azure Databricks. Deze indeling is handig wanneer u integreert met het Iceberg-ecosysteem.

Beide indelingen voegen een transactionele opslaglaag toe die metagegevens bijhoudt en ondersteuning biedt voor de naleving van Atomiciteit, Consistentie, Isolatie en Duurzaamheid (ACID), tijdreizen en andere functies.

Tabeltypen

Tabeltypen in Azure Databricks bepalen hoe gegevens eigendom zijn van en worden geopend.

Azure Databricks ondersteunt drie primaire tabeltypen. Tabeltypen worden bepaald door welke catalogus eigenaar is van en beheert de onderliggende gegevensbestanden, zoals beschreven in de volgende tabel:

Tabeltype Catalogus beheren Ondersteuning voor lezen/schrijven Optimalisatie van prestaties Optimalisatie van opslagkosten
Beheerd Unity Catalogus Yes Yes Yes
Temporary Geen (beheerde tabel met sessiebereik) Yes Yes Yes
Externe Geen (uitsluitend bestanden) Yes Alleen handmatig Alleen handmatig
Buitenlands Een extern systeem of catalogusservice Alleen lezen Nee. Nee.

Zie Een tabeltype selecteren voor informatie over het selecteren van het juiste tabeltype voor uw use-case.

Beheerde tabellen

Voor beheerde tabellen beheert Unity Catalog zowel de gegevensbestanden als de metagegevens van de tabel. De gegevensbestanden worden opgeslagen in de beheerde opslaglocatie van Unity Catalog in cloudopslag. Beheerde tabellen in Unity Catalog zijn de standaardtabellen wanneer u tabellen maakt in Azure Databricks.

Databricks raadt u aan beheerde tabellen te gebruiken wanneer u een nieuwe tabel maakt. Beheerde tabellen implementeren automatisch prestatieverbeteringen, verlagen de opslag- en rekenkosten en maken toegang mogelijk voor externe systemen, zoals Trino. Zie Beheerde tabellen.

In het volgende voorbeeld ziet u een beheerde tabel met de naam prod.people_ops_employees gegevens over vijf werknemers:

Voorbeeldtabel met werknemersgegevens

Externe tabellen

Externe tabellen, ook wel niet-beheerde tabellen genoemd, verwijzen naar gegevens die zijn opgeslagen in een extern opslagsysteem, zoals opslag van cloudobjecten. Azure Databricks registreert de metagegevens van de tabel, maar beheert de onderliggende gegevensbestanden niet. Unity Catalog ondersteunt externe tabellen in verschillende indelingen, waaronder Delta Lake, waarmee u ze kunt lezen met externe systemen. Zie Externe tabellen.

Externe tabellen

Externe tabellen bevatten gegevens die zijn opgeslagen in externe systemen die via Lakehouse Federation zijn verbonden met Azure Databricks. Externe tabellen zijn alleen-leesbaar in Azure Databricks. Zie foreign tables.

Tijdelijke tabellen

Tijdelijke tabellen zijn tabellen met sessiebereik die gegevens opslaan voor de duur van een Azure Databricks-sessie. Ze zijn handig voor het materialiseren van tussenliggende resultaten zonder permanente tabellen in uw catalogus te maken. Azure Databricks verwijdert automatisch tijdelijke tabellen wanneer de sessie wordt beëindigd en u hebt geen catalogus- of schemabevoegdheden nodig om ze te maken. Zie tijdelijke tabellen in Databricks SQL en Databricks Runtime.

Een tabeltype selecteren

Beheerde tabellen gebruiken voor de meeste nieuwe tabellen. Azure Databricks automatiseert optimalisatie, levenscyclusbeheer voor opslag en externe toegang.

Gebruik externe tabellen wanneer:

  • U moet bestaande gegevens registreren in cloudopslag zonder deze te verplaatsen.
  • U hebt rechtstreekse toegang via paden vanaf niet-Azure Databricks-clients nodig.
  • U werkt met bestandsindelingen die niet worden ondersteund door beheerde tabellen, zoals CSV of JSON.
  • Als u de tabel verwijdert, moeten de onderliggende gegevensbestanden niet worden verwijderd.

Gebruik refererende tabellen wanneer u alleen-lezentoegang nodig hebt tot gegevens in een extern systeem dat is verbonden via Lakehouse Federation, zoals een Hive-metastore of AWS Glue-catalogus.

Voor opslagindeling is Delta Lake de standaardinstelling en wordt aanbevolen voor de meeste workloads. Gebruik Apache Iceberg bij het integreren met externe systemen waarvoor de Iceberg-indeling is vereist.

Tabellen in Unity Catalog

In Unity Catalog bevinden tabellen zich op het derde niveau van de naamruimte met drie niveaus (catalog.schema.table), zoals wordt weergegeven in het volgende diagram:

Objectmodeldiagram van Unity Catalog, gericht op tabel

Basismachtigingen voor tabellen

De meeste tabelbewerkingen vereisen USE CATALOG en USE SCHEMA machtigingen voor de catalogus en het schema met een tabel.

De volgende tabel bevat een overzicht van de aanvullende machtigingen die nodig zijn voor algemene tabelbewerkingen in Unity Catalog:

Operation Permissions
Een tabel maken CREATE TABLE in het bevattende schema
Een query uitvoeren op een tabel SELECT op de tafel
Gegevens bijwerken, verwijderen, samenvoegen of invoegen in een tabel SELECT en MODIFY op de tafel
Een tabel verwijderen MANAGE op de tafel
Een tabel vervangen MANAGE in de tabel, CREATE TABLE in het schema met de inhoud

Zie voor naslaginformatie over SQL-syntaxis voor deze bewerkingen:

Zie Bevoegdheden beheren in Unity Catalog voor meer informatie over unity-catalogusmachtigingen.