When our customers work with telemetry data from large fleets of vehicles or big deployments of sensors that move about in the world, they typically have to combine multiple Google APIs to capture, process, store, analyze and visualize their data at scale. We recently built a scalable geolocation telemetry system with just Google Cloud Pub/Sub , Google BigQuery and the Google Maps APIs . The solution comes with a full tutorial, Docker images you can use straight away and some sample data to test it with.
|The sample solution retrieves data using BigQuery and renders it as a heat map indicating density.|
We chose Google Cloud Pub/Sub to handle the incoming messages from vehicle or device sensors as it is a serverless system that scales to handle many thousands of messages at once with minimal configuration. Just create a topic and start adding messages to it.
Google BigQuery offers petabyte scale, serverless data warehousing and analytics — ideal for large fleets of vehicles that will send thousands of messages a second, year after year. Further, BigQuery can perform simple spatial queries to select by location or do geofencing on vast datasets — all in a few seconds.
The Google Maps APIs add an extra dimension to telemetry data by converting raw GPS position into human-readable structured address data, as well as adding other really useful local context such as elevation (great for fuel consumption analysis) and local time-zone (maybe you want to just see locations recorded during working hours for a given location). Google Maps also provides an interface with which the majority of your staff, customers or users are familiar.
Finally we packaged our solution using Docker so that you can just take it and start working with it right away. (Of course if you’d rather just run the code on a server or your local machine you can do this as well; it’s written in Python and can be run from the command line.)
To get started, read the solution document , then head on over to the tutorial to explore the sample application and data. Once you’ve had a play, fork the code on GitHub and start working with your own telemetry data!