Ingestie met Auto Loader en Lakeflow Connect
In deze les ga je
- Per brontype kiezen tussen Auto Loader, Lakeflow Connect of een streamingbron
- Uitleggen hoe de checkpoint exactly-once bestandsverwerking geeft
- Een landingszone ontwerpen als contract met een leverancier
- Vooraf bepalen wat elke schemawijziging doet
Haal data één keer binnen, en maar één keer
Ingestie lijkt eenvoudig: bestanden komen binnen en je leest ze. Dan stuurt een bron hetzelfde bestand twee keer, voegt op een vrijdag een kolom toe of valt drie dagen stil en stuurt maandag alles. Een goed ingestieontwerp overleeft alle drie zonder dat er iemand achter het toetsenbord zit.
In deze les kiezen we de juiste tool per brontype, leggen we uit hoe Auto Loader bestanden bijhoudt en stellen we regels op voor schemawijzigingen en landingszones. Transformatielogica behandelen we niet. Die hoort in silver en les 3 behandelt haar.
Kies de tool op brontype
Databricks biedt twee beheerde routes naar de lakehouse.
| Bron | Tool | Waarom |
|---|---|---|
| Bestanden die in cloudopslag of een volume landen (JSON, CSV, Parquet, Avro, tekst) | Auto Loader | Incrementele verwerking van bestanden met exactly-once en schemabeheer |
| Databases, SaaS-applicaties, zakelijke bestandsbronnen | Lakeflow Connect | Beheerde connectoren die beheerde, incrementele ingestiepipelines maken |
| Berichtenbussen en eventstromen | Structured Streaming-bron of een streamingconnector | Continu lezen met checkpoints |
Lakeflow Connect is de beheerde ingestieservice. De documentatie groepeert connectoren op brontype: databaseconnectoren met change data capture (bijvoorbeeld MySQL, PostgreSQL en SQL Server), querygebaseerde databaseconnectoren, SaaS-connectoren (bijvoorbeeld Salesforce, HubSpot, Jira en Workday), bestandsconnectoren (bijvoorbeeld Google Drive en SharePoint), streamingconnectoren en community- of eigen connectoren. Pipelines worden beheerd door Unity Catalog en draaien op serverless compute, en na de eerste volledige load lezen ze alleen wijzigingen. De documentatie zegt dat connectoren in verschillende releasestatussen zitten en verwijst naar een pagina over releasetypen. Controleer dus de status van de exacte connector voor je een productiedatum belooft.
Gebruik de beheerde connector als er een bestaat voor je bron. Je hoeft dan geen eigen extractiecode te schrijven en te beheren, het onderdeel van een pipeline dat het vaakst breekt.
Hoe Auto Loader werkt
Auto Loader is een Structured Streaming-bron met de naam cloudFiles. Gegeven een invoerlocatie verwerkt hij nieuwe bestanden zodra ze binnenkomen. Drie mechanismen tellen.
Checkpoint. Auto Loader bewaart metadata over de ontdekte bestanden in een RocksDB-key-valuestore op de checkpointlocatie. Dat geeft je exactly-once-verwerking: na een storing hervat de stream vanuit de bewaarde state en leest hij al verwerkte bestanden niet opnieuw. Verwijder of deel een checkpoint nooit achteloos. Een nieuwe checkpoint betekent alles opnieuw lezen.
Modus voor bestandsdetectie. Directory listing is de standaard. De bestandsnotificatiemodus met file events voorkomt dat een grote map wordt afgelopen en verlaagt cloudkosten. De documentatie zegt dat Databricks de bestandsnotificatiemodus met file events aanbeveelt voor de meeste workloads. Voor een landingsmap met een bescheiden aantal bestanden is de standaard prima om mee te beginnen.
Schemabeheer. Auto Loader kan het schema afleiden, schemadrift detecteren, je waarschuwen bij schemawijzigingen en data redden die anders wegvalt. In Lakeflow-pipelines stel je zelf geen schemalocatie of checkpointlocatie in, omdat de pipeline ze beheert.
Illustratie
# Schematische Auto Loader-lees- en schrijfactie. Optienamen kunnen per runtimeversie veranderen,
# controleer dus de Auto Loader-optiereferentie voor gebruik.
df = (
spark.readStream
.format("cloudFiles")
.option("cloudFiles.format", "json")
.option("cloudFiles.schemaLocation", "/Volumes/dev_sales/landing/_schemas/orders")
.load("/Volumes/dev_sales/landing/orders/") # het landingsvolume
)
(
df.writeStream
.option("checkpointLocation", "/Volumes/dev_sales/landing/_checkpoints/orders")
.trigger(availableNow=True) # verwerk wat er ligt en stop dan
.toTable("dev_sales.bronze.orders_raw")
)De availableNow-trigger is een goede standaard voor geplande ingestie: hij verwerkt alles wat is binnengekomen en stopt dan, zodat de job alleen compute kost terwijl hij werkt. Draai voor lage latency de stream continu en accepteer de hogere kosten.
Landingszones als contract
Behandel de plek waar bestanden binnenkomen als een contract met de leverancier.
- Eén volume of map per bron en entiteit. Gemengde formaten in één map laten schema-inferentie raden.
- Onveranderlijke bestanden. Een leverancier die een bestand overschrijft, breekt de exactly-once-logica. Spreek nieuwe bestandsnamen af voor elke levering, bijvoorbeeld met een tijdstempel.
- Schrijven voor de leverancier, lezen voor engineers. De ingestie-identiteit leest de landingszone. Leveranciers schrijven erin met een afgebakende identiteit en kunnen de bestanden van andere leveranciers niet lezen.
- Privénetwerkpaden. Storage accounts krijgen private endpoints en publieke toegang blijft uit, zoals in onze delivery standards.
- Een bewaarregel. Bepaal hoe lang ruwe bestanden blijven. Bronze mag de data bevatten, maar bestanden in landing zijn nog steeds persoonsgegevens als de inhoud dat is.
Schemawijzigingen zonder paniek
Bronnen veranderen. Bepaal vooraf wat elke soort wijziging doet.
| Wijziging | Aanbevolen gedrag |
|---|---|
| Nieuwe kolom | Vastleggen, met een alert. Schema-evolutie of de gerescue-datakolom bewaart het record |
| Typewijziging | Bewaar de ruwe waarde in bronze, markeer hem en herstel de cast in silver |
| Verwijderde kolom | De waarde wordt null. Expectations in silver (les 3) bepalen of dat acceptabel is |
| Beschadigd bestand | Zet het bestand in quarantaine, ga door met de run en waarschuw de eigenaar |
Het principe uit les 1 helpt hier: bronze blijft los, silver dwingt af. Een bron die een type wijzigt, breekt dan een silver-expectation die dat meldt, en niet je ingestie.
Metadata die je altijd toevoegt
Voeg laadmetadata toe in de bronze-laag: het bronbestandspad, het laadtijdstip en een batch- of run-identificatie. Het kost vrijwel niets en het is het eerste wat je nodig hebt als iemand vraagt: "waar komt deze rij vandaan?".
Veelgemaakte fouten
- Eigen incrementele logica schrijven terwijl er een beheerde connector bestaat.
- Eén checkpoint delen tussen twee streams.
- Geleverde bestanden overschrijven en je afvragen waarom er data ontbreekt.
- Het schema ongemerkt laten veranderen zonder alert.
- Full refresh als gewoonte. Het verbergt een ontwerpprobleem en kost bij elke run compute.
Samenvatting
Gebruik Lakeflow Connect voor databases en SaaS-bronnen, Auto Loader voor bestanden. Behandel de landingszone als contract met onveranderlijke bestanden en afgebakende identiteiten. Houd bronze los, voeg laadmetadata toe en bepaal vooraf wat elke schemawijziging doet.
Volgende les: declaratieve pipelines, waar ingestie en transformatie samenkomen.
Het idee in één schema
Twee beheerde routes naar bronze
- Bestanden in een volumeAuto Loader
- Databases en SaaSLakeflow Connect
- Checkpoint en schemabeheer
- Bronze-tabelMet laadmetadata
Kenniscontrole
Beantwoord elke vraag. Je ziet meteen de reden achter elk antwoord.
0 van 3 beantwoord
Praktisch lab
Doel. Lees batches JSON-bestanden in bronze in met Auto Loader en zie dat elk bestand één keer wordt verwerkt.
Waar je het draait
Databricks Free Edition Draai dit lab in een gratis Databricks-workspace. Meld je aan met je eigen e-mailadres.
Stappen
- Maak een volume voor landing, schema's en checkpoints in een schema waarin je mag schrijven.
- Schrijf in een notebook drie kleine JSON-bestanden naar de landingsmap, elk met een andere leverdatum in de naam.
- Pas de Auto Loader-listing uit de les aan op je paden en draai hem met de availableNow-trigger.
- Voeg een vierde bestand toe met één extra kolom. Draai opnieuw en bekijk wat er met de nieuwe kolom en het rijaantal gebeurt.
- Draai nog eens zonder nieuwe bestanden en bevestig dat er geen rijen bijkomen.
Verwacht resultaat
Elk bestand wordt één keer verwerkt. De nieuwe kolom wordt behandeld volgens de schema-instellingen die je koos en een tweede run zonder nieuwe bestanden voegt niets toe.
Verdiepen
Officiële documentatie en aanbevolen cursussen van de aanbieders.
- Databricks
- Gratis met account
- Databricks Academy-account
- Beginner
Databricks Fundamentals
De snelste manier om de basis van het platform te bevestigen voor je een rolcursus start, met een badge als afronding.
Open cursus : Databricks Fundamentals. Opent de site van de aanbieder in een nieuw tabblad
- docs.databricks.com
Auto Loader
- docs.databricks.com
Lakeflow Connect
Open de documentatie : Lakeflow Connect. Opent bij de aanbieder
Lees bij NexOps
Artikelen uit onze eigen projecten over hetzelfde onderwerp.
Bronnen
Laatst gecontroleerd 2026-11-11
We controleren elke bron aan de hand van de officiële documentatie. Producten veranderen, dus bevestig details daar voordat je bouwt.