MetricSign
NL|ENStart free →
Data Observability9 min·

Databricks Lakebase introduceert een nieuw failure surface dat je pipeline monitoring mist

Synced tables, scale-to-zero session drops en metrics die nul rapporteren terwijl de data er nog is. Lakebase introduceert failure modes die niet aansluiten op je bestaande Databricks monitoring.

Read this article in English →

Je monitoring stopt waar Lakebase begint

De meeste Databricks pipeline monitoring bewaakt notebook taken, Spark job voltooiingen en DLT pipeline health. Die dekking had zin toen het lakehouse de eindlaag was. Gold-layer Delta tabellen, misschien een SQL warehouse erbovenop. Lakebase verandert deze topologie. Nu voeden je gold-layer Delta tabellen synced tables die data pushen naar een managed PostgreSQL instance, en downstream applicaties bevragen dat Postgres endpoint rechtstreeks.

Dit betekent dat een succesvolle Spark job niet langer garandeert dat de data in productie actueel is. Het ETL notebook kan in drie minuten voltooien, maar als de synced table pipeline stokt door throughput limieten, schema drift of een Lakebase compute scaling event, serveert de applicatielaag stale rijen. Je Lakeflow job staat op groen. Je gebruikers zien de cijfers van gisteren.

Synced tables werken in drie modi: snapshot (volledige kopie), triggered (incrementeel op een schedule) en continuous (streaming). Elke modus heeft andere failure kenmerken. Snapshot syncs kunnen timeout raken bij grote tabellen. Triggered syncs missen hun schedule window stilzwijgend als de vorige run nog niet klaar is. Continuous syncs verbruiken continu compute en kunnen achterlopen door write amplification zonder een harde fout te geven.

De Database Table Sync pipeline task laat je synced tables koppelen aan Lakeflow Jobs DAGs, wat helpt bij orchestratie. Maar orchestratie is niet monitoring. Een task dependency zorgt voor volgorde. Het vertelt je niet of de synced table alle rijen heeft geleverd, of de latency je SLA heeft overschreden of het Lakebase endpoint bereikbaar was toen je applicatie het nodig had.

Scale-to-zero vernietigt sessiecontext zonder waarschuwing

Lakebase Autoscaling, het standaard projecttype sinds maart 2026, ondersteunt scale-to-zero. Wanneer er gedurende een configureerbare inactieve periode geen queries binnenkomen, sluit de compute volledig af. De volgende verbinding triggert een cold start. Dit bespaart kosten. Het vernietigt ook de toestand.

Wanneer compute naar nul schaalt, zijn alle tijdelijke tabellen verdwenen. Prepared statements zijn weg. Advisory locks worden vrijgegeven. NOTIFY/LISTEN kanalen sluiten. Als je applicatie een connection pool bijhoudt die persistente sessietoestand verwacht (veel ORMs en middleware lagen doen dit), raakt de volgende query na een cold start een onverwacht schone lei. Het verbindingsobject geeft misschien niet eens een foutmelding. Het maakt opnieuw verbinding, maar de sessiecontext waarop het vertrouwde bestaat niet meer.

Postgres cumulatieve statistieken worden ook gereset. Als je pg_stat_user_tables of pg_stat_statements gebruikt om queryprestaties of dead tuple ratios bij te houden, herstarten die tellers bij elk scale-to-zero event. Je verliest het vermogen om queryprestaties over inactieve periodes te vergelijken. Voor teams die vertrouwen op Postgres-native monitoring queries in Grafana of Datadog creëert dit gaps in tijdreeksen die eruitzien alsof de database gezond was terwijl die feitelijk uit stond.

Je kunt scale-to-zero uitschakelen. Maar dat doet een van de kostenvoordelen van Lakebase teniet, en veel teams realiseren de afweging pas wanneer een incident het blootlegt. Het operationele patroon is herkenbaar: een kostenoptimalisatiefunctie die observability stilzwijgend verslechtert. De oplossing is monitoren van buiten de database, data freshness bijhouden op de consumptielaag in plaats van te vertrouwen op interne Postgres metrics die verdampen.

Lakebase data delivery pad en failure surfaces Gold Delta tabel bijgewerkt door ETL Synced table pipeline leest change data Lakebase Postgres instance ontvangt schrijfacties Applicatie bevraagt Lakebase endpoint Failure surface 1: Synced table throughput lag Failure surface 2: Scale-to-zero session loss Failure surface 3: Metrics rapporteren nul bij inactief Freshness check vergelijkt bron tijdstempel vs
Lakebase data delivery pad en failure surfaces

Databasegrootte rapporteert nul terwijl terabytes op schijf staan

