Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt triggers voor tabelupdates gebruiken om een uitvoering van uw taak te activeren wanneer brontabellen worden bijgewerkt. Gebruik deze functie om een taak uit te voeren wanneer nieuwe gegevens gereed zijn zonder dat er continu een cluster of kennis nodig is van de processen die een tabel bijwerken.
Hoe werken updatetriggers voor tabellen?
Een updatetrigger voor tabellen controleert op tabelupdates en wanneer een tabel wordt bijgewerkt, wordt de taak uitgevoerd. De trigger kan worden uitgevoerd wanneer één tabel wordt bijgewerkt of wanneer alle tabellen die door de trigger worden bewaakt, worden bijgewerkt. Voor triggers voor tabelupdates worden geen andere kosten in rekening gebracht dan de kosten van de cloudprovider die zijn gekoppeld aan het weergeven van tabellen en het lezen van updates vanaf de opslaglocatie.
Een trigger voor het bijwerken van tabellen kan worden geconfigureerd voor het bewaken van een of meer tabellen voor gegevenswijzigingen, zoals updates, samenvoegingen en verwijderingen. Deze tabellen kunnen beheerde tabellen van Unity Catalog Delta en Iceberg zijn, externe tabellen van Unity Catalog die worden ondersteund door Delta Lake, gerealiseerde weergaven, streamingtabellen en Unity Catalog-weergaven of metrische weergaven die afhankelijk zijn van ondersteunde tabellen. Andere weergaven en tabellen die worden gedeeld via Delta Sharing, worden niet ondersteund. Wanneer u meerdere tabellen selecteert, kunt u opgeven of een taak wordt geactiveerd wanneer een of alle tabellen worden bijgewerkt.
Een updatetrigger voor tabellen toevoegen
Een updatetrigger voor een tabel toevoegen aan een bestaande taak:
Klik in de linkernavigatie van uw werkruimte op Jobs & pijplijnen.
Klik in de lijst met taken op de naam van de taak waaraan u een trigger wilt toevoegen.
Klik in het rechterdeelvenster onder Planningen en triggers op Trigger toevoegen.
Selecteer tabelupdate bij het type Trigger.
Voeg onder Tabellen de tabellen toe die u wilt controleren op updates.
Als u meer dan één tabel selecteert, configureert u een optie onder Trigger wanneer u wilt opgeven of een taakuitvoering moet worden geactiveerd wanneer alle tabellen worden bijgewerkt of wanneer een tabel wordt bijgewerkt.
(Optioneel) Configureer geavanceerde opties door op Geavanceerd te klikken.
- Minimale tijd tussen triggers in seconden: de minimale tijd die moet worden gewacht om een uitvoering te activeren nadat een vorige uitvoering is voltooid. Tabellen die tijdens deze periode zijn bijgewerkt, activeren alleen een uitvoering nadat de wachttijd is verlopen. Azure Databricks wacht deze tijd voordat een uitvoering wordt geactiveerd, zelfs als bewaakte tabellen worden bijgewerkt.
- Wacht na laatste wijziging in seconden: de tijd die moet worden gewacht om een uitvoering te activeren na een tabelupdate. Aanvullende tabelupdates tijdens deze periode stellen de timer opnieuw in. Deze instelling kan worden gebruikt wanneer tabelupdates in batches worden geleverd en de hele batch moet worden verwerkt nadat alle tabellen zijn bijgewerkt.
Opmerking
Als beide opties worden gebruikt, wacht de trigger de minimale tijd tussen triggers en wacht vervolgens de ingestelde tijd na de laatste wijziging. Als u bijvoorbeeld een minimumtijd van 120 seconden hebt en een wachttijd na laatste wijzigingen van 60 seconden, wordt de uitvoering pas geactiveerd als ten minste 120 seconden is verstreken, zelfs als er binnen de eerste 60 seconden een tabelupdate plaatsvindt. Bovendien betekent de wachttijd na de laatste wijziging dat een uitvoering pas na 175 seconden wordt geactiveerd als één update binnenkomt op 5 seconden en vervolgens een andere op 115 seconden.
Klik op Testtrigger om de configuratie te valideren.
Klik op Opslaan.
Opmerking
U kunt ook triggers voor tabelupdates configureren vanuit de Jobs API. Voeg een trigger object toe aan een jobs/create, jobs/updateof jobs/reset bewerking.
Triggers voor tabelupdates met bestandsevenementen
Voor de beste prestaties en schaalbaarheid schakelt u bestandsevenementen in op de externe locatie waar de tabellen worden opgeslagen. Deze eenmalige installatiestap verbetert de efficiëntie van triggers voor tabelupdates en ontgrendelt andere functies, waaronder meer krachtige automatische laadprogramma's en triggers voor bestandsaankomst.
Wanneer bestandsgebeurtenissen zijn ingeschakeld, houdt Databricks automatisch metagegevens van opname bij met behulp van wijzigingsmeldingen van cloudproviders, wat resulteert in snellere en efficiëntere tabelupdates.
Als uw tabellen zich in de opslag op het hoofdniveau van de metastore bevinden, converteert u ze eerst naar een externe locatie en schakelt u bestandsgebeurtenissen op die locatie in.
Taakparameters die zijn gekoppeld aan triggers voor tabelupdates
Wanneer u triggers voor tabelupdates voor een taak gebruikt, zijn er drie nieuwe dynamische-waardeverwijzingen beschikbaar om te gebruiken als parameterwaarden in de taak.
-
{{job.trigger.table_update.updated_tables}}- Een JSON-lijst met tabellen die zijn bijgewerkt sinds de laatste taakuitvoering. -
{{job.trigger.table_update.`<catalog.schema.table>`.commit_timestamp.iso_datetime}}- de meest recente commit-tijdstempel die het uitvoeren van de taak heeft gestart. -
{{job.trigger.table_update.`<catalog.schema.table>`.version}}- de meest recente doorvoeringsversie die de taakuitvoering heeft geactiveerd.
Voor commit_timestamp en version, er zijn meerdere versies van de verwijzing naar dynamische waarden. Elke bewaakte tabel heeft een <catalog.schema.table> met de volledig gekwalificeerde naam van de tabel waarvoor je gegevens wilt. Als er slechts één tabel wordt bewaakt in de trigger, ziet u een waarde zonder de <catalog.schema.table>. U kunt bijvoorbeeld {{job.trigger.table_update.commit_timestamp.iso_datetime}} gebruiken.
Zie Taken parameteriseren voor meer informatie over taakparameters.
Meldingen ontvangen van mislukte triggers voor tabelupdates
U ontvangt een melding als een trigger voor een tabelupdate niet kan worden geëvalueerd. Configureer e-mail- of systeembestemmingsmeldingen voor het geval van een taakfout. Zie Meldingen toevoegen aan een taak.
Beperkingen
Triggers voor tabelupdates hebben de volgende beperkingen:
- U kunt maximaal 10 beheerde of Delta-tabellen per trigger selecteren.
- Voor tabellen die zich op locaties zonder bestandsgebeurtenissen bevinden, kunnen maximaal 1000 taken worden geconfigureerd met een tabelupdatetrigger.
Triggers op Unity Catalog-weergaven hebben de volgende aanvullende beperkingen:
Tabelupdatetriggers ondersteunen alleen het bewaken van Unity Catalog-weergaven of metrische weergaven die afhankelijk zijn van tabellen die ook worden ondersteund door triggers voor tabelupdates. De volgende weergaven worden met name niet ondersteund:
- Weergaven die gebruik maken van op
read_files(ze kunnen lezen uit een ondersteunde tabel die bestanden leest, maar niet direct gebruikenread_files). - Weergaven die afhankelijk zijn van tabellen die zich niet in Unity Catalog bevinden.
- Weergaven die afhankelijk zijn van federatieve tabellen.
- Weergaven die gebruik maken van op
Het maken van triggers voor weergaven met niet-ondersteunde afhankelijkheden slaagt nog steeds, maar er worden geen taakuitvoeringen geactiveerd wanneer een niet-ondersteunde afhankelijkheid wordt bijgewerkt.
Bijwerken van tabellen bewaakt wijzigingen in de afhankelijke tabellen van een weergave en beschouwt de weergave bijgewerkt als een van de afhankelijke tabellen wordt bijgewerkt. Het is mogelijk dat een taakuitvoering wordt geactiveerd voor gegevenswijzigingen die door de weergavedefinitie worden gefilterd.
Brontabellen voor een weergave worden meegeteld voor de limiet van 10 tabellen per trigger.
- Als een weergave bijvoorbeeld afhankelijk is van 11 tabellen, is het niet mogelijk om deze te gebruiken in een updatetrigger voor tabellen. Op dezelfde manier telt een trigger met twee weergaven, die elk afhankelijk zijn van 6 tabellen, als 12 tabellen.
Er is een afzonderlijke limiet van 10 afhankelijke weergaven per bewaakte weergave.
- Als een weergave bijvoorbeeld afhankelijk is van 11 andere weergaven, is het niet mogelijk om deze te gebruiken in een tabelupdatetrigger, zelfs niet als dit de 10 tabellen per triggerregel niet onderbreekt.