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.

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

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 utanför anteckningsboken där de deklareras och finns inte längre när notebook-filen kopplas 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. Äldre 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.

Kommentar

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.
  • Delad beräkning.
  • Enskild användarberäkning på Databricks Runtime 15.4 LTS och senare med detaljerad åtkomstkontroll aktiverad.

För beräkning av en användare 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 läget för delad åtkomst och kluster i enkel användaråtkomstläge på Databricks Runtime 15.4 och senare.
  • För kluster på Databricks Runtime 15.3 och senare som använder åtkomstläge för en användare måste du också ha SELECT på alla tabeller och vyer som refereras av vyn, förutom USE CATALOG på deras överordnade kataloger och USE SCHEMA på deras överordnade scheman.

Kommentar

Om du använder ett kluster med en användare 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 drabbas av kostnader för serverlös beräkning när du använder beräkning för en enda användare för att köra frågor mot vyer. För mer information, se Finkornig åtkomstkontroll på enskild användardator.