High Performance BIRT Reports



Ähnliche Dokumente
Struts 2 Das Imperium schlägt zurück?

Last- und Stresstest mit the Grinder 3

Atlassian Git Essentials Nahtlose Entwicklungsworkflows aus einer Hand

Erstellung von Word und Excel Berichten mit Eclipse BIRT

<script type="text/javascript"> <! <%= page(page.searchsuggestionsscript) %> // > </script>

SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER

Erfahrungen mit Hartz IV- Empfängern

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

TISIS - Industrie 4.0. Ereignis, Ort, Datum

Installation OMNIKEY 3121 USB

Feiertage in Marvin hinterlegen

teamsync Kurzanleitung

Handbuch zum Statistiktool Pentaho Stand: Dezember 2013

BIRT Best Practices. Java, XML und Open Source seit ) Software Factory ) Christian Brell. Schlüsselfertige Realisierung von Java Software

Issue Tracker & Wiki

Anleitung zum GUI Version 2.x

Agile Ressourcenplanung

Installation von PhoneSuite (TAPI)

Q & A: Representation Tool

4D Server v12 64-bit Version BETA VERSION

1 WEB ANALYTICS: PROFESSIONELLE WEB-ANALYSEN UND REPORTING FÜR IHR ONLINE MARKETING.

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

IVS Arbeitsgruppe Softwaretechnik Abschnitt Management komplexer Integrationslösungen

WLGauge: : Web Link Gauge to Measure the Quality of External WWW Links. Andreas Lübcke

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Was ist das Tekla Warehouse

Einführungskurs MOODLE Themen:

Dokumentation für das Checkoutsystem von Freshworx

Arbeit mit dem Reportgenerator

Installationsanleitung für Update SC-Line

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Programmers Manual Geodaten Ver. 2.0

Software Defined Networking. und seine Anwendbarkeit für die Steuerung von Videodaten im Internet

Tipps & Tricks: März Parameter der tnsnames.ora im RAC Umfeld. 1. Parameter: Bereich: Erstellung: RAC 03/2011 SH. Letzte Überarbeitung: 11.

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

WinVetpro im Betriebsmodus Laptop

Statistikreport für Sozialabteilungen von Zürcher Gemeinden Atelierbeitrag Statistiktage 2013

Speicher in der Cloud

DB2 for VM / VSE 7.5. News & Experiences. Torsten Röber. GSE Frühjahrstagung April 2008, Bonn. IBM Software Group

Laborübung - Task-Manager (Verwalten von Prozessen) in Windows 7

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Import und Export von Übergängern

Erläuterung des technischen Hintergrundes des neues RIWA GIS-Zentrums

MARCANT - File Delivery System

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

So gehts Schritt-für-Schritt-Anleitung

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

WARY Notariat Urkundenrolle V2013

Schulung Marketing Engine Thema : Einrichtung der App

JIRA-Speicher erhoehen

Die Textvorlagen in Microsoft WORD und LibreOffice Writer

MySQL High Availability. DOAG 2013 Datenbank. 14. Mai 2013, Düsseldorf. Oli Sennhauser

Info-Veranstaltung zur Erstellung von Zertifikaten

Die Entwicklung des Open-Source. Source-Tools. zum Datenbankabgleich von Karsten Panier. Inhalt

User Manual Data 24. Login und Layout

Graphen in Apex von Thomas Hernando.

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Fehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker

Software Release Notes

HMS. Statistiken mit SAS ins Internet. HMS Analytical Software GmbH - Johannes Lang

Tipps und Tricks zu den Updates

Aktivierung von Makros in den Erfassungshilfen

Internet online Update (Mozilla Firefox)

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Informationen zu den regionalen Startseiten

BEDIENUNGSANLEITUNG: EINREICH-TOOL

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

AcQuickPrint / AcSetPrinter Publizieren leicht gemacht / Drucker in Layouts tauschen

eurovat Magento Extension Magento - Extension Extension V1.4.2 Dokumentation Version 1.0 SNM-Portal UG (haftungsbeschränkt) & Co. KG Vorherstraße 17

davero akademie PC und Multimedia

