Data up-to-date houden¶
Het Opendatasoft-platform maakt het mogelijk om, in precies dezelfde datacatalogus, statische datasets (die slechts één keer moeten worden gepubliceerd) en live datasets (die regelmatig up-to-date moeten worden gebracht), volledig te behandelen.
Er worden twee mechanismen beschikbaar gesteld om het hernieuwen van datasets uit te voeren:
Planning bestaat erin dat een dataset met vaste tussenpozen automatisch opnieuw wordt gepubliceerd. Dit mechanisme is het nuttigst voor datasets met een bron op afstand die regelmatig up-to-date wordt gebracht.
Data wordt in real time op het Opendatasoft-platform gepusht door gebruik te maken van een speciaal API-eindpunt. Dit mechanisme is het nuttigst wanneer de data rechtstreeks wordt gestuurd door het systeem dat de datapunten produceert, zoals een computerprogramma dat cijfers van een evenement doorstuurt of een reeks sensoren die hun afleesresultaten doorsturen.
Planning gebruiken om een dataset up-to-date te houden¶
Opmerking
De beschikbaarheid van deze functionaliteit hangt af van de licentie van het Opendatasoft-domein.
Datasets kunnen met vaste tussenpozen automatisch opnieuw worden gepubliceerd.
Deze oplossing is het gemakkelijkst om te implementeren. Ze vereist geen enkele ontwikkeling, enkel een bron op afstand en enkele instellingen in de datasetconfiguratie.
Een bron op afstand toevoegen¶
Om een dataset te plannen, moet u een bron op afstand toevoegen, die gespecificeerd wordt als een URL (HTTP of FTP) naar een bestand, of een service op afstand configureren. Voor meer informatie, zie Een bestand ophalen en Een service op afstand configureren.
Planningsinterval specificeren¶
Eenmaal een dataset is opgeslagen met een bron op afstand, wordt het tabblad Planning geactiveerd:

Vanuit dit tabblad kunt u zoveel plannen toevoegen als u wilt. Bijvoorbeeld, indien dit voor u aangewezen is, zou u kunnen beslissen om te plannen dat een dataset elke maandagochtend en elke woensdagnamiddag opnieuw wordt verwerkt.
Standaard is de minimale planningsinterval een dag. Gelieve de support van Opendatasoft te contacteren indien u een planning van één minuut nodig heeft voor uw domein.
Belangrijk
Plannen zijn gedefinieerd om te lopen op de tijdzone van Parijs, Frankrijk:
In standaard tijd lopen plannen op GMT+1 (Central European Time).
In de zomermaanden lopen de plannen op GMT+2 (Central European Summer Time).
Real time data pushen¶
Opmerking
De beschikbaarheid van deze functionaliteit hangt af van de licentie van het Opendatasoft-domein.
Voor sommige types data kan het nuttig zijn om data te pushen in plaats van het meer traditionele model te gebruiken waarbij de data door het platform wordt weggehaald uit de bron. Om aan deze behoefte te beantwoorden, biedt het Opendatasoft-platform een real time push-API.
Deze mag niet verward worden met de mogelijkheid om de verwerking van een dataset te plannen. Wanneer gepland wordt, zal de dataset op periodieke basis de bron weghalen en de data die erin staan verwerken, terwijl met de push-API de dataset gevoed wordt door een applicatie via een push-API en records één voor één worden verwerkt zodra ze worden ontvangen.
Het datasetschema configureren¶
Klik in Catalogus > Datasets op de knop Nieuwe dataset.
Selecteer in de wizard die wordt geopend Realtime onder de rubriek Een service op afstand configureren.
Voer in het vakje Plan real time data enkele bootstrap-gegevens in. De gegevens zouden alle velden moeten hebben die via de API worden gestuurd.
Opmerking
De bootstrap-gegevens worden niet in de dataset gebruikt: ze hebben enkel als doel het mogelijk te maken de dataset op te zetten.
Opties Informatie en Waarschuwingsbeheer configureren.
De push-URL ophalen
De push-URL gebruiken¶
Na het configureren van de parameters van de real time bron, verschijnt een URL-pad dat een push API-sleutel bevat. Dit pad, dat aan de basis-URL van uw domein wordt gekoppeld, is waar verwacht wordt dat het platform data naar toe zal sturen na publicatie.
Er wordt verwacht dat de data verstuurd wordt in JSON-formaat: - Als een enkel JSON-voorwerp voor een enkel record - Een array van JSON-voorwerpen om meerdere records in één keer te pushen.
Een minimaal voorbeeld van het gebruik van de API voor een dataset met een enkel veld met de naam bericht
, waarbij een URL wordt gebruikt, zou zijn:
curl -XPOST <DOMAIN_URL>/api/push/1.0/<DATASET_ID>/<RESOURCE_ID>/push/?pushkey=<PUSH_API_KEY> -d'{"message":"Hello World!"}'
Dit is de eruit voortvloeiende dataset:

