Data platform

Datasources: complete documentatiehub

Datasources verbinden Dashview met databases, API's, files en Elements. Deze hub is opgesplitst in referentiepagina's voor connectorvelden, element-transforms en metadata zodat alle instellingen per onderdeel overzichtelijk terug te vinden zijn.

1. Standaard workflow

  1. Ga naar Administration → Data Sources.
  2. Kies of je een standaard datasource, een custom datasource of een direct gepubliceerd data-Element wilt gebruiken.
  3. Maak een datasource met unieke ID en kies connector type.
  4. Voor lokale bronbestanden kies je connector type file, sla je eerst de datasource op, en upload je daarna één of meer CSV/JSON/NDJSON/parquet of logbestanden.
  5. Na upload leest Dashview die bestanden uit tenant-scoped GCS-opslag als gewone datasource; gebruik daarna Refresh schema zodat kolommen en metadata zichtbaar worden in de editor.
  6. Of publiceer een Element van type data of stream_data; dat verschijnt daarna direct als datasource in dashboards, filters en query console.
  7. Of maak een custom datasource en bouw die visueel op uit bestaande datasources via bronnen, joins, filters, casts, aggregaties en andere flow-nodes.
  8. Vul connectorvelden in (auth, query/request, response).
  9. Gebruik Refresh schema om kolommen op te halen.
  10. Stel column metadata en agenttoegang per kolom in.
  11. Voeg optioneel een of meer element-transforms toe en test het resultaat daarna eerst in een eenvoudige dashboardwidget.
Datasources overzicht
  • De lijst toont ID, type en rijacties voor beheer van alle tenantdatasources.
  • Gebruik dit scherm om bronnen aan te maken, te dupliceren of op te schonen.
  • Open pas de editor nadat je duidelijk hebt welk connectortype en welke scope nodig zijn.
Dit overzicht is het centrale startpunt voor datasourcebeheer.
Connector-editor
  • Na keuze van het connectortype verschijnen alleen de relevante velden voor die bron.
  • Hier vul je query's, credentials, requestparameters en response-instellingen in.
  • Gebruik schema-refresh pas nadat de kernvelden geldig zijn ingevuld.
De editor is dynamisch; niet elke datasource toont dus dezelfde configuratiesecties.

2. Globale datasource settings

Key Type Beschrijving
idstringUnieke datasource ID.
typestringConnector type.
descriptionstringFunctionele beschrijving.
dataFormatparquet-remote/parquet-remote-view/jsonTransport/storage mode.
refreshModecached/realtimeCache of live refresh per request.
autoRefreshSecondsnumberAchtergrond refresh interval.
parquetRefreshScheduleobjectOptionele scheduler-config voor automatische parquetrefresh op cached remote-parquet datasources.
filesarrayVoor type file: metadata van geuploade GCS-bronbestanden.
fileFormatstringVoor type file: parseroverride of auto-detect voor uploadbestanden.
incrementalobjectCheckpointconfig voor parquetrefresh, inclusief timestampkolom, lookback overlap, write mode en optionele merge keys.
transformobjectEnkele element-transformspec (type: "element").
transformsarrayPipeline van element-transformspecs.
allowAgentsbooleanDatasource beschikbaar voor Dashbot/agents.
allowedUserFiltersarrayAllowlist filterkeys voor user-scoped filtering.
columnsMetaarrayKolomlabels/types/descriptions + allowAgent.

Parquetrefresh incremental merge

  • Zet Incremental parquet refresh aan op remote parquet datasources wanneer de bron een betrouwbare timestampkolom heeft.
  • Kies een checkpointkolom en optioneel een lookback overlap om late rows nog mee te nemen.
  • writeMode: "replace" publiceert alleen de delta van de laatste refresh.
  • writeMode: "merge" leest eerst de huidige parquet-cache en schrijft daarna oud + nieuw samen weg als nieuwe immutable revisie.
  • Voeg optioneel mergeKeys toe om merge keyed upsert/deduping te laten doen. Dashview houdt dan per sleutel één rij over en kiest normaal de nieuwste op basis van de incremental timestampkolom.
  • Zonder mergeKeys blijft merge append-style en worden oude en nieuwe rijen alleen samengevoegd.

Geplande parquet-refresh

  • Remote parquet datasources in refreshMode=cached kunnen een eigen parquet-refreshschedule krijgen in de datasource-editor.
  • Gebruik dit wanneer de parquet-cache op vaste tijden moet vernieuwen zonder dat iemand handmatig op Parquet refresh klikt.
  • De scheduler gebruikt daarvoor dezelfde parquetrefresh-job als de handmatige datasource-actie.
  • De schedule-sectie ondersteunt tijdzone, frequentie en een cron-preview; voor gevorderde gevallen kun je ook een aangepaste cron opgeven.
  • Schakel deze instelling alleen in op bronnen waarvan gecachede parquet-output echt de gewenste runtime-modus is; JSON- of realtime-datasources horen hier niet thuis.

