MobilityDB: Managing Spatiotemporal Data in PostgreSQL
I am a researcher and teacher in the Computer and Decision Engineering department of the Université Libre de Bruxelles, since 2015. My main research is on designing and building moving object database system. I have received a Dr.rer.nat (2012) in Computer Science and Information Systems from FernUni-Hagen, Germany.
Esteban Zimányi is a full professor and the director of the Department of Computer & Decision Engineering (CoDE) at ULB. He started his studies at the Universidad Autónoma de Centro América, Costa Rica. He received a B.Sc. (1988) and a doctorate (1992) in computer science from the Faculty of Sciences at the ULB. During 1997, he was a visiting researcher at the Database Laboratory of the Ecole Polytechnique Fédérale de Lausanne, Switzerland. He co-authored and co-edited 16 books, 18 book chapters, 19 articles in international journals, and 82 papers in international conferences. He is coordinator of the BDMA and IT4BI-DC Erasmus Mundus programmes. He is Editor-in-Chief of the Journal on Data Semantics published by Springer. His current research interests include spatio-temporal databases, data warehouses, geographic information systems, and semantic web.
MobilityDB is an open source moving object database system (https://github.com/ULB-CoDE-WIT/MobilityDB). Its core function is to efficiently store and query mobility tracks, such as vehicle GPS trajectories. It implements the Moving Features specification from the Open Geospatial Consortium (OGC). MobiltyDB is engineered up from PostgreSQL and PostGIS, providing spatiotemporal data management via SQL. It thus integrates with the postgreSQL eco-system allowing for complex architectures such as cloud deployments.
The presentation explains our experience in using the extensibility features of PostgreSQL to build MobilityDB: types, operations, indexes, aggregations, optimizer statistics, and selectivity functions. In particular, MobilityDB implements types for temporal geometry and geography points, to represent objects that move in the 2D and 3D space. In order to represent their time varying properties, such as the speed and the time varying topological relationships, it also implements types for temporal floats, temporal Booleans, etc. The GiST and SP-GiST indexes are extended to support these types, as well as the optimizer statistics. The operations on temporal types consist of two types: static operations that yield non-temporal types, and time varying operations that yield temporal types. The same applies for temporal aggregations.
MobilityDB is thus a vertical extension that spreads over most of the data management layers of PostgreSQL. The talk focuses on the extensibility features of PostgreSQL, that made it possible. We also highlight the missing extensibility features that we would like to have. This presentation will be of special interest to the PostgreSQL developer community, and to professionals in the mobility data management domain.
This presentation builds on our talks in PGConf.ru 2019, FOSS4G Belgium 2019, FOSEDM PGDay 2020, and PGConf.ru 2020.
- 50 min
- Postgres Conference 2020