Vad är Delta Live Tables?

Delta Live Tables är ett deklarativt ramverk för att skapa tillförlitliga, underhållsbara och testbara databearbetningspipelines. Du definierar de omvandlingar som ska utföras på dina data och Delta Live Tables hanterar uppgiftsorkestrering, klusterhantering, övervakning, datakvalitet och felhantering.

Kommentar

Delta Live Tables kräver Premium-planen. Kontakta databricks-kontoteamet om du vill ha mer information.

I stället för att definiera dina datapipelines med hjälp av en serie separata Apache Spark-uppgifter definierar du strömmande tabeller och materialiserade vyer som systemet ska skapa och hålla uppdaterade. Delta Live Tables hanterar hur dina data transformeras baserat på frågor som du definierar för varje bearbetningssteg. Du kan också framtvinga datakvalitet med förväntningar för Delta Live Tables, vilket gör att du kan definiera förväntad datakvalitet och ange hur du hanterar poster som inte uppfyller dessa förväntningar.

Mer information om fördelarna med att skapa och köra dina ETL-pipelines med Delta Live Tables finns på produktsidan Delta Live Tables.

Vad är Delta Live Tables-datauppsättningar?

Delta Live Tables-datauppsättningar är strömmande tabeller, materialiserade vyer och vyer som underhålls som resultat av deklarativa frågor. I följande tabell beskrivs hur varje datauppsättning bearbetas:

Datamängdstyp Hur bearbetas poster via definierade frågor?
Direktuppspelningstabell Varje post bearbetas exakt en gång. Detta förutsätter en tilläggskälla.
Materialiserade vyer Poster bearbetas efter behov för att returnera korrekta resultat för det aktuella datatillståndet. Materialiserade vyer bör användas för databearbetningsuppgifter som transformeringar, sammansättningar eller långsamma frågor före databehandling och ofta använda beräkningar.
Vyer Poster bearbetas varje gång vyn efterfrågas. Använd vyer för mellanliggande transformeringar och datakvalitetskontroller som inte ska publiceras till offentliga datauppsättningar.

Följande avsnitt innehåller mer detaljerade beskrivningar av varje datamängdstyp. Mer information om hur du väljer datauppsättningstyper för att implementera dina databehandlingskrav finns i När du ska använda vyer, materialiserade vyer och strömmande tabeller.

Direktuppspelningstabell

En strömningstabell är en Delta-tabell med extra stöd för direktuppspelning eller inkrementell databearbetning. Med strömningstabeller kan du bearbeta en växande datamängd och hantera varje rad bara en gång. Eftersom de flesta datauppsättningar växer kontinuerligt över tid är strömmande tabeller bra för de flesta inmatningsarbetsbelastningar. Strömmande tabeller är optimala för pipelines som kräver data färskhet och låg svarstid. Strömningstabeller kan också vara användbara för omfattande skalningstransformeringar, eftersom resultaten kan beräknas stegvis när nya data anländer, vilket håller resultaten uppdaterade utan att helt omkomplera alla källdata med varje uppdatering. Strömmande tabeller är utformade för datakällor som endast är tilläggstabeller.

Kommentar

Även om strömmande tabeller som standard kräver tilläggsdatakällor, kan du åsidosätta det här beteendet med flaggan skipChangeCommits när en strömmande källa är en annan strömmande tabell som kräver uppdateringar eller borttagningar.

Materialiserad vy

En materialiserad vy är en vy där resultatet har förberäknats. Materialiserade vyer uppdateras enligt uppdateringsschemat för pipelinen där de finns. Materialiserade vyer är kraftfulla eftersom de kan hantera ändringar i indata. Varje gång pipelineuppdateringarna beräknas om beräknas frågeresultaten så att de återspeglar ändringar i överordnade datauppsättningar som kan ha inträffat på grund av efterlevnad, korrigeringar, aggregeringar eller allmän CDC. Delta Live Tables implementerar materialiserade vyer som Delta-tabeller, men avlägsnar komplexiteten i samband med effektiv tillämpning av uppdateringar, så att användarna kan fokusera på att skriva frågor.

