Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Processing and publishing Maritime AIS data wit...

Processing and publishing Maritime AIS data with GeoServer and Databricks in Azure - FOSS4G EU 2025

The amount of data we have to process and publish keeps growing every day, fortunately, the infrastructure, technologies, and methodologies to handle such streams of data keep improving and maturing. GeoServer is an Open Source web service for publishing your geospatial data using industry standards for vector, raster, and mapping. It powers a number of open source projects like GeoNode and geOrchestra and it is widely used throughout the world by organizations to manage and disseminate data at scale. We integrated GeoServer with some well-known big data technologies like Kafka and Databricks, and deployed the systems in Azure cloud, to handle use cases that required near-realtime displaying of the latest AIS received data on a map as well background batch processing of historical Maritime AIS data.

This presentation will describe the architecture put in place, and the challenges that GeoSolutions had to overcome to publish big data through GeoServer OGC services (WMS, WFS, and WPS), finding the correct balance that maximized ingestion performance and visualization performance. We had to integrate with a streaming processing platform that took care of most of the processing and storing of the data in an Azure data lake that allows GeoServer to efficiently query for the latest available features, respecting all the authorization policies that were put in place. A few custom GeoServer extensions were implemented to handle the authorization complexity, the advanced styling needs, and big data integration needs.

Avatar for Simone Giannecchini

Simone Giannecchini PRO

July 22, 2025
Tweet

More Decks by Simone Giannecchini

Other Decks in Technology

Transcript

  1. Nuno Oliveira Simone Giannecchini Andrea Aime GeoSolutions Processing and publishing

    Maritime AIS data with GeoServer and Databricks in Azure
  2. GeoSolutions Enterprise Support Services Deployment Subscription Professional Training Customized Solutions

    GeoNode • Offices in Italy & US, Global Clients/Team • 30+ collaborators, 25+ Engineers • Our products • Our Offer
  3. Affiliations We strongly support Open Source, it is in our

    core We participate in OGC testbeds and get funded to advance new open standards We support standards critical to GEOINT
  4. Using maritime data as our use case • Maritime Data

    is produced by a variety of sources: • Ships positions AIS, LRIT • Maritime assets ports, navigational aid systems, …
  5. The use case in numbers • In 24 hours: •

    We receive up to 50 millions positions reports • We handle up to 500K different ships • Peaks of activity during daylight: • Up to 2500 messages per second! • Azure data lake with 7 years of data: ~125 billion positions!
  6. Big data? • We can start with the usual three

    V’s: • Velocity • Volume • Variety • A practical definition from Wikipedia: • Big data refers to data sets that are too large or complex to be dealt with by traditional data-processing application software. • We already covered velocity and volume, what about variety?
  7. Maritime data overview • Provide a foundation for informed decision-making

    applications: • Maritime traffic monitoring • Search and rescue operations • Environmental marine disasters monitoring • … • Several datasets need to be combined: • Fisheries data • Ships registries information • …. Interoperability!
  8. • Authorization rights need to be respected: • Different authorization

    rights will result: Authorization rights … In different views of maritime assets! t1 Ships Sensors SAT-AIS T-AIS User 1 can see all vessels positions. User 2 can only see SAT-AIS vessels positions. t1 t0 t0 t1 t1 t1 t0
  9. Use case overview • Displays the latest position for each

    known vessel in the last 24 hours. • System designed to handle up to 5K positions per second 432 millions positions per day! • Positions are enriched with several datasets, e.g. fisheries.
  10. Real time ships positions • Real time maritime picture displayed

    using a style that color each vessel according to its type:
  11. Real time ships positions • Real time maritime picture displaying

    only fishing vessels colored based on their fishing gear:
  12. Reduced deployment diagram in Azure Kafka Cluster (Critical: RAM and

    DISK) SaaS - Managed Kafka Cluster PostgreSQL postgresql (32 vCPUs, 160 GB RAM, 8 TB, 20000 IOPS) SaaS - Gen 5, 32 vCore reads \ writes from topics kafka.head.x (2 VCPUs, 16 GB RAM, 135 GB DISK) kafka.worker.x (4 VCPUs, 4 GB RAM, 200 GB DISK) kafka.zookeeper.x (2 VCPUs, 14 GB RAM, 135 GB DISK) kafka.storage (1TB SSD) Kubernetes Cluster aks.x SaaS - DS2 v2 x3 x2 x3 x3 Ingestion Cluster (Critical: CPU and RAM): ingestion.1 (4 CPU, 8 GB RAM, 64 SSD + 64 PREMIUM SSD) IaaS - F4s v2 ingestion.2 (4 CPU, 8 GB RAM, 64 SSD + 64 PREMIUM SSD) GeoServer Cluster (Critical: CPU) geoserver.1 (4 CPU, 8 GB RAM, 64 SSD + 32 PREMIUM SSD) PaaS - F4s v2 geoserver.2 (4 CPU, 8 GB RAM, 64 SSD + 32 PREMIUM SSD) reads tables writes to tables manages x2
  13. Use case overview • Retrieve ship(s) historical positions from an

    Azure Data Lake: • Make them available through GeoServer OGC WFS, WMS and WPS services. • We can afford an initial preparation time, but then we need to be fast! ~125 billion positions!
  14. Ship positions correlation Annual voyage route of a bulk carrier

    from Asia to the Americas, Africa, and Europe
  15. Read \ Write Architecture overview Azure Delta Lake Apache Spark

    SQL End-Point (Photon) Databricks Databricks Connector Read \ Write Coordination Read PG cache Cache