Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan använda tabelluppdateringsutlösare för att utlösa en körning av jobbet när källtabeller uppdateras. Använd den här funktionen för att köra ett jobb när nya data är klara utan att behöva ett kluster som körs kontinuerligt eller kunskap om de processer som uppdaterar en tabell.
Hur fungerar utlösare för tabelluppdatering?
En tabelluppdateringsutlösare söker efter tabelluppdateringar och när en tabell uppdateras körs jobbet. Utlösaren kan köras när en tabell uppdateras eller när alla tabeller som övervakas av utlösaren uppdateras. Tabelluppdateringsutlösare medför inte andra kostnader än kostnader för molnleverantörer som är associerade med att visa tabeller och läsa uppdateringar från lagringsplatsen.
En tabelluppdateringsutlösare kan konfigureras för att övervaka en eller flera tabeller för dataändringar som uppdateringar, sammanslagningar och borttagningar. Dessa tabeller kan vara Unity Catalog Delta- och Iceberg-hanterade tabeller, externa Unity Catalog-tabeller som backas upp av Delta Lake, materialiserade vyer, strömmande tabeller och Unity Catalog-vyer eller måttvyer som är beroende av tabeller som stöds. Andra vyer och tabeller som delas via Deltadelning stöds inte. När du väljer flera tabeller kan du ange om ett jobb utlöses när någon eller alla tabeller uppdateras.
Lägga till en tabelluppdateringsutlösare
Så här lägger du till en tabelluppdateringsutlösare i ett befintligt jobb:
I det vänstra navigeringsfältet på arbetsytan klickar du på Jobb och pipelines.
I listan med jobb klickar du på namnet på det jobb som du vill lägga till en utlösare till.
Klicka på Lägg till utlösare under Scheman och utlösare på den högra panelen.
I Utlösartyp väljer du Tabelluppdatering.
Under Tabeller lägger du till de tabeller som du vill övervaka för uppdateringar.
Om du väljer fler än en tabell konfigurerar du ett alternativ under Utlösare när du ska ange om du vill att en jobbkörning ska utlösas när Alla tabeller uppdateras eller när Någon tabell uppdateras.
(Valfritt) Konfigurera avancerade alternativ genom att klicka på Avancerat.
- Minsta tid mellan utlösare i sekunder: Minsta tid att vänta på att utlösa en körning när en tidigare körning har slutförts. Tabeller som uppdateras under den här perioden utlöser en körning först när väntetiden har löpt ut. Azure Databricks väntar den här tiden innan en körning utlöses, även om övervakade tabeller uppdateras.
- Vänta efter senaste ändringen i sekunder: Tiden att vänta för att utlösa en körning efter en tabelluppdatering. Ytterligare tabelluppdateringar under den här perioden återställer timern. Den här inställningen kan användas när tabelluppdateringar kommer i batchar och hela batchen måste bearbetas när alla tabeller har uppdaterats.
Anmärkning
Om båda alternativen används väntar utlösaren den minsta tiden mellan utlösare och väntar sedan den angivna tiden efter den senaste ändringen. Om du till exempel har en minsta tid på 120 sekunder och en väntetid efter de senaste ändringarna på 60 sekunder utlöses inte körningen förrän minst 120 sekunder har förflutit, även om en tabelluppdatering sker inom de första 60 sekunderna. Om en uppdatering kommer in på 5 sekunder och sedan en annan vid 115 sekunder innebär väntan efter den senaste ändringen att en körning inte utlöses förrän efter 175 sekunder.
Verifiera konfigurationen genom att klicka på Testutlösare.
Klicka på Spara.
Anmärkning
Du kan också konfigurera tabelluppdateringsutlösare från jobb-API:et. Lägg till ett trigger objekt i en jobs/createåtgärd , jobs/updateeller jobs/reset .
Utlösare för tabelluppdatering vid filhändelser
För bästa prestanda och skalbarhet aktiverar du filhändelser på den externa plats där tabellerna lagras. Det här engångsinstallationssteget förbättrar effektiviteten för tabelluppdateringsutlösare och låser upp andra funktioner, inklusive mer högpresterande utlösare för automatisk inläsning och filinhämtning.
När filhändelser aktiveras spårar Databricks automatiskt inmatningsmetadata med hjälp av meddelanden om ändring av molnleverantörer, vilket resulterar i snabbare och effektivare tabelluppdateringar.
Om tabellerna finns i metaarkivets rotnivålagring konverterar du dem först till en extern plats och aktiverar sedan filhändelser på den platsen.
Jobbparametrar som är associerade med tabelluppdateringsutlösare
När du använder tabelluppdateringsutlösare för ett jobb finns det tre nya referenser för dynamiskt värde som kan användas som parametervärden i jobbet.
-
{{job.trigger.table_update.updated_tables}}– En JSON-lista över tabeller som har uppdaterats sedan den senaste jobbkörningen. -
{{job.trigger.table_update.`<catalog.schema.table>`.commit_timestamp.iso_datetime}}– den senaste commit-tidsstämpeln som utlöste jobbkörningen. -
{{job.trigger.table_update.`<catalog.schema.table>`.version}}– den senaste commit som utlöste jobbutförandet.
För commit_timestamp och versionfinns det flera versioner av referensen för dynamiskt värde. Varje tabell som övervakas har ett <catalog.schema.table> med det fullständigt kvalificerade namnet på den tabell som du vill ha data för. Om det bara finns en tabell som övervakas i utlösaren visas ett värde utan <catalog.schema.table>. Du kan till exempel använda {{job.trigger.table_update.commit_timestamp.iso_datetime}}.
Mer information om jobbparametrar finns i Parameterisera jobb.
Ta emot meddelanden om misslyckade tabelluppdateringsutlösare
Om du vill få en avisering när en utlösare för tabelluppdatering misslyckas med att utvärderas, konfigurerar du e-post- eller systemaviseringar för jobbavbrott. Se Lägg till meddelanden på ett jobb.
Begränsningar
Tabelluppdateringsutlösare har följande begränsningar:
- Du kan välja upp till 10 hanterade tabeller eller Delta-tabeller per utlösare.
- För tabeller som finns på platser utan filhändelser kan högst 1 000 jobb konfigureras med en tabelluppdateringsutlösare.
Utlösare för Unity Catalog-vyer har följande ytterligare begränsningar:
Tabelluppdateringsutlösare stöder endast övervakning av Unity Catalog-vyer eller måttvyer som är beroende av tabeller som också stöds av tabelluppdateringsutlösare. Det är viktigt att notera att följande vyer stöds inte:
- Vyer som använder
read_files(de kan läsa från en stödd tabell som läser filer, men de kan inte direkt användaread_files). - Vyer som är beroende av tabeller som inte finns i Unity Catalog.
- Vyer som är beroende av federerade tabeller.
- Vyer som använder
Det går fortfarande att skapa utlösare för vyer som innehåller beroenden som inte stöds, men inga jobbkörningar utlöses när ett beroende som inte stöds uppdateras.
Tabelluppdatering utlöser övervakning av ändringar i de beroende tabellerna i en vy. Om någon av de beroende tabellerna uppdateras, anses vyn som uppdaterad. Det är möjligt att en jobbkörning utlöses för dataändringar som filtreras bort enligt vydefinitionen.
Källtabeller för en vy räknas in mot begränsningen på 10 tabeller per trigger.
- Om en vy till exempel är beroende av 11 tabeller går det inte att använda den i en tabelluppdateringsutlösare. På samma sätt räknas en utlösare med två vyer, som var och en är beroende av 6 tabeller, som 12 tabeller.
Det finns en separat gräns på 10 beroende vyer per övervakad vy.
- Om en vy till exempel är beroende av 11 andra vyer går det inte att använda den i en tabelluppdateringsutlösare, även om detta inte bryter mot 10 tabeller per utlösarregel.