Vyer

Alla vyer i Azure Databricks beräknar resultat från källdatauppsättningar när de efterfrågas, vilket utnyttjar cacheoptimeringar när de är tillgängliga. Delta Live Tables publicerar inte vyer till katalogen, så vyer kan endast refereras till i pipelinen där de definieras. Vyer är användbara som mellanliggande frågor som inte ska exponeras för slutanvändare eller system. Databricks rekommenderar att du använder vyer för att framtvinga datakvalitetsbegränsningar eller transformera och utöka datauppsättningar som kör flera underordnade frågor.

Deklarera dina första datauppsättningar i Delta Live Tables

Delta Live Tables introducerar ny syntax för Python och SQL. Information om hur du kommer igång med Delta Live Tables-syntax finns i Python- och SQL-exemplen i Självstudie: Kör din första Delta Live Tables-pipeline.

Kommentar

Delta Live Tables separerar datauppsättningsdefinitioner från uppdateringsbearbetning och Delta Live Tables-notebook-filer är inte avsedda för interaktiv körning. Se Vad är en Delta Live Tables-pipeline?.

Vad är en Delta Live Tables-pipeline?

En pipeline är huvudenheten som används för att konfigurera och köra arbetsflöden för databearbetning med Delta Live Tables.

En pipeline innehåller materialiserade vyer och strömmande tabeller som deklareras i Python- eller SQL-källfiler. Delta Live Tables härleder beroendena mellan dessa tabeller, vilket säkerställer att uppdateringar sker i rätt ordning. För varje datauppsättning jämför Delta Live Tables det aktuella tillståndet med önskat tillstånd och fortsätter att skapa eller uppdatera datauppsättningar med effektiva bearbetningsmetoder.

Inställningarna för Delta Live Tables-pipelines delas in i två breda kategorier:

  1. Konfigurationer som definierar en samling notebook-filer (kallas källkod) som använder Delta Live Tables-syntax för att deklarera datauppsättningar.
  2. Konfigurationer som styr pipelineinfrastruktur, beroendehantering, hur uppdateringar bearbetas och hur tabeller sparas på arbetsytan.

De flesta konfigurationer är valfria, men vissa kräver noggrann uppmärksamhet, särskilt när du konfigurerar produktionspipelines. Dessa inkluderar följande:

  • För att göra data tillgängliga utanför pipelinen måste du deklarera ett målschema för publicering till Hive-metaarkivet eller en målkatalog och ett målschema för publicering till Unity Catalog.
  • Behörigheter för dataåtkomst konfigureras via det kluster som används för körning. Kontrollera att klustret har rätt behörigheter konfigurerade för datakällor och mållagringsplatsen, om det anges.

Mer information om hur du använder Python och SQL för att skriva källkod för pipelines finns i Sql-språkreferens för Delta Live Tables och Python-språkreferens för Delta Live Tables.

Mer information om pipelineinställningar och konfigurationer finns i Konfigurera en Delta Live Tables-pipeline.

Distribuera din första pipeline och utlösaruppdateringar

Innan du bearbetar data med Delta Live Tables måste du konfigurera en pipeline. När en pipeline har konfigurerats kan du utlösa en uppdatering för att beräkna resultat för varje datauppsättning i pipelinen. Information om hur du kommer igång med Delta Live Tables-pipelines finns i Självstudie: Kör din första Delta Live Tables-pipeline.

Vad är en pipelineuppdatering?

Pipelines distribuerar infrastruktur och omkomputerar datatillstånd när du startar en uppdatering. En uppdatering gör följande:

  • Startar ett kluster med rätt konfiguration.
  • Identifierar alla definierade tabeller och vyer och söker efter eventuella analysfel, till exempel ogiltiga kolumnnamn, saknade beroenden och syntaxfel.
  • Skapar eller uppdaterar tabeller och vyer med de senaste tillgängliga data.

