<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>E ziente Integration von Data- und Graph-Mining-Algorithmen in relationale Datenbanksysteme</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Manuel Then</string-name>
          <email>then@in.tum.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Linnea Passing</string-name>
          <email>passing@in.tum.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nina Hubig</string-name>
          <email>hubig@in.tum.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stephan Gunnemann</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alfons Kemper und Thomas Neumann</string-name>
          <email>kemper@in.tum.de</email>
          <email>neumann@in.tum.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Schlusselworter: Data Mining</institution>
          ,
          <addr-line>Graph, SQL, HyPer, RDBMS</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>TU Munchen</institution>
          ,
          <addr-line>Lehrstuhl fur Datenbanksysteme, Boltzmannstra e 3, 85748 Garching bei Munchen</addr-line>
        </aff>
      </contrib-group>
      <fpage>45</fpage>
      <lpage>49</lpage>
      <abstract>
        <p>Zusammenfassung. Die Nutzung komplexer Algorithmen zur Analyse oft hochdimensionaler Datensatze gerat im Kontext von "Big Data\ immer mehr in das Zentrum der Aufmerksamkeit. Um diese komplexen Datenanalysen e zient zu ermoglichen liegt es nahe, sie in die am weitesten verbreiteten Datenspeicher zu integrieren { in relationale Datenbanksysteme. Dies fuhrt zu interessanten Fragestellungen nicht nur im Bereich der technischen Integration sondern besonders auch in der Anfragespezi kation und -auswertung. In diesem Kurzbeitrag beschreiben wir, wie Algorithmen zur Datenanalyse e zient und nutzerfreundlich in das relationale Hauptspeicherdatenbanksystem HyPer integriert werden konnen. Wir evaluieren unseren Ansatz anhand eines Vergleichs mit zwei verbreiteten Datenanalysesystemen auf Graph- und Vektordaten.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1.1 Stand der Technik</title>
      <p>
        SAP HANAs Predictive Analytics Library [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] und Oracle Data Miner [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
erlauben es Data-Mining-Algorithmen ahnlich zu SQL-Anfragen einzeln auszufuhren.
Die Ergebnisse der Algorithmen werden jeweils in zu spezi zierenden Tabellen
abgelegt und konnen damit in separaten SQL-Anfragen genutzt werden. Eine
interaktive Weiterverarbeitung der Ergebnisse in derselben Anfrage ist somit
nicht moglich. Oracle Data Miner legt zudem den Fokus auf supervised
MachineLearning-Algorithmen. Es wird hier zunachst ein Modell mit Trainingsdaten
angelegt, das anschlie end mithilfe von SQL-Funktionen auf Testdaten
angewandt. Fur unsupervised Algorithmen erscheint dies umstandlich, da ebenfalls
ein persistentes Modell angelegt werden muss. Beide Produkte benennen als
Vorteil, dass die Daten nicht mehr kopiert werden mussen, sondern innerhalb
der Datenbank analysiert werden konnen. Wie in diesem Abschnitt gezeigt, ist
die Integration in SQL-Anfragen bei beiden Losungen jedoch nur ober achlich
gegeben.
      </p>
      <p>Im Gegensatz hierzu streben wir eine tiefere Integration mit SQL an, sodass
SQL- und Data-Mining-Anfragen nahtlos miteinander verwendet und kompiliert
werden konnen.</p>
    </sec>
    <sec id="sec-2">
      <title>1.2 Wissenschaftlicher Beitrag</title>
      <p>In diesem Kurzbeitrag stellen wir am Beispiel von HyPer dar, wie
Data-MiningAlgorithmen e zient in relationale Datenbanksystemen integriert werden konnen.
Die wichtigsten Kontributionen unseres Beitrags sind zusammengefasst:
{ Mehrschichtiges Spezi kationsmodell zur Erstellung und Nutzung der
Algorithmen, bestehend aus Laien-, Domanenexperten- und Programmierer-Sicht
{ SQL-Erweiterung zur Spezi kation von e zienten iterativen Algorithmen
{ Laufzeitvergleiche mit Data-Mining-Anwendungen am Beispiel der
Algorithmen PageRank (fur Graphdaten) und K-Means (fur Vektordaten)
2</p>
      <p>Arten der Integration von Algorithmen in HyPer
Existierende Datenanalysesysteme nutzen hau g eigene, meist proprietare,
Sprachen oder APIs, um Analysen zu spezi zieren. Dies hat diverse Nachteile.
Unubliche Anfragesprachen machen es notig, die Nutzer { hau g Datenanalysten
aus der Anwendungsdomane { aufwandig zu schulen. Werden Hochsprachen-APIs
{ z.B. in Java { verwendet, gibt es zwar viele erfahrene Programmierer, jedoch
haben diese selten das notige Domanenwissen. Bei in Hochsprachen spezi zierten
Anfragen ist es zudem fur das Datenanalysesystem sehr schwierig, die Anfrage
zu optimieren, um eine e ziente Ausfuhrung zu ermoglichen.</p>
      <p>Wir wahlen daher einen neuartigen, mehrstu gen Ansatz fur die Integration
von Data Mining in HyPer. Unser Ziel ist es, Domanenspezialisten auf einfache
Art und Weise e ziente Anfragen spezi zieren zu lassen, wahrend Spezialisten alle
Freiheitsgrade behalten. Die vier im folgenden vorgestellten Stufen der Integration
unterscheiden sich daher sowohl in der Machtigkeit der Spezi kation, als auch in
den Moglichkeiten des DBMS, die Anfragen zu optimieren.</p>
    </sec>
    <sec id="sec-3">
      <title>Externer Zugri auf die Datenbank</title>
      <p>Um allgemeine Data-Mining-Funktionalitat anzubinden, bei der das DBMS nur
als Datenspeicher verwendet wird, bietet HyPer PostgreSQL-kompatible
Datenbankschnittstellen, u.a. JDBC. Zwar ermoglichen diese beliebige Berechnungen,
jedoch verhindert der Zugri uber sie umfassende Anfrageoptimierungen und
fuhrt potentiell zu teurem Datenaustausch zwischen den beteiligten Systemen.
2.2</p>
    </sec>
    <sec id="sec-4">
      <title>Programmausfuhrung in der Datenbank</title>
      <p>Als tiefergehende Integration von Data Mining erlaubt HyPer die Ausfuhrung von
Nutzercode als User-de ned Functions (UDFs). Wie bei anderen
Datenbanksystemen konnen berechtigte Nutzer dabei beliebige Funktionalitat hinzufugen. Diese
wird dann entweder direkt innerhalb des Datenbanksystems (unfenced ) oder in
einer Sandbox (fenced ) ausgefuhrt. Dadurch ist es nicht mehr notig, Daten in
externe Systeme zu kopieren.
2.3</p>
    </sec>
    <sec id="sec-5">
      <title>SQL-Spracherweiterungen</title>
      <p>Oft lassen sich Data-Mining-Algorithmen nur umstandlich in SQL ausdrucken.
Dies liegt unter anderem daran, dass viele Verfahren iterativ sind. Um diese in
SQL abzubilden kommen hau g rekursive Common Table Expressions
(WITHStatements) zum Einsatz, die eine monoton wachsende Relation berechnen. Da
iterative Algorithmen im Normalfall jedoch nur auf die Daten der vorherigen
Iteration zugreifen, um die aktuelle Iteration zu berechnen, wird bei diesem
Vorgehen viel Speicher unnutz belegt. Dies ist vor allem fur
Hauptspeicherdatenbanksysteme ein Problem, da Speicher hier eine besonders wertvolle Ressource
ist. Als Losung fur dieses Problem schlagen wir ein Iterationskonzept fur SQL
vor. Syntaktisch ist dieses an WITH angelehnt:
with recursive [Algo] as ([Initialization] iterate [Step]
until [Condition])
select * from [Algo]</p>
      <p>
        Es wird hier eine temporare Relation Algo erstellt, die anfangs das Resultat der
Unteranfrage Initialization enthalt und auf die iterativ Step angewendet wird, bis
der boolsche Ausdruck Condition wahr ist. Diese Spracherweiterung erlaubt es uns,
iterative Data-Mining-Verfahren auf einfache Weise direkt in SQL auszudrucken.
Dies ermoglicht nicht nur die direkte Verwendung des ausgereiften
state-of-theart relationalen Anfrageoptimierers von HyPer, sondern auch die Nutzung der
hochoptimierten parallelen Codegenerierungs- und Ausfuhrungsengine [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
2.4
      </p>
    </sec>
    <sec id="sec-6">
      <title>Data Mining im Datenbankkern</title>
      <p>Im Gegensatz zu anderen Datenbanksystemen integriert HyPer wichtige
DataMining-Funktionalitat direkt im Datenbankkern. Fur den Nutzer sind diese
syntaktisch nicht von den zuvor beschriebenen UDFs zu unterscheiden. So
berechnet folgende Anfrage fur jeden Knoten des durch die Kanten in edges gebildeten
Graphen die parametrisierte PageRank-Metrik:1
select * from pagerank((select src,dest from edges), 0.85, 0.001)</p>
      <p>Intern wird die Berechnung jedoch von spezialisierten Operatoren ausgefuhrt,
in diesem Fall durch einen Sort- gefolgt von einem PageRank-Operator.</p>
      <p>HyPer wahlt dabei u.a. eine e ziente interne Graphreprasentation und fuhrt
weitere Vorverarbeitungsschritte durch, um die Metrik zu berechnen. Des Weiteren
kennt der Anfrageoptimierer die genauen Eigenschaften des PageRank-Operators
und kann somit den optimalen Ausfuhrungsplan wahlen.</p>
      <p>Lambda-Ausdrucke Vorde nierte Funktionen allein decken jedoch nicht alle
Einsatzzwecke ab. HyPer erlaubt daher die Verwendung von Lambda-Ausdrucken in
SQL-Anfragen. Dies ermoglicht etwa im K-Means-Algorithmus den Einsatz
benutzerde nierter Distanzfunktionen, wobei die volle Optimierbarkeit der Anfrage
erhalten bleibt. Bei entsprechend gewahlter Distanzfunktion konnen dabei
numerische und kategorische Daten kombiniert analysiert werden, was unverzichtbar
fur Datenbanksysteme mit ihren verschiedenen Datentypen ist.</p>
      <sec id="sec-6-1">
        <title>3 Experimentelle Evaluierung</title>
        <p>
          In diesem Abschnitt evaluieren wir unsere Ansatze aus den Abschnitten 2.3,
nachfolgend HyPer SQL, und 2.4, im Folgenden HyPer Op. Wir
implementieren dazu jeweils einen Graph- und Vektoralgorithmus. PageRank wahlen wir
als bekannten Vertreter der Graphverfahren und als Basis weiterer iterativer
Algorithmen. Fur Vektordaten verwenden wir K-Means, ein hau g genutztes
Clusteringverfahren [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
        </p>
        <p>
          Als Vergleichssysteme verwenden wir Apache Spark 1.4.0 [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] und MATLAB
R2015 [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] mit litekmeans [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. Alle Tests wurden auf einem Intel Core i7-5820K
(6x3,3 GHz) mit 32 GB Hauptspeicher unter Ubuntu Linux 15.04, Kernel 3.19
durchgefuhrt. Die Datensatze, Tabelle 1, passen auch mit zusatzlichen
programmspezi schen Datenstrukturen noch in den Hauptspeicher. Die
LDBCGraphdatensets wurden mit dem gleichnamigen Datengenerator2 erstellt.
        </p>
        <p>In unseren Tests, Tabelle 2, zeigt MATLAB die langsten Laufzeiten und das
schlechtere Skalierungsverhalten3, weshalb wir uns in der weiteren Auswertung
auf den Vergleich mit Spark fokussieren. Im Bezug auf die Vektordatensatze zeigen
HyPer und Spark ein ahnliches Skalierungsverhalten, wobei HyPer im
Datenbankkern jedoch um Faktor 1{2 schneller ist. Fur die PageRank-Graphanalyse zeigt
sich, dass HyPer sowohl besser skaliert als Spark, als auch 1{2 Gro enordnungen
schneller ist. HyPer mit in SQL spezi zierten Data-Mining-Anfragen zeigt
Potential, erzeugt aber im Fall von K-Means noch keine optimalen Ausfuhrungsplane.
1 Die explizite Klammerung der Unteranfrage ist notig, da wir dort beliebige Anfragen
erlauben; einfache Kommatrennung fuhrt zu Mehrdeutigkeiten in der Grammatik.
2 Siehe https://github.com/ldbc/ldbc_snb_datagen.
3 MATLAB fuhrt die Algorithmen sequentiell aus. Jedoch ware die Laufzeit auch bei
perfekter Skalierung uber die sechs verfugbaren CPU-Kerne noch immer unterlegen.</p>
        <p>Tabelle 1. Datensatze zur Evaluierung der gewahlten Verfahren
Datensatz
K-Means,
k = 3,
3 Iterationen
PageRank,
d = 0:85,
e = 0:0001</p>
        <p>Tabelle 2. Laufzeiten in Sekunden, OOM = Out of Memory</p>
        <p>HyPer Op</p>
        <p>HyPer SQL
Syn 1
Syn 2
Syn 3
LDBC SF 1
LDBC SF 10
Zusammenfassung Wir haben eine vierschichtige Integration von Data Mining
in unser relationales Hauptspeicherdatenbanksystem HyPer vorgestellt.
Wichtige Algorithmen sind hochoptimiert im Datenbankkern integriert und konnen
direkt per SQL aufgerufen werden, wo sie auch Laien leicht zuganglich sind.
Zusatzliche Algorithmen konnen durch unsere Spracherweiterung direkt in SQL
spezi ziert werden und nutzen somit HyPers e ziente Codegenerierung und
Laufzeitumgebung. Unsere Testergebnisse zeigen, dass Data Mining auf Vektor- und
Graphdaten in HyPer performanter ist und besser skaliert als in vergleichbaren
state-of-the-art Datenanalysesystemen. Zeitaufwandige ETL-Zyklen entfallen.</p>
      </sec>
      <sec id="sec-6-2">
        <title>Literatur</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>N.</given-names>
            <surname>Aggarwal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kumar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Khatter</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Aggarwal</surname>
          </string-name>
          .
          <article-title>Analysis the e ect of data mining techniques on database</article-title>
          .
          <source>Advances in Engineering Software</source>
          ,
          <volume>47</volume>
          (
          <issue>1</issue>
          ),
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>D.</given-names>
            <surname>Cai</surname>
          </string-name>
          .
          <article-title>Litekmeans: the fastest matlab implementation of kmeans</article-title>
          . Available at: http: // www. zjucadcg. cn/ dengcai/ Data/ Clustering. html ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>F.</surname>
          </string-name>
          <article-title>Farber</article-title>
          , N. May, W. Lehner, P. Gro e, I. Muller, H. Rauhe, and
          <string-name>
            <given-names>J.</given-names>
            <surname>Dees</surname>
          </string-name>
          .
          <article-title>The SAP HANA database { an architecture overview</article-title>
          .
          <source>IEEE Data Eng. Bull.</source>
          ,
          <volume>35</volume>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>A.</given-names>
            <surname>Kemper</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Neumann</surname>
          </string-name>
          .
          <article-title>HyPer: A hybrid OLTP &amp; OLAP main memory database system based on virtual memory snapshots</article-title>
          . In ICDE,
          <year>April 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <source>MATLAB. Version 8</source>
          .5 (
          <issue>R2015a</issue>
          ).
          <article-title>The MathWorks Inc</article-title>
          .,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>P.</given-names>
            <surname>Tamayo</surname>
          </string-name>
          et al.
          <article-title>Oracle data mining</article-title>
          . In O. Maimon and L. Rokach, editors,
          <source>Data Mining and Knowledge Discovery Handbook</source>
          , pages
          <volume>1315</volume>
          {
          <fpage>1329</fpage>
          .
          <string-name>
            <surname>Springer</surname>
            <given-names>US</given-names>
          </string-name>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Xindongi</given-names>
            <surname>Wu</surname>
          </string-name>
          et al.
          <article-title>Top 10 algorithms in data mining</article-title>
          .
          <source>Knowledge and Information Systems</source>
          ,
          <volume>14</volume>
          (
          <issue>1</issue>
          ):1{
          <fpage>37</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>M.</given-names>
            <surname>Zaharia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Chowdhury</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Franklin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Shenker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and I.</given-names>
            <surname>Stoica</surname>
          </string-name>
          . Spark:
          <article-title>Cluster computing with working sets</article-title>
          .
          <source>In HotCloud'10. USENIX Association</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>