temperature=28.9,rssi=-70,status=online at one timestamp. The next sample from another device might omit rssi and add battery. You do not declare those keys as schema up front.
The API modality is point.
→ All modalities
When to use it
Use point when- Firmware emits different measurement keys per device, version, or vendor.
- You do not want a promotion ladder or a frozen column list.
- You will extract keys at query time (
temperature,rssi, …) rather than treat each metric as a first-class catalog field.
hot_cold after promotion.
Do not use point for current configuration, shadows, or anything you will update. It is append-only. Use state or mutable.
Point is a cloud create choice. Edge sync attach maps telemetry / timeseries to a telemetry dataspace, not point. Create a point dataspace yourself if you want this shape.
Backing store
Point lives in ClickHouse as aMergeTree, same append family as telemetry.
The measurements column is JSON, not a native map type. That is what makes Parquet cold storage possible. A ClickHouse
Map of dynamic values cannot round-trip to Parquet; JSON can.
Why map does not promote
Telemetry climbs jsonb → hybrid → typed because named fields become columns. Point starts uniform and stays uniform: every new key is another entry in the same JSON object. There is no per-key catalog promotion.
That is also why point can take tiering: hot_cold immediately. The layout is already schema-stable. Telemetry must freeze to typed first.
Surprise keys never orphan a point batch — they join the measurements object. Typed-layout orphaning does not apply.
Meta columns
Same as telemetry:
User measurements live in the map, not as sibling typed columns (unless you later expose extracted keys through a read-view projection).
Time window, tiering, storage class
Same ingress rules as telemetry:event_tsmore than one day in the future → dropped-rows (future).- Late history → dropped only when
hot_coldis on. - Hot-only point dataspaces accept old backfill.
Events, APIs, and edge
- No per-insert events. Query the dataspace.
- No HTTP row CRUD. There is no current-row identity.
- No
edge_sqlitesync target. Upsync-only, same as telemetry. Attaching bidirectional sync is rejected.
read_view. Extract keys from the measurements JSON in the query (the read gateway can push down filters and aggregates on projected keys).
Create
Related
- Dataspaces overview
- Schema and layouts
- Storage
- Telemetry — named columns and promotion
- API introduction