Skapa och hantera andelar för Delta Sharing
Den här artikeln beskriver hur du skapar och hanterar andelar för deltadelning.
En resurs är ett skyddsbart objekt i Unity Catalog som du kan använda för att dela följande datatillgångar med en eller flera mottagare:
- Tabeller och tabellpartitioner
- Vyer, inklusive dynamiska vyer som begränsar åtkomsten på rad- och kolumnnivå
- Volymer
- Anteckningsböcker
- AI-modeller
Om du delar ett helt schema (databas) kan mottagaren komma åt alla tabeller, vyer, modeller och volymer i schemat när du delar det, tillsammans med alla data och AI-tillgångar som läggs till i schemat i framtiden.
En resurs kan innehålla data och AI-tillgångar från endast ett Unity Catalog-metaarkiv. Du kan lägga till eller ta bort data och AI-tillgångar från en resurs när som helst.
Mer information finns i Resurser, leverantörer och mottagare.
Krav
För att skapa en delning måste du:
- Vara administratör för metaarkivet eller ha
CREATE SHARE
behörighet för Unity Catalog-metaarkivet där de data som du vill dela är registrerade. - Skapa delningen med hjälp av en Azure Databricks-arbetsyta där Unity Catalog-metaarkivet har kopplats.
För att lägga till tabeller eller vyer i en delning måste du:
- Var andelsägare.
- Ha behörigheten
USE CATALOG
ochUSE SCHEMA
för katalogen och schemat som innehåller tabellen eller vyn, eller ägarskapet för katalogen eller schemat. - Ha
SELECT
behörighet för tabellen eller vyn. Du måste behålla den behörigheten för att tabellen eller vyn ska fortsätta att delas. Om du förlorar den kan mottagaren inte komma åt tabellen eller visa den genom delningen. Databricks rekommenderar därför att du använder en grupp som resursägare.
Om du vill lägga till volymer i en delning måste du:
- Var aktieägare.
- Ha behörigheten
USE CATALOG
ochUSE SCHEMA
för katalogen och schemat som innehåller volymen eller ägarskapet för katalogen eller schemat. - Ha behörighet på
READ VOLUME
volymen. Du måste behålla den behörigheten för att volymen ska fortsätta att delas. Om du förlorar den kan mottagaren inte komma åt volymen via delningen. Databricks rekommenderar därför att du använder en grupp som delningsägare.
Om du vill lägga till modeller i en delning måste du:
- Var aktieägare.
- Ha behörigheten
USE CATALOG
ochUSE SCHEMA
för katalogen och schemat som innehåller modellen eller ägarskapet för katalogen eller schemat. - Ha
EXECUTE
-privilegiet på modellen. Du måste behålla den behörigheten för att modellen ska fortsätta att delas. Om du förlorar den kan mottagaren inte komma åt modellen via delningen. Databricks rekommenderar därför att du använder en grupp som delägaransvarig.
Om du vill dela ett helt schema måste du:
- Vara andelsägare och schemaägare, eller ha
USE SCHEMA.
- Ha
SELECT
på schemat för att dela tabeller. - Ha
READ VOLUME
på schemat för att dela volymer.
Om du vill lägga till notebook-filer i en delad resurs måste du vara:
- Ägaren av andelen har behörigheten KAN LÄSA i den anteckningsboken.
Om du vill ge mottagaren åtkomst till en resurs måste du vara något av följande:
- Metaarkivadministratör.
- Användare med delegerade behörigheter eller ägarskap för både resursen och mottagarobjekten ((
USE SHARE
+SET SHARE PERMISSION
) eller resursägaren) OCH (USE RECIPIENT
eller mottagarens ägare).
För att visa delningar måste du vara en av följande:
- En metaarkivadministratör (kan visa alla)
- En användare med behörigheten
USE SHARE
(kan visa alla) - Ägaren till delningsobjektet
Beräkningskrav:
- Om du använder en Databricks notebook för att skapa delningen måste din beräkningsresurs använda Databricks Runtime 11.3 LTS eller senare och ha ett standard- eller dedikerat åtkomstläge (tidigare delat och engångsanvändarläge).
- Om du använder SQL-instruktioner för att lägga till ett schema i en resurs (eller uppdatera eller ta bort ett schema) måste du använda ett SQL-lager eller beräkning som kör Databricks Runtime 13.3 LTS eller senare. Att göra samma sak med Catalog Explorer har inga beräkningskrav.
Skapa ett delningsobjekt
Om du vill skapa en delning kan du använda Catalog Explorer, Databricks Unity Catalog CLI eller CREATE SHARE
SQL-kommandot i en Azure Databricks-anteckningsbok eller Databricks SQL-frågeredigeraren.
Behörigheter som krävs: Metaarkivadministratör eller användare med CREATE SHARE
behörighet för metaarkivet.
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i fönstret Katalog klickar du på kugghjulsikonen och väljer Deltadelning.
Alternativt, från sidan Snabbåtkomst, klicka på knappen Delta Sharing >.
På fliken Delat av mig klickar du på knappen Dela data .
På sidan Skapa resurs anger du resursnamnet och en valfri kommentar.
Klicka på Spara och fortsätt.
Du kan fortsätta att lägga till datatillgångar, eller så kan du stoppa och komma tillbaka senare.
På fliken Lägg till datatillgångar väljer du de tabeller, volymer, vyer och modeller som du vill dela.
Detaljerade instruktioner finns i:
Klicka på Spara och fortsätt.
På fliken Lägg till anteckningsböcker väljer du de anteckningsböcker som du vill dela.
Detaljerade anvisningar finns i Lägga till notebook-filer i en delning.
Klicka på Spara och fortsätt.
På fliken Lägg till mottagare väljer du de mottagare som du vill dela med.
Detaljerade anvisningar finns i Hantera åtkomst till deltadelningsdataresurser (för leverantörer).
Klicka på Dela data för att dela data med mottagarna.
SQL
Kör följande kommando i en notebook-fil eller Databricks SQL-frågeredigeraren:
CREATE SHARE [IF NOT EXISTS] <share-name>
[COMMENT "<comment>"];
Nu kan du lägga till tabeller, volymer, vyer och modeller i resursen.
Detaljerade instruktioner finns i:
- Lägga till tabeller i en resurs
- Lägga till volymer i en resurs
- Lägg till vyer i en delning
- Lägg till modeller i en delning
CLI
Kör följande kommando med hjälp av Databricks CLI.
databricks shares create <share-name>
Du kan använda --comment
för att lägga till en kommentar eller --json
för att lägga till tillgångar i resursen. Mer information finns i avsnitten som följer.
Nu kan du lägga till tabeller, volymer, vyer och modeller i resursen.
Detaljerade instruktioner finns i:
- Lägga till tabeller i en delning
- Lägg till volymer i en delning
- Lägga till vyer i en delning
- Lägg till modeller i en delning
Lägga till tabeller i en delning
Om du vill lägga till tabeller i en resurs kan du använda Catalog Explorer, Databricks Unity Catalog CLI eller SQL-kommandon i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren.
Kommentar
Tabellkommentarer, kolumnkommentarer och primärnyckelbegränsningar ingår i resurser som delas med en mottagare med Databricks-till-Databricks-delning den 25 juli 2024 eller senare. Om du vill börja dela kommentarer och begränsningar via en resurs som delades med en mottagare före utgivningsdatumet måste du återkalla och återbevilja mottagaråtkomst för att utlösa kommentars- och begränsningsdelning.
Behörigheter som krävs: Ägare av resursobjektet och USE CATALOG
USE SCHEMA
i katalogen och schemat som innehåller tabellen och behörigheten SELECT
i tabellen. Du måste behålla behörigheten SELECT
så länge du vill dela tabellen. Mer information finns i Krav.
Kommentar
Om du är administratör för arbetsytan och har ärvt USE SCHEMA
och USE CATALOG
behörighet för schemat och katalogen som innehåller tabellen från arbetsytans administratörsgrupp kan du inte lägga till tabellen i en delning. Du måste först ge dig själv behörigheterna USE SCHEMA
och USE CATALOG
för schemat och katalogen.
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i fönstret Katalog klickar du på kugghjulsikonen och väljer Deltadelning.
Alternativt kan du på sidan Snabbåtkomst klicka på knappen Delta Sharing >.
På fliken Delat av mig letar du reda på den resurs som du vill lägga till en tabell i och klickar på dess namn.
Klicka på Hantera tillgångar > Lägg till datatillgångar.
På sidan Lägg till tabeller väljer du antingen ett helt schema (databas) eller enskilda tabeller och vyer.
Om du vill välja en tabell eller vy väljer du först katalogen, sedan schemat som innehåller tabellen eller vyn och sedan själva tabellen eller vyn.
Du kan söka efter tabeller efter namn, kolumnnamn eller kommentar med hjälp av arbetsytesökning. Se Sök efter arbetsyteobjekt.
Välj ett schema genom att först välja katalogen och sedan schemat.
Detaljerad information om delningsscheman finns i Lägga till scheman i en resurs.
History: Dela tabellhistoriken så att mottagarna kan köra tidsresefrågor eller läsa tabellen med Spark Structured Streaming. För Databricks-till-Databricks-delningar delas tabellens Delta-logg för att förbättra prestandan. Se Förbättra tabellläsningsprestanda med historikdelning. Historikdelning kräver Databricks Runtime 12.2 LTS eller senare.
Kommentar
Om du, förutom att köra frågor om tidsresor och direktuppspelningsläsningar, vill att dina kunder ska kunna köra frågor mot en tabells ändringsdataflöde (CDF) med hjälp av table_changes() funktionen, måste du aktivera CDF på tabellen innan du delar den
WITH HISTORY
.(Valfritt) Klicka på Avancerade tabellalternativ för att ange följande alternativ. Alias och partitioner är inte tillgängliga om du väljer ett helt schema. Tabellhistorik ingår som standard om du väljer ett helt schema.
- Alias: Ett alternativt tabellnamn för att göra tabellnamnet mer läsbart. Aliaset är det tabellnamn som mottagaren ser och måste använda i frågor. Mottagarna kan inte använda det faktiska tabellnamnet om ett alias har angetts.
-
Partition: Dela endast en del av tabellen. Exempel:
(column = 'value')
Se Ange tabellpartitioner för att dela och Använd mottagaregenskaper för att utföra partitionsfiltrering.
Klicka på Spara.
SQL
Kör följande kommando i en notebook-fil eller Databricks SQL-frågeredigeraren för att lägga till en tabell:
ALTER SHARE <share-name> ADD TABLE <catalog-name>.<schema-name>.<table-name> [COMMENT "<comment>"]
[PARTITION(<clause>)] [AS <alias>]
[WITH HISTORY | WITHOUT HISTORY];
Kör följande för att lägga till ett helt schema. Kommandot ADD SCHEMA
kräver ett SQL-lager eller en beräkning som kör Databricks Runtime 13.3 LTS eller senare. Detaljerad information om delningsscheman finns i Lägga till scheman i en resurs.
ALTER SHARE <share-name> ADD SCHEMA <catalog-name>.<schema-name>
[COMMENT "<comment>"];
Alternativen omfattar följande.
PARTITION
och AS <alias>
är inte tillgängliga om du väljer ett helt schema.
PARTITION(<clause>)
: Om du bara vill dela en del av tabellen kan du ange en partition. Du kan till exempel(column = 'value')
läsa Ange tabellpartitioner att dela och Använda mottagaregenskaper för att utföra partitionsfiltrering.AS <alias>
: Ett alternativt tabellnamn eller alias för att göra tabellnamnet mer läsbart. Aliaset är det tabellnamn som mottagaren ser och måste använda i frågor. Mottagarna kan inte använda det faktiska tabellnamnet om ett alias har angetts. Använd formatet<schema-name>.<table-name>
.WITH HISTORY
ellerWITHOUT HISTORY
: NärWITH HISTORY
anges delar du tabellen med fullständig historik så att mottagarna kan köra frågor om tidsresor och direktuppspelningsläsningar. För Databricks-till-Databricks-resurser delar historikdelning också tabellens Delta-logg för att förbättra prestandan. Standardbeteendet för tabelldelning ärWITH HISTORY
om din beräkning kör Databricks Runtime 16.2 eller senare ochWITHOUT HISTORY
för tidigare Databricks Runtime-versioner. För schemadelning är standardvärdetWITH HISTORY
oavsett Databricks Runtime-version.WITH HISTORY
ochWITHOUT HISTORY
kräver Databricks Runtime 12.2 LTS eller senare. Se även Förbättra tabellläsningsprestanda med historikdelning.Kommentar
Om du, förutom att göra tidsresefrågor och läsa direktuppspelningar, vill att dina kunder ska kunna köra frågor mot en tabells ändringsdataflöde (CDF) med hjälp av table_changes()-funktionen, måste du aktivera CDF på tabellen innan du delar den
WITH HISTORY
.
Mer information om ALTER SHARE
-alternativen finns i ALTER SHARE.
CLI
Om du vill lägga till en tabell kör du följande kommando med hjälp av Databricks CLI.
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<table-full-name>",
"data_object_type": "TABLE",
"shared_as": "<table-alias>"
}
}
]
}'
Om du vill lägga till ett schema kör du följande Databricks CLI-kommando:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<schema-full-name>",
"data_object_type": "SCHEMA"
}
}
]
}'
Kommentar
För tabeller och endast tabeller kan du utelämna "data_object_type"
.
Om du vill veta mer om alternativen i det här exemplet kan du läsa anvisningarna på fliken SQL.
För att lära sig mer om ytterligare parametrar, kör databricks shares update --help
eller se PATCH /api/2.1/unity-catalog/shares/ i REST API-referensen.
Information om hur du tar bort tabeller från en resurs finns i Uppdatera resurser.
Ange tabellpartitioner som ska delas
Om du bara vill dela en del av en tabell när du lägger till tabellen i en resurs kan du ange en partitionsspecifikation. Du kan ange partitioner när du lägger till en tabell i en resurs eller uppdaterar en resurs med hjälp av Catalog Explorer, Databricks Unity Catalog CLI eller SQL-kommandon i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren. Se Lägga till tabeller i en resurs och Uppdatera resurser.
Grundläggande exempel
Följande SQL-exempel delar en del av data i inventory
tabellen, partitionerade efter kolumnerna year
, month
och date
:
- Data för år 2021.
- Data för december 2020.
- Data för 25 december 2019.
ALTER SHARE share_name
ADD TABLE inventory
PARTITION (year = "2021"),
(year = "2020", month = "Dec"),
(year = "2019", month = "Dec", date = "2019-12-25");
Använda mottagaregenskaper för att utföra partitionsfiltrering
Du kan dela en tabellpartition som matchar egenskaper för datamottagare, även kallat parametriserad partitionsdelning.
Standardegenskaper är:
-
databricks.accountId
: Azure Databricks-kontot som en datamottagare tillhör (endast Databricks-till-Databricks-delning). -
databricks.metastoreId
: Unity Catalog-metakatalogen som en datamottagare tillhör (endast Databricks-till-Databricks-delning). -
databricks.name
: Namnet på datamottagaren.
Du kan skapa valfri anpassad egenskap som du vill när du skapar eller uppdaterar en mottagare.
Genom att filtrera efter mottagares egenskaper kan du dela samma tabeller med samma delning över flera Databricks-konton, arbetsytor och användare, samtidigt som du upprätthåller datagränserna mellan dem.
Om dina tabeller till exempel innehåller en azure Databricks-konto-ID-kolumn kan du skapa en enskild resurs med tabellpartitioner som definierats av Azure Databricks-konto-ID. När du delar dynamiskt levererar Delta Sharing endast de data som är associerade med varje mottagares Azure Databricks-konto.
Utan möjligheten att dynamiskt dela upp efter egenskaper måste du skapa en separat delning för varje mottagare.
Om du vill ange en partition som filtrerar efter mottagaregenskaper när du skapar eller uppdaterar en resurs kan du använda Catalog Explorer eller CURRENT_RECIPIENT
SQL-funktionen i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren:
Kommentar
Mottagaregenskaper är tillgängliga på Databricks Runtime 12.2 och senare.
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i Katalogfönstret klickar du på kugghjulsikonen och väljer Deltadelning.
Alternativt, från Snabbåtkomstsidan, klicka på knappen Delta Sharing >.
På fliken Delat av mig letar du reda på den resurs som du vill uppdatera och klickar på dess namn.
Klicka på Hantera tillgångar > Lägg till datatillgångar.
På sidan Lägg till tabeller väljer du den katalog och databas som innehåller tabellen och väljer sedan tabellen.
Om du inte är säker på vilken katalog och databas som innehåller tabellen kan du söka efter den efter namn, kolumnnamn eller kommentar med hjälp av arbetsytesökning. Se Sök efter arbetsyteobjekt.
(Valfritt) Klicka på Avancerade tabellalternativ för att lägga till partitionsspecifikationer .
I dialogrutan Lägg till partition i en tabell lägger du till den egenskapsbaserade partitionsspecifikationen med hjälp av följande syntax:
(<column-name> = CURRENT_RECIPIENT().<property-key>)
Ett exempel:
(country = CURRENT_RECIPIENT().'country')
Klicka på Spara.
SQL
Kör följande kommando i en notebook-fil eller Databricks SQL-frågeredigeraren:
ALTER SHARE <share-name> ADD TABLE <catalog-name>.<schema-name>.<table-name>
PARTITION (<column-name> = CURRENT_RECIPIENT().<property-key>);
Ett exempel:
ALTER SHARE acme ADD TABLE acme.default.some_table
PARTITION (country = CURRENT_RECIPIENT().'country');
Lägga till tabeller med borttagningsvektorer eller kolumnmappning till en delning
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Borttagningsvektorer är en funktion för lagringsoptimering som du kan aktivera i Delta-tabeller. Se Vad är borttagningsvektorer?.
Azure Databricks stöder även kolumnmappning för Delta-tabeller. Se Byt namn på och ta bort kolumner med Delta Lake-kolumnmappning.
Om du vill dela en tabell med borttagningsvektorer eller kolumnmappning måste du dela den med historiken. Se Lägg till tabeller i en delning.
När du delar en tabell med borttagningsvektorer eller kolumnmappning kan mottagarna köra frågor mot tabellen med hjälp av ett SQL-lager, en beräkning som kör Databricks Runtime 14.1 eller senare eller beräkning som kör öppen källkod delta-sharing-spark
3.1 eller senare. Se Läs tabeller med borttagningsvektorer eller kolumnmappning aktiverat och Läs tabeller med borttagningsvektorer eller kolumnmappning aktiverat.
Lägga till vyer i en delning
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Vyer är skrivskyddade objekt som skapats från en eller flera olika tabeller eller andra vyer. En vy kan skapas från tabeller och andra vyer som finns i flera scheman och kataloger i ett Unity Catalog-metaarkiv. Se Skapa och hantera vyer.
Det här avsnittet beskriver hur du lägger till vyer till en resurs med hjälp av Catalog Explorer-, Databricks CLI- eller SQL-kommandon i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren. Om du föredrar att använda REST-API:et för Unity Catalog läser du PATCH /api/2.1/unity-catalog/shares/ i REST API-referensen.
Behörigheter som krävs: Ägare av delningsobjektet, USE CATALOG
och USE SCHEMA
på katalogen och schemat som innehåller vyn och SELECT
på vyn. Du måste upprätthålla behörigheten SELECT
så länge du vill dela vyn. Mer information finns i Krav.
Ytterligare krav:
- Du måste aktivera Serverlös beräkning för arbetsflöden, notebook-filer och DLT- i kontot där visningsdelning har konfigurerats. Se Aktivera serverlös beräkning.
- Delningsbara visningar måste definieras i Delta-tabeller eller andra delade visningar.
- Du kan inte dela vyer som refererar till delade tabeller eller delade vyer.
- Du måste använda ett SQL-lager eller en datorresurs på Databricks Runtime version 13.3 LTS eller senare när du lägger till en vy i en delning.
- Krav och begränsningar för mottagarens användning av vyer finns i Läsa delade vyer.
Lägg till vyer i en delning:
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i fönstret Katalog klickar du på
och väljer Deltadelning.
Alternativt kan du på sidan Snabbåtkomst klicka på knappen Delta Sharing>.
På fliken Delat av mig letar du reda på den resurs som du vill lägga till en vy i och klickar på dess namn.
Klicka på Hantera tillgångar > Lägg till datatillgångar.
På sidan Lägg till tabeller söker eller bläddrar du efter den vy som du vill dela och väljer den.
(Valfritt) Klicka på Avancerade tabellalternativ för att ange ett alias eller ett alternativt vynamn för att göra visningsnamnet mer läsbart. Aliaset är det namn som mottagaren ser och måste använda i frågor. Mottagarna kan inte använda det faktiska visningsnamnet om ett alias har angetts.
Klicka på Spara.
SQL
Kör följande kommando i en notebook-fil eller Databricks SQL-frågeredigeraren:
ALTER SHARE <share-name> ADD VIEW <catalog-name>.<schema-name>.<view-name>
[COMMENT "<comment>"]
[AS <alias>];
Alternativen inkluderar:
-
AS <alias>
: Ett alternativt vynamn eller alias för att göra visningsnamnet mer läsbart. Aliaset är det vynamn som mottagaren ser och måste använda i frågor. Mottagarna kan inte använda det faktiska visningsnamnet om ett alias har angetts. Använd formatet<schema-name>.<view-name>
. -
COMMENT "<comment>"
: Kommentarer visas i katalogutforskarens användargränssnitt och när du listar och visar visningsinformation med hjälp av SQL-instruktioner.
Mer information om ALTER SHARE
-alternativen finns i ALTER SHARE.
Kommandoradsgränssnitt (CLI)
Kör följande Databricks CLI-kommando:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<view-full-name>",
"data_object_type": "VIEW",
"shared_as": "<view-alias>"
}
}
]
}'
"shared_as": "<view-alias>"
är valfritt och tillhandahåller ett alternativt vynamn eller alias för att göra visningsnamnet mer läsbart. Aliaset är det vynamn som mottagaren ser och måste använda i frågor. Mottagarna kan inte använda det faktiska visningsnamnet om ett alias har angetts. Använd formatet <schema-name>.<view-name>
.
För att lära dig om ytterligare parametrar, kör databricks shares update --help
eller se PATCH /api/2.1/unity-catalog/shares/ i REST API-referensen.
Information om hur du tar bort vyer från en resurs finns i Uppdatera resurser.
Lägger till dynamiska vyer i en delning för att filtrera rader och kolumner
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Du kan använda dynamiska vyer för att konfigurera detaljerad åtkomstkontroll för tabelldata, inklusive:
- Säkerhet på kolumn- eller radnivå.
- Datamaskering.
När du skapar en dynamisk vy som använder funktionen CURRENT_RECIPIENT() kan du begränsa mottagaråtkomsten enligt egenskaper som du anger i mottagardefinitionen.
Det här avsnittet innehåller exempel på hur du begränsar mottagarens åtkomst till tabelldata på både rad- och kolumnnivå med hjälp av en dynamisk vy.
Krav
-
Databricks Runtime-version: Funktionen
CURRENT_RECIPIENT
stöds i Databricks Runtime 14.2 och senare. -
Behörigheter:
- Om du vill skapa en vy måste du vara ägare till resursobjektet, ha
USE CATALOG
ochUSE SCHEMA
i katalogen och schemat som innehåller vyn, tillsammans medSELECT
i vyn. Du måste bibehålla behörighetenSELECT
så länge du vill dela visningen. - Om du vill ange egenskaper för en mottagare måste du vara ägare till mottagarobjektet.
- Om du vill skapa en vy måste du vara ägare till resursobjektet, ha
-
Begränsningar: Alla begränsningar för visningsdelning, inklusive begränsning av Databricks-till-Databricks-delning, plus följande:
- När en provider delar en vy som använder
CURRENT_RECIPIENT
funktionen kan providern inte fråga vyn direkt på grund av delningskontexten. För att testa en sådan dynamisk vy måste leverantören dela vyn med sig själv och köra en fråga mot vyn som mottagare. - Leverantörer kan inte skapa en vy som refererar till en dynamisk vy.
- När en provider delar en vy som använder
Ange en mottagaregenskap
I de här exemplen har tabellen som ska delas en kolumn med namnet country
, och endast mottagare med en matchande country
egenskap kan visa vissa rader eller kolumner.
Du kan ange mottagaregenskaper med hjälp av Catalog Explorer- eller SQL-kommandon i en Azure Databricks-notebook-fil eller SQL-frågeredigeraren.
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i fönsterrutan för Katalog klickar du på kugghjulsikonen och väljer Delta Sharing.
Alternativt, från sidan Snabbåtkomst, klicka på knappen Delta Sharing >.
På fliken Mottagare letar du reda på den mottagare som du vill lägga till egenskaperna i och klickar på dess namn.
Klicka på Redigera egenskaper.
I dialogrutan Redigera mottagaregenskaper anger du kolumnnamnet som en nyckel (i det här fallet
country
) och det värde som du vill filtrera efter som värde (till exempelCA
).Klicka på Spara.
SQL
Om du vill ange egenskapen på mottagaren använder du ALTER RECIPIENT
. I det här exemplet är egenskapen inställd på country
CA
.
ALTER RECIPIENT recipient1 SET PROPERTIES ('country' = 'CA');
Skapa en dynamisk vy med behörighet på radnivå för mottagare
I det här exemplet kan endast mottagare med en matchande country
egenskap visa vissa rader.
CREATE VIEW my_catalog.default.view1 AS
SELECT * FROM my_catalog.default.my_table
WHERE country = CURRENT_RECIPIENT('country');
Ett annat alternativ är att dataprovidern underhåller en separat mappningstabell som mappar faktatabellfält till mottagaregenskaper, vilket gör att mottagaregenskaper och faktatabellfält kan frikopplas för större flexibilitet.
Skapa en dynamisk vy med behörighet på kolumnnivå för mottagare
I det här exemplet kan endast mottagare som matchar country
egenskapen visa vissa kolumner. Andra ser de data som returneras som REDACTED
:
CREATE VIEW my_catalog.default.view2 AS
SELECT
CASE
WHEN CURRENT_RECIPIENT('country') = 'US' THEN pii
ELSE 'REDACTED'
END AS pii
FROM my_catalog.default.my_table;
Dela den dynamiska vyn med en mottagare
Om du vill dela den dynamiska vyn med en mottagare använder du samma SQL-kommandon eller UI-procedur som för en standardvy. Se Lägga till vyer i en delning.
Lägg till volymer i en delning
Volymer är Unity Catalog-objekt som representerar en logisk lagringsvolym på en lagringsplats för molnobjekt. De är främst avsedda att ge styrning över icke-tabellbaserade datatillgångar. Se Vad är Unity Catalog-volymer?.
I det här avsnittet beskrivs hur du lägger till volymer i en resurs med hjälp av Catalog Explorer, Databricks CLI eller SQL-kommandon i en Azure Databricks-notebook- eller SQL-frågeredigerare. Om du föredrar att använda REST-API:et för Unity Catalog läser du PATCH /api/2.1/unity-catalog/shares/ i REST API-referensen.
Kommentar
Volymkommentarer ingår i andelar som delas med en mottagare via Databricks-till-Databricks-delning från och med den 25 juli 2024. Om du vill börja dela kommentarer via en resurs som delades med en mottagare före utgivningsdatumet måste du återkalla och återbevilja mottagaråtkomst för att utlösa kommentarsdelning.
Behörigheter som krävs: Ägare av dela objektet, USE CATALOG
och USE SCHEMA
på katalogen och schemat som innehåller volymen, och READ VOLUME
på volymen. Du måste behålla behörigheten READ VOLUME
så länge du vill dela volymen. Mer information finns i Krav.
Ytterligare krav:
- Volymdelning stöds endast i Databricks-till-Databricks-delning.
- Du måste använda ett SQL-lager på version 2023.50 eller senare eller en beräkningsresurs på Databricks Runtime 14.1 eller senare när du lägger till en volym till en delning.
- Om volymlagringen på providersidan har anpassade nätverkskonfigurationer (till exempel en brandvägg eller en privat länk) måste providern se till att mottagarens kontrollplans- och dataplansadresser är korrekt tillåtna för att kunna ansluta till volymens lagringsplats.
För att lägga till volymer till en delning:
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i Katalog-fönstret klickar du på kugghjulsikonen och väljer Deltadelning.
Alternativt kan du från sidan för Snabbåtkomst klicka på knappen Delta Sharing >.
På fliken Delat av mig letar du reda på den resurs som du vill lägga till en volym i och klickar på dess namn.
Klicka på Hantera tillgångar > Redigera tillgångar.
På sidan Redigera tillgångar söker eller bläddrar du efter den volym som du vill dela och väljer den.
Du kan också välja hela schemat som innehåller volymen. Se Lägga till scheman i en delning.
(Valfritt) Klicka på Avancerade alternativ för att ange ett alternativt volymnamn, eller Alias, för att göra volymnamnet mer läsbart.
Alias är inte tillgängliga om du väljer ett helt schema.
Aliaset är det namn som mottagaren ser och måste använda i frågor. Mottagarna kan inte använda det faktiska volymnamnet om ett alias har angetts.
Klicka på Spara.
SQL
Kör följande kommando i en notebook-fil eller Databricks SQL-frågeredigeraren:
ALTER SHARE <share-name> ADD VOLUME <catalog-name>.<schema-name>.<volume-name>
[COMMENT "<comment>"]
[AS <alias>];
Alternativen inkluderar:
-
AS <alias>
: Ett alternativt volymnamn eller alias för att göra volymnamnet mer läsbart. Aliaset är det volymnamn som mottagaren ser och måste använda i frågor. Mottagarna kan inte använda det faktiska volymnamnet om ett alias har angetts. Använd formatet<schema-name>.<volume-name>
. -
COMMENT "<comment>"
: Kommentarer visas i katalogutforskarens användargränssnitt och när du listar och visar volyminformation med hjälp av SQL-instruktioner.
Mer information om ALTER SHARE
-alternativen finns i ALTER SHARE.
CLI
Kör följande kommando med Databricks CLI 0.210 eller senare:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<volume-full-name>",
"data_object_type": "VOLUME",
"string_shared_as": "<volume-alias>"
}
}
]
}'
"string_shared_as": "<volume-alias>"
är valfritt och tillhandahåller ett alternativt volymnamn, eller alias, för att göra volymnamnet mer läsbart. Aliaset är det volymnamn som mottagaren ser och måste använda i sökfrågor. Mottagarna kan inte använda det faktiska volymnamnet om ett alias har angetts. Använd formatet <schema-name>.<volume-name>
.
För att läsa mer om ytterligare parametrar, kör databricks shares update --help
eller se PATCH /api/2.1/unity-catalog/shares/ i REST API-referensen.
Information om hur du tar bort volymer från en resurs finns i Uppdatera resurser.
Lägga till modeller i en delning
I det här avsnittet beskrivs hur du lägger till modeller i en resurs med hjälp av Catalog Explorer, Databricks CLI eller SQL-kommandon i en Azure Databricks-notebook- eller SQL-frågeredigerare. Om du föredrar att använda REST-API:et för Unity Catalog läser du PATCH /api/2.1/unity-catalog/shares/ i REST API-referensen.
Anteckning
Modellkommentarer och modellversionskommentarer ingår i andelar som delas med Databricks-till-Databricks-delning.
Behörigheter som krävs: Ägare av delningsobjektet, USE CATALOG
och USE SCHEMA
på katalogen och schemat som innehåller modellen, och EXECUTE
på modellen. Du måste behålla behörigheten EXECUTE
så länge du vill dela modellen. Mer information finns i Krav.
Ytterligare krav:
- Modelldelning stöds endast i Databricks-till-Databricks-delning.
- Du måste använda ett SQL-lager på version 2023.50 eller senare eller en beräkningsresurs på Databricks Runtime 14.0 eller senare när du lägger till en modell i en resurs.
För att lägga till modeller i en delning:
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i fönstret Katalog klickar du på kugghjulsikonen och väljer Deltadelning.
Alternativt kan du från sidan Snabbåtkomst klicka på knappen Delta Sharing >.
På fliken Delat av mig letar du reda på den resurs som du vill lägga till en modell i och klickar på dess namn.
Klicka på Hantera tillgångar > Redigera tillgångar.
På sidan Redigera tillgångar söker eller bläddrar du efter den modell som du vill dela och väljer den.
Du kan också välja hela schemat som innehåller modellen. Se Lägg till scheman i en delning.
(Valfritt) Klicka på Avancerade alternativ för att ange ett alternativt modellnamn, eller Alias, för att göra modellnamnet mer läsbart.
Aliaser är inte tillgängliga om du väljer ett helt schema.
Aliaset är det namn som mottagaren ser och måste använda i frågor. Mottagarna kan inte använda det faktiska modellnamnet om ett alias har angetts.
Klicka på Spara.
SQL
Kör följande kommando i en notebook-fil eller Databricks SQL-frågeredigeraren:
ALTER SHARE <share-name> ADD MODEL <catalog-name>.<schema-name>.<model-name>
[COMMENT "<comment>"]
[AS <alias>];
Alternativen inkluderar:
-
AS <alias>
: Ett alternativt modellnamn eller alias för att göra modellnamnet mer läsbart. Aliaset är det modellnamn som mottagaren ser och måste använda i frågor. Mottagarna kan inte använda det faktiska modellnamnet om ett alias har angetts. Använd formatet<schema-name>.<model-name>
. -
COMMENT "<comment>"
: Kommentarer visas i katalogutforskarens användargränssnitt och när du listar och visar modellinformation med hjälp av SQL-instruktioner.
Mer information om ALTER SHARE
-alternativen finns i ALTER SHARE.
CLI
Kör följande kommando med Databricks CLI 0.210 eller senare:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<model-full-name>",
"data_object_type": "MODEL",
"string_shared_as": "<model-alias>"
}
}
]
}'
"string_shared_as": "<model-alias>"
är valfritt och tillhandahåller ett alternativt modellnamn, eller alias, för att göra modellnamnet mer läsbart. Aliaset är det modellnamn som mottagaren ser och måste använda i frågor. Mottagarna kan inte använda det faktiska modellnamnet om ett alias har angetts. Använd formatet <schema-name>.<model-name>
.
För att läsa mer om ytterligare parametrar, kör databricks shares update --help
eller se PATCH /api/2.1/unity-catalog/shares/ i REST API-referensen.
Information om hur du tar bort modeller från en resurs finns i Uppdatera resurser.
Lägga till scheman i en delning
När du lägger till ett helt schema i en resurs har mottagarna inte bara åtkomst till alla datatillgångar i schemat när du skapar resursen, utan även alla tillgångar som läggs till i schemat över tid. Detta omfattar alla tabeller, vyer och volymer i schemat. Tabeller som delas på det här sättet innehåller alltid fullständig historik.
För att lägga till, uppdatera eller ta bort ett schema med SQL krävs ett SQL-lager eller en beräkning som kör Databricks Runtime 13.3 LTS eller senare. Att göra samma sak med hjälp av Catalog Explorer kräver inga beräkningar.
Behörigheter som krävs: Ägare till resursobjektet och ägaren av schemat (eller en användare med USE SCHEMA
och SELECT
behörigheter i schemat).
Om du vill lägga till ett schema i en resurs följer du anvisningarna i Lägg till tabeller i en resurs och uppmärksammar innehållet som anger hur du lägger till ett schema.
Tabellalias, partitioner och volymalias är inte tillgängliga om du väljer ett helt schema. Om du har skapat alias eller partitioner för några tillgångar i schemat tas dessa bort när du lägger till hela schemat i resursen.
Om du vill ange avancerade alternativ för en tabell eller volym som du delar med schemadelning måste du dela tabellen eller volymen med SQL och ge tabellen eller volymen ett alias med ett annat schemanamn.
Lägga till anteckningsboksfiler till en delning
Använd Katalogutforskaren för att lägga till en notebook-fil i en delning.
Behörigheter som krävs: Ägare av delningsobjektet och behörighet att läsa den anteckningsbok du vill dela.
- På din Azure Databricks-arbetsyta klickar du på
Katalog.
- På sidan Snabbåtkomst klickar du på knappen Delta Delning >.
- På fliken Delat av mig letar du reda på den resurs som du vill lägga till en anteckningsbok i och klickar på dess namn.
- Klicka på Hantera tillgångar och välj Lägg till notebook-fil.
- På sidan Lägg till notebook-fil klickar du på filikonen för att bläddra efter den notebook-fil som du vill dela.
- Klicka på den fil som du vill dela och klicka på Välj.
- (Valfritt) ange ett användarvänligt alias för filen i fältet Dela som . Det här är den identifierare som mottagarna kommer att se.
- Under Lagringsplatsanger du den externa platsen i molnlagringen där du vill lagra anteckningsboken. Du kan ange en underordnad sökväg under den definierade externa platsen. Om du inte anger någon extern plats lagras anteckningsboken på lagringsplatsen på metaarkivnivå (eller "rotplatsen för metaarkivet"). Om ingen rotplats har definierats för metaarkivet måste du ange en extern plats här. Se Lägg till hanterad lagring i ett befintligt metaarkiv.
- Klicka på Spara.
Den delade notebook-filen visas nu i listan Notebook-filer på fliken Tillgångar .
Ta bort notebook-filer från delningar
Så här tar du bort en anteckningsboksfil från en delning:
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i fönstret Katalog klickar du på kugghjulsikonen och väljer Deltadelning.
Alternativt, från sidan Snabb åtkomst, klicka på knappen Delta Sharing>.
På fliken Delat av mig letar du reda på resursen som innehåller anteckningsboken och klickar på resursnamnet.
På fliken Tillgångar letar du reda på den notebook-fil som du vill ta bort från resursen.
Klicka på
till höger om raden och välj Ta bort anteckningsboksfil.
Klicka på Ta bort i bekräftelsedialogrutan.
Uppdatera anteckningsboksfiler i delningar
Om du vill uppdatera en anteckningsbok som du redan har delat måste du lägga till den igen, vilket ger den ett nytt alias i fältet Dela som . Databricks rekommenderar att du använder ett namn som anger notebook-filens ändrade status, till exempel <old-name>-update-1
. Du kan behöva meddela mottagaren om ändringen. Mottagaren måste välja och klona den nya anteckningsboken för att kunna dra nytta av uppdateringen.
Bevilja mottagare åtkomst till en delning
Om du vill bevilja delningsåtkomst till mottagare kan du använda Catalog Explorer, Databricks Unity Catalog CLI eller GRANT ON SHARE
SQL-kommandot i en Azure Databricks-anteckningsbok eller Databricks SQL-frågeredigeraren.
Behörigheter som krävs: Något av följande:
- Metastore-administratör.
- Delegerade behörigheter eller ägarskap för både resursen och mottagarobjekten ((
USE SHARE
+SET SHARE PERMISSION
) eller resursägaren) OCH (USE RECIPIENT
eller mottagarens ägare).
Anvisningar finns i Hantera åtkomst till deltadelningsdataresurser (för leverantörer). Den här artikeln beskriver också hur du återkallar en mottagares åtkomst till en resurs.
Visa resurser och dela information
Om du vill visa en lista med resurser eller information om en resurs kan du använda Catalog Explorer, Databricks Unity Catalog CLI eller SQL-kommandon i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren.
Behörigheter som krävs: Listan över resurser som returneras beror på din roll och dina behörigheter. Metaarkivadministratörer och användare med behörigheten USE SHARE
se alla resurser. Annars kan du bara se de aktier som du är aktieobjektägare för.
Information som ingår:
- Resursens ägare, skapare, tidsstämpel för skapande, uppdatering, uppdaterad tidsstämpel, kommentarer.
- Datatillgångar i delningen.
- Mottagare med åtkomst till delningen.
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i fönstret Katalog klickar du på kugghjulsikonen och väljer Deltadelning.
Alternativt, från Snabbåtkomst-sidan, klicka på knappen Delta Sharing >.
Öppna fliken Resurser om du vill visa en lista över resurser.
Visa delningsdetaljer på fliken Detaljer.
SQL
Om du vill visa en lista över resurser kör du följande kommando i en notebook-fil eller Databricks SQL-frågeredigeraren. Alternativt kan du ersätta <pattern>
med ett LIKE
predikat.
SHOW SHARES [LIKE <pattern>];
Om du vill visa information om en specifik resurs kör du följande kommando.
DESCRIBE SHARE <share-name>;
Om du vill visa information om alla tabeller, vyer och volymer i en resurs kör du följande kommando.
SHOW ALL IN SHARE <share-name>;
CLI
Om du vill visa en lista över resurser kör du följande kommando med hjälp av Databricks CLI.
databricks shares list
Om du vill visa information om en specifik resurs kör du följande kommando.
databricks shares get <share-name>
Visa de mottagare som har behörighet för en delning
Om du vill visa listan över resurser som en mottagare har beviljats åtkomst till kan du använda Catalog Explorer, Databricks Unity Catalog CLI eller SHOW GRANTS TO RECIPIENT
SQL-kommandot i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren.
Behörigheter som krävs: Metaarkivadministratör, USE SHARE
behörighet eller resursobjektägare.
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i fönstret Katalog klickar du på kugghjulsikonen och väljer Delta Sharing.
Alternativt, från sidan Snabbåtkomst, klicka på knappen Delta Sharing >.
På fliken Delat av mig letar du upp och väljer mottagaren.
Gå till fliken Mottagare för att visa listan över mottagare som kan komma åt resursen.
SQL
Kör följande kommando i en notebook-fil eller Databricks SQL-frågeredigeraren.
SHOW GRANTS ON SHARE <share-name>;
Kommandoradsgränssnitt (CLI)
Kör följande kommando med hjälp av Databricks CLI.
databricks shares share-permissions <share-name>
Uppdatera aktier
Förutom att lägga till tabeller, vyer, volymer och anteckningsböcker till en delning kan du:
- Byt namn på en resurs.
- Ta bort tabeller, vyer, volymer och scheman från en resurs.
- Lägga till eller uppdatera en kommentar på en delning.
- Aktivera eller inaktivera åtkomst till en tabells historikdata, så att mottagarna kan köra frågor om tidsresor eller strömmande läsningar av tabellen.
- Lägg till, uppdatera eller ta bort partitionsdefinitioner.
- Ändra aktieägaren.
Om du vill göra dessa uppdateringar av andelar kan du använda Catalog Explorer, Databricks Unity Catalog CLI, eller genom att använda SQL-kommandon i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren. Du kan inte använda Katalogutforskaren för att byta namn på resursen.
Behörigheter som krävs: Om du vill uppdatera resursägaren måste du vara något av följande: en metaarkivadministratör, ägaren av resursobjektet eller en användare med både behörigheterna USE SHARE
och SET SHARE PERMISSION
. Om du vill uppdatera resursnamnet måste du vara metaarkivadministratör (eller användare med behörighet) CREATE_SHARE
och resursägare. Om du vill uppdatera andra delningsegenskaper måste du vara ägare.
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Högst upp i fönstret Katalog klickar du på kugghjulsikonen och väljer Delta Sharing.
Alternativt, från sidan Snabbåtkomst, klicka på knappen Delta Sharing >.
På fliken Delat av mig letar du reda på den resurs som du vill uppdatera och klickar på dess namn.
Gör följande på sidan dela information:
- Klicka på redigeringsikonen
bredvid fältet Ägare eller Kommentar för att uppdatera dessa värden.
- Klicka på knappen Kebabmeny
i en tillgångsrad för att ta bort den.
- Klicka på Hantera tillgångar > Redigera tillgångar för att uppdatera alla andra egenskaper:
- Om du vill ta bort en tillgång avmarkerar du kryssrutan bredvid tillgången.
- Om du vill lägga till, uppdatera eller ta bort partitionsdefinitioner klickar du på Avancerade alternativ.
SQL
Kör följande kommandon i en notebook-fil eller Databricks SQL-redigeraren.
Byt namn på en resurs:
ALTER SHARE <share-name> RENAME TO <new-share-name>;
Ta bort tabeller från en resurs:
ALTER SHARE share_name REMOVE TABLE <table-name>;
Ta bort volymer från en delning:
ALTER SHARE share_name REMOVE VOLUME <volume-name>;
Lägg till eller uppdatera en kommentar på en delning:
COMMENT ON SHARE <share-name> IS '<comment>';
Lägg till eller ändra partitioner för en tabell i en delning:
ALTER SHARE <share-name> ADD TABLE <table-name> PARTITION(<clause>);
Ändra aktieägare
ALTER SHARE <share-name> OWNER TO '<principal>'
-- Principal must be an account-level user email address or group name.
Aktivera historikdelning för en tabell:
ALTER SHARE <share-name> ADD TABLE <table-name> WITH HISTORY;
Mer information om ALTER SHARE
parametrar finns i ALTER SHARE.
Kommando-radsgränssnitt (CLI)
Kör följande kommandon med hjälp av Databricks CLI.
Byt namn på en resurs:
databricks shares update <share-name> --name <new-share-name>
Ta bort tabeller från en resurs:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "REMOVE",
"data_object": {
"name": "<table-full-name>",
"data_object_type": "TABLE",
"shared_as": "<table-alias>"
}
}
]
}'
Ta bort volymer från en resurs (med Databricks CLI 0.210 eller senare):
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "REMOVE",
"data_object": {
"name": "<volume-full-name>",
"data_object_type": "VOLUME",
"string_shared_as": "<volume-alias>"
}
}
]
}'
Anteckning
Använd egenskapen name
om det inte finns något alias för volymen. Använd string_shared_as
om det finns ett alias.
Lägg till eller uppdatera en kommentar på en delning:
databricks shares update <share-name> --comment '<comment>'
Ändra andelsägare:
databricks shares update <share-name> --owner '<principal>'
Huvudkontot måste vara en e-postadress eller gruppnamn på kontonivå.
Ta bort en delning
Om du vill ta bort en resurs kan du använda Catalog Explorer, Databricks Unity Catalog CLI eller DELETE SHARE
SQL-kommandot i en Azure Databricks-anteckningsbok eller Databricks SQL-frågeredigeraren. Du måste vara ägare till andelen.
När du tar bort en resurs kan mottagarna inte längre komma åt delade data.
Behörigheter som krävs: Dela objektägare.
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i fönstret Katalog, klicka på kugghjulsikonen och välj Deltadelning.
Alternativt, från sidan Snabb åtkomst, klicka på knappen Delta Sharing>.
På fliken Delat av mig letar du reda på den resurs som du vill ta bort och klickar på dess namn.
Klicka på
menyn för kebab och välj Ta bort.
Klicka på Ta bort i bekräftelsedialogrutan.
SQL
Kör följande kommando i en notebook-fil eller Databricks SQL-frågeredigeraren.
DROP SHARE [IF EXISTS] <share-name>;
CLI
Kör följande kommando med hjälp av Databricks CLI.
databricks shares delete <share-name>