Data Model

The Concourse data model is lightweight and flexible. It can support any kind of data at very large scales. Concourse trades unnecessary structural notions of schemas and tables for a more natural modeling of data based solely on the following concepts:

  • Record - A logical grouping of data about a single person, place or thing (i.e. an object). Each record is a multimap of key/value associations that are together identified by a unique Primary Key. 

  • Key - An attribute that maps to one or more distinct values. A record can have many different keys. And the keys in one record do not affect the keys in any other record.

  • Value - A dynamically typed quantity that is mapped from a key in a record.

Data Types

Concourse natively stores boolean, double, float, integer, long and string (UTF-8) data.

Concourse supports the ability to link one record to another. This is accomplished by adding the primary key of the destination record as a value to a key in the source record.