Data ophalen, omvormen en doorsturen op een vast schema
Een data-pipeline is een trigger met daarachter een reeks stappen. De trigger bepaalt wanneer de pipeline draait (met een vast interval of dagelijks op een vast tijdstip); elke stap krijgt de uitvoer van zijn voorganger en kiest zelf op welke databron hij draait. Zo haal je bijvoorbeeld periodiek data op bij een extern systeem en schrijf je die in je database, of stuur je elke nacht een overzicht naar een partner.
Waar een webhook direct reageert op een wijziging in de database (push), draait een pipeline op een schema en kan hij data ook ophalen (pull) en combineren.
Instructievideo: pipeline "Zendingstatus bijwerken" die elk kwartier de status van zendingen ophaalt bij de transporteur en in het ERP bijwerkt.
Klik in het menu op Data pipelines en daarna op Nieuw. Geef een naam en omschrijving. Vink Waarschuwen bij een mislukte uitvoering aan om een e-mail te krijgen als een uitvoering mislukt.
Klap de pipeline open met het pijltje voor de naam en klik op Trigger toevoegen. Kies:
Klik op Step toevoegen en kies het type:
| Type | Wat de stap doet |
|---|---|
| Dataset ophalen | Voert een dataset uit op de gekozen databron. Parameters van de dataset worden gevuld met de velden uit de invoer. |
| Externe API aanroepen | Roept een extern endpoint aan (zie Externe endpoints). De invoer gaat als request body mee; het antwoord is de uitvoer. |
| Interne API aanroepen | Voert een API-endpoint van SQLio uit met een stored procedure of een tabel-POST, op de gekozen databron. De velden van het invoer-object worden de parameters. Ook endpoints van het type Intern (niet zichtbaar in Swagger) zijn te kiezen. |
| JSON samenstellen | Maakt nieuwe JSON op basis van een sjabloon, bijvoorbeeld om de invoer in een ander formaat te zetten of vaste velden toe te voegen. |
nl.| Instelling | Toelichting |
|---|---|
| Omschrijving | Staat in de lijst en in het logboek. |
| Databron | Bij Dataset en Interne API: de connectie-alias waarop de stap draait. Elke stap kan een andere databron gebruiken, zodat één pipeline data tussen databases kan verplaatsen. |
| Invoer van | Standaard de vorige stap. Kies een eerdere stap om diens uitvoer te gebruiken, of Geen invoer (bijvoorbeeld voor een GET zonder body). |
| Als deze step faalt | De pipeline stopt, Doorgaan naar de volgende step, of Springen naar een latere step. |
| Maximaal aantal pogingen | Bij Externe API. Leeg = de algemene instelling. 408, 429 en 5xx worden opnieuw geprobeerd; andere 4xx-fouten niet. |
| Timeout | Bij Externe API: maximale wachttijd in seconden. |
| In batches versturen | Bij Externe API: een grote lijst wordt in delen van Records per batch verstuurd. Een batch die na alle pogingen blijft falen wordt vastgelegd; de volgende gaat gewoon door. |
| Actief | Een inactieve stap wordt overgeslagen. |
zendingen voor de volgende stap.| Placeholder | Resultaat |
|---|---|
"{{input}}" |
De invoer zoals hij is: een object blijft een object, een lijst een lijst. |
["{{input}}"] |
Een lijst met de records uit de invoer. |
"{{now}}", "{{now:yyyy-MM-dd}}" |
Het begintijdstip van de uitvoering, eventueel in een eigen formaat. |
"{{runId}}" |
Het nummer van de uitvoering. |
{ "zendingen": "{{input}}" } in één veld, en verwerk hem in de stored procedure met OPENJSON.
Klik bij een stap op de afspeelknop (Deze step testen). SQLio draait de invoerstap en toont die uitvoer als invoer; je kunt hem aanpassen voordat je op Uitvoeren klikt. Je ziet het resultaat, de HTTP-status, de duur en de uitvoer.
Zet de schakelaar Actief aan. SQLio controleert eerst of alle stappen compleet zijn en plant daarna de volgende uitvoering in; die zie je in de kolom Uitvoering. Met Nu uitvoeren draai je de pipeline direct; een lopende uitvoering kun je stoppen.
Met de knop Logboek zie je elke uitvoering: starttijd, status, hoe hij gestart is (Schedule of Manual) en de duur. Klap een uitvoering open voor de stappen, met per stap de status, HTTP-code, pogingen en duur, en het verstuurde bericht en de uitvoer.
| Status | Betekenis |
|---|---|
| Geslaagd | Alle stappen zijn gelukt. |
| Voltooid met fouten | De pipeline liep door, maar een stap (of batch) faalde. |
| Mislukt | Een stap faalde en de pipeline is gestopt. |
| Overgeslagen | De stap is niet uitgevoerd, bijvoorbeeld omdat hij inactief is of door een sprong. |
| Situatie | Oorzaak en oplossing |
|---|---|
| Activeren lukt niet | Een stap is niet compleet (bijv. geen databron of endpoint). De melding noemt de stap. |
| Interne API gaf status 4xx/5xx | De stored procedure gaf een fout of kreeg de verkeerde parameters. Controleer in het logboek wat er verstuurd is en of de veldnamen overeenkomen met de parameters. |
| EXECUTE permission was denied | SQLioRole mist EXECUTE-rechten op de procedure. Laat de DBA die toekennen. |
| Menu Data pipelines ontbreekt | Pipelines zijn uitgeschakeld; een SuperUser zet ze aan via Superuser beheer. |