Datasource reference

Transforms reference (Element-based)

Datasource transforms draaien nu via Elements. Built-in transform types zijn verwijderd; gebruik altijd type: "element" met een gepubliceerde Element ID.

1. Transform pipeline model

KeyTypeBeschrijving
transformobjectEnkele transformspec.
transformsarrayMeerdere specs in vaste volgorde.
typestringMoet element zijn.
paramsobjectElement- en transformconfiguratie.

Belangrijk

  • Gebruik transform of transforms; niet beide tegelijk in nieuwe configuraties.
  • Elke spec in de pipeline moet type: "element" hebben.
  • Transforms worden sequentieel toegepast: output van stap N wordt input van stap N+1.

2. Element transform spec

Pad Type Required Beschrijving
typestringYesAltijd element.
params.elementIdstringYesGepubliceerde Element ID.
params.transformParamsobjectNoConfig die als transform-params naar het element gaat.
params.elementVersionstringNoLeeg = latest published.
params.elementEntrypointstringNoDefault run.
params.elementTimeoutSecondsnumberNoExecution timeout per stap.
params.elementParamsobjectNoStatische extra params naast rows/transformParams.
params.includeRequestQueryParamsbooleanNoForward query params naar element.
params.allowedRequestParamsarrayNoAllowlist voor door te geven query params.
params.requestParamMapobjectNoRename van inkomende query params.
params.maxInputRowsnumberNoBegrens ingestuurde inputrows per stap.
params.selectFieldsarrayNoProjecteer eerst alleen deze velden.

3. Runtime contract en execution-pad

Datasource transform configuratie
Transforms worden geconfigureerd in de datasource editor.

Wat krijgt het Element?

  • params.rows: inputrows van de huidige pipeline stap.
  • params.transformParams: jouw transformconfiguratie.
  • context: tenant/element/version metadata.

Wat moet het Element returnen?

  • Return een lijst met rows (array van objecten).
  • Return niet alleen metadata; output moet querybare rows bevatten.
  • Als interne helper (rows, info) teruggeeft, laat je run() alleen rows returnen.

Performance path (parquetrefresh)

  • Inputrows worden niet meer als grote inline JSON meegestuurd.
  • Parquetrefresh spooled input als NDJSON naar GCS en geeft een rowsRef mee.
  • Elements executor leest rowsRef en streamt resultaat terug naar parquetrefresh.

Veelvoorkomende errors

  • Transform type is required.: ontbrekende type in spec.
  • Unknown transform '...'. Built-in transforms are removed; use type 'element'.
  • element transform requires params.elementId: geen elementId gezet.
  • storage.objects.get denied: executor SA mist bucket read rechten op transform spool bucket.
  • [object Object] output: element returnt geen pure rows-array.

4. Voorbeelden

Single transform

{
  "transform": {
    "type": "element",
    "params": {
      "elementId": "predict_session_pattern_trend",
      "transformParams": {
        "timeField": "date",
        "valueFields": ["revenue"],
        "patternFields": ["network", "program"],
        "horizonDays": 30
      }
    }
  }
}

Pipeline met twee Elements

{
  "transforms": [
    {
      "type": "element",
      "params": {
        "elementId": "normalize_sessions",
        "transformParams": {
          "timeField": "event_time"
        }
      }
    },
    {
      "type": "element",
      "params": {
        "elementId": "predict_weekly_trend",
        "transformParams": {
          "timeField": "date",
          "valueField": "revenue",
          "horizonWeeks": 8
        }
      }
    }
  ]
}

Compatibiliteit (legacy opgeslagen shape)

Oude opgeslagen objecten met extra nesting (bijv. {"transform": {"transform": ...}}) worden nog gelezen, maar nieuwe configuraties moeten direct de canonical vorm hierboven gebruiken.