Pipelines kan köras kontinuerligt eller enligt ett schema beroende på ditt användningsfalls krav på kostnad och svarstid. Se Köra en uppdatering på en Delta Live Tables-pipeline.

Mata in data med Delta Live Tables

Delta Live Tables stöder alla datakällor som är tillgängliga i Azure Databricks.

Databricks rekommenderar att du använder strömningstabeller för de flesta inmatningsanvändningsfall. För filer som anländer till molnobjektlagring rekommenderar Databricks automatisk inläsning. Du kan mata in data direkt med Delta Live Tables från de flesta meddelandebussar.

Mer information om hur du konfigurerar åtkomst till molnlagring finns i Konfiguration av molnlagring.

För format som inte stöds av Auto Loader kan du använda Python eller SQL för att köra frågor mot alla format som stöds av Apache Spark. Se Läsa in data med Delta Live Tables.

Övervaka och framtvinga datakvalitet

Du kan använda förväntningar för att ange datakvalitetskontroller för innehållet i en datamängd. Till skillnad från en CHECK begränsning i en traditionell databas som förhindrar att poster läggs till som inte uppfyller villkoret, ger förväntningarna flexibilitet vid bearbetning av data som inte uppfyller kraven på datakvalitet. Med den här flexibiliteten kan du bearbeta och lagra data som du förväntar dig är röriga och data som måste uppfylla strikta kvalitetskrav. Se Hantera datakvalitet med Delta Live Tables.

Delta Live Tables utökar funktionerna i Delta Lake. Eftersom tabeller som skapats och hanteras av Delta Live Tables är Delta-tabeller har de samma garantier och funktioner som tillhandahålls av Delta Lake. Se Vad är Delta Lake?.

Delta Live Tables lägger till flera tabellegenskaper utöver de många tabellegenskaper som kan anges i Delta Lake. Se Referens för egenskaper för Delta Live Tables och Egenskaper för Delta-tabell.

Hur tabeller skapas och hanteras av Delta Live Tables

Azure Databricks hanterar automatiskt tabeller som skapats med Delta Live Tables, och avgör hur uppdateringar måste bearbetas för att korrekt beräkna det aktuella tillståndet för en tabell och utföra ett antal underhålls- och optimeringsuppgifter.

För de flesta åtgärder bör du tillåta att Delta Live Tables bearbetar alla uppdateringar, infogningar och borttagningar i en måltabell. Mer information och begränsningar finns i Behåll manuella borttagningar eller uppdateringar.

Underhållsaktiviteter som utförs av Delta Live Tables

Delta Live Tables utför underhållsaktiviteter inom 24 timmar efter att en tabell har uppdaterats. Underhåll kan förbättra frågeprestanda och minska kostnaderna genom att ta bort gamla versioner av tabeller. Som standard utför systemet en fullständig OPTIMIZE-åtgärd följt av VACUUM. Du kan inaktivera OPTIMERA för en tabell genom att ange pipelines.autoOptimize.managed = false tabellegenskaperna för tabellen. Underhållsaktiviteter utförs endast om en pipelineuppdatering har körts under de 24 timmarna innan underhållsaktiviteterna schemaläggs.

Begränsningar

Följande begränsningar gäller:

  • Alla tabeller som skapats och uppdaterats av Delta Live Tables är Delta-tabeller.
  • Delta Live Tables-tabeller kan bara definieras en gång, vilket innebär att de bara kan vara målet för en enda åtgärd i alla Delta Live Tables-pipelines.
  • Identitetskolumner stöds inte med tabeller som är målet APPLY CHANGES INTO för och kan omberäknas under uppdateringar för materialiserade vyer. Därför rekommenderar Databricks att du endast använder identitetskolumner i Delta Live Tables med strömmande tabeller. Se Använda identitetskolumner i Delta Lake.
  • En Azure Databricks-arbetsyta är begränsad till 100 samtidiga pipelineuppdateringar.

En lista över krav och begränsningar som är specifika för att använda Delta Live Tables med Unity Catalog finns i Använda Unity Catalog med dina Delta Live Tables-pipelines

Ytterligare resurser