Database table structure

When storing data sets in databases, all relevant information (geometry, metadata, and data values) is captured in one or more database tables containing records. The platform supports three main types of tables:

  • Tables containing static geometry, such as roads or municipalities

  • Tables containing temporal information, such as average speed per road per hour, origin-destination counts, or trips passing through road segments

  • Tables containing asset metadata, such as vehicle type, airplane callsign, or ship dimensions

For the platform to correctly understand, analyze, and visualize the database contents, each of these tables must follow a well-defined structure. The following sections describe the required and optional columns for each table type.

Each database supports its own set of data types. For example, PostgreSQL supports SMALLINT, BIGINT, FLOAT, DOUBLE, and TEXT, whereas ClickHouse uses Int16, Int32, Float32, Float64, and String.

For simplicity, this document refers to standard SQL types such as INT, REAL, and CHAR. You may use database-specific types where appropriate. Doing so can improve performance by better matching value ranges and precision, often resulting in smaller data sizes and improved compression.

The property file syntax and the supported property types are documented in more detail here.

Geometry data

Geometry tables define the static spatial features used throughout the platform.

The table below shows the supported structure of a geometry table and the columns it may contain.

Column Database type Property file type Required Description

Id

INT / CHAR

id:<type>

A unique identifier for the geometry, preferably defined as a PRIMARY KEY.

Geometry

Database-native geometry type

geometry:<geometryType>:<geometryEncoding>:<coordinateReference>

The spatial geometry of the feature (point, line, or polygon).

Geometry bounding box

Four numeric values (4-tuple of floats)

geometryBbox:<geometryType>:<geometryEncoding>:<coordinateReference>

A bounding box covering the spatial extent of the geometry. Required for databases that do not support native spatial indexes.

Other properties

INT / REAL / CHAR

<type>

Additional attributes of the geometry (for example, street name or speed limit). These properties are exposed for use in analytics.

Display name

CHAR

displayname

A human-readable name used in the UI, for example when rendering map labels.

Priority level

INT

priorityLevel:<type>

A value from 1 (most important) to 9 (least important) used to control feature visibility at different map scales.

Reverse id

INT / CHAR

reverseId:<type>

A foreign key referencing the geometry that represents the opposite direction in graph-like data sets (for example, bidirectional roads).

Start node id

INT / CHAR

edgeStartNodeId:<type>

Defines the start node of a linear geometry, used to build graph connectivity.

End node id

INT / CHAR

edgeEndNodeId:<type>

Defines the end node of a linear geometry, used to build graph connectivity.

Time series data

Time series data is stored using two tables:

  • A geometry table defining the static geometries

  • A data table containing one or more temporal records per geometry

The geometry table follows the same structure as described in Geometry data.

The following table describes the structure of the time series data table.

Column Database type Property file type Required Description

Id

INT / CHAR

id:<type>

A foreign key referencing the identifier of the geometry in the geometry table.

Timestamp

DATE / TIMESTAMP

time:<pattern>

The timestamp associated with this record.

Priority level

INT

priorityLevel:<type>

Same meaning as in the geometry table. Including it here can improve performance.

Origin id

INT / CHAR

originId:<type>

Identifies the origin feature in precomputed origin-destination time series.

Destination id

INT / CHAR

destinationId:<type>

Identifies the destination feature in precomputed origin-destination time series.

Other properties

INT / REAL / CHAR

<type>

Additional temporal attributes (for example, average speed or traffic volume). These properties are available for analytics.

Movement path data

Movement path data describes the movement of vehicles over time and requires two or three tables:

  • A geometry table defining the static geometries

  • A data table containing time-ordered records for each trip

  • An optional metadata table containing static trip information

The geometry table follows the same structure as described in Geometry data.

Movement path data table

Column Database type Property file type Required Description

Id

INT / CHAR

id:<type>

An identifier for the trip. If a metadata table is present, this is a foreign key to its identifier column.

Geometry id

INT / CHAR

geometryId:<type>

A foreign key referencing the geometry where the asset is located at the time of this record.

Timestamp

DATE / TIMESTAMP

time:<pattern>

The timestamp associated with this record.

Other properties

INT / REAL / CHAR

<type>

Additional temporal properties of the asset (for example, instantaneous speed). These are available for analytics.

Movement path metadata table (optional)

Column Database type Property file type Required Description

Id

INT / CHAR

id:<type>

A unique identifier for the trip.

Other properties

INT / REAL / CHAR

<type>

Static properties of the trip (for example, vehicle type). These are available for analytics.