Het ingebouwde metrics dashboard van Lakebase bewaakt RAM gebruik, CPU, actieve verbindingen, rijoperaties, deadlocks, replication delay en databasegrootte. Dat is een redelijke set vitale statistieken. Maar één gedrag verrast teams: wanneer compute naar nul is geschaald, rapporteert de databasegrootte metric nul.

Dit klopt architectureel. Lakebase ontkoppelt compute van opslag, gebaseerd op het ontwerp van Neon. Opslag blijft onafhankelijk bestaan. Maar het metrics dashboard maakt geen onderscheid tussen 'compute is uit, opslag is in orde' en 'database is leeg'. Als je alerts hebt gebouwd op databasegrootte die onder een drempel daalt, triggert een routine scale-to-zero event het alarm. Als je die alarmen hebt onderdrukt omdat ze ruis veroorzaken, heb je het vermogen verloren om een daadwerkelijk dataverlies event te detecteren.

De throughput cijfers zijn hier ook relevant. Lakebase Provisioned schrijft synced table data op ongeveer 1.200 rijen per seconde per compute unit voor continuous en triggered modi, oplopend tot 15.000 rijen/sec/CU voor snapshot schrijfacties. Als je gold Delta tabel 50 miljoen rijen bevat, duurt een snapshot sync naar een 4-CU instance bij piekdoorvoer bijna 14 minuten. Gedurende dat venster serveert je applicatie gedeeltelijke data of stale data, afhankelijk van hoe de sync omgaat met atomiciteit.

Geen van deze timingkenmerken is zichtbaar in de Lakeflow Jobs UI. De job toont een groen vinkje wanneer de DAG task voltooit, niet wanneer de laatste rij in Postgres aankomt. Teams die freshness SLAs moeten garanderen, zeg data niet ouder dan 15 minuten voor een klantgericht dashboard, hebben een onafhankelijke check nodig die het Lakebase endpoint rechtstreeks bevraagt en tijdstempels vergelijkt met de bron Delta tabel.

Unity Catalog integratie verbergt een read-only beperking

Het registreren van een Lakebase database in Unity Catalog creëert een read-only mirror. Je Lakebase schemas, tabellen en views verschijnen in Catalog Explorer naast Delta en Iceberg assets. Je kunt ze bevragen met Databricks SQL en transactionele data samenvoegen met analytische data in dezelfde statement. Governance policies, inclusief attribute-level masking, propageren automatisch naar branches.

Dit is nuttig voor ad-hoc analyse. Het is ook misleidend voor pipeline design. De Unity Catalog registratie is read-only. Je kunt niet schrijven naar Lakebase via het UC catalog pad. Als een data engineer een Lakebase tabel ziet in Unity Catalog en een downstream notebook bouwt die probeert er INSERT naar te doen, mislukt de query. De foutmelding is niet altijd duidelijk over waarom. Het lijkt op een permissions failure, terwijl het een fundamentele architectuurgrens is.

Voor pipeline monitoring betekent de read-only beperking dat je twee afzonderlijke paden moet bewaken: het schrijfpad (synced tables die data van Delta naar Postgres pushen) en het leespad (applicaties en UC queries die uit Postgres lezen). Een failure op het schrijfpad hoeft niet zichtbaar te worden op het leespad. Oude data is er nog steeds, nog steeds bevraagbaar, nog steeds geslaagd voor schema validatie. Alleen een freshness check vangt het.

Er is ook een subtiliteit bij branching. Lakebase ondersteunt copy-on-write database branches voor testen en herstel, en masking policies volgen de branch. Maar het aanmaken van branches via API vereist een spec object met een expliciete TTL of no_expiry. Als je dat weglaat, geeft het de fout Expiration must be specified. Als je CI/CD pipeline tijdelijke Lakebase branches aanmaakt voor integratietesten, moet je met deze API vereiste omgaan, anders mislukt het aanmaken van branches stilzwijgend en draaien tests tegen productiedata.

Synced tables falen anders dan Spark jobs

Een Spark notebook faalt met een stack trace. Een DLT pipeline faalt met een expectation violation. Synced tables falen stilletjes. Dat verschil telt, want je alerting logica matcht waarschijnlijk op job failure events, en een synced table die achterloopt op zijn throughput target registreert niet altijd als een failure.

Neem de continuous sync modus. De pipeline leest change data van een Delta tabel en schrijft die naar Lakebase. Als de brontabel een burst van updates ontvangt, zeg een backfill job schrijft 10 miljoen rijen naar je gold layer, probeert de synced table pipeline bij te houden. Op 1.200 rijen/sec/CU bij een 4-CU instance is dat 4.800 rijen/sec, wat betekent dat de sync zo'n 35 minuten nodig heeft om bij te komen. Gedurende die 35 minuten serveert het Lakebase endpoint data die steeds minder stale wordt maar nooit actueel is. De pipeline faalt niet. Die draait. Maar loopt achter.