Een minimaal voorbeeld met dezelfde dataset, waarbij het array-formulier om meerdere records in één keer te versturen, wordt gebruikt, zou zijn
curl -XPOST <DOMAIN_URL>/api/push/1.0/<DATASET_ID>/<RESOURCE_ID>/push/?pushkey=<PUSH_API_KEY> -d'[{"message":"¡Hola Mundo!"},{"message":"Hallo Welt!"}]'
Wanneer de records correct ontvangen geweest zijn, zal de server het volgende antwoord sturen.
{
"status": "OK"
}
Wanneer er een fout is opgetreden tijdens het proberen pushen van een record, zal in het antwoord de fout gespecificeerd worden.
Opmerking
Real time push-verzoeken zijn beperkt tot een payload van 5MB. Een grotere payload zal aanleiding geven tot een fout en dient in plaats daarvan te worden opgesplitst in verschillende kleinere verzoeken.
Een veld van een type bestand pushen¶
Om een veld van het type afbeelding te pushen, moet een JSON-voorwerp dat de base64-encoded content en het MIME-type van het bestand bevat, worden opgestuurd:
{
"image_field": {
"content": "BASE64 data",
"content-type": "image/jpg"
}
}
Data updaten door het definiëren van een unieke sleutel¶
Soms is het nuttig om de bestaande records te updaten in plaats van gewoon nieuwe te pushen. Om een dergelijk systeem binnen het Opendatasoft-platform op te zetten, moeten de velden die als unieke sleutel gebruikt zullen worden, als dusdanig gemarkeerd worden.
Procedure¶
Ga als volgt te werk om velden als een unieke sleutel te markeren:
Klik in de voorbeeldweergave van het tabblad Verwerken op de knop
van het veld van uw keuze.
Selecteer Uniek ID.
Bewaar en publiceer de dataset.
Wanneer een nieuw record waarvan de sleutelwaarde gelijk is aan een bestaand record, wordt gepusht, zal het nieuwe record het oude record overschrijven.
Voorbeeld¶
Een dataset die het aantal kopieën opvolgt dat voor elk boek beschikbaar is in een openbare bibliotheek:

Veronderstel dat deze dataset twee velden omvat:
isbn
, dat het ISBN nummer van het boek vertegenwoordigtnumber_of_copies
dat het huidig aantal kopieën dat beschikbaar is in de bibliotheek opvolgt.
In dat geval zou het niet zinvol zijn om één record voor elke nieuwe waarde van number_of_copies
toe te voegen. In plaats daarvan zou het beter zijn om de nieuwe number_of_copies
waarde in te stellen voor het record dat overeenstemt met de isbn
van het boek.
In dit voorbeeld zou de unieke sleutel isbn
zijn omdat de rest van de data gekoppeld is aan individuele boeken en deze boeken geïdentificeerd worden door de ISBN.
Wanneer uw dataset isbn
als unieke sleutel heeft en deze twee records bevat:
[
{
"isbn": "978-0060589462",
"number_of_copies": 3
}, {
"isbn": "978-2862744506",
"number_of_copies": 5
}
]
Wanneer iemand een kopie van Zen en the Art of Motorcycle Maintenance leent en u het volgende record pusht:
{
"isbn": "978-0060589462",
"number_of_copies": 2
}
U zal nog steeds twee records hebben, waarbij het eerste up-to-date wordt gebracht met de nieuwe waarde.

