Eine praktische Anleitung zur Extraktion von Jira-Daten per Talend ETL in euer eigenes Warehouse — mit ERD, Implementierungsschritten und einem Vergleich mit Atlassian Analytics.

Wer Jira im großen Maßstab betreibt — ob Data Center oder Cloud — sitzt auf einem Schatz an Projektdaten. Issue-Verläufe, Workflow-Übergänge, Zeiterfassung, Custom Fields. Alles da.
Aber diese Daten aus Jira herauszubekommen und an einen Ort zu bringen, an dem man wirklich damit arbeiten kann? Dafür ist Jira nicht gebaut. Genau daran scheitern die meisten Teams.
Wir bei VIP.LEAN machen das seit Jahren, auch für sehr große Enterprise-Jira-Umgebungen mit fünfstelligen Nutzerzahlen. Talend ist unser ETL-Tool der Wahl, aber der Ansatz funktioniert mit jeder ETL-Plattform. Dieser Artikel beschreibt das komplette Setup: warum ihr euer eigenes Warehouse braucht (wir verwenden ab hier „Warehouse“ — ob ihr es Data Lake, Lakehouse oder Warehouse nennt, hängt von eurem Setup ab), wie ihr die Daten modelliert und wie ihr sie aktuell haltet.
Data Center: Die Datenbank hostet ihr selbst, technisch habt ihr also Zugriff. Aber Atlassians Schema ist komplex und ändert sich zwischen Versionen — direkt darauf für Reporting-Zwecke zuzugreifen ist riskant und generell nicht empfehlenswert. Der bessere Weg: Daten über die REST API mit einem ETL-Tool ziehen oder eine spezialisierte App wie unser VIP.LEAN ETL for Reporting nutzen.
Cloud: Hier wird es kompliziert. Bei Free, Standard und Premium gibt es keinen direkten Datenzugang. Enterprise-Kunden bekommen Atlassian Analytics (den Atlassian Data Lake). In der Praxis ist das aber hauptsächlich für Atlassians eigene Analytics-Oberfläche gedacht — externe BI-Anbindung und Exportmöglichkeiten sind im Vergleich zu einem eigenen Warehouse eingeschränkt.
Für die meisten Teams ist das Fazit dasselbe: Wer eigene Reports in Power BI, Tableau oder Looker fahren will, braucht eine eigene Pipeline.
Referenz: Schema for Jira family of products | Atlassian Support
Anders kommt man kaum an die Daten. Bei den meisten Jira-Cloud-Plänen gibt es schlicht keinen Analytics-Zugang über die eingebauten Dashboards hinaus. Selbst bei Enterprise sind die Möglichkeiten eingeschränkter als viele erwarten.
Standard-Dashboards reichen nicht. Wenn das PMO projektübergreifende Portfolio-Ansichten braucht oder der CFO Kostenaufschlüsselungen nach Team will, stößt Jiras eingebautes Reporting schnell an seine Grenzen.
Jira mit dem Rest des Unternehmens verbinden. Das ist der entscheidende Punkt. Issue-Daten mit SAP-Finanzdaten, HR-Systemen oder CRM-Daten verknüpfen. Geplanten Aufwand in Jira mit tatsächlichen Kosten in SAP vergleichen. Diese Art von systemübergreifender Erkenntnis entsteht nicht innerhalb von Jira.
Ihr kontrolliert Sicherheit und Compliance. Eure Daten, eure Regeln. PII Masking, rollenbasierter Zugriff, DSGVO-konforme Speicherung — alles unter eurer Kontrolle statt abhängig von den Einstellungen einer Drittanbieter-Plattform.
Es gibt noch mehr Gründe, aber nach unserer Erfahrung sind es diese vier, die Teams letztlich dazu bringen, die Pipeline zu bauen.
So sieht das Setup mit Talend aus:
Die Bausteine:
Die Tools sind der einfache Teil. Das Datenmodell und die Delta-Logik — da steckt die eigentliche Arbeit.
Wenn ihr das zum ersten Mal macht, fangt mit einem Projekt und einem BI-Use-Case an. Das hält die ERD-Entscheidungen geerdet. Erweitern könnt ihr immer noch, sobald die Leute den Zahlen vertrauen.
Bevor ihr mit der Extraktion beginnt, braucht ihr ein solides Datenmodell. Wir arbeiten mit zwei Schichten:
Staging Layer — Rohe JSON-Antworten der REST API, gespeichert wie sie kommen. Das ist euer Sicherheitsnetz. Wenn sich euer Datenmodell weiterentwickelt (und das wird es), könnt ihr von der Quelle aus neu verarbeiten, ohne erneut aus Jira zu extrahieren. Das können wir nicht oft genug betonen: Überspringt niemals den Staging Layer. Wenn ihr das erste Mal ein neues Feld über zwei Jahre Daten nachfüllen müsst, werdet ihr froh sein, das rohe JSON behalten zu haben.
Processed Layer — Ein strukturiertes ERD basierend auf dem REST-API-Schema. Aufpassen: Die Data Center REST API (v2.0) und die Cloud REST API (v3.0) unterscheiden sich an mehreren Stellen. Wer ein hybrides Setup fährt, muss beides im Modell abbilden.
Auf dem Basismodell setzen wir mehrere Anreicherungsschritte auf:
Talend verbindet sich über Java-Routinen mit der REST API von Jira. Ein paar Dinge, die wir unterwegs gelernt haben:
Drosselt eure Requests. Jiras API hat Rate Limits, und wer sie mit parallelen Calls bombardiert, verschlechtert die Performance der Instanz für alle Nutzer. Wir haben bei einem Projekt zu aggressiv angefangen und sofort Gegenwind vom Jira-Admin-Team bekommen. Fangt konservativ an und dreht dann hoch.
Nutzt Bulk Inserts auf der Zielseite. Beim ersten Mal haben wir unterschätzt, wie teuer zeilenweises Laden in BigQuery wird. Auf Batch Writes umgestellt — Problem gelöst, Kosten drastisch gesunken.
Parallelisiert mit Bedacht. Talend kann mehrere Extraktions-Jobs gleichzeitig laufen lassen — nutzt das für unabhängige Entitäten (Projekte, Nutzer, Issue Types), aber serialisiert die Changelog-Extraktion, um API Throttling zu vermeiden.
Startet mit einer Vollextraktion aller Jira-Daten. Bei großen Instanzen kann dieser erste Komplettlauf mehrere Stunden dauern. Plant das ein und legt ihn außerhalb der Stoßzeiten — eure Jira-Admins werden es euch danken.
Danach auf Delta-Modus umschalten. Wir aktualisieren Issue-Daten alle 5 Minuten und administrative Daten (Nutzer, Projekte, Workflows) alle 60 Minuten. Die Logik: Issues ändern sich ständig über den Tag, Admin-Daten sind relativ stabil.
Alle Talend-Jobs laufen in Talend Cloud. Stellt sicher, dass ihr eine Engine mit ausreichend Ressourcen zuweist — eine zu klein dimensionierte Engine verursacht Timeouts bei großen Instanzen, und das Debugging macht keinen Spaß.
Der Changelog ist einer der wertvollsten Teile der Jira-Daten — und einer, den die meisten übersehen. Er zeichnet jede Feldänderung an jedem Issue auf: Status-Übergänge, Assignee-Wechsel, Prioritätsänderungen, Custom-Field-Änderungen.
Wir extrahieren den vollständigen Changelog und glätten ihn in eine eigene Tabelle. Kombiniert mit Jiras nativem Versioning ergibt das eine vollständige historische Sicht. Wollt ihr wissen, wie lange ein Ticket in „In Review“ lag, bevor jemand es aufgegriffen hat? Der Changelog verrät es. Wollt ihr herausfinden, welche Teams regelmäßig die Priorität nach Sprintstart ändern? Steht auch drin.
Jira liefert natürliche Schlüssel wie den Issue Key (PROJ-123) oder Project Key (PROJ). Nutzt diese als Business Keys für lesbare Referenzen.
Für die technische Versionierung braucht ihr aber Surrogate Keys. Wenn ein Issue aktualisiert wird, teilen sich alte und neue Version denselben Issue Key, haben aber unterschiedliche Surrogate Keys. So bleibt die Historisierung sauber und abfragbar — ohne Mehrdeutigkeiten.
Zwei Mechanismen, die gut zusammenpassen:
Snapshots erfassen den vollständigen Zustand einer Entität zu einem Zeitpunkt. Ideal für Abfragen wie „Wie sah das Backlog letzten Dienstag aus?“
Changelog-basiertes Versioning verfolgt einzelne Feldänderungen. Granularer, weniger speicherintensiv und besser für Analysen wie „Wie lange war dieses Ticket blockiert?“
Wir nutzen beides: Snapshots für Portfolio-Reporting, Changelog-Versioning für Deep Dives auf Issue-Ebene. Übertrieben? Vielleicht für kleine Instanzen. Aber im großen Maßstab braucht man beides früher als gedacht.
Wir haben uns aus ein paar praktischen Gründen für BigQuery entschieden:
Die gleiche Architektur funktioniert aber auch mit Azure SQL, Postgres oder AWS Redshift. Nehmt, was in euren Stack passt. Wir haben Teams gesehen, die das auf Postgres für kleinere Instanzen betreiben — funktioniert einwandfrei, man verliert nur etwas Auto-Scaling-Komfort.
Sobald die Rohdaten im Warehouse liegen, wollt ihr sie weiterverarbeiten:
Baut Data Marts für spezifische Anwendungsfälle — einen fürs PMO, einen für Engineering-Metriken, einen für Finance. Widersteht dem Drang, eine riesige „Alles-in-einer-Tabelle“ zu bauen. Das funktioniert nie.
Erstellt Dimension Tables (Nutzer, Projekte, Status, Prioritäten), die als Lookup-Tabellen über alle Marts dienen.
Richtet automatisches User Referencing ein, sodass jede User-ID in jeder Tabelle auf die zentrale User-Tabelle auflöst. Klingt trivial — bis man merkt, dass Jira Cloud accountId verwendet, während Data Center mit username arbeitet.
Mehr als eine Jira-Instanz im Einsatz? Kommt in großen Unternehmen häufig vor — vielleicht ein Data Center für Legacy-Projekte und eine Cloud-Instanz für neue Teams. Oder separate Instanzen pro Geschäftsbereich, die nie zusammengeführt wurden.
Unsere Pipeline kann beides. Die Daten landen im selben Warehouse mit einem Instanz-Identifier und ergeben eine einheitliche Sicht über alle Jira-Umgebungen. Instanzübergreifendes Reporting wird damit unkompliziert: Velocity zwischen Teams vergleichen oder ein Projekt verfolgen, das über mehrere Instanzen läuft.
Portfolio-Reporting, das die Realität abbildet — nicht die Version, die jemand letzte Woche in einer Präsentation von Hand aktualisiert hat.
Engpass-Analyse. Welcher Workflow-Schritt verursacht die meisten Verzögerungen? Welches Team unterschätzt systematisch Story Points? Die Daten sind da — man muss sie nur abfragen können.
Trendvorhersagen. Mit 6+ Monaten historischer Daten zeigen sich Muster: saisonale Spitzen, schleichender Scope Creep, Teams die vor Releases langsamer werden.
Ressourcenplanung auf Basis echten Durchsatzes statt Bauchgefühl und Tabellenkalkulation.
Systemübergreifende Einblicke. Wenn Jira-Daten auf SAP-Finanzdaten im selben Warehouse treffen, bekommen Finance-Teams endlich die Kostentransparenz, die sie seit Langem einfordern. Plan- vs. Ist-Kosten, nach Projekt, nach Quartal. Dagegen lässt sich schwer argumentieren.
Behaltet das rohe JSON. Immer. In einem Staging Layer. Wenn sich euer Datenmodell weiterentwickelt — und das wird es — könnt ihr von der Quelle aus neu verarbeiten. Das hat uns schon öfter gerettet, als wir zugeben möchten.
Denkt an Security, bevor das erste Team Zugriff bekommt. PII Masking, Row-Level Security, Audit Logs — baut das von Anfang an ein. Security nachträglich auf ein laufendes Warehouse mit aktiven Nutzern aufzusetzen ist schmerzhaft und politisch heikel.
Plant für Wachstum. Euer erster Use Case ist vielleicht ein einfaches Sprint-Burndown. Aber sobald Teams sehen, was mit ihren Daten in einem richtigen Warehouse möglich ist, vervielfachen sich die Anfragen schnell. Partitioniert eure Tabellen, nutzt inkrementelle Loads und haltet euer Schema erweiterbar.
| Merkmal | ETL mit Talend & BigQuery | Atlassian Analytics | VIP.LEAN ETL for Reporting |
|---|---|---|---|
| Wer setzt die Lösung um / Verfügbar ab | Euer Unternehmen / Nach der Entwicklungsphase (VIP.LEAN Solutions bietet Unterstützung) | Atlassian / Sofort | VIP.LEAN Solutions / Sofort |
| Jira DC Support | ✓ | – | ✓ |
| Jira Cloud Support | Free: ✓ Standard: ✓ Premium: ✓ Enterprise: ✓ |
Free: – Standard: – Premium: – Enterprise: ✓ |
Free: ✓ Standard: ✓ Premium: ✓ Enterprise: ✓ |
| Daten im eigenen Warehouse | ✓ | – | ✓ |
| Kosten | Individuell | Im Cloud Enterprise enthalten | Ab 10,00 USD |
| Datenstruktur | Anpassbar | Fest | Anpassbar |
| Datenebene | Technisch / Processed Layer | Technisch / Processed Layer | Business / Presentation Layer |
| Vorgefertigte Dashboards | – | ✓ (in Jira enthalten) | – |
| Daten in eigenen BI-Reports nutzen | ✓ | – | ✓ |
| Erweiterbar auf Jira-Apps mit REST API (z. B. Tempo) | ✓ (z. B. Tempo-Daten) | ✓ (nur App Custom Fields) | ✓ (nur App Custom Fields) |
| DB-Support / Geplant | BigQuery / Azure, AWS, Oracle, Postgres | – | Azure SQL, Postgres, Oracle / BigQuery & AWS |