Triggered syncs hebben een ander probleem. Als een scheduled sync draait om 06:00 en de vorige run van 00:00 nog niet klaar is, hangt het gedrag af van de pipeline configuratie. In sommige gevallen staat de nieuwe run in de wachtrij. In andere gevallen wordt die overgeslagen. Geen van beide resultaten geeft een duidelijke failure alert. Je 06:00 freshness SLA haalt het of niet op basis van race conditions die je niet kunt zien in de Lakeflow UI.

MetricSign detecteert deze lag patronen door de delta te bewaken tussen tijdstempels van brontabel updates en query resultaten van het Lakebase endpoint. Wanneer een synced table achterloopt op het verwachte ritme, geeft MetricSign een refresh_delayed signaal met de gemeten lag duur, voordat je applicatieteam een ticket indient over stale data.

De operationele checklist voor je live gaat

Lakebase is een sterke toevoeging aan het Databricks platform. PostgreSQL compatibiliteit betekent dat je applicatieteam vertrouwde tooling kan gebruiken, psql, pgAdmin, standaard ORMs, zonder een nieuw query dialect te hoeven leren. Unity Catalog integratie betekent dat governance zich uitstrekt tot transactionele data zonder een apart access control vlak. Synced tables elimineren de noodzaak van custom ETL om data van het lakehouse naar een operationele store te pushen.

Maar live gaan vraagt om het dichten van monitoring gaps die het platform zelf open laat. Besluit eerst of scale-to-zero acceptabel is voor je workload. Als je applicatie persistente verbindingen of sessietoestand verwacht, schakel het dan uit. Als je het behoudt, accepteer dan dat Postgres-native monitoring metrics gaps zullen hebben en plan je observability dienovereenkomstig.

Instrumenteer ten tweede freshness checks die tijdstempels van bron Delta tabellen vergelijken met Lakebase query resultaten. Vertrouw niet op job voltooiingsstatus als proxy voor datalevering. Het schrijfpad en het leespad zijn afzonderlijke systemen met afzonderlijke failure modes.

Houd ten derde rekening met synced table throughput in je SLA berekeningen. Als je gold tabel 50 miljoen rijen ontvangt in een batch en je Lakebase instance draait 4 CUs, heb je bij piekdoorvoer zo'n 14 minuten nodig voor een snapshot sync. Tel dat op bij je ETL runtime bij het berekenen van end-to-end freshness garanties.

Verwerk ten vierde de branch aanmaak API correct in CI/CD. Geef altijd ttl, expire_time of no_expiry op in het spec object. Test het foutpad. Een ontbrekend verloopdatum veld faalt niet luid.

Lakebase vergroot de capaciteit van je data platform. Het vergroot ook de impact van fouten. Teams die hiermee succesvol zijn, bewaken het volledige pad, niet alleen de pipeline die het voedt.

Veelgestelde vragen

Garandeert een succesvolle Lakeflow job dat de data actueel is in Lakebase?+
Nee. Lakeflow job voltooiing bevestigt dat de DAG task klaar is, niet dat alle rijen zijn aangekomen in de Lakebase PostgreSQL instance. Synced tables werken asynchroon. Het schrijfpad van Delta naar Postgres heeft eigen throughput beperkingen en kan tijdens burst writes minuten of langer achterlopen op de brontabel. Je hebt een onafhankelijke freshness check nodig die Lakebase rechtstreeks bevraagt.
Wat gebeurt er met monitoring data wanneer Lakebase naar nul schaalt?+
Alle PostgreSQL cumulatieve statistieken (pg_stat_user_tables, pg_stat_statements) worden gereset naar nul. De databasegrootte metric op het ingebouwde dashboard rapporteert ook nul, ook al blijft de opslag onafhankelijk bestaan. Tijdelijke tabellen, prepared statements en advisory locks worden vernietigd. Monitoring die vertrouwt op Postgres-interne metrics vertoont gaps of misleidende nullen tijdens inactieve periodes.
Kan ik schrijven naar Lakebase via Unity Catalog?+
Nee. Het registreren van een Lakebase database in Unity Catalog creëert een read-only mirror. Je kunt Lakebase tabellen bevragen via Databricks SQL en samenvoegen met Delta of Iceberg tabellen, maar INSERT, UPDATE en DELETE operaties moeten rechtstreeks via het Lakebase PostgreSQL endpoint of via synced tables verlopen. Schrijfpogingen via het UC pad geven een permissions error.

Gerelateerde integraties

Gerelateerde artikelen