Vebeto Technologie

Unsere Analysen sind maßgeschneiderte Einzelstücke, perfekt angepasst auf Ihre Fragen. Unsere Analyse-Technologie haben wir speziell für diese Anwendung entwickelt. Wichtigster Leitfaden ist dabei ein hoher Anspruch an die Qualität unserer Produkte.

Unsere Analyse-Architektur

Datenintegration und Modellierung

Wir importieren Daten aus einer Vielzahl von öffentlich verfügbaren Quellen, verbinden sie miteinander und transferieren sie in ein einheitliches Datenmodell. Dabei führen wir ausführliche Konsistenzprüfungen durch. Auf die Daten wenden wir komplexe numerische Modelle an, unter anderem das Vebeto Patientenmodell und die Simulation zur Krankenhausplanung.

Analyse-Frontend

Zur Abfrage der Daten und zur Visualisierung benutzen wir eine Web-basierte Anwendung. Diese ist nur innerhalb von Vebeto verfügbar. Mit dieser Anwendung führen unsere Mitarbeiter die von Ihnen beauftragten Analysen durch.

Erstellung Ihres Reports

Die Ergebnisse der Analyse legen wir in einem Report nieder. Wir leiten Sie darin durch die Analyse, stellen die Daten visuell dar und erläutern unsere Interpretation. Den Report erhalten Sie als PDF-Datei und als hochwertigen Druck in Buchform.

Automatisierung sichert Qualität

Wenn Sie bei uns eine Analyse bestellen, verfassen wir diese speziell für Sie und folgen dabei Ihren Fragen und Anforderungen. Dabei lassen wir uns aber vom Computer unterstützen – und zwar bei den Aufgaben, die ein Computer besser bewältigen kann als wir.

Wir bearbeiten Daten nicht manuell. Die manuelle Verarbeitung von Daten, z.B. mit einem Tabellenkalkulationsprogramm, ist fehleranfällig und im Zweifelsfall nicht nachzuverfolgen. Jeder Schritt unserer Datenverarbeitung wird deshalb im Code durchgeführt, immer nachvollziehbar und reproduzierbar.

Wir tippen keine Zahlen ab. Wenn Menschen Zahlen aus einer Datenquelle in einen Report übertragen, machen sie dabei zwangsläufig Tippfehler. Die Zahlen in unseren Reports stammen aus Datenbankabfragen und werden vom Computer direkt in den Report eingefügt.

Wir automatisieren Prozesse. Je weniger manuelle Schritte die Datenintegration, Datenverarbeitung, Analyse und Report-Erstellung beinhaltet, desto weniger Fehler können sich einschleichen. Um Fehler bei repetitiven Vorgängen zu minimieren und die Verarbeitung nachvollziehbar zu machen, verfolgen wir eine Zero-Click-Strategie.

Unsere Entwicklungsstandards

Volle Versionskontrolle

Die komplette Datenverarbeitung, Algorithmik und Visualisierung steht unter Versionskontrolle per git. Das schließt auch alle Reports und Analysen mit ein, die wir für unsere Kunden durchführen.

Extensive automatische Tests

Aktuell haben wir 1400 Unit Tests und 600 Integration Tests. Die Test Coverage für Daten-Queries liegt bei über 90% (nur Unit Tests - Integration Tests nicht mitgerechnet). Wir haben deutlich mehr Test-Code als Feature-Code. Jeder relevante Task in unserer ETL-Pipeline hat einen zugehörigen Task für Konsistenzchecks. 

Weit verbreitete Basistechnologien

Wir arbeiten ausschließlich mit Open-Source-Technologien. Die Pakete, die bei uns zum Einsatz kommen, werden von unzähligen Entwicklern und Firmen weltweit genutzt. Außerdem können wir immer den Quelltext der Pakete einsehen. Das sichert eine hohe Qualität und die schnelle Beseitigung von Bugs.

Unser Werkzeugkasten

Datenbank, ETL, DevOps

  • postgresql
  • python: luigi, sqlalchemy, tdda, pandas, geopandas, dask, lxml
  • ansible

Analyse-Frontend, Queries

  • python: flask, sqlalchemy, jinja2, networkx, pandas
  • bootstrap
  • datatables.js
  • gunicorn + nginx
  • webpack + npm

Visualisierung

  • leaflet.js
  • d3.js
  • vega-lite.js via python/altair
  • html + css

The CTO's Corner

Unser CTO, Eberhard Hansis, schreibt kurze Artikel zu technischen Themen in seinem persönlichen Blog „Things I Learned“ (auf Englisch). Hier eine kleine Auswahl:

Caching expensive function calls with the diskcache Python package

Caching is useful in many applications: Your web app needs to run expensive database queries to serve a page. Your numerical model computes certain results several times because they are needed in different parts of the code. Your analytics dashboard re-computes results anew each time the dashboard is opened. In all these situations, performance can be greatly increased by caching the results of a function call and making them instantly available for a repeat call with the same function arguments.

Automatic Quality

The discussion on automation often focuses on saving labor costs, the associated job losses and which industries and occupations might be affected most. Those are very important questions. This post is on an aspect of automation that is sometimes mentioned but, I think, deserves more attention: Automation can improve quality. This especially applies to a level of automation that can be introduced into our everyday computerized work life.

Wrap your Python Analytics Results in dataclass or attrs

When writing data queries or analysis functions, it is often necessary to pass back multiple result values. Here I want to describe how (and why) to use the attrs package for this purpose.

Three Levels of Testing in Data Analytics

A data scientist or data engineer should follow established best practices for software development, including automated testing. This post suggests testing methods geared specifically towards data analytics work.

Chaining Immutable Pandas

This post talks about mutable and immutable operations, with a focus on how to apply them when working with the Pandas data analysis package.