Arrays and objects

Store and query string arrays, integer arrays, objects, object arrays, and JSON safely across warehouses.

Last verified 2026-08-02

Structured fields let a record keep repeated or nested values without converting them into display text.

Arrays

Use string_array for values such as tags or scopes and integer_array for repeated whole numbers.

{
  "tags": ["security", "production"],
  "ports": [443, 8443]
}

The runtime preserves supported arrays through BigQuery, ClickHouse, Snowflake, and Elasticsearch/OpenSearch adapters.

Analytics can return an array as native JSON or as joined text with a configured separator. Runtime array filters support:

OperatorMeaning
containsThe array contains one value
not_containsThe array does not contain one value
contains_anyAt least one requested value is present
contains_allEvery requested value is present

Objects

An object contains one JSON key-value structure. Analytics can reference an explicit dotted path such as device.id when the underlying adapter supports the defined operation.

{
  "device": {
    "id": "dev_123",
    "os": "linux"
  }
}

Arrays of objects

object_array preserves repeated objects losslessly:

{
  "hops": [
    { "ip": "192.0.2.10", "latency_ms": 12 },
    { "ip": "192.0.2.11", "latency_ms": 18 }
  ]
}

ReportPlane does not currently allow analytics grouping or filtering over object_array. Different warehouses use different explode/unnest semantics, and ReportPlane refuses to produce silently different results.

Was this page helpful?Send feedback