Hoe worden pijplijnen vernieuwd?

Wanneer een pijplijnupdate wordt uitgevoerd, worden de gerealiseerde weergaven en streamingtabellen vernieuwd die in de pijplijn zijn gedefinieerd, zodat de resultaten de huidige status van de brongegevens weerspiegelen. Hoe een gegevensset wordt vernieuwd, is afhankelijk van het type en het type vernieuwing. Zie Een pijplijnupdate uitvoeren voor informatie over het activeren en beheren van updates.

Vernieuwingstypen

Standaard wordt elke gematerialiseerde weergave en streaming-tabel in een pijplijn bij elke update vernieuwd. De volgende tabel geeft een overzicht van hoe elk vernieuwingstype zich gedraagt:

Updatetype Gerealiseerde weergave Tabel voor streaming
Vernieuwen (standaard) Hiermee worden de resultaten bijgewerkt om de huidige resultaten van de definiërende query weer te geven. Azure Databricks bekijkt de kosten en voert een incrementele vernieuwing uit wanneer deze efficiënter is. Verwerkt nieuwe records volgens de logica die is gedefinieerd in streamingtabellen en gegevensstromen.
Volledig vernieuwen Hiermee worden de resultaten opnieuw berekend om de huidige resultaten van de definiërende query weer te geven. Hiermee worden gegevens uit streamingtabellen gewist, checkpoints uit flows verwijderd en alle records uit de gegevensbron opnieuw verwerkt.
Reset streamingstroomcontrolepunten Niet van toepassing op gematerialiseerde views. Hiermee worden controlepunten uit stromen gewist, maar worden geen gegevens uit streamingtabellen gewist en worden alle records uit de gegevensbron opnieuw verwerkt.

Vernieuwen (standaard)

Een standaardvernieuwing werkt een gegevensset bij zodat deze overeenkomt met de huidige resultaten van de definitiequery.

Streamingtabellen zijn inherent incrementeel. Bij het vernieuwen van een streamingtabel worden alleen de records geëvalueerd die sinds de laatste update zijn aangekomen en toegevoegd, met behulp van de huidige definitie van de tabel. Oudere records worden niet opnieuw verwerkt, zodat wijzigingen die van invloed zijn op reeds geschreven gegevens niet worden toegepast. Met andere woorden, bij een standaardverversing van een streamingtabel wordt datacorrectheid ingeruild voor lagere tijd- en resourcekosten. Als u oudere gegevens opnieuw wilt verwerken, voert u een volledige vernieuwing uit of stelt u de stroomcontrolepunten opnieuw in.

Gematerialiseerde weergaven proberen incrementeel te verversen, maar verwerken zo nodig alle gegevensrecords opnieuw om de tabel volledig accuraat te houden. Een gematerialiseerde weergave wordt op een van de volgende twee manieren vernieuwd:

  • Incrementeel vernieuwen identificeert de wijzigingen sinds de laatste update en voegt alleen de nieuwe of gewijzigde gegevens samen.
  • Bij volledig vernieuwen wordt de hele query uitgevoerd en worden de bestaande gegevens vervangen wanneer incrementeel vernieuwen niet mogelijk is of niet rendabel is.

Standaard gebruikt Azure Databricks een kostenmodel om de rendabeler methode te kiezen. U kunt deze keuze overschrijven met een vernieuwingsbeleid. Zie Incrementeel vernieuwen voor gerealiseerde weergaven voor de semantiek, vereisten en ondersteunde SQL voor incrementeel vernieuwen.

Volledig vernieuwen

Met een volledige vernieuwing worden alle records van de brongegevens opnieuw verwerkt via de logica waarmee de gegevensset wordt gedefinieerd:

  • Voor een gematerialiseerde weergave berekent een volledige vernieuwing het volledige resultaat opnieuw. Omdat gerealiseerde weergaven altijd hetzelfde resultaat retourneren als een batchquery, produceren een standaardvernieuwing en een volledige vernieuwing identieke gegevens.
  • Voor een streamingtabel wordt de tabel volledig vernieuwd, worden de streamingcontrolepunten voor de stromen gewist en worden alle records van de bron opnieuw verwerkt.

Omdat bij een volledige vernieuwing alle brongegevens opnieuw worden verwerkt, worden de tijd en kosten geschaald met de grootte van die gegevens. Databricks raadt aan om alleen een volledige vernieuwing uit te voeren wanneer dat nodig is, bijvoorbeeld wanneer een definitie of schemawijziging niet compatibel is met de bestaande gegevens. Een volledige vernieuwing van een streamingtabel kan records verwijderen als de bron de oorspronkelijke gegevens niet meer bewaart, bijvoorbeeld een Kafka-onderwerp dat voorbij het bewaarvenster valt.

Zie Volledig vernieuwen voor streamingtabellen voor wanneer en hoe u een volledige vernieuwing van een streamingtabel uitvoert.

Controlepunten opnieuw instellen

Het opnieuw instellen van controlepunten is alleen van toepassing op streamingtabellen. Hiermee worden de streamingcontrolepunten voor geselecteerde stromen gewist zonder de gegevens die al naar de streamingtabel zijn geschreven, te wissen en vervolgens alle records van de bron via deze stromen opnieuw te verwerken. In tegenstelling tot een volledige vernieuwing worden de bestaande tabelgegevens bewaard.

Gebruik deze optie wanneer u een streamingbron voor geselecteerde stromen opnieuw wilt verwerken, bijvoorbeeld nadat u de logica van een stroom hebt gewijzigd, zonder de tabel af te kapen.

Het resetten van checkpoints wordt geactiveerd via de Lakeflow Spark Declarative Pipelines REST API. Zie Een pijplijnupdate starten om de controlepunten van selectieve streamingstromen te wissen voor de stappen.

Aanvullende bronnen