Mobile-Menu

Tipp: Echtzeit-Geofencing trifft Redis-Protokoll In-Memory-Geodatenbank Tile38

Von Thomas Joos 4 min Lesedauer

Anbieter zum Thema

Tile38 ist ein quelloffener In-Memory-Geodaten-Server mit räumlichem Index, Echtzeit-Geofencing und Redis-kompatibler Schnittstelle. Der Server speichert Punkte, Polygone und Bounding Boxes, beantwortet räumliche Abfragen in Millisekunden und liefert Standortereignisse an Pub/Sub-Kanäle und Webhooks.

Die In-Memory-Geodatenbank Tile38 eignet sich speziell für Anwendungen mit einer hohen Aktualisierungsrate von Standortdaten.(Bild:  Gemini / KI-generiert)
Die In-Memory-Geodatenbank Tile38 eignet sich speziell für Anwendungen mit einer hohen Aktualisierungsrate von Standortdaten.
(Bild: Gemini / KI-generiert)

Tile38 (tile38.com) richtet sich an Anwendungen mit hoher Aktualisierungsrate von Standortdaten, zum Beispiel Flottenmanagement, Logistik, Lieferdienste, Outdoor-Apps oder IoT-Tracking. Der Server arbeitet im Hauptspeicher, persistiert auf Disk und basiert auf der MIT-Lizenz. Die Codebasis ist vollständig in Go geschrieben und läuft unter Linux, macOS, FreeBSD und Windows in 32- und 64-Bit-Architekturen.

Datenmodell mit Punkt, Polygon und GeoJSON

Im Kern verwaltet Tile38 sogenannte Collections, in die Anwendungen einzelne Geodaten-Objekte schreiben. Jedes Objekt erhält einen Bezeichner und einen Geometrietyp. Möglich sind Lat/Lon-Punkte mit optionalem Z-Wert für Höhe oder Zeitstempel, Bounding Boxes aus Süd-West- und Nord-Ost-Eckpunkt, Geohash-Strings, GeoJSON-Strukturen mit Polygonen, Multipolygonen oder GeometryCollections sowie XYZ-Tiles und QuadKeys für kachelbasierte Karten. Zusätzlich lassen sich Felder mit Fließkommawerten an jedes Objekt hängen, zum Beispiel Geschwindigkeit, Beladung oder Akkustand eines Fahrzeugs. Ein Aufruf der Form „set fleet truck1 field speed 90 point 33.5123 -112.2693“ legt einen Punkt mit Feldwert an.

Drei Operatoren für räumliche Abfragen

„NEARBY“ sucht alle Objekte einer Collection innerhalb eines Radius um einen Referenzpunkt, „WITHIN“ liefert Objekte, die vollständig in einer Fläche liegen, und „INTERSECTS“ gibt Objekte zurück, die eine Geometrie schneiden. Filter über „WHERE“ schränken auf Feldwerte ein, zum Beispiel „nearby fleet where speed 70 +inf point 33.462 -112.268 6000“ für Fahrzeuge mit mehr als 70 Einheiten Geschwindigkeit im Sechs-Kilometer-Radius. Mehrere „WHERE“-Klauseln verknüpfen sich logisch mit „Und“. Für Mustererkennung auf Bezeichnern dient „MATCH“ mit Glob-Syntax, für Regex-Treffer auf Feldern und GeoJSON-Eigenschaften der Operator „=~“. Über „CURSOR“ paginieren Anwendungen große Ergebnismengen, „LIMIT“ begrenzt die Antwort, „NOFIELDS“ spart Bandbreite.

Geofencing als persistente Verbindung

Aus jeder Suchanfrage wird mit dem Schlüsselwort „FENCE“ ein Geofence. Der Server hält die Verbindung offen und sendet ein Ereignis, sobald ein Objekt die Zone betritt, verlässt, sich darin oder außerhalb befindet oder die Zone in einem Update durchquert. Die Detect-Modi heißen „inside“, „outside“, „enter“, „exit“ und „cross“. Jede Nachricht enthält den auslösenden Befehl („set“, „del“ oder „drop“), den Objekt-Bezeichner und die aktualisierte Geometrie als JSON. Statische Geofences ohne dauerhafte Client-Verbindung legt der Befehl „SETCHAN“ auf einen Pub/Sub-Kanal, an den Konsumenten per „SUBSCRIBE“ andocken. Alternativ verteilt der Server Ereignisse über Webhooks an HTTP-Endpunkte, was die Anbindung an Workflow-Engines und Message-Broker erlaubt.

