Vad är Delta-delning?

Den här artikeln beskriver deltadelning i Azure Databricks, den säkra datadelningsplattform som gör att du kan dela data och AI-tillgångar i Azure Databricks med användare utanför organisationen, oavsett om dessa användare använder Databricks eller inte. Deltadelning är också grunden för Databricks Marketplace, ett öppet forum för utbyte av dataprodukter och Clean Rooms, en säker och sekretessskyddande miljö där flera parter kan arbeta tillsammans med känsliga företagsdata.

Deltadelning är också tillgängligt som ett projekt med öppen källkod som du kan använda för att dela Delta-tabeller från andra plattformar.

Kommentar

Information om hur du får åtkomst till data som har delats med dig med deltadelning finns i Åtkomst till data som delas med dig med deltadelning (för mottagare).

Hur fungerar Deltadelning?

Deltadelning är ett öppet protokoll som utvecklats av Databricks för säker datadelning med andra organisationer oavsett vilka beräkningsplattformar de använder.

Det finns tre sätt att dela data med deltadelning:

  1. Delningsprotokollet Databricks-till-Databricks, som gör att du kan dela data och AI-tillgångar från din Unity Catalog-aktiverade arbetsyta med användare som också har åtkomst till en Unity Catalog-aktiverad Databricks-arbetsyta.

    Den här metoden använder deltadelningsservern som är inbyggd i Azure Databricks. Den stöder vissa deltadelningsfunktioner som inte finns i de andra protokollen, inklusive delning av notebook-filer, volymdelning i Unity Catalog, ai-modelldelning i Unity Catalog, datastyrning i Unity Catalog, granskning och användningsspårning för både leverantörer och mottagare. Integreringen med Unity Catalog förenklar konfigurationen och styrningen för både leverantörer och mottagare och förbättrar prestandan.

    Se Dela data med hjälp av protokollet Delta Sharing Databricks-to-Databricks (för providers).

  2. Databricks öppna delningsprotokoll, som gör att du kan dela tabelldata som du hanterar i en Unity Catalog-aktiverad Databricks-arbetsyta med användare på alla databehandlingsplattformar.

    Den här metoden använder deltadelningsservern som är inbyggd i Azure Databricks och är användbar när du hanterar data med Unity Catalog och vill dela dem med användare som inte använder Databricks eller inte har åtkomst till en Unity Catalog-aktiverad Databricks-arbetsyta. Integreringen med Unity Catalog på providersidan förenklar konfigurationen och styrningen för leverantörer.

    Se Dela data med hjälp av deltadelningsprotokollet för öppen delning (för leverantörer).

  3. En kundhanterad implementering av deltadelningsservern med öppen källkod, som gör att du kan dela från valfri plattform till valfri plattform, oavsett om det är Databricks eller inte.

    Azure Databricks-dokumentationen innehåller inte instruktioner för hur du konfigurerar en egen deltadelningsserver. Se github.com/delta-io/delta-sharing.

Resurser, leverantörer och mottagare

De främsta begreppen bakom deltadelning i Azure Databricks är resurser, leverantörer och mottagare.

Vad är en resurs?

I Deltadelning är en resurs en skrivskyddad samling tabeller och tabellpartitioner som en provider vill dela med en eller flera mottagare. Om mottagaren använder en Unity Catalog-aktiverad Databricks-arbetsyta kan du även inkludera notebook-filer, vyer (inklusive dynamiska vyer som begränsar åtkomsten på rad- och kolumnnivå), Unity Catalog-volymer och Unity Catalog-modeller i en resurs.

Du kan lägga till eller ta bort tabeller, vyer, volymer, modeller och notebook-filer från en resurs när som helst, och du kan tilldela eller återkalla datamottagarens åtkomst till en resurs när som helst.

I en Unity Catalog-aktiverad Azure Databricks-arbetsyta är en resurs ett skyddsbart objekt som registrerats i Unity Catalog. Om du tar bort en delning från ditt Unity Catalog-metaarkiv förlorar alla mottagare av den delning möjligheten att komma åt den.

Se Skapa och hantera resurser för deltadelning.

Vad är en leverantör?

En provider är en entitet som delar data med en mottagare. Om du är en leverantör och vill dra nytta av den inbyggda Databricks Delta-delningsservern och hantera resurser och mottagare med Unity Catalog behöver du minst en Azure Databricks-arbetsyta som är aktiverad för Unity Catalog. Du behöver inte migrera alla dina befintliga arbetsytor till Unity Catalog. Du kan helt enkelt skapa en ny Unity Catalog-aktiverad arbetsyta för dina deltadelningsbehov.

