<!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>
      <journal-title-group>
        <journal-title>Total
MySQL</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Optimierung von Analytischen Abfragen über Statistical Linked Data mit MapReduce</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sébastien Jelsch</string-name>
          <email>sebastien.jelsch@fzi.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>Benedikt Kämpgen</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>und Stefan Igel</string-name>
          <email>stefan.igel@inovex.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>FZI Forschungszentrum Informatik</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Schlüsselwörter: Linked Data</institution>
          ,
          <addr-line>Data Cube, Parallelisierung, MapReduce</addr-line>
        </aff>
      </contrib-group>
      <volume>42</volume>
      <issue>4</issue>
      <fpage>356</fpage>
      <lpage>360</lpage>
      <abstract>
        <p>Zusammenfassung. In den letzten Jahren ist die Menge der verfügbaren Linked Data im Web stetig gestiegen. Daher veröfentlichen immer mehr Provider ihre statistischen Datensätze als Linked Data, um sie mit weiteren Informationen anzureichern. Wir möchten in diesem Kurzbeitrag zu einer laufenden Arbeit eine Extract-Transform-Load (ETL) Pipeline vorstellen, die extrem große Mengen an Linked Data automatisiert in ein horizontal skalierbares Open Source OLAP-System bereitstellen kann.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Einleitung</title>
      <p>
        In der Arbeit von Kämpgen und Harth [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] wurde ein Extract-, Transform- und
Load-Prozess (ETL-Prozess) vorgestellt, der die statistischen Linked Data aus
unterschiedlichen RDF Stores, unter Anwendung der Abfragesprache SPARQL und
dem Cube-Vokabular QB, in ein multidimensionales Datenmodell transformiert.
Ferner wurden die Informationen in diesem ETL-Prozess in einem relationalen
Data Warehouse gespeichert. Auf diese Weise konnte mit der
OLAP-to-SQLEngine Mondrian [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] die Vorteile der multidimensionalen Abfragemöglichkeit und
erweiterten Selektierbarkeit von OLAP-Anfragen mit MDX (Multidimensional
Expressions) genutzt werden. Dieser Ansatz beinhaltet jedoch drei wesentliche
Probleme:
(V1) Die Dauer des ETL-Prozesses bei großen Datensätzen mit vielen
Zusatzinformationen ist nicht zufriedenstellend, da innerhalb der RDF-Daten die
nötigen Informationen für das multidimensionale Datenmodell (Metadaten
und Daten) herausgezogen werden müssen.
(V2) Bei einer Aktualisierung des Datenbestands oder bei neu hinzukommende
      </p>
      <p>Informationen muss der ETL-Prozess komplett neu durchgeführt werden.
(V3) Zusatzinformationen an den Datensätzen werden bei der Erstellung des
multidimensionalen Datenmodells gefiltert und können bei analytischen
Abfragen nicht berücksichtigt oder als Zusatzinformation abgefragt werden.
Auch wenn das multidimensionale Datenmodell dementsprechend erweitert
wird, können heterogene Zusatzinformationen nicht berücksichtigt werden.</p>
      <p>
        In einer vorherigen Arbeiten [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] wurden die Daten in einem Triple-Store
geladen, um analytische Abfragen mittels der graphenbasierten Sprache SPARQL
auszuführen. Es zeigte sich, dass der Triple Store mit beliebigen RDF-Daten
weniger efizient für analytische Abfragen geeignet ist als ein RDBMS mit
Sternschema. Eine weitere Arbeit [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] beschäftigte sich mit der Optimierung eines
Triple Stores durch horizontale Skalierung. Da NoSQL-Systeme für komplexe
Operationen weniger geeignet sind, war die Ausführung der analytischen Abfragen
nicht efizient genug. In der Arbeit von Abelló et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] wurden analytische
Abfragen auf MapReduce-basierten Systemen evaluiert. Dabei wurden die Vorteile
von Big-Data-Technologien bei der Generierung eines OLAP Cubes für
analytische Abfragen überprüft, jedoch ohne eine horizontale Skalierung durchzuführen.
Grundlegend kann gesagt werden, dass diese drei Ansätze für die Analyse einer
beliebigen Menge an RDF-Daten eine Herausforderung darstellen.
      </p>
      <p>Bei der Analyse großer Datenmengen sind daher Big-Data-Technologien
notwendig. Sowohl relationale Datenbanken, RDF Stores als auch OLAP Engines
skalieren in der Regel nicht horizontal und besitzen daher eine natürliche Grenze
bzgl. ihrer Datenspeicher- und Datenverarbeitungskapazität. Wir glauben, dass
sich diese Beschränkungen mittels Parallelisierung über viele Rechner überwinden
lassen. Mit Apache Hadoop sind derartige Technologien in einem Open Source
Software Stack verfügbar. Bislang wurde nicht erforscht, ob eine enorme
RDFDatenmenge in einem automatisierten ETL-Prozess durch eine Umsetzung der
Architektur von Kämpgen und Harth mit Hadoop-Komponenten für
OLAPAnalysen bereitgestellt werden kann.</p>
    </sec>
    <sec id="sec-2">
      <title>Aktueller Ansatz</title>
      <p>Der hier präsentierte Lösungsansatz überführt Kämpgen und Harths Konzept