Redis-Protokoll und HTTP für flexible Integration

Tile38 spricht das Redis-RESP-Protokoll und ist damit zu den meisten Redis-Clients kompatibel. Entwickler greifen über bestehende Bibliotheken in Java (Lettuce), Node.js (node_redis), Python (redis-py), Go (go-redis, redigo), PHP, Ruby, Rust oder C# auf den Server zu. Daneben existieren spezialisierte Tile38-Clients in Go, Python (pyle38), TypeScript (tile38-ts), Node.js, Java, Rust und Swift. Für Tests, Skripte und Werkzeugketten genügt ein HTTP-Aufruf per „curl“:

curl --data "set fleet truck3 point 33.4762 -112.10923" localhost:9851

Websockets eignen sich für lang laufende Geofence-Verbindungen aus Browser-Frontends, Telnet bleibt eine Option zur Diagnose. Die Antwort kommt je nach Einstiegsprotokoll als JSON oder RESP.

Replikation und Prometheus-Metriken

Für den Produktionsbetrieb bietet der Server eine Leader-Follower-Replikation. Schreibende Knoten reichen Änderungen an Follower weiter, die als Lese-Replicas dienen oder ein Failover-Szenario abdecken. Die Daten persistiert Tile38 auf Disk, sodass ein Neustart den Bestand wiederherstellt. Prometheus-Metriken exportiert der Server nativ über das Flag „--metrics-addr“, zum Beispiel mit dem Aufruf „./tile38-server --metrics-addr=127.0.0.1:4321“ für eine lokale Bindung. Auf „0.0.0.0“ liegt die Schnittstelle netzwerkweit offen. Ein vorgeschalteter redis_exporter erweitert das Set-up um Schlüsselwerte und Lua-Skripte. Bezug erfolgt über Docker-Image (tile38/tile38), Homebrew unter macOS mit dem Befehl „brew install tile38“, vorgefertigte Binaries auf der GitHub-Releases-Seite (github.com/tidwall/tile38) oder als Build aus dem Quellcode mit „make“.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Data-Storage und -Management

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Mehrwert für Administratoren und Entwickler

Administratoren bekommen einen schlanken Dienst mit überschaubarer Konfiguration, vertrautem Redis-Werkzeug und nativer Metriken-Schnittstelle. Die Persistenz auf Disk reduziert das Risiko bei Neustarts, die Replikation deckt Hochverfügbarkeit ab. Entwickler erhalten eine kompakte Befehlssprache, die Suche, Filter und Geofencing ohne separate Stream-Verarbeitung bündelt. Der Wegfall einer dedizierten räumlichen Datenbank im Tech-Stack vereinfacht Architektur und Deployment. Anwendungen aus Logistik, Mobilität, IoT und Field-Service profitieren von Latenzen im einstelligen Millisekundenbereich und einer Ereignis-API, die ohne Polling auskommt. Teams mit vorhandenem Redis-Know-how steigen ohne zusätzliche Lernkurve in die Geodaten-Funktionen ein.

Hier weitere Tipps entdecken.

Aktuelles eBook

Datenmigration – so funktioniert der Storage-Umzug

eBook Datenmigration
eBook „Datenmigration“
(Bild: Storage-Insider)

Im Zuge der Digitalisierung ändern sich die Anforderungen an Storage-Systeme. Sie müssen leistungsfähiger, skalierbarer und insgesamt flexibler sein. Unternehmen führen neue Systeme wie etwa All-Flash-Arrays ein, verlagern Dienstleistungen der IT-Abteilung in die Public- oder Hybrid-Cloud, ziehen sogar das Rechenzentrum um und erkennen möglicherweise die Chance oder die Notwendigkeit, IT-Services und Storage-Infrastruktur zu konsolidieren.

Die Themen im Überblick:

  • Operation am offenen Herzen – Einleitung
  • Wann eine Datenmigration nötig und sinnvoll ist
  • Was bei der Datenmigration zu beachten ist
  • Die konkrete Umsetzung der Datenmigration
  • Sonderfälle und Fallstricke

(ID:50835557)