Om en mottagare finns på en Unity Catalog-aktiverad Databricks-arbetsyta är providern också ett unity catalog-skyddsbart objekt som representerar providerorganisationen och associerar organisationen med en uppsättning resurser.

Vad är en mottagare?

En mottagare är en entitet som tar emot resurser från en provider. I Unity Catalog är en resurs ett skyddsbart objekt som representerar en organisation och associerar den med en identifierare för autentiseringsuppgifter eller säker delning som gör att organisationen kan komma åt en eller flera resurser.

Som dataleverantör (delare) kan du definiera flera mottagare för ett visst Unity Catalog-metaarkiv, men om du vill dela data från flera metaarkiv med en viss användare eller grupp av användare måste mottagaren definieras separat för varje metaarkiv. En mottagare kan ha åtkomst till flera delningar.

Om en provider tar bort en mottagare från deras Unity Catalog-metaarkiv förlorar mottagaren åtkomst till alla resurser som den tidigare kunde komma åt.

Se Skapa och hantera datamottagare för Deltadelning.

Öppen delning jämfört med Databricks-till-Databricks-delning

I det här avsnittet beskrivs de två protokollen för delning från en Databricks-arbetsyta som är aktiverad för Unity Catalog.

Kommentar

Det här avsnittet förutsätter att providern finns på en Unity Catalog-aktiverad Azure Databricks-arbetsyta. Mer information om hur du konfigurerar en deltadelningsserver med öppen källkod som ska delas från en icke-Databricks-plattform eller en arbetsyta som inte är en Unity-katalog finns i github.com/delta-io/delta-sharing.

Hur en leverantör använder deltadelning i Azure Databricks beror på vem de delar data med:

  • Med öppen delning kan du dela data med alla användare oavsett om de har åtkomst till Azure Databricks eller inte.
  • Med databricks-till-Databricks-delning kan du dela data med Azure Databricks-användare vars arbetsyta är kopplad till ett Unity Catalog-metaarkiv som skiljer sig från ditt. Databricks-till-Databricks har också stöd för delning av notebook-filer, volymer och modeller, vilket inte är tillgängligt i öppen delning.

Vad är öppen deltadelning?

Om du vill dela data med användare utanför din Azure Databricks-arbetsyta, oavsett om de använder Databricks, kan du använda öppna Deltadelning för att dela dina data på ett säkert sätt. Som dataprovider genererar du en token och delar den säkert med mottagaren. De använder token för att autentisera och få läsåtkomst till de tabeller som du har inkluderat i de resurser som du har gett dem åtkomst till.

Mottagarna kan komma åt delade data med hjälp av många beräkningsverktyg och plattformar, bland annat:

  • Azure Databricks
  • Apache Spark
  • Pandor
  • Power BI

En fullständig lista över anslutningsappar för deltadelning och information om hur du använder dem finns i deltadelningsdokumentationen.

Se även Dela data med hjälp av deltadelningsprotokollet för öppen delning (för leverantörer).

Vad är Databricks-till-Databricks Delta-delning?

Om du vill dela data med användare som har en Databricks-arbetsyta som är aktiverad för Unity Catalog kan du använda Databricks-till-Databricks Delta Sharing. Med Databricks-till-Databricks-delning kan du dela data med användare i andra Databricks-konton, oavsett om de finns på AWS, Azure eller GCP. Det är också ett bra sätt att på ett säkert sätt dela data över olika Unity Catalog-metaarkiv i ditt eget Databricks-konto. Observera att det inte finns något behov av att använda Deltadelning för att dela data mellan arbetsytor som är kopplade till samma Unity Catalog-metaarkiv, eftersom du i det scenariot kan använda Unity Catalog själv för att hantera åtkomst till data mellan arbetsytor.

En fördel med Databricks-till-Databricks-delning är att resursmottagaren inte behöver en token för att komma åt resursen och att providern inte behöver hantera mottagartoken. Säkerheten för delningsanslutningen – inklusive all identitetsverifiering, autentisering och granskning – hanteras helt och hållet via Deltadelning och Databricks-plattformen. En annan fördel är möjligheten att dela Databricks Notebook-filer, vyer, Unity Catalog-volymer och Unity Catalog-modeller.

Se även Dela data med hjälp av Protokollet Delta Sharing Databricks-to-Databricks (för leverantörer).)

Hur konfigurerar provideradministratörer deltadelning?

Det här avsnittet ger en översikt över hur leverantörer kan aktivera deltadelning och initiera delning från en Unity Catalog-aktiverad Azure Databricks-arbetsyta. Deltadelning med öppen källkod finns i github.com/delta-io/delta-sharing.