Anleitung über den Umgang mit Schildern

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

IMS - Learning Design

Ich möchte meine Beitragsnachweise nach dem vereinfachten Schätzverfahren erstellen.

ECDL Europäischer Computer Führerschein. Jan Götzelmann. 1. Ausgabe, Juni 2014 ISBN

Präsentation zur Vorstellung meiner Bachelor-Arbeit beim BSE- Seminar. Vortrag von Patrick Bitterling

BIRT in Enterprise Architekturen

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Anwendungsbeispiele Sign Live! Secure Mail Gateway

Screening for Illustrator. Benutzerhandbuch

Titel. System Center Service Manager 2012 R2 Anleitung zur Installation

Online-Dateienablage und Datenaustauschdienst Box.net Stand: September 2011

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Installation, Einrichtung, Nutzung von PHOCA DOWNLOAD. Download-Links... 2

Laborübung - Task Manager (Verwalten von Prozessen) in Windows XP

SAP NetWeaver Gateway. 2013

NetMan Desktop Manager Vorbereitung und Konfiguration des Terminalservers

Übung: Verwendung von Java-Threads

Allgemeine Anforderungen zum Einsatz von (gültig ab Version 45.xx.xx)

[DvBROWSER] Offline-Viewer für [DvARCHIV] und [DvARCHIVpersonal] Version 2.2

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Transkript:

High Performance BIRT Reports Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software Factory ) Schlüsselfertige Realisierung von Java Software Individualsoftware Pilot- und Migrationsprojekte Sanierung von Software Software Wartung ) Object Rangers ) Unterstützung laufender Java Projekte Perfect Match Rent-a-team Coaching on the project Inhouse Outsourcing ) Competence Center) Schulungen, Coaching, Weiterbildungsberatung, Train & Solve-Programme Methoden, Standards und Tools für die Entwicklung von offenen, unternehmensweiten Systemen 2 1

OIO Performance-Management Prozess Indikatoren festlegen Testumgebung und Rahmenbedingungen erfassen Testplan festlegen Maßnahmen durchführen Testszenarien festlegen [gewichtiger Fehler] Test durchführen [nicht aussagekräftig] Analyse durchführen [nicht erfolgreich] [erfolgreich] Misserfolg analysieren [behebbar] [nicht behebbar] 3 Motivation Optimierung der Werkzeuge auf Reportdesign Laufzeitaspekte sind oft weniger im Fokus Aktuelle Trends: Real Time Business Massenhafter Anfall von Bewegungsdaten Lösungsansätze sind Herausforderung für die Performance von Reporting-Tools Onlinebetrieb ESP/CEP NoSQL-Datenbanken.. 4 2

Gliederung Berichtsdesign Performance Anti-Patterns Patterns & Tipps Runtime Allgemeine Tipps Szenario 1 Szenario 2 Performance-Management 5 Anti-Pattern 1: Visibility zur Auswahl zwischen mehreren Alternativen 6 3

Empfehlung Es werden immer beide Elemente ausgewertet Visibility bestimmt lediglich Präsentation Nur einfache Elemente ausblenden Andere Elemente zur Laufzeit löschen Laufzeit ~halbiert da nur benötigte Elemente generiert Thommy Weiss / pixelio.de 7 Anti-Pattern 2 Subreport als Ersatz für Table Join select from person?=stadt_fk select from Stadt where id=? 8 4

Subreport als Ersatz für Table Join Keine weiteren Optimierungen durch BIRT Wohnort wird für jede Person nachgeladen Laufzeit essentiell abhängig von Anzahl der Personen n+1 selects Zusätzlicher Overhead Verschachtelte Tabellen Viele Datasets in rptdocument statt 1 Aber: Subreports nicht generell schlecht! Voraggregieren von Daten in DB bei kleinem n 9 Anti-Pattern 3: Getting caught in a (Data) Bind Data Sets in BIRT an Elemente gebunden Daten werden geladen bei Ausgabe eines Elements das an DataSet gebunden Einsatz eines DataSet Cache (ab BIRT 2.1.3) Kein signifikanter Nachteil wenn mehr als 1 Element an DataSet gebunden Element verfügt über eigenen Zwischenspeicher Visualisieren über Property-Tab Data Binding im Designer Hinzufügen von Spalten durch Aggregationen und Data Elemente Zwischenspeicher bei Run in rptdocument geschrieben 10 5

Data Binding und Aggregationen Elemente von Designer zu Zwischenspeicher hinzugefügt wenn benötigt Achtung: Keine automatische Löschfunktion 11 Laufzeit Aggregationen Unterscheidung in 1 pass aggregates: Aggregation muss ResultSet 1x durchlaufen AVG, SUM, COUNT, 2 pass aggregates: Aggregation muss ResultSet 2x durchlaufen RANK, IS-TOP-N, Laufzeit Tabelle mit/ohne Aggregation +2-3% pro one pass +6-8% pro two pass 12 6

Anti-Pattern 4: Falsche Verwendung von Embedded Images 2 Möglichkeiten um Bilder in BIRT zu hinterlegen Embedded: Bilder werden in rptdesign serialisiert Shared: Bilder werden in externem Ordner hinterlegt 13 Bilder Shared oder Embedded? Mehrere Tests mit unterschiedlichen Bildgrößen Bildgröße 10 MB (1x ausgeben) Shared: 0,05 s / Embedded: 1,24 s Unterschied von Faktor 24! Bildgröße 3 KB (1x ausgeben) Kein signifikanter Unterschied Bildgröße 10 MB (1.000x) Shared um Faktor 24 schneller Bildgröße 3 KB (1.000x) Embedded um Faktor 2,4 schneller 14 7

Empfehlung Große Bilddateien immer als Shared Resources hinterlegen Embedded Images vorziehen wenn Bilddatei sehr klein ist Bilddatei nur für diesen Report gebraucht wird Thommy Weiss / pixelio.de 15 Anti-Pattern 5: Komplexe Programmierlemente in Berichten Mozilla Rhino Script Untypisiert Direkt in Bericht oder externen Dateien hinterlegt Zur Berichtslaufzeit interpretiert Mit Hilfe der JVM ausgeführt Integration von Java Code möglich Java Java Bytecode wird von VM zur Berichtslaufzeit ausgeführt Hinzufügen der.class Dateien zum Classpath der Anwendung oder über separaten Classloader 16 8

Messergebnisse in ms 17 Empfehlung Komplexe Algorithmen in Java implementieren und über LiveConnect in Rhino verwenden IDE Support Nutzung von externen Libraries möglich Robuster, komfortabler und schneller Hinzufügen durch In Web-Viewer: Hinterlegen im scriptlib Verzeichnis In eigener Applikation: Hinzufügen zum Classpath Java Objekte sind Rhino Entsprechungen vorzuziehen z.b. Nutzung von java.lang.stringbuilder statt String.concat Gilt nicht für native Types Thommy Weiss / pixelio.de 18 9

Patterns & Tipps Viele Performance Probleme sind auf DB Ebene lösbar Filtern und Aggregieren in DB Indizes optimal Evtl. auslagern von Logik in Stored Procedure Charts Punkte voraggregieren 3D Option nicht verwenden! Nur Daten laden die auch benötigt werden Kontrollieren der Data Bindings auf nicht verwendete Daten Spart RAM Reduziert Größe des rptdocuments Thommy Weiss / pixelio.de 19 Patterns & Tipps Häufige Formatierungen über Styles lösen Kein Information Overload Stattdessen mit Drill-Through Links arbeiten Verschachtelte Gruppen in Tabellen vermeiden Gruppieren in BIRT teuer Laufzeit steigt exponentiell mit Anzahl Verschachtelungen Thommy Weiss / pixelio.de 20 10

Gliederung Berichtsdesign Performance Anti-Patterns Patterns & Tipps Runtime Allgemeine Tipps Szenario 1 Szenario 2 Performance-Management 21 Einführung: BIRT-Workflow Report Design Application PDF Report Engine Report Engine CSV Paginated HTML Generation + Presentation Generation Presentation HTML PDF Datenquelle Report Document 22 11

Allgemeine Tipps Erzeugung eines Report Engine Objekts teuer Erzeugen und cachen bei Startup der Anwendung Öffnen einer Datenbankverbindung teuer Verbindung nicht von BIRT für jeden Reportlauf erzeugen lassen JDNI Datenbankverbindung über Report Engine API injizieren Libraries werden für jeden Report erneut geladen Evtl. eigenen Cache implementieren über Interface IResourceLocator 23 Einstellungen Report Engine Entsprechendes Log-Level setzen (default ist INFO) Data Engine kann über AppContext pro Task konfiguriert werden task.getappcontext().put( key, value ) DataEngine.MEMORY_BUFFER_SIZE* DataEngine.IN_MEMORY_CUBE_SIZE* DE.MEMORY_DATA_SET_CACHE DE.CUBECURSOR_FETCH_LIMIT_ON_COLUMN_EDGE DE.CUBECUSROR_FETCH_LIMIT_ON_ROW_EDGE MB-RAM pro DataSet bevor ausgelagert wird MB-RAM pro Cube bevor ausgelagert wird Anzahl Zeilen die im RAM gecached werden (Achtung: Schränkt ResultSet ein!) Limitiert Zeilen/Spalten eines Cubes auf übergebene Anzahl (default: unbeschränkt) *Default: 10 MB bis BIRT 2.5.2, unlimitiert ab BIRT 2.6 24 12

Szenario 1: Datenverarbeitung komplex Daten in Reports nur tagesaktuell Reporting Run-Server Report Engine Anwendungsdaten Report Design Report Document Request Reporting Render-Server Report Engine Report Document BIRT-Repository HTML,PDF CSV, 25 Szenario 1: Fazit und Konsequenz Einfaches Setup Wenig Infrastruktur notwendig DB wird geschont Daten in Reports nur so aktuell wie Report Document Was passiert wenn Server ausfällt? Failover notwendig? Ein Report Document pro Parameterwert Kombinatorisches Problem 26 13

Szenario 2: Komplexe Reports aktuelle Daten Request HTML,PDF CSV, Applikation Load Balancer Report Engine Report Engine Report Engine Report Engine Report Engine Anwendungsdaten Report Designs Report Designs Report Designs Report Design 27 Szenario 2: Fazit und Konsequenz Größe des Clusters bestimmt Durchsatz Laufzeit einzelner Reports abhängig von Hardware der Komponenten DB wird extrem belastet Kann zu limitierendem Faktor werden Dedizierte Reporting-DB als Alternative Reports werden für jede Anfrage generiert Speichern zusätzlicher Dateien entfällt 28 14

Performance-Management Performanceoptimierung komplex Hängt von vielen Faktoren ab Hardware, Netzwerk, JVM, Voraussetzungen Vergleichbare Menge an Testdaten Reproduzierbare Testläufe Hardware bleibt gleich Oftmals Einsatz spezialisierter Werkzeuge Kleine Performance Iterationen Einzelne Änderung an Report, danach Test 29?? Fragen??? Orientation Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de?? 15

BIRT User Group Mannheim Interessiert an regelmäßigem Austausch zum Thema BIRT? 4 Treffen pro Jahr mit je 2 Vorträgen zu Schwerpunktthemen und Diskussionsrunden http://www.oio.de/birt-user-group/birt-user-groupmannheim/business-intelligence-reporting-tools-vortragkostenlos.htm 31 Mehr von OIO zum Thema Schulung Reporting mit Eclipse BIRT http://www.oio.de/seminar/open-source/eclipse-birt-reportingschulung.htm Vortrag Actuate Kundentag: BIRT Best Practices http://www.oio.de/m/konf/actuate-day2010/birt-best-practices-actuats- Day.pdf Vortrag Jax2009: Eclipse BIRT Day: BIRT within Java Enterprise http://www.oio.de/m/konf/jax2009/birt-enterprise-architektur.pdf Vortrag W-Jax2006: Reporting mit Eclipse BIRT http://www.oio.de/m/konf/wjax2006/reportingmiteclipsebirt-final.pdf 32 16

Vielen Dank für ihre Aufmerksamkeit! Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de 17