Dela via


Vad är Delta Live Tables?

Kommentar

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

Delta Live Tables är ett deklarativt ramverk som är utformat för att förenkla skapandet av tillförlitliga och underhållsbara pipelines för extrahering, transformering och inläsning (ETL). Du anger vilka data som ska matas in och hur du transformerar dem, och Delta Live-Tables automatiserar viktiga aspekter av att hantera din datapipeline, inklusive orkestrering, beräkningshantering, övervakning, datakvalitetsframtvingande och felhantering.

Delta Live-Tables bygger på Apache Spark, men istället för att definiera dina datapipelines med en serie separata Apache Spark-uppgifter definierar du strömmande tables och materialiserade views som systemet ska skapa, samt de frågor som behövs för att fylla och update dessa strömmande tables och materialiserade views.

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

fördelar med Delta Live-Tables jämfört med Apache Spark

Apache Spark är en mångsidig enhetlig analysmotor med öppen källkod, inklusive ETL. Delta Live Tables bygger på Spark för att hantera specifika och vanliga ETL-bearbetningsuppgifter. Delta Live-Tables kan avsevärt påskynda din väg till produktion när dina krav omfattar dessa bearbetningsuppgifter, inklusive:

  • Mata in data från vanliga källor.
  • Transformera data stegvis.
  • Utföra ändringsdatainsamling (CDC).

Delta Live-Tables är dock olämpligt för att implementera vissa typer av procedurlogik. Till exempel kan bearbetningskrav som att skriva till en extern table eller inkludera ett villkor som körs på extern fillagring eller databas tables inte utföras i koden som definierar ett Delta Live-dataset Tables. För att implementera bearbetning som inte stöds av Delta Live Tablesrekommenderar Databricks att du använder Apache Spark eller inkluderar pipelinen i ett Databricks-jobb som utför bearbetningen i en separat jobbaktivitet. Se Delta Live Tables pipelineuppgift för jobb.

Följande table jämför Delta Live-Tables med Apache Spark:

Förmåga Delta Live Tables Apache Spark
Datatransformeringar Du kan transformera data med hjälp av SQL eller Python. Du kan transformera data med hjälp av SQL, Python, Scala eller R.
Inkrementell databehandling Många datatransformeringar bearbetas automatiskt inkrementellt. Du måste bestämma vilka data som är nya så att du kan bearbeta dem stegvis.
Orkestrering Transformeringar dirigeras automatiskt i rätt ordning. Du måste se till att olika transformeringar körs i rätt ordning.
Parallellitet Alla transformeringar körs med rätt parallellitetsnivå. Du måste använda trådar eller en extern orkestrerare för att köra orelaterade transformeringar parallellt.
Felhantering Felaktigheter försöks automatiskt igen. Du måste bestämma hur du ska hantera fel och återförsök.
Övervakning Mått och händelser loggas automatiskt. Du måste skriva kod för att samla in mått om körning eller datakvalitet.

viktiga begrepp i Delta Live Tables

Följande bild visar viktiga komponenter i en Delta Live-Tables pipeline följt av en förklaring av var och en.

Delta Live Tables viktiga begrepp.

Streaming table

En strömmande table är en Delta-table som har en eller flera strömmar som skriver till sig. Strömmande tables används ofta för inmatning eftersom de bearbetar indata exakt en gång och kan bearbeta stora volumes av tilläggsdata. Strömmande tables är också användbara för omvandling med låg fördröjning av dataströmmar med hög volym.

Materialiserad vy

En materialiserad vy är en vy som innehåller förberäknade poster baserat på frågan som definierar den materialiserade vyn. Posterna i den materialiserade vyn hålls automatiskt uppdaterade av Delta Live Tables baserat på update schema eller utlösare för pipelinen. Varje gång en materialiserad vy uppdateras får den garanterat samma resultat som när du kör den definierande frågan över de senaste tillgängliga data. Detta görs dock ofta utan att omberäkna det fullständiga resultatet från grunden, med hjälp av inkrementell refresh. Materialiserade views används ofta för transformeringar.

Views

Alla views i beräkningsresultaten från Azure Databricks härstammar från källdatauppsättningar när de frågas, och utnyttjar i möjligaste mån cacheoptimeringar. Delta Live Tables publicerar inte views till catalog, så views kan bara refereras till i pipelinen där de definieras. Views är användbara som mellanliggande frågor som inte ska exponeras för slutanvändare eller system. Databricks rekommenderar att du använder views för att framtvinga begränsningar för datakvalitet eller transformera och berika datauppsättningar som kör flera underordnade frågor.