in eine horizontal skalierende Architektur auf der Basis von Hadoop. Die
nichtskalierbaren Komponenten, wie die RDF-Datenbank, die Abfragesprache SPARQL
und die relationale Datenbank, werden dabei durch Technologien und
Frameworks aus dem Hadoop-Ökosystem ersetzt. Abbildung 1 veranschaulicht die neue
Gesamtarchitektur.</p>
      <p>Abb. 1. Parallelisierungsarchitektur für analytische Abfragen auf Statistical Linked
Data mit MapReduce-basiertem ETL-Prozess.</p>
      <p>
        Die in verschiedenen RDF Stores abgelegten Linked Data werden in das
N-Triples-Format umgewandelt und in das Hadoop Distributed File System
(HDFS) geladen. Das zeilenbasierte N-Triples-Format ist besonders gut geeignet
um die Daten in die Hive-Tabelle „triples“ mit den Spalten „subject“, „predicate“
und „object“ zu transformieren. Im Vergleich zur Arbeit von Cudré-Mauroux
et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] werden in unserem ETL-Prozess keine Property Tables generiert. Die
vorkommenden Predicates werden beim Befüllen der Hive-Tabelle in Ordnern
partitioniert. Dies optimiert Hive-Abfragen bei der Suche nach bestimmten
Predicates, z. B. nach Measures (Predicate qb:measure). Unter Anwendung solcher
Hive-Abfragen und MapReduce Jobs findet auf Basis der Definition des Cubes im
QB-Vokabular eine Transformation der triples-Tabelle in ein relationales
Datenmodell im Sternschema mit einer Fakten- und mehreren Dimensionstabellen statt.
Die Cube Build Engine in Apache Kylin[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] erstellt aus dem Hive-Sternschema in
mehreren MapReduce Jobs den OLAP Cube. Für die Speicherung der Cuboids
ist die NoSQL-Datenbank HBase verantwortlich. In dieser spaltenorientierten
NoSQL-Datenbank werden die verschiedenen Aggregationen der Cuboids
gespeichert. HBase eignet sich, aufgrund der robusten Verarbeitung sehr großer
Datenmengen und durch redundante, horizontale Verteilung durch das Ablegen
der Daten ins HDFS, besonders gut als Speicherort der Cuboids.
      </p>
      <p>Die SQL Engine in Kylin erlaubt das Absetzen von SQL-Anfragen an den
Cube. Eine Ausführung von OLAP-Anfragen mit MDX ist bislang jedoch nicht
möglich. Daher liegt ein weiteres Augenmerk dieser Arbeit in der Anpassung
der OLAP-to-SQL Engine Mondrian. Im Mittelpunkt dieser Betrachtung steht
die Kommunikation zwischen dem OLAP Client und Kylin, besonders vor dem
Hintergrund, dass Kylin lediglich eine ANSI-SQL-Teilmenge verarbeiten kann.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Vorläufige Evaluation</title>
      <p>
        Grundlage der Evaluation ist die von Kämpgen und Hart vorgestellten Arbeit [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ],
die wiederum auf den Star Schema Benchmark (SSB) aufbaut, um analytische
Abfragemethoden über Statistical Linked Data zu evaluieren. Die Generierung
einer beliebigen Datenmenge im Sternschema wird durch das TPC-H sichergestellt.
Dies erlaubt eine Untersuchung größerer RDF-Datenmengen im Hinblick auf die
geplante Architektur. Zusätzlich stellt SSB unterschiedliche analytische
SQLQueries zur Verfügung, die eine detaillierte und vergleichbare Evaluierung der
Architektur ermöglicht. In [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] wurden diese SQL-Queries aufgelistet, diskutiert
und in vergleichbare MDX-Queries umgewandelt.
      </p>
      <p>In dieser Arbeit werden mithilfe der TPC-H Benchmark-Datengenerierung
verschieden große Datenmengen sowohl hinsichtlich der Ausführungsdauer des
ETL-Prozesses als auch der Anfragedauer bei analytischen Queries untersucht.
Für die erste Evaluation verwenden wir SSB mit der Skalierung 1 (ca. 6.000.000
Datensätze). Dies entspricht einem Umfang von 4,4GB an RDF-Daten im
QBVokabular. Unser Cluster besteht aus drei virtuellen Rechnern mit Ubuntu 12.04
LTS und jeweils 32GB Ram, wobei jeder MapReduce Job max. 8GB zugewiesen
bekommt. Der Hauptknoten hat dabei vier CPUs mit 2,5GHz, die restlichen
Knoten besitzen jeweils zwei CPUs mit 2,4GHz.</p>
      <p>Die Umwandlung der RDF-Daten in das zeilenbasierte N-Triples-Format
