Mireo SpaceTime Cluster is a complete solution for storing, monitoring and analyzing historical and real-time moving-object data, with particular focus on massive GPS-tracking use cases.
The interface exposed to the MSQL query language is that of a federated database management system, i.e. a set of several database-like components (DBS-es) all queriable in the same way and accessible from within a single query.
All the records stored in the any of the SpaceTime Cluster components are treated the same (from the viewpoint of an MSQL query), and the data from one DBS can be joined with the data from another, as in the following query:
SELECT sum(t.len)
FROM st.trip AS t
JOIN ndb.vehicle AS v ON t.vid=v.id
WHERE v.registration_number = 'ABC123'
-- Matches static vehicle data (i.e. registration number) stored in one DBS (ndb)
-- with historical trips data stored in another DBS (st) and aggregates the results.
The specific differences of each DBS are dealt with by the MSQL query engine, which correctly and optimally plans and distributes the query execution over corresponding SpaceTime Cluster components.
The following are the database-like components of the SpaceTime Cluster available for querying from the MSQL language, with a listing of the most important data tables of each (in the GPS-tracking cluster setup):
A conventional relational SQL database for keeping infrequently-changing administrative data (such as vehicle registration numbers, customer POIs, client-selected geofence polygons etc).
Table & description | Usual schema |
---|---|
ndb.vehicle Vehicle administrative data. |
id int32 not null name varchar customer_id int32 registration_number varchar not null status int32 not null ts int64 not null opcode int8 not null |
ndb.poi Saved points-of-interest. |
id int32 not null customer_id int32 owner int32 amode int8 not null polygon_id int32 duration int32 radius int32 color int32 external_id varchar wpx int32 wpy int32 name varchar country varchar city varchar area varchar plz varchar street varchar house_no varchar type varchar phone varchar tag varchar description varchar ts int64 not null opcode int8 not null |
ndb.polygon Saved geofence polygons. |
id int32 not null name varchar customer_id int32 owner int32 points binary amode int8 not null ts int64 not null opcode int8 not null |
ndb.const_road_type Mapping between road type codes and their names. |
rtype int16 not null type_name varchar group_name varchar |
A massively scalable, distributed, disk-based storage and query execution engine designed for extremely fast insertion and querying of non-scalar data types (such as moving-objects trajectories, spatiotemporal data points etc)..
Table & description | Usual schema |
---|---|
st.segment Matched road segments crossed by vehicles |
vid uint32 not null t runixepoch not null tid uint32 not null x rint32 not null y rint32 not null v ruint16 not null sl uint8 not null flags uint8 not null style uint16 not null |
st.trip Trips driven by each vehicle |
vid uint32 not null t runixepoch not null x0 int32 not null y0 int32 not null x1 int32 not null y1 int32 not null len float32 not null stopdur uint32 not null |
st.dsensor Vehicle discrete-valued sensor data |
vid int32 not null t runixepoch not null type uint16 not null val int16 not null |
st.csensor Vehicle continuous-valued sensor data |
vid int32 not null t runixepoch not null type uint16 not null val rfloat32 not null |
A static geoinformational database for storing and querying map features, such as roads, cities, administrative areas, various points-of-interest etc. The data from this database is accessible via the following table-valued functions:
Table-valued Function | Description |
---|---|
MAP.GEOCODE_PTS | Searches the geoinformational database for point-like map features matching the given term and returns the results. |
MAP.GEOCODE_LINES | Searches the geoinformational database for linear map features matching the given term and returns the results. |
MAP.GEOCODE_AREAS | Searches the geoinformational database for areal (i.e. polygonal) map features matching the given term and returns the results. |
MAP.REV_GEOCODE | Reverse-geocodes a given (x,y) point on the map, returning its address info (country, city, street etc). |
MAP.ROUTE | Calculates the quickest route between two points on a map and returns its properties and geometry. |