Parquetrefresh uitvoering en kosten

  • Volledige tenant-refreshes plannen nog steeds één work item per datasource.
  • De gedeployde parquetrefresh-workerpool heeft normaal een cap, waardoor een grotere tenant-refresh alsnog met minder worker-tasks dan datasources kan draaien.
  • Die cap beperkt herhaalde Cloud Run-startup overhead en verlaagt de druk op connectors, databases en BigQuery tijdens brede tenant-refreshes.
  • Verhoog de worker-cap alleen wanneer kortere doorlooptijd belangrijker is dan de totale refresh-kosten.

File datasources

  • Gebruik connector type file wanneer de bron letterlijk uit geuploade bestanden moet bestaan in plaats van uit BigQuery, SQL of een API.
  • De uploadsectie slaat tenant-scoped bestanden op in GCS bucket dashview-datafiles en bewaart alleen metadata in de datasource-doc.
  • Ondersteund zijn in ieder geval CSV, TSV, pipe-separated, JSON, NDJSON/JSONL, parquet, logfmt, Apache common/combined logs, platte tekstregels en gzip-varianten daarvan.
  • Met fileFormat = auto gebruikt Dashview extensie + contentsniffing; zet een expliciete parser als de bestandsnaam misleidend is.
  • In recordsPath kun je bij JSON aangeven waar de rij-array zit. Met includeFileMetadataColumns voeg je helperkolommen toe zoals __file_id, __file_name, __file_path en __file_format.
  • Wanneer je meerdere bestanden uploadt, combineert Dashview alle rijen in één datasource-resultaat. Het gedrag is dus vergelijkbaar met UNION ALL, niet met aparte tabellen per bestand.
  • Kolommen worden samengevoegd over die gecombineerde rijen. Bestanden hoeven dus niet exact dezelfde kolommen te hebben, maar het is wel verstandiger wanneer gedeelde velden ook echt dezelfde betekenis en parserinstellingen hebben.
  • Praktisch voorbeeld: een eerste bestand met Locatie/Omzet en een tweede bestand met Klant/Omzet levert één datasource op waarin sommige rijen alleen locatievelden hebben en andere rijen alleen klantvelden.
  • Gebruik Refresh schema opnieuw nadat je bestanden toevoegt, vervangt of verwijdert. De schemaweergave is gebaseerd op de actuele uploadset.
  • Gebruik daarna Parquet refresh wanneer dashboards of query console op de parquet-cache moeten werken met de nieuwste uploadset.
  • Deze datasource gedraagt zich verder als elke andere datasource: widgets, query console, parquetrefresh en forced filters blijven gewoon gelden.
  • Let op bij CSV-achtige bestanden: auto-detect probeert delimiter en formaat te herkennen, maar een expliciete delimiter of parser is veiliger wanneer je mixen hebt zoals puntkomma-CSV naast komma-CSV.

Directe Element-datasources

  • Gepubliceerde Elements met kind data of stream_data zijn direct bruikbaar in dashboards zonder eerst een aparte datasource aan te maken.
  • Gebruik dit voor snelle herbruikbare dashboardbronnen uit Python.
  • Maak alsnog een expliciete datasource aan wanneer je extra connectorconfig, scheduling, parquet-refresh of andere datasource-specifieke instellingen nodig hebt.

Custom datasources

  • Een custom datasource is een normale datasource-doc van type custom die opgebouwd wordt uit andere datasources.
  • Gebruik de visuele flow-editor om bronnen te combineren met joins, unions, filters, sortering, casts, formules, aggregaties en advanced family-nodes.
  • De flow is de bron van waarheid. Dashview compileert die flow naar SQL en toont die SQL in dezelfde editor voor gevorderde gebruikers.
  • Gebruik de visuele builder voor structuur en hergebruik; gebruik de SQL-weergave vooral om te controleren wat de flow oplevert, niet als los tweede model dat je handmatig moet onderhouden.
  • Custom datasources gedragen zich verder als gewone datasources in widgets, filters, query console en parquet-refresh.
  • Runtime-uitvoering loopt via dezelfde backend-querylaag als andere datasource-calls. Je hoeft dus geen aparte publicatie- of deploymentstap te doen om een custom datasource bruikbaar te maken.
  • Bronrechten blijven gelden per onderliggende datasource. Een custom datasource mag dus nooit tenantscope, gebruikersrechten of forced filters omzeilen.
Transforms en agenttoegang
  • De transformsectie toont een enkele stap of een volledige pipeline van Elements.
  • Hier beheer je ook agenttoegang en toegestane user-filters voor de datasource.
  • Controleer deze sectie extra goed wanneer Dashbot of widgets onverwachte output geven.
Deze instellingen bepalen zowel datavorm als wie de bron mag inzetten.
Kolommetadata
  • Per kolom kun je labels, types, beschrijvingen en agentrechten vastleggen.
  • Gebruik duidelijke labels zodat widgets, filters en Dashbot leesbare veldnamen tonen.
  • Bescherm gevoelige kolommen door agenttoegang hier selectief uit te zetten.
Kolommetadata vertaalt ruwe brondata naar iets wat eindgebruikers en AI veilig kunnen begrijpen.

3. Detailpagina's

4. Troubleshooting