Data verwijderen¶
Er zijn twee eindpunten die het mogelijk maken om gepushte records te verwijderen. Eén dat de waarden van records gebruikt en één dat het record-ID gebruikt.
Data verwijderen door recordwaarden te gebruiken¶
Om een record, waarvan u de waarden van de recordvelden kent, te verwijderen, POST het record alsof u dit voor de eerste keer zou toevoegen, maar vervang /push/
door /delete/
in de push-URL. Wanneer uw push URL-pad /api/push/1.0/<DATASET_ID>/<RESSOURCE_ID>/push/?pushkey=<PUSH_API_KEY>
is, gebruik dan in plaats daarvan /api/push/1.0/<DATASET_ID>/<RESSOURCE_ID>/delete/?pushkey=<PUSH_API_KEY>
.
Hier is een minimaal voorbeeld om het record dat we eerder hebben gepusht, te verwijderen:
curl -XPOST <DOMAIN_URL>/api/push/1.0/<DATASET_ID>/<RESOURCE_ID>/delete/?pushkey=<PUSH_API_KEY> -d'{"message":"Hello World!"}'
Data verwijderen door het record-ID te gebruiken¶
Wanneer u het record-ID van het record dat u wilt verwijderen, kent, doe dan gewoon een GET-aanvraag aan de push URL door /push/
te vervangen door /<RECORD_ID>/delete/
:
curl -XGET <DOMAIN_URL>/api/push/1.0/<DATASET_ID>/<RESOURCE_ID>/<RECORD_ID>/delete/?pushkey=<PUSH_API_KEY>
Krijg een bericht in geval van inactiviteit¶
Wanneer u verwacht dat een systeem vaak data naar het platform zal pushen, is het mogelijk dat u hiervan in kennis wordt gesteld wanneer er al een tijdje geen record werd ontvangen door het platform.
Voer de volgende stappen uit om in kennis te worden gesteld:
Klik in Catalogus > Datasets op de gewenste dataset.
Klik op Waarschuwingsbeheer.
Configureer in het dialoogvenster dat wordt geopend de waarschuwingsparameters:
Selecteer het aanvinkvakje Waarschuwen.
Voer een tijddrempel in minuten in in het aanvinkvakje Inactiviteitswaarschuwing.
Wanneer een periode verstreken is die langer is dan de drempel en waarin geen enkel record werd ontvangen, ontvangt u een e-mail.
De publicatie van de API ongedaan maken en deze deactiveren¶
Wanneer u de publicatie van uw dataset ongedaan maakt, worden bestaande records niet bijgehouden voor de volgende keer dat de dataset wordt gepubliceerd.
Voer de volgende stappen uit om te voorkomen dat u nieuwe data krijgt:
Klik in Catalogus > Datasets op de gewenste dataset.
Hiermee wordt voorkomen dat het gebruik van de push API geen impact zal hebben op bestaande data. Wanneer data worden gepusht terwijl push gedeactiveerd is, zullen geen data worden toegevoegd en zal er een fout worden gestuurd.
Data recupereren¶
In geval van verlies van data, bijvoorbeeld wanneer de publicatie van de dataset ongedaan werd gemaakt of wanneer een processor verkeerd werd geconfigureerd, is er een mogelijkheid om de verloren gegane records te recupereren.
Van elk ontvangen record wordt een back-up gemaakt en deze zal in aanmerking komen om te worden gerecupereerd.
Voer de volgende stappen uit om records te recupereren die in aanmerking komen: