Wat is Delta Live Tables?
Delta Live Tables is een declaratief framework voor het bouwen van betrouwbare, onderhoudbare en testbare pijplijnen voor gegevensverwerking. U definieert de transformaties die moeten worden uitgevoerd op uw gegevens en Delta Live Tables beheert taakindeling, clusterbeheer, bewaking, gegevenskwaliteit en foutafhandeling.
Notitie
Voor Delta Live Tables is het Premium-abonnementvereist. Neem contact op met uw Databricks-accountteam voor meer informatie.
In plaats van uw gegevenspijplijnen te definiëren met behulp van een reeks afzonderlijke Apache Spark-taken, definieert u streaming-tables en gematerialiseerde views die het systeem moet maken en actueel moet houden. Delta Live Tables beheert hoe uw gegevens worden getransformeerd op basis van query's die u definieert voor elke verwerkingsstap. U kunt ook gegevenskwaliteit afdwingen met Delta Live Tablesverwachtingen, waarmee u de verwachte gegevenskwaliteit kunt definiëren en kunt opgeven hoe u records verwerkt die niet voldoen aan deze verwachtingen.
Ga naar de Delta Live Tables productpaginavoor meer informatie over de voordelen van het bouwen en uitvoeren van uw ETL-pijplijnen met Delta Live Tables.
Wat zijn Delta Live Tables-datasets?
Delta Live Tables gegevenssets zijn de streaming tables, gematerialiseerde viewsen views bijgehouden als de resultaten van declaratieve query's. In de volgende table wordt beschreven hoe elke gegevensset wordt verwerkt:
Gegevenssettype | Hoe worden records verwerkt via gedefinieerde query's? |
---|---|
Streaming-table | Elke record wordt precies één keer verwerkt. Hierbij wordt ervan uitgegaan dat er een bron voor alleen-toevoegen is. |
Gerealiseerde weergave | Records worden naar behoefte verwerkt om nauwkeurige resultaten te retourneren voor de huidige gegevensstatus. Gerealiseerde views moeten worden gebruikt voor gegevensverwerkingstaken, zoals transformaties, aggregaties of voorberekening van trage query's en veelgebruikte berekeningen. |
Weergave | Records worden telkens verwerkt wanneer de weergave wordt opgevraagd. Gebruik views voor tussenliggende transformaties en gegevenskwaliteitscontroles die niet mogen worden gepubliceerd naar openbare gegevenssets. |
De volgende secties bevatten gedetailleerdere beschrijvingen van elk type gegevensset. Zie voor meer informatie over wanneer u views, gerealiseerde views, en streaming tableskunt gebruiken en hoe u gegevenssettypen selecteert om aan uw vereisten voor gegevensverwerking te voldoen.
streaming table
Een streaming table is een Delta-table met extra ondersteuning voor streaming of incrementele gegevensverwerking. Met streaming-tables kunt u een groeiende gegevensset verwerken, waardoor elke rij slechts één keer wordt verwerkt. Omdat de meeste gegevenssets in de loop van de tijd voortdurend groeien, zijn streaming tables geschikt voor de meeste inname-workloads. Streaming-tables zijn optimaal voor pijplijnen waarvoor versheid van gegevens en lage latentie is vereist. Streaming-tables kan ook nuttig zijn voor grootschalige transformaties, omdat de resultaten incrementeel kunnen worden berekend wanneer nieuwe gegevens binnenkomen, zodat de resultaten up-to-date blijven zonder dat alle brongegevens volledig hoeven te worden herberekend bij elke update. Streaming-tables zijn ontworpen voor gegevensbronnen die alleen worden toegevoegd.
Notitie
Hoewel voor streaming-tables standaard alleen gegevensbronnen die alleen toevoegingen toestaan zijn vereist, kunt u dit gedrag overschrijven met de vlag skipChangeCommitswanneer een streamingbron een andere streaming-table bron is die updates of verwijderingen vereist.
Gerealiseerde weergave
Een gerealiseerde weergave is een weergave where waarvan de resultaten vooraf zijn berekend. Gematerialiseerde views worden vernieuwd volgens het update-schema van de pijplijn waarin ze zijn opgenomen. Gematerialiseerde views's zijn krachtig omdat ze elke wijziging in de invoer aankunnen. Telkens wanneer de pijplijn wordt bijgewerkt, worden queryresultaten opnieuw berekend om wijzigingen in upstream-gegevenssets weer te geven die mogelijk zijn opgetreden vanwege naleving, correcties, aggregaties of algemene CDC. Delta Live Tables implementeert gerealiseerde views als Delta tables, maar abstraheert complexiteiten die zijn gekoppeld aan een efficiënte toepassing van updates, zodat gebruikers zich kunnen concentreren op het schrijven van query's.
Views
Alle views in Azure Databricks-rekenresultaten zijn afkomstig van brongegevenssets die worden opgevraagd, waarbij actief gebruik wordt gemaakt van cache-optimalisaties, indien beschikbaar. Delta Live Tables publiceert views niet naar de catalog, zodat views alleen kan worden verwezen binnen de pijplijn waarin ze gedefinieerd zijn. Views zijn handig als tussenliggende query's die niet zichtbaar moeten zijn voor eindgebruikers of systemen. Databricks raadt het gebruik van views aan om beperkingen van gegevenskwaliteit af te dwingen of gegevenssets te transformeren en verrijken die meerdere downstreamquery's stimuleren.
Uw eerste gegevenssets declareren in Delta Live Tables
Delta Live Tables introduceert nieuwe syntaxis voor Python en SQL. Zie Pijplijncode ontwikkelen met Python en Pijplijncode ontwikkelen met SQL voor meer informatie over de basisbeginselen van de syntaxis van de pijplijn.
Notitie
Delta Live Tables scheidt gegevenssetdefinities van update verwerking en Delta Live Tables-notebooks zijn niet bedoeld voor interactieve uitvoering. Zie Wat is een Delta Live Tables-pijplijn?.
Wat is een Delta Live Tables-pijplijn?
Een -pijplijn is de hoofdeenheid die wordt gebruikt voor het configureren en uitvoeren van werkstromen voor gegevensverwerking met Delta Live Tables.
Een pijplijn bevat de gerealiseerde views en de streaming tables zoals gedeclareerd in Python- of SQL-bronbestanden. Delta Live Tables leidt de afhankelijkheden tussen deze tablesaf, zodat updates in de juiste volgorde worden uitgevoerd. Voor elke gegevensset vergelijkt Delta Live Tables de huidige status met de gewenste status en gaat vervolgens verder met het maken of update van gegevenssets door efficiënte verwerkingsmethoden te gebruiken.
De instellingen van Delta Live Tables-pijplijnen zijn onderverdeeld in twee algemene categorieën:
- Configuraties waarmee een verzameling notebooks of bestanden (ook wel broncodegenoemd) wordt gedefinieerd die gebruikmaken van Delta Live Tables syntaxis om gegevenssets te declareren.
- Configuraties voor het beheren van de pijplijninfrastructuur, afhankelijkheidsbeheer, hoe updates worden verwerkt en hoe tables worden opgeslagen in de werkruimte.
De meeste configuraties zijn optioneel, maar sommige vereisen zorgvuldige aandacht, met name bij het configureren van productiepijplijnen. Deze omvatten de volgende:
- Als u gegevens buiten de pijplijn beschikbaar wilt maken, moet u een doel declareren schema om te publiceren naar de Hive-metastore of een doel catalog en doel schema om te publiceren naar Unity Catalog.
- Machtigingen voor gegevenstoegang worden geconfigureerd via het cluster dat wordt gebruikt voor uitvoering. Zorg ervoor dat uw cluster de juiste machtigingen heeft geconfigureerd voor gegevensbronnen en de doelopslaglocatie, indien opgegeven.
Zie voor meer informatie over het gebruik van Python en SQL voor het schrijven van broncode voor pijplijnen Delta Live Tables SQL-taalreferenties en Delta Live Tables Python-taalreferentie.
Zie Een Delta Live-Tables-pijplijn configurerenvoor meer informatie over pijplijninstellingen en -configuraties.
Uw eerste pijplijn en triggerupdates implementeren
Voordat u gegevens met Delta Live Tablesverwerkt, moet u een pijplijn configureren. Zodra een pijplijn is geconfigureerd, kunt u een update activeren om resultaten te berekenen voor elke gegevensset in uw pijplijn. Zie Zelfstudie: Uw eerste Delta Live-Tables-pijplijn uitvoerenom te get aan de slag met Delta Live Tables pijplijnen.
Wat is een pijplijn update?
Pijplijnen implementeren infrastructuur en hercomputeren de gegevensstatus wanneer u een updatestart. Een update doet het volgende:
- Hiermee start u een cluster met de juiste configuratie.
- Detecteert alle tables en views gedefinieerd en controleert op analysefouten, zoals ongeldige column namen, ontbrekende afhankelijkheden en syntaxisfouten.
- Hiermee maakt of werkt u tables en views bij met de meest recente beschikbare gegevens.
Pijplijnen kunnen continu of volgens een schema worden uitgevoerd, afhankelijk van de kosten- en latentievereisten van uw use-case. Zie een update draaien op een Delta Live Tables-pijplijn.
gegevens opnemen met Delta Live Tables
Delta Live Tables ondersteunt alle gegevensbronnen die beschikbaar zijn in Azure Databricks.
Databricks raadt het gebruik van streaming-tables aan voor de meeste toepassingen. Voor bestanden die binnenkomen in de opslag van cloudobjecten, raadt Databricks Auto Loader aan. U kunt rechtstreeks gegevens opnemen met Delta Live Tables van de meeste messagebussen.
Zie De configuratie van cloudopslag voor meer informatie over het configureren van toegang tot cloudopslag.
Voor indelingen die niet worden ondersteund door Auto Loader, kunt u Python of SQL gebruiken om een query uit te voeren op elke indeling die wordt ondersteund door Apache Spark. Zie Gegevens laden met Delta Live Tables.
Gegevenskwaliteit bewaken en afdwingen
U kunt verwachtingen gebruiken om besturingselementen voor gegevenskwaliteit op te geven voor de inhoud van een gegevensset. In tegenstelling tot een CHECK
constraint in een traditionele database die voorkomt dat er records worden toegevoegd die niet voldoen aan de constraint, bieden verwachtingen flexibiliteit bij het verwerken van gegevens die niet voldoen aan de eisen aan de gegevenskwaliteit. Dankzij deze flexibiliteit kunt u gegevens verwerken en opslaan die u verwacht te rommelig en gegevens die moeten voldoen aan strenge kwaliteitsnormen. Zie Gegevenskwaliteit beheren met Delta Live Tables.
Hoe zijn Delta Live-Tables en Delta Lake gerelateerd?
Delta Live Tables breidt de functionaliteit van Delta Lake uit. Omdat tables gemaakt en beheerd door Delta Live Tables Delta tableszijn, hebben ze dezelfde garanties en functies van Delta Lake. Zie Wat is Delta Lake?
Delta Live Tables voegt verschillende table eigenschappen toe, naast de vele table eigenschappen die kunnen worden set in Delta Lake. Zie Eigenschappen van Delta Live Tables verwijzen naar en Eigenschappen van Delta table.
Hoe tables worden gemaakt en beheerd door Delta Live Tables
Azure Databricks beheert automatisch tables die zijn gemaakt met Delta Live Tables, waarmee wordt bepaald hoe updates moeten worden verwerkt om de huidige status van een table correct te berekenen en een aantal onderhouds- en optimalisatietaken uit te voeren.
Voor de meeste bewerkingen moet u toestaan dat Delta Live Tables alle updates, invoegingen en verwijderingen naar een doel tableverwerkt. Zie Handmatige verwijderingen of updates behouden voor meer informatie en beperkingen.
Onderhoudstaken uitgevoerd door Delta Live Tables
Delta Live Tables voert onderhoudstaken uit binnen 24 uur nadat een table wordt bijgewerkt. Onderhoud kan de prestaties van query's verbeteren en kosten verlagen door oude versies van tableste verwijderen. Standaard voert het systeem een volledige OPTIMIZE bewerking uit, gevolgd door VACUUM. U kunt OPTIMIZE voor een table uitschakelen door pipelines.autoOptimize.managed = false
in de table eigenschappen in te stellen voor de table. Onderhoudstaken worden alleen uitgevoerd als een pijplijn update in de 24 uur vóór de geplande uitvoering van de onderhoudstaken is uitgevoerd.
Beperkingen
De volgende beperkingen zijn van toepassing:
- Alle tables die door Delta Live Tables zijn gemaakt en bijgewerkt, zijn Delta tables.
- Delta Lake time travel queries worden alleen ondersteund met Streaming tablesen worden niet ondersteund met gematerialiseerde views. Zie Werken met Delta Lake table geschiedenis.
- Delta Live Tablestables kan slechts eenmaal worden gedefinieerd, wat betekent dat ze slechts het doel van één bewerking in alle Delta Live-Tables-pijplijnen kunnen zijn.
- Identiteit columns wordt niet ondersteund met tables die het doel van
APPLY CHANGES INTO
zijn en mogelijk opnieuw worden berekend tijdens updates voor gematerialiseerde views. Daarom raadt Databricks aan om identiteiten columns alleen in Delta Live Tables met streaming tableste gebruiken. Zie Identiteits-columns gebruiken in Delta Lake. - Een Azure Databricks-werkruimte is beperkt tot 100 gelijktijdige pijplijnupdates.
Zie voor een reeks list aan vereisten en beperkingen die specifiek zijn voor het gebruik van Delta Live-Tables met Unity Catalog, Gebruik Unity-Catalog met uw Delta Live-Tables pijpleidingen
Aanvullende bronnen
- Delta Live Tables biedt volledige ondersteuning in de Databricks REST API. Zie DLT-API.
- Zie Eigenschappen van Delta Live Tablesvoor pijplijn- en table-instellingen.
- Delta Live Tables SQL-taalreferentie.
- Delta Live Python-taalreferentie Tables.