Een pijplijnupdate uitvoeren

In dit artikel worden pijplijnupdates uitgelegd en vindt u meer informatie over het activeren van een update.

Wat is een pijplijnupdate?

Nadat u een pijplijn hebt gemaakt en klaar bent om deze uit te voeren, start u een update. Een pijplijnupdate doet het volgende:

  • Hiermee start u een cluster met de juiste configuratie.
  • Detecteert alle gedefinieerde tabellen en weergaven en controleert op analysefouten, zoals ongeldige kolomnamen, ontbrekende afhankelijkheden en syntaxisfouten.
  • Hiermee worden tabellen en weergaven gemaakt of bijgewerkt met de meest recente gegevens die beschikbaar zijn.

Met behulp van een drooguitvoering kunt u controleren op problemen in de broncode van een pijplijn zonder te wachten tot tabellen zijn gemaakt of bijgewerkt. Deze functie is handig bij het ontwikkelen of testen van pijplijnen, omdat u hiermee snel fouten in uw pijplijn kunt vinden en oplossen, zoals onjuiste tabel- of kolomnamen.

Hoe worden pijplijnupdates geactiveerd?

Gebruik een van de volgende opties om pijplijnupdates te starten:

Trigger bijwerken Bijzonderheden
Handmatig U kunt pijplijnupdates handmatig activeren vanuit de Lakeflow Pipelines-editor of de lijst met pijplijnen. Zie Handmatig een pijplijnupdate activeren.
Scheduled Je kunt updates voor pipelines plannen met behulp van taken. Zie Pijplijntaak voor taken.
Programmatic U kunt programmatisch updates activeren met behulp van hulpprogramma's, API's en CLIs van derden. Zie Pijplijnen uitvoeren in een werkstroom en pijplijn REST API.

handmatig een pijplijnupdate activeren

Gebruik een van de volgende opties om handmatig een pijplijnupdate te activeren:

  • Voer de volledige pijplijn of een subset van de pijplijn (één bronbestand of één tabel) uit vanuit de Lakeflow Pipelines Editor. Zie Pijplijncode uitvoeren voor meer informatie.
  • Voer de volledige pijplijn uit vanuit de lijst Taken en pijplijnen . Klik op het pictogram Afspelen in dezelfde rij als de pijplijn in de lijst.
  • Klik op de pijplijnbewakingspagina op de knop Startpictogram LDP.

Opmerking

Het standaardgedrag voor handmatig geactiveerde pijplijnupdates is het vernieuwen van alle gegevenssets die in de pijplijn zijn gedefinieerd.

Semantiek voor het vernieuwen van de pijplijn

De volgende tabel beschrijft het gedrag van standaardverversing, volledige verversing en reset-controlepunten voor materiële weergaven en streamingtabellen.

Updatetype Gerealiseerde weergave Tabel voor streaming
Vernieuwen (standaard) Hiermee worden de resultaten bijgewerkt om de huidige resultaten voor de definiërende query weer te geven. De kosten worden onderzocht en er wordt een incrementele vernieuwing uitgevoerd als het kostenefficiënter is. Zie Incrementeel vernieuwen voor gematerialiseerde weergaven Nieuwe records worden verwerkt volgens de logica die is gedefinieerd in streamingtabellen en stromen.
Volledig vernieuwen Hiermee worden de resultaten bijgewerkt om de huidige resultaten voor de definiërende query weer te geven. Wist gegevens uit de streamingtabellen, wist statusinformatie (controlepunten) uit de datastromen en verwerkt alle records uit de gegevensbron opnieuw. Zie Volledig vernieuwen voor streamingtabellen
Reset streamingstroomcontrolepunten Niet van toepassing op gematerialiseerde views. Wisst statusinformatie (controlepunten) uit de stromen, maar wist geen gegevens uit streamingtabellen, en verwerkt alle records uit de gegevensbron opnieuw.

Standaard worden alle gematerialiseerde weergaven en streamingtabellen in een pijplijn vernieuwd met elke update. U kunt eventueel tabellen weglaten uit updates met behulp van de volgende functies:

Beide functies ondersteunen standaard vernieuwingssemantiek of volledige vernieuwing. U kunt desgewenst het dialoogvenster Tabellen selecteren voor vernieuwen gebruiken om extra tabellen uit te sluiten bij het uitvoeren van een vernieuwing voor mislukte tabellen.

Voor streamingtabellen kunt u ervoor kiezen om de streaming-controlepunten voor geselecteerde stromen te wissen, maar niet de gegevens van de bijbehorende streamingtabellen. Als u de controlepunten voor geselecteerde stromen wilt wissen, gebruikt u de Databricks REST API om een vernieuwing te starten. Zie Start een update van de pijplijn om de controlepunten van selectieve streamingstromen te wissen.

Moet ik een volledige vernieuwing gebruiken?

Databricks raadt aan om volledige vernieuwingen alleen uit te voeren wanneer dat nodig is. Een volledige vernieuwing verwerkt altijd alle records uit de opgegeven gegevensbronnen via de logica die de gegevensset definieert. De tijd en resources voor het voltooien van een volledige vernieuwing worden gecorreleerd aan de grootte van de brongegevens.

Gematerialiseerde views retourneren dezelfde resultaten, ongeacht of een standaard- of volledige vernieuwing wordt gebruikt. Als u een volledige vernieuwing gebruikt met streamingtabellen, worden alle statusverwerkings- en controlepuntgegevens opnieuw ingesteld en kunnen records verloren gaan als invoergegevens niet meer beschikbaar zijn. Zie Volledig vernieuwen voor streamingtabellen

Databricks raadt alleen volledige vernieuwing aan wanneer de invoergegevensbronnen de gegevens bevatten die nodig zijn om de gewenste status van de tabel of weergave opnieuw te maken. Houd rekening met de volgende scenario's waarbij invoerbrongegevens niet meer beschikbaar zijn en het resultaat van het uitvoeren van een volledige vernieuwing:

Gegevensbron Reden dat invoergegevens afwezig zijn Resultaat van volledige vernieuwing
Kafka Drempelwaarde voor korte retentie Records die niet meer aanwezig zijn in de Kafka-bron, worden verwijderd uit de doeltabel.
Bestanden in objectopslag Levenscyclusbeleid Gegevensbestanden die niet langer aanwezig zijn in de bronmap worden verwijderd uit de doeltabel.
Records in een tabel Verwijderd voor naleving Alleen de records die in de brontabel staan, worden verwerkt.

Als u wilt voorkomen dat volledige vernieuwingen worden uitgevoerd in een tabel of weergave, stelt u de tabeleigenschap pipelines.reset.allowed in op false. Zie de eigenschappen van de pijplijntabel. U kunt ook een toevoegstroom gebruiken om gegevens toe te voegen aan een bestaande streamingtabel zonder dat u een volledige vernieuwing nodig hebt.

Een pijplijnupdate voor geselecteerde tabellen starten

U kunt desgewenst gegevens opnieuw verwerken voor alleen geselecteerde tabellen in uw pijplijn. Tijdens de ontwikkeling wijzigt u bijvoorbeeld slechts één tabel en wilt u de testtijd verminderen of mislukt een pijplijnupdate en wilt u alleen de mislukte tabellenvernieuwen.

De Lakeflow Pipelines Editor bevat opties voor het opnieuw verwerken van een bronbestand, geselecteerde tabellen of één tabel. Zie Pijplijncode uitvoeren voor meer informatie.

een pijplijnupdate starten voor mislukte tabellen

Als een pijplijnupdate mislukt vanwege fouten in een of meer tabellen in de pijplijngrafiek, kunt u een update starten van alleen mislukte tabellen en eventuele downstreamafhankelijkheden.

Opmerking

Uitgesloten tabellen worden niet vernieuwd, zelfs niet als ze afhankelijk zijn van een mislukte tabel.

Als u mislukte tabellen wilt bijwerken, klikt u op de pagina Pijplijnbewaking op Mislukte tabellen vernieuwen.

Alleen geselecteerde mislukte tabellen bijwerken vanaf de pagina pijplijnbewaking:

  1. Klik op de knop naar beneden naast de knop Vernieuwen voor mislukte tabellen en klik op de knop Tabellen selecteren voor vernieuwen. De Selecteer tabellen om te vernieuwen dialoog verschijnt.

  2. Als u de tabellen wilt selecteren die u wilt vernieuwen, klikt u op elke tabel. De geselecteerde tabellen zijn gemarkeerd en gelabeld. Als u een tabel uit de update wilt verwijderen, klikt u nogmaals op de tabel.

  3. Klik op Vernieuw selectie.

    Opmerking

    Met de knop Selectie vernieuwen wordt het aantal geselecteerde tabellen tussen haakjes weergegeven.

Als u de gegevens die al zijn opgenomen voor de geselecteerde tabellen opnieuw wilt verwerken, klikt u op Blauwe pijl omlaag naast de knop Selectie vernieuwen en klikt u op Selectie volledig vernieuwen.

Start een pijplijnupdate om de controlepunten van selectieve streamingstromen te wissen

Je kunt optioneel gegevens opnieuw verwerken voor geselecteerde streamingstromen in je pijplijn zonder reeds verzamelde gegevens te wissen.

Opmerking

Stromen die niet geselecteerd zijn, worden uitgevoerd met een REFRESH update. U kunt ook full_refresh_selection of refresh_selection specificeren om andere tabellen selectief te vernieuwen.

Als u een update wilt starten om de geselecteerde streamingcontrolepunten te vernieuwen, gebruikt u de aanvraag voor updates in de REST API van Lakeflow Spark Declarative Pipelines.

De reset_checkpoint_selection parameter accepteert een lijst met stroomnamen. U moet de naam van de stroom gebruiken zoals deze wordt weergegeven in de pijplijngrafiek:

  • Als u een stroom hebt gedefinieerd met een expliciete naam (bijvoorbeeld met behulp van de flow_name parameter in create_auto_cdc_flow), gebruikt u die naam.
  • Als u geen expliciete stroomnaam hebt ingesteld, is de standaardstroomnaam de volledig gekwalificeerde tabelnaam in catalog.schema.table indeling. Als u alleen de tabelnaam gebruikt (bijvoorbeeld gold in plaats van my_catalog.my_schema.gold), mislukt de pijplijnupdate met een IllegalArgumentException.

U vindt stroomnamen in de pijplijngebruikersinterface of in de gebeurtenislogboeken van de pijplijn.

Het volgende voorbeeld gebruikt de curl opdracht om het updates verzoek aan te roepen en een pijplijnupdate te starten.

curl -X POST \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{
"reset_checkpoint_selection": ["my_catalog.my_schema.my_streaming_table"]
}' \
https://<your-databricks-instance>/api/2.0/pipelines/<your-pipeline-id>/updates

In het volgende voorbeeld wordt het controlepunt voor een stroom opnieuw ingesteld met een aangepaste naam:

curl -X POST \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{
"reset_checkpoint_selection": ["my_custom_flow_name"]
}' \
https://<your-databricks-instance>/api/2.0/pipelines/<your-pipeline-id>/updates

Controleer een pijplijn op fouten zonder te wachten tot tabellen zijn bijgewerkt

Belangrijk

De pijplijnfunctie Dry run bevindt zich in openbare preview.

Als u wilt controleren of de broncode van een pijplijn geldig is zonder een volledige update uit te voeren, gebruikt u een droge uitvoering. Met een proefuitvoering worden de definities van gegevenssets en workflows die in de pijplijn zijn gedefinieerd, opgelost, maar worden geen gegevenssets gerealiseerd of gepubliceerd. Fouten die zijn gevonden tijdens de drooguitvoering, zoals onjuiste tabel- of kolomnamen, worden gerapporteerd in de gebruikersinterface.

Als u een droogloop wilt starten, klikt u op Blue Down Caret op de pagina met pijplijndetails naast Start en klikt u op Dry run.

Nadat de proefdraai is voltooid, worden eventuele fouten weergegeven in het meldingsvak in het onderste paneel. Als u op het gebeurtenisvak klikt, worden eventuele problemen in het onderste deelvenster weergegeven. Daarnaast worden in het gebeurtenislogboek alleen gebeurtenissen weergegeven die betrekking hebben op de droogtest, en worden er in de DAG geen metrische gegevens getoond. Als er fouten worden gevonden, zijn details beschikbaar in het gebeurtenislogboek.

U ziet alleen de resultaten voor de meest recente droge run. Als de drooguitvoering de laatst uitgevoerde update was, kunt u de resultaten zien door deze te selecteren in de updategeschiedenis. Als er na de drooguitvoering een andere update wordt uitgevoerd, zijn de resultaten niet meer beschikbaar in de gebruikersinterface.

Uitvoeringsgedrag bijwerken

Het gedrag van een pijplijnupdate wordt bepaald door de wijze waarop u deze activeert:

  • Updates die worden geactiveerd vanuit de gebruikersinterface voor pijplijnbewaking met Run, maken nu gebruik van snel starten, foutopsporingsgericht gedrag.
  • Updates die worden geactiveerd vanuit taken, de Pipelines API of doorlopende pijplijnen maken gebruik van automatisch gedrag voor opnieuw proberen en opnieuw opstarten.

Voor geactiveerde pijplijnen kunt u het standaardgedrag voor een specifieke uitvoering overschrijven door Nu uitvoeren te kiezen met verschillende instellingen in de vervolgkeuzelijst in de Lakeflow Pipelines Editor of de pagina pijplijnbewaking.

Snel starten, foutopsporingsgericht gedrag

Wordt gebruikt voor UI Nu uitvoeren en ad-hoc-updates. Deze uitvoeringen zijn geoptimaliseerd voor snelle iteratie:

  • Hergebruikt een cluster om de overhead van herstarten te voorkomen. Clusters draaien standaard twee uur. U kunt dit wijzigen met de pipelines.clusterShutdown.delay instelling in de klassieke berekening configureren voor pijplijnen.
  • Schakelt herhalingen voor pipelines uit, zodat u direct fouten kunt opsporen en oplossen.

Gedrag voor automatisch opnieuw proberen en opnieuw opstarten

Wordt gebruikt voor taken, door API geactiveerde updates en continue pijplijnen. Deze uitvoeringen geven prioriteit aan betrouwbaarheid en kostenefficiëntie:

  • Start het cluster opnieuw op voor specifieke herstelbare fouten, waaronder geheugenlekken en verouderde referenties.
  • Voer de uitvoering opnieuw uit in het geval van specifieke fouten, zoals een fout bij het starten van een cluster.
  • Het cluster wordt onmiddellijk uitgeschakeld nadat de run is voltooid.

Opmerking

Uitvoer gedrag beheert alleen de uitvoering van het cluster en de pijplijn. Opslaglocaties en doelschema's in de catalogus voor publicatietabellen moeten worden geconfigureerd als onderdeel van pijplijninstellingen en worden niet beïnvloed door uitvoeringsgedrag.