Dela via


Vad är en vy?

En vy är ett skrivskyddat objekt som är resultatet av en fråga över en eller flera tabeller och vyer i ett Unity Catalog-metaarkiv. Du kan skapa en vy från tabeller och från andra vyer i flera scheman och kataloger.

Den här artikeln beskriver de vyer som du kan skapa i Azure Databricks och ger en förklaring av de behörigheter och den beräkning som krävs för att köra frågor mot dem.

Information om hur du skapar vyer finns i:

Vyer i Unity-katalogen

I Unity Catalog befinner sig vyer på den tredje nivån i ett namnrum med tre nivåer (catalog.schema.view):

Objektmodelldiagram för Unity Catalog som fokuserar på att visa

En vy lagrar texten i en fråga vanligtvis mot en eller flera datakällor eller tabeller i metaarkivet. I Azure Databricks motsvarar en vy en Spark DataFrame som sparats som ett objekt i ett schema. Till skillnad från DataFrames kan du fråga vyer var som helst i Azure Databricks, förutsatt att du har behörighet att göra det. När du skapar en vy bearbetas eller skrivs inga data. Endast frågetexten är registrerad i metaarkivet i det associerade schemat.

Kommentar

Vyer kan ha olika implementeringssemantik om de backas upp av andra datakällor än Delta-tabeller. Databricks rekommenderar att du alltid definierar vyer genom att referera till datakällor med hjälp av en tabell eller ett visningsnamn. Att definiera vyer mot datauppsättningar genom att ange en sökväg eller URI kan leda till förvirrande krav för datastyrning.

Materialiserade vyer

Materialiserade vyer beräknar och uppdaterar inkrementellt resultaten som returneras av den definierande frågan. Materialiserade vyer på Azure Databricks är en särskild typ av Delta-tabell. Till skillnad från andra typer av vyer i Azure Databricks som beräknar resultat genom att utvärdera logiken som definierade vyn när den efterfrågas, bearbetar och lagrar materialiserade vyer resultat i en underliggande tabell när uppdateringar bearbetas med antingen ett uppdateringsschema eller genom att köra en pipelineuppdatering.

Du kan registrera materialiserade vyer i Unity Catalog med Hjälp av Databricks SQL eller definiera dem som en del av en DLT-pipeline. Se Använda materialiserade vyer i Databricks SQL och Vad är DLT?.

Temporära vyer

En tillfällig vy har begränsad omfattning och beständighet och är inte registrerad i ett schema eller en katalog. Livslängden för en tillfällig vy skiljer sig beroende på vilken miljö du använder:

  • I notebook-filer och jobb begränsas tillfälliga vyer till notebook- eller skriptnivå. De kan inte refereras till utanför anteckningsboken där de deklareras och upphör att existera när anteckningsboken kopplas bort från klustret.
  • I Databricks SQL begränsas tillfälliga vyer till frågenivån. Flera instruktioner i samma fråga kan använda vyn temp, men det kan inte refereras till i andra frågor, inte ens på samma instrumentpanel.

Dynamiska vyer

Dynamiska vyer kan användas för att tillhandahålla åtkomstkontroll på rad- och kolumnnivå, utöver datamaskering. Se Skapa en dynamisk vy.

Vyer i Hive-metaarkivet (äldre)

Du kan definiera äldre Hive-vyer mot alla datakällor och registrera dem i det äldre Hive-metaarkivet. Databricks rekommenderar att du migrerar alla äldre Hive-vyer till Unity Catalog. Se vyer i Hive-metaarkivet.

Hive global temp view (äldre)

Globala temporära vyer är en äldre Azure Databricks-funktion som gör att du kan registrera en temporär vy som är tillgänglig för alla arbetsbelastningar som körs mot en beräkningsresurs. Globala temporära vyer är en kvarleva från Hive och HDFS. Databricks rekommenderar att du inte använder globala temporära vyer.

Krav för att fråga vyer

Om du vill läsa vyer som är registrerade i Unity Catalog beror de behörigheter som krävs på beräkningstypen, Databricks Runtime-versionen och åtkomstläget.

Anteckning

För alla vyer utförs behörighetskontroller på både själva vyn och de underliggande tabeller och vyer som vyn bygger på. Den användare vars behörigheter kontrolleras för underliggande tabeller och vyer beror på beräkningen. För följande kontrollerar Unity Catalog visningsägarens behörigheter för underliggande data:

  • SQL-datalager.
  • Standardberäkning (tidigare delad beräkning).
  • Dedikerad beräkning (tidigare beräkning av en enskild användare) på Databricks Runtime 15.4 LTS och senare med detaljerad åtkomstkontroll aktiverad.

För dedikerad beräkning på Databricks Runtime 15.3 och nedan kontrollerar Unity Catalog både vyägarens behörigheter och vyanvändarens behörigheter för underliggande data.

Det här beteendet återspeglas i kraven nedan. I båda fallen måste vyägaren behålla behörigheter på den underliggande datan för att vyanvändare ska kunna få åtkomst till vyn.

  • För alla beräkningsresurser måste du ha SELECT i själva vyn, USE CATALOG i den överordnade katalogen och USE SCHEMA på dess överordnade schema. Detta gäller för alla beräkningstyper som stöder Unity Catalog, inklusive SQL-lager, kluster i standardåtkomstläge och kluster i dedikerat åtkomstläge på Databricks Runtime 15.4 och senare.
  • För kluster på Databricks Runtime 15.3 och senare som använder dedikerat åtkomstläge måste du också ha SELECT på alla tabeller och vyer som refereras till av vyn, förutom USE CATALOG på deras överordnade kataloger och USE SCHEMA på deras överordnade scheman.

Kommentar

Om du använder ett dedikerat kluster på Databricks Runtime 15.4 LTS och senare och vill undvika kravet på att ha SELECT på underliggande tabeller och vyer kontrollerar du att din arbetsyta är aktiverad för serverlös beräkning.

Serverlös beräkning hanterar datafiltrering, vilket ger åtkomst till en vy utan att kräva behörighet för dess underliggande tabeller och vyer. Tänk på att du kan debiteras serverlösa beräkningsavgifter när du använder dedikerad beräkning för att köra frågor mot vyer. Mer information finns i Detaljerad åtkomstkontroll för dedikerad beräkning (tidigare beräkning av en enskild användare).