Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf ·...
Transcript of Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf ·...
![Page 1: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/1.jpg)
SerNet
17. September 2015, BED-Con
Sebastian Hagedorn
SerNet GmbH, Göttingen - Berlin
Elasticsearch goes BIRTPraxisbericht einer Zweckentfremdung
![Page 2: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/2.jpg)
SerNetAgenda
Theorie
verinice
BIRT
Elasticsearch
Schnittstelle BIRT ↔ Elasticsearch
Praxis
vDesigner, Reporttemplate
Code
Report ausführen
Ergebnisse und Fazit
![Page 3: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/3.jpg)
SerNetSebastian Hagedorn
angestellt bei SerNet seit 2011
Software-Entwickler im verinice.TEAM
Bugfixing, Feature-Entwicklung,
Customizing, Reports
![Page 4: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/4.jpg)
SerNet
ISMS – Informationssicherheitsmanagement-Tool
Rich-Client / Webclient, Server (Tomcat-Servlet)
Open Source
setzt viele Open Source-Bibliotheken und Frameworks ein,
unter anderem BIRT für Reporting und Elasticsearch zur
Volltextsuche
hauptsächlich in Java geschrieben (Eclipse RCP/PDE)
![Page 5: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/5.jpg)
SerNetArchitektur
Server DBClient
Hibernatehttp/s
![Page 6: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/6.jpg)
SerNet
![Page 7: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/7.jpg)
SerNetDatenmodell
Baumstruktur, dynamisch anpassbar
Worst-Case (für Reporting): beliebige Tiefe des Baums
kann modelliert werden
Abfragen von Eltern-Kind-Beziehung über mehrere Ebenen
durch verschachtelte for-Schleifen implementiert
→ langsam
Nicht nur Eltern-Kind Beziehungen sondern auch
Verknüpfungen der Elemente untereinander möglich
(ternäre Beziehungen)
![Page 8: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/8.jpg)
SerNetBIRT
Business Intelligence Reporting Tool
Eclipse-Projekt
einfach in JEE-Projekte integrierbar
JDBC
versucht auf „einfache“ Art Daten visualisierbar zu machen
Design der Report-Templates über eigenständiges Tool
(„WYSIWYG“)
![Page 9: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/9.jpg)
SerNetOpen Data Access (ODA)
Data Access Framework
Eclipse-Projekt
BIRT-Connectoren – ODA-Driver
Daten und UI-Plugin
verinice ODA-Driver stellt BSH-Interpreter in Query bereit
beliebiger Java-Code innerhalb von Query ausführbar
![Page 10: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/10.jpg)
SerNetBeanShell
dynamische Skriptsprache für die Java-VM
erlaubt es, nahezu unveränderten Java-Code durch einen
Interpreter auszuführen
dynamische Typisierung
Funktionen, globale Variablen
Syntax stark an Java angelehnt
in IQuery-Implementierung eingebettet
ermöglicht Ansprechen der Java-/Verinice-API aus einem Report-
Data-Set heraus
![Page 11: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/11.jpg)
SerNetElasticsearch
performante Volltextsuche auf Basis von Lucene
einfache, aber umfangreiche Java-API
Suche auf Basis eines Index
in verinice implementiert über ein DAO und einen Service
SearchService über ApplicationContext (Spring)
zugreifbar
Abstraktion der Suche über eigene Klassen
Query, ResultRow, ResultTable, Occurence, ...
![Page 12: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/12.jpg)
SerNetohne Elasticsearch
Server DBClient
BIRTBIRT
![Page 13: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/13.jpg)
SerNetmit Elasticsearch
Server DBClient
BIRTBIRT ES
ESIndex
![Page 14: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/14.jpg)
SerNetmit Elasticsearch
Server DBClient
BIRTBIRT ES
ESIndex
Redundanz
![Page 15: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/15.jpg)
SerNetZweckentfremdung
Ausnutzen der Redundanz
ES-Index speichert Objekte im JSON-Format
(meist) schneller als langwieriges Ausführen von
Commands die mit der DB kommunizieren
Umgehen von Flaschenhals Hibernate (Cascadierung, kein
Lazy-Loading, keine Proxy-Initialisierung)
![Page 16: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/16.jpg)
SerNetAnbindung BIRT ↔ ES
Anbindung über eigenen ODA-Treiber nicht notwendig,
aber möglich
Erweiterung der Suchimplementierung um Filter nach
Scope-Id
Zugriff auf Elasticsearch über Data-Set in Report-Template
![Page 17: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/17.jpg)
SerNetPraxis / Livedemo
Code SearchService + BaseDao
BIRT / vDesigner
verinice
![Page 18: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/18.jpg)
SerNetErgebnisse
500 1000 2000 3000 4000 80000
200
400
600
800
1000
1200
1400
1600
1800
Hibernate
Elasticsearch
Elemente
Se
kun
de
n
![Page 19: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/19.jpg)
SerNetFazit
einfache Integration / Implementierung einer Schnittstelle
Abfrage von Daten über primitive Datentypen
→ Vermeiden von Overhead
je komplexer die Anfrage, desto größer der
Geschwindigkeitsgewinn
Nachteile
![Page 20: Elasticsearch goes BIRT - bed-con.orgbed-con.org/2015/files/slides/ElasticsearchGoesBIRT.pdf · Datenmodell SerNet Baumstruktur, dynamisch anpassbar Worst-Case (für Reporting): beliebige](https://reader034.fdokument.com/reader034/viewer/2022042113/5e8f4570508e652d72511461/html5/thumbnails/20.jpg)
SerNet
© 2015, SerNet GmbH
Kontakt
Sebastian Hagedorn, [email protected]
SerNet GmbH
Bahnhofsallee 1b Torstrasse 6
37081 Göttingen 10119 Berlin
tel +49 551 370000-0 +49 30 5 779 779 0
fax +49 551 370000-9 +49 30 5 779 779 9
http://svn.verinice.org
http://www.sernet.de