Databricks-till-Databricks-delning mellan Unity Catalog-metaarkiv i samma konto är alltid aktiverat. Om du är en leverantör som vill aktivera deltadelning för att dela data med Databricks-arbetsytor i andra konton eller icke-Databricks-klienter, utför en Administratör för Azure Databricks-konto eller metaarkivadministratör följande installationssteg (på hög nivå):

  1. Aktivera Deltadelning för Unity Catalog-metaarkivet som hanterar de data som du vill dela.

    Kommentar

    Du behöver inte aktivera deltadelning i metaarkivet om du tänker använda Deltadelning för att endast dela data med användare i andra Unity Catalog-metaarkiv i ditt konto. Som standard är delning av metaarkiv-till-metaarkiv i ett enda Azure Databricks-konto aktiverat.

    Se Aktivera Delta-delning i ett metaarkiv.

  2. Skapa en resurs som innehåller datatillgångar som registrerats i Unity Catalog-metaarkivet.

    Om du delar med en icke-Databricks-mottagare (kallas öppen delning) kan du inkludera tabeller i Delta- eller Parquet-format. Om du planerar att använda Databricks-till-Databricks-delning kan du också lägga till vyer, Unity Catalog-volymer, Unity Catalog-modeller och notebook-filer till en resurs.

    Se Skapa och hantera resurser för deltadelning.

  3. Skapa en mottagare.

    Se Skapa och hantera datamottagare för Deltadelning.

    Om mottagaren inte är en Databricks-användare eller inte har åtkomst till en Databricks-arbetsyta som är aktiverad för Unity Catalog måste du använda öppen delning. En uppsättning tokenbaserade autentiseringsuppgifter genereras för mottagaren.

    Om mottagaren har åtkomst till en Databricks-arbetsyta som är aktiverad för Unity Catalog kan du använda Databricks-till-Databricks-delning och inga tokenbaserade autentiseringsuppgifter krävs. Du begär en delningsidentifierare från mottagaren och använder den för att upprätta den säkra anslutningen.

    Dricks

    Använd dig själv som testmottagare för att prova konfigurationsprocessen.

  4. Ge mottagaren åtkomst till en eller flera resurser.

    Se Hantera åtkomst till deltadelningsdataresurser (för leverantörer).

    Kommentar

    Det här steget kan också utföras av en icke-administratörsanvändare med behörigheterna USE SHARE, USE RECIPIENT och SET SHARE PERMISSION . Se Behörigheter och skyddsbara objekt i Unity Catalog.

  5. Skicka den information som mottagaren behöver för att ansluta till resursen (endast öppen delning).

    Se Skicka mottagaren deras anslutningsinformation.

    För öppen delning använder du en säker kanal för att skicka en aktiveringslänk till mottagaren som gör att de kan ladda ned sina tokenbaserade autentiseringsuppgifter.

    För Databricks-till-Databricks-delning blir data som ingår i resursen tillgängliga på mottagarens Databricks-arbetsyta så snart du ger dem åtkomst till resursen.

Mottagaren kan nu komma åt delade data.

Hur kommer mottagarna åt delade data?

Mottagare får åtkomst till delade datatillgångar i skrivskyddat format. Delade notebook-filer är skrivskyddade, men de kan klonas och sedan ändras och köras på mottagararbetsytan precis som andra notebook-filer.

Säker åtkomst beror på delningsmodellen:

När dataleverantören uppdaterar datatabeller eller volymer i sitt eget Databricks-konto visas uppdateringarna nästan i realtid i mottagarens system.

Hur håller du reda på vem som delar och har åtkomst till delade data?

Dataleverantörer på Unity Catalog-aktiverade Azure Databricks-arbetsytor kan använda Azure Databricks-granskningsloggning och systemtabeller för att övervaka skapande och ändring av resurser och mottagare och kan övervaka mottagaraktivitet på resurser. Se Granska och övervaka datadelning.

Datamottagare som använder delade data på en Databricks-arbetsyta kan använda Databricks-granskningsloggning och systemtabeller för att förstå vem som har åtkomst till vilka data. Se Granska och övervaka datadelning.

Dela volymer

Du kan dela volymer med databricks-till-Databricks-delningsflödet. Se Lägga till volymer till en resurs (för leverantörer) och Läsa data som delas med Databricks-till-Databricks Delta-delning (för mottagare) (för mottagare).

Dela modeller

Du kan dela modeller med databricks-till-Databricks-delningsflödet. Se Lägga till modeller i en resurs (för leverantörer) och Läsa data som delas med Databricks-till-Databricks Delta-delning (för mottagare) (för mottagare).

