- Löst die Komplexität und Langsamkeit der bisherigen Entwicklung von Daten-Backends und ermöglicht die schnelle Entwicklung von Datenanalyse-Backends mit TypeScript oder Python
- Mitgelieferter Stack (ClickHouse, Redpanda, Temporal) sowie künftig geplante Erweiterungen auf verschiedene Cloud-Plattformen
- Vereinfacht die lokale Entwicklung und unterstützt schnelles Testen sowie sofortiges Hot Reloading
- Geeignet für den Aufbau verschiedenster datenintensiver Anwendungen und einsetzbar für Echtzeit-Analysen, Datenmigration, Event-Streaming und mehr
Moose
- Moose ist ein Framework, mit dem sich Datenanalyse-Backends allein mit TypeScript- oder Python-Code aufbauen lassen
- Es existiert, um die Probleme langsamer und komplexer Tooling-Landschaften bei der Entwicklung bestehender Daten-Backends zu lösen
-
Probleme beim Aufbau von Analyse-Backends mit heutigen Tools
- Verstreute Tools
Viel Zeit geht für die Integration zahlreicher Services wie Kafka, ClickHouse, Postgres, dbt und Airflow verloren
- Probleme durch Schema-Abweichungen
Code-Modelle, Datenbankschemata, API-Validierung und Nachrichtenformate laufen mit der Zeit auseinander
- Schwierige Entwicklungs-Workflows
Fehlende lokale Tests, lange Deployment-Zyklen und häufige Kontextwechsel mindern die Produktivität der Entwicklung
- Ausschließliche SQL-Verarbeitung
Es ist unpraktisch, ausschließlich SQL statt vertrauter Programmiersprachen verwenden zu müssen
-
Probleme beim Eigenaufbau
- Selbst für das bloße Hinzufügen eines einfachen Felds müssen alle folgenden Arbeiten manuell durchgeführt werden
- TypeScript-/Python-Code-Modelle anpassen
- Datenbankschema ändern
- Kafka-Topic aktualisieren
- Laufzeitvalidierung aktualisieren
- Transformationen und Abfragen aktualisieren
- Es kostet jedes Mal viel Zeit und Aufwand, alle Änderungen sicher zu testen
Der Lösungsansatz von Moose
-
Was Moose bereitstellt
- TypeScript- oder Python-Code selbst dient als Single Source of Truth für Datenanwendungslogik und Infrastruktur
- Auf Code-Basis wird Folgendes sichergestellt
- vollständige Typsicherheit und Validierung
- Entfernung von Boilerplate-Code
- frühzeitiges Erkennen von Fehlern während der Entwicklung
-
Beseitigung von Kontextwechseln
- Man muss sich keine Gedanken über Namenskonventionen für Datenbanktabellen, die Synchronisierung von Modell-/Tabellenfeldern oder die Nullable-Eigenschaft von Feldern machen
-
Lokale Entwicklung
- Start mit einem Klick
Mit nur einem einzigen Befehl lässt sich die gesamte Dateninfrastruktur lokal starten
- Zero Config
Alle Komponenten sind vorkonfiguriert, sodass kein separates Setup nötig ist
- Gleiche Struktur wie in der Produktionsumgebung
Es wird derselbe Technologie-Stack wie in der tatsächlichen Deployment-Umgebung verwendet
- Echtzeit-Feedback
Änderungen werden sofort im gesamten Stack übernommen
-
Typischer Entwicklungs-Workflow
- Wenn ein Modell hinzugefügt oder geändert und gespeichert wird, wird es sofort per Hot Reload in die lokale Infrastruktur übernommen
- Neue Felder werden sofort auf API, Streams und Datenbank angewendet
- Pipeline-Tests können ebenfalls direkt überprüft werden, indem Beispieldaten an die lokale Ingest-API gesendet werden
-
Hot-Reloading-Workflow
- Nach dem Ändern eines Modells genügt das Speichern, und die Änderungen werden automatisch übernommen
- Hinzugefügte Felder werden automatisch auf API-Validierung, Datenbankschema und Streams angewendet
-
Modularität
- Es können nur die jeweils benötigten Komponenten ausgewählt und konfiguriert werden
Mitgelieferter Moose-Stack
- ClickHouse
Standardmäßig aktivierte OLAP-Datenbank
- Redpanda
Kafka-kompatible Event-Streaming-Plattform (kann deaktiviert werden)
- Temporal
Tool zur Workflow-Orchestrierung (kann deaktiviert werden)
-
Geplante Erweiterungen
- Snowflake, Databricks, BigQuery
Unterstützung für Cloud-Data-Warehouses ist geplant
- Kafka, Kinesis, Pulsar
Unterstützung für verschiedene Kafka-kompatible Event-Streaming-Plattformen ist geplant
Was sich mit Moose aufbauen lässt
- Echtzeit-Analysen für Endnutzer
Integration von Leaderboards, Diagrammen und Metriken in Web- oder Mobile-Apps
- BI und Data Warehouse
Sammlung verschiedener Datenquellen zum Aufbau einer Analyse-Datenbank und zur Erstellung von Reports
- Datenmigration
Verschiebung von Daten aus Legacy-Systemen in moderne Daten-Backends
- Event-Streaming
Echtzeitverarbeitung von Events auf Streaming-Plattformen wie Kafka oder Redpanda
- ETL-Jobs
Regelmäßiges Sammeln von Daten aus verschiedenen Quellen und Laden in Analyseumgebungen
Noch keine Kommentare.