dauert auf dem Hauptrechner durchschnittlich 1147s. Die resultierenden
N-TriplesDateien haben eine Gesamtgröße von 16,6GB und der Umzug ins HDFS dauert
durchschnittlich 224s (75,92 MB/s). Der ETL-Prozess zur Bewirtschaftung des
Sternschemas dauert durchschnittlich 5748s und die Generierung des
OLAPCubes in Kylin benötigt auf diesem Cluster 2257s.</p>
      <p>Bei unserer vorläufigen Evaluation findet, bis auf die Umwandlung der
RDFDaten in das N-Triples-Format, bereits an jeder möglichen Stelle eine
Parallelisierung statt. Nach dem Umzug der Daten in das HDFS werden alle restlichen
Schritte durch verschiedene MapReduce Jobs parallel ausgeführt. Die Speicherung
des OLAP Cubes in HBase führt zu einer horizontalen Verteilung der Daten.</p>
      <p>Aufgrund der Verwendung von Calculated Members und der Einschränkung
der SQL-Syntax ist zum jetzigen Zeitpunkt eine Evaluation der MDX-Abfragen
Q1, Q2 und Q3 in Kylin nicht möglich. Ein Lösungsansatz dieses Problems
besteht darin, die Multiplikation der Measures zur Laufzeit des ETL-Prozesses
zu berechnen und in die Faktentabelle als neue Spalte zu speichern.</p>
      <p>Die durchschnittliche Ausführungsdauer der MDX-Abfragen ist in Tabelle 1
aufgelistet. Obwohl die vorläufige Evaluation auf einem Cluster mit virtuellen
Rechnern ausgeführt wird, lässt sich erkennen, dass alle MDX-Abfragen nach dem
ETL-Prozess mit Kylin schneller ausgeführt werden als bei einer traditionellen
Datenbank wie MySQL. Eine systematische Evaluation in Abhängigkeit der
Clustergröße sollte einen noch deutlicheren Unterschied bei der Ausführung
der Abfragen aufzeigen. Ferner soll der ETL-Prozess und die Analysedauer
bei größeren und mit Hintergrundinformationen angereicherten Datensätzen
untersucht werden.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Zusammenfassung</title>
      <p>Die vorgestellte, durchgängig horizontal skalierende Architektur auf Basis von
Hadoop liefert eine vielversprechende Lösung für die efiziente Speicherung und
performante Verarbeitung großer Linked Data Volumina mit Hadoop. Sie
beinhaltet einen Ansatz zur skalierbaren Transformation dieser Daten mittels MapReduce
und Hive. Aufsetzend auf Hive und HBase stellt Kylin multidimensionale
Datenstrukturen zur Verfügung, die die Analyse großer Volumina numerischer Linked
Data mittels etablierter OLAP-Methoden und Tools ermöglichen. Eine folgende
systematische Evaluation bezüglich Skalierbarkeit und Performanz muss die
ersten Ergebnisse allerdings noch bestätigen. Die beschriebene Architektur erscheint
grundsätzlich auch geeignet zur efizienten Aktualisierung des Datenbestandes
und zur Ergänzung der numerischen Daten um heterogene Zusatzinformationen.
Dies wird Gegenstand zukünftiger Forschungsarbeiten sein.</p>
      <p>Literatur</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Abelló</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferrarons</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Romero</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Building Cubes with MapReduce</article-title>
          .
          <source>In: Proceedings of the ACM 14th international workshop on Data Warehousing and OLAP</source>
          . pp.
          <fpage>17</fpage>
          -
          <lpage>24</lpage>
          . ACM (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Apache: Kylin - An Open Source Distributed Analytics Engine</surname>
          </string-name>
          (
          <year>2015</year>
          ), http://kylin. incubator.apache.org/,
          <source>aufgerufen am 11. September</source>
          <year>2015</year>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Cudré-Mauroux</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Enchev</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fundatureanu</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Groth</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haque</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Keppmann</surname>
            ,
            <given-names>F.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miranker</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sequeda</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wylot</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>NoSQL databases for RDF: an empirical evaluation</article-title>
          .
          <source>In: The Semantic Web-ISWC</source>
          <year>2013</year>
          , pp.
          <fpage>310</fpage>
          -
          <lpage>325</lpage>
          . Springer (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Kämpgen</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Transforming Statistical Linked Data for Use in OLAP Systems</article-title>
          .
          <source>In: Proceedings of the 7th international conference on Semantic systems</source>
          . pp.
          <fpage>33</fpage>
          -
          <lpage>40</lpage>
          . ACM (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Kämpgen</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>No Size Fits All - Running the Star Schema Benchmark with SPARQL and RDF Aggregate Views</article-title>
          .
          <source>In: The Semantic Web: Semantics and Big Data</source>
          , pp.
          <fpage>290</fpage>
          -
          <lpage>304</lpage>
          . Springer (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Pentaho: Mondrian - Open Source Business Analytics Engine</surname>
          </string-name>
          (
          <year>2015</year>
          ), http:// community.pentaho.com/projects/mondrian/,
          <source>aufgerufen am 11. September</source>
          <year>2015</year>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>