Dela anteckningsböcker

Du kan använda Delta-delning för att dela notebook-filer med databricks-till-Databricks-delningsflödet. Se Lägga till notebook-filer till en resurs (för leverantörer) och Läsa delade notebook-filer (för mottagare).

Begränsa åtkomst på rad- och kolumnnivå

Du kan dela dynamiska vyer som begränsar åtkomsten till vissa tabelldata baserat på mottagaregenskaper. Dynamisk vydelning kräver databricks-till-Databricks-delningsflödet. Se Lägga till dynamiska vyer i en resurs för att filtrera rader och kolumner.

Deltadelning och strömning

Deltadelning stöder Spark Structured Streaming. En provider kan dela en tabell med historik så att en mottagare kan använda den som en strukturerad strömningskälla och bearbeta delade data stegvis med låg svarstid. Mottagare kan också köra frågor om Delta Lake-tidsresor på tabeller som delas med historik.

Information om hur du delar tabeller med historik finns i Lägga till tabeller i en resurs. Information om hur du använder delade tabeller som strömmande källor finns i Fråga en tabell med Apache Spark Structured Streaming (för mottagare av Databricks-till-Databricks-delning) eller Få åtkomst till en delad tabell med Spark Structured Streaming (för mottagare av öppna delningsdata).

Se även Direktuppspelning på Azure Databricks.

Delta Lake-funktionsstödmatris

Deltadelning stöder de flesta Delta Lake-funktioner när du delar en tabell. Den här stödmatrisen listar:

  • Deltafunktioner som kräver specifika versioner av Databricks Runtime, Delta Sharing Spark-anslutningsappen med öppen källkod eller Python-anslutningsappen för deltadelning med öppen källkod.
  • Funktioner som delvis stöds.
Funktion Provider Databricks-mottagare Mottagare med öppen källkod
Borttagningsvektorer Delning av tabeller med den här funktionen finns i offentlig förhandsversion. – Databricks Runtime 14.1+ för batchfrågor
– Databricks Runtime 14.2+ för CDF- och strömningsfrågor
– Delta Sharing Spark Connector 3.1+
– Delta sharing Python connector 1.1.0+
– Power BI v2.132.908.0+
Kolumnmappning Delning av tabeller med den här funktionen finns i offentlig förhandsversion. – Databricks Runtime 14.1+ för batchfrågor
– Databricks Runtime 14.2+ för CDF- och strömningsfrågor
– Delta Sharing Spark Connector 3.1+
– Delta sharing Python connector 1.1.0+
– Power BI v2.132.908.0+
Enhetligt format Delning av tabeller med den här funktionen finns i offentlig förhandsversion. – Databricks Runtime 14.1+ för batchfrågor
– Databricks Runtime 14.2+ för CDF- och strömningsfrågor
– Delta Sharing Spark Connector 3.1+
– Delta sharing Python connector 1.1.0+
– Power BI v2.132.908.0+
V2-kontrollpunkt Stöds med begränsningar Stöds med begränsningar Stöds med begränsningar
TidsstämpelNTZ Stöds Databricks Runtime 14.1+ Delta Sharing Spark Connector 3.3+
Flytande klustring Stöds med begränsningar Stöds med begränsningar Stöds med begränsningar

Vanliga frågor och svar om Delta-delning

Följande är vanliga frågor och svar om deltadelning.

Behöver jag Unity Catalog för att använda deltadelning?

Nej, du behöver inte Unity Catalog för att dela (som leverantör) eller använda delade data (som mottagare). Unity Catalog ger dock fördelar som stöd för icke-tabelldelning och AI-tillgångsdelning, out-of-the-box-styrning, enkelhet och frågeprestanda.

Leverantörer kan dela data på två sätt:

  • Placera tillgångarna som ska delas under Unity Catalog-hantering och dela dem med hjälp av den inbyggda Azure Databricks Delta-delningsservern.

    Du behöver inte migrera alla tillgångar till Unity Catalog. Du behöver bara en Azure Databricks-arbetsyta som är aktiverad för Unity Catalog för att hantera tillgångar som du vill dela. I vissa konton aktiveras nya arbetsytor automatiskt för Unity Catalog. Se Automatisk aktivering av Unity Catalog.

  • Implementera den öppna deltadelningsservern för att dela data, utan att nödvändigtvis använda ditt Azure Databricks-konto.