Rörledning

En pipeline är en samling strömmande tables och materialiserade views som uppdateras tillsammans. Dessa strömmande tables och materialiserade views deklareras i Python- eller SQL-källfiler. En pipeline innehåller också en konfiguration som definierar den beräkning som används för att update det strömmande tables och materialiserade views när pipelinen körs igång. På samma sätt som en Terraform-mall definierar infrastrukturen i ditt molnkonto definierar en Delta Live-Tables pipeline datauppsättningarna och omvandlingarna för databearbetningen.

Hur bearbetar Delta Live Tables datauppsättningar?

Följande table beskriver hur materialiserade views, strömmande tables, och views bearbetar data:

Datamängdstyp Hur bearbetas poster via definierade frågor?
Strömmande table Varje post bearbetas exakt en gång. Detta förutsätter en tilläggskälla.
Materialiserad vy Poster bearbetas efter behov för att returnera korrekta resultat för det aktuella datatillståndet. Materialiserade views ska användas för databearbetningsuppgifter som transformationer, aggregeringar eller förberäkning av långsamma frågor och ofta använda beräkningar.
Visa Poster bearbetas varje gång vyn efterfrågas. Använd views för mellanliggande transformeringar och datakvalitetskontroller som inte bör publiceras till offentliga datauppsättningar.

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

Delta Live Tables introducerar ny syntax för Python och SQL. Mer information om grunderna i pipelinesyntax finns i Utveckla pipelinekod med Python och Utveckla pipelinekod med SQL.

Kommentar

Delta Live Tables separerar datauppsättningsdefinitioner från update bearbetningsprocess, och Delta Live Tables notebook-filer är inte avsedda för interaktiv exekvering.

Hur konfigurerar du Delta Live Tables pipelines?

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

  1. Konfigurationer som definierar en samling anteckningsböcker eller 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 tables 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änglig utanför pipelinen måste du deklarera ett mål schema att publicera till Hive-metaarkivet eller ett mål catalog och mål schema att publicera till Unity Catalog.
  • Behörigheter för dataåtkomst konfigureras via det kluster som används för körning. Säkerställ att klustret har rätt behörigheter konfigurerade för datakällor och mål-lagringsplatsen , om det anges.

Mer information om hur du använder Python och SQL för att skriva källkod för pipelines finns i Delta Live SQL-språkreferens Tables och Delta Live Python-språkreferens 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 Tablesmåste du konfigurera en pipeline. När en pipeline har konfigurerats kan du utlösa en update för att beräkna resultat för varje datauppsättning i pipelinen. För att get börja använda Delta Live Tables-pipelines, se Självstudie: Kör din första Delta Live Tables-pipeline.

Vad är en pipeline update?

Pipelines distribuerar infrastruktur och beräknar om datatillståndet när du startar en update. En update gör följande:

  • Startar ett kluster med rätt konfiguration.
  • Identifierar alla tables och views definierade och söker efter eventuella analysfel, till exempel ogiltiga column namn, saknade beroenden och syntaxfel.
  • Skapar eller uppdaterar tables och views 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ör en update 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ömmande tables för de flesta användningsfall för datainhämtning. 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äs 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 CHECKconstraint i en traditionell databas, som förhindrar att några poster läggs till som inte klarar constraint, ger förväntningar flexibilitet när man bearbetar 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 pipelineförväntningar.

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

Delta Live Tables lägger till flera table egenskaper utöver de många table egenskaper som kan set i Delta Lake. Se referensen för Delta Live - och Delta -egenskaper, samt referensen för och.

Hur tables skapas och hanteras av Delta Live Tables

Azure Databricks hanterar automatiskt tables som skapats med Delta Live Tables, och bestämmer hur uppdateringar måste bearbetas för att korrekt beräkna det aktuella tillståndet för en table 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 till ett mål table. 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 table uppdateras. Underhåll kan förbättra frågeprestanda och minska kostnaderna genom att ta bort gamla versioner av tables. Som standard utför systemet en fullständig OPTIMIZE åtgärd följt av VACUUM. Du kan inaktivera OPTIMIZE för en table genom att ange pipelines.autoOptimize.managed = false i table egenskaper för table. Underhållsaktiviteter utförs endast om en pipeline update har körts under de 24 timmarna innan underhållsaktiviteterna schemaläggs.

Begränsningar

En list av begränsningar finns i Delta Live Tables Limitations.

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

Ytterligare resurser