Mottagare kan använda data på två sätt:

  • Utan en Databricks-arbetsyta. Använd Delta Sharing-anslutningsappar med öppen källkod som är tillgängliga för många dataplattformar, inklusive Power BI, Pandas och Apache Spark med öppen källkod. Se Läs data som delas med Delta-delning för öppen delning (för mottagare) och Projektet Delta-delning med öppen källkod.

  • I en Databricks-arbetsyta. Mottagararbetsytor behöver inte aktiveras för Unity Catalog, men det finns fördelar med styrning, enkelhet och prestanda om de är det.

    Mottagarorganisationer som vill ha dessa fördelar behöver inte migrera alla tillgångar till Unity Catalog. Du behöver bara en Azure Databricks-arbetsyta som är aktiverad för Unity Catalog för att hantera tillgångar som delas med dig. I vissa konton aktiveras nya arbetsytor automatiskt för Unity Catalog. Se Automatisk aktivering av Unity Catalog.

Se Läs data som delas med Delta-delning för öppen delning (för mottagare) och Läs data som delas med Delta-delning för Databricks-till-Databricks (för mottagare).

Behöver jag vara en Databricks-kund för att kunna använda Delta-delning?

Nej, Delta-delning är ett öppet protokoll. Du kan dela icke-Databricks-data med mottagare på valfri dataplattform. Leverantörer kan konfigurera en öppen Delta-delningsserver för att dela från valfri databehandlingsplattform. Mottagare kan använda delade data med hjälp av Delta Sharing-anslutningsappar med öppen källkod för många dataprodukter, inklusive Power BI, Pandas och Spark med öppen källkod.

Men att använda Delta-delning i Azure Databricks, särskilt delning från en Unity Catalog-aktiverad arbetsyta, har många fördelar.

Mer information finns i den första frågan i dessa vanliga frågor och svar.

Medför Delta-delning utgående kostnader?

Delta-delning inom en region medför ingen utgående kostnad. Till skillnad från andra datadelningsplattformar kräver Delta-delning inte datareplikering. Den här modellen har många fördelar, men det innebär att molnleverantören kan ta ut avgifter för utgående data när du delar data mellan moln eller regioner. Azure Databricks stöder delning från Cloudflare R2, som inte medför några utgående avgifter, och tillhandahåller andra verktyg och rekommendationer för att övervaka och undvika utgående avgifter. Se Övervaka och hantera utgående kostnader för Delta-delning (för leverantörer).

Kan leverantörer återkalla mottagaråtkomst?

Ja, mottagaråtkomst kan återkallas på begäran och på angivna detaljnivåer. Du kan neka mottagaren åtkomst till specifika delningar och specifika IP-adresser, filtrera tabelldata för en mottagare, återkalla mottagartoken och ta bort mottagare helt. Se Återkalla mottagaråtkomst för en delning och Skapa och hantera datamottagare för Delta-delning.

Är det inte osäkert att använda försignerade URL:er?

Delta-delning använder försignerade URL:er för att ge tillfällig åtkomst till en fil i objektlagring. De ges endast till mottagare som redan har åtkomst till delade data. De är säkra eftersom de är kortvariga och inte utökar åtkomstnivån utöver vad mottagarna redan har beviljats.

Är de token som används i protokollet Delta-delning för öppen delning säker?

Eftersom Delta-delning möjliggör plattformsoberoende delning, till skillnad från andra tillgängliga datadelningsplattformar, kräver delningsprotokollet en öppen token. Leverantörer kan garantera tokensäkerhet genom att konfigurera tokens livslängd, ange nätverkskontroller och återkalla åtkomst på begäran. Dessutom expanderar token inte åtkomstnivån utöver vad mottagarna redan har beviljats. Se Säkerhetsöverväganden för token.

Om du föredrar att inte använda token för att hantera åtkomst till mottagardelningar bör du använda Databricks-till-Databricks-delning eller kontakta Databricks-kontoteamet för alternativ.

Stöder deltadelning visningsdelning?

Ja, Deltadelning stöder visningsdelning. Se Lägga till vyer i en resurs.

Kontakta databricks-kontoteamet om du vill veta mer om planerade förbättringar av att visa delning.

Begränsningar

Se även Delta Lake-funktionsstödmatris.

Resurskvoter

Azure Databricks tillämpar resurskvoter på alla deltadelningsobjekt som kan skyddas. Dessa kvoter visas i Resursgränser. Om du förväntar dig att överskrida dessa resursgränser kontaktar du ditt Azure Databricks-kontoteam.

Du kan övervaka din kvotanvändning med hjälp av API:erna för Enhetskatalogens resurskvoter. Se Övervaka din användning av Unity Catalog-resurskvoter.

Nästa steg