<!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>Visualisierung von NoSQL-Transformationen unter der Verwendung von Sampling-Techniken</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stefan Braun</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Johannes Schildgen</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stefan De loch</string-name>
          <email>desslochg@cs.uni-kl.de</email>
        </contrib>
      </contrib-group>
      <fpage>427</fpage>
      <lpage>438</lpage>
      <abstract>
        <p>Zusammenfassung. Analysen auf NoSQL-Datenbanken sind oft langdauernd und die Ergebnisse fur den Benutzer hau g schwer verstandlich. Wir prasentieren eine Moglichkeit, Datenmengen aus Wide-Column Stores mittels der Transformationssprache NotaQL zu transformieren sowie zu aggregieren und die Ergebnisse in Form von Diagrammen dem Benutzer darzustellen. Dabei kommen Sampling-Techniken zum Einsatz, um die Berechnung auf Kosten der Genauigkeit zu beschleunigen. Das von uns verwendete iterative Samplingverfahren sorgt fur eine kontinuierliche Verbesserung der Berechnungsgenauigkeit und bietet zudem Moglichkeiten zur Genauigkeitsabschatzung, die in Form von Kon denzintervallen in den Diagrammen dargestellt werden kann.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        genannt und haben gemeinsam, dass jeder Eintrag uber eine eindeutige ID
identi ziert wird. Uber diese ID erfolgt auch die Partitionierung; ein
impliziter Index darauf erlaubt e ziente Lese- und Schreibzugri e. Da viele
NoSQLDatenbanksysteme keine komplexen Anfragen erlauben, werden oft
Datentransformationen mittels MapReduce oder hoheren Sprachen wie Pig [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], Hive [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ],
Phoenix [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] oder NotaQL [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] durchgefuhrt. Wahrend Hive und Phoenix einen
SQL-artigen Zugri auf die Daten erlauben, bieten Pig und NotaQL weitere
Transformationsmoglichkeiten, die aufgrund der Schema-Flexibilitat in
NoSQLDatenbanken vonnoten sind.
      </p>
      <p>
        Diese Arbeit beschaftigt sich mit der Visualisierung von Daten, die im
WideColumn Store HBase [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] gespeichert sind. Mithilfe von Transformationsskripten,
die in der Sprache NotaQL formuliert werden, konnen Eingabedaten zunachst
ge ltert, transformiert und aggregiert werden. Das Resultat wird in Form von
Diagrammen dem Benutzer prasentiert. Da die Transformationen sehr lange
dauern konnen und in Diagrammen oft keine hundertprozentige Genauigkeit
erforderlich ist, schlagen wir die Verwendung von Sampling-Techniken vor. Durch
das Ermitteln von Zufallsstichproben in den Eingabedaten wird die
Berechnung beschleunigt, sodass der Benutzer bereits nach kurzer Zeit das Resultat
in Form von Kreis-, Balken- oder Liniendiagrammen sehen kann. Der
Hauptfokus dieser Arbeit liegt auf der Anwendung von iterativen Samplingprozessen
bei NoSQL-Datentransformationen sowie dem Zusammenspiel von Sampling-,
Visualisierungs- und Ungenauigkeitsbestimmungstechniken.
      </p>
      <p>Im folgenden Kapitel stellen wir Sampling-Ansatze vor und erlautern, wie
sich mit statistischen Methoden Abschatzungen uber die Genauigkeit machen
lassen. Weiterhin prasentieren wir die Sprache NotaQL, mit der
Transformationen auf der HBase-Datenbank ausgefuhrt werden konnen. In Kapitel 3 stellen wir
ein Visualisierungswerkzeug vor, welches mittels Sampling-Methoden
NotaQLTransformationen durchfuhrt und in Form von Diagrammen visualisiert. Dort
wird erlautert, wie mithilfe von Whiskers die Berechnungsgenauigkeit im
Diagramm dargestellt werden kann und wie ein iterativer Transformationsprozess
diese Genauigkeit kontinuierlich steigern lasst. Kapitel 4 beinhaltet Ergebnisse
von Experimenten, die die Performanz des iterativen Samplingprozesses
analysieren. Nach einer Vorstellung verwandter Arbeiten in Kapitel 5 folgt eine
Zusammenfassung in Kapitel 6.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Grundlagen</title>
      <p>Dieses Kapitel beinhaltet die mathematischen und technischen Grundlagen zur
Ausfuhrung von Sampling-basierten Tabellentransformationen, die fur die
Visualisierung genutzt werden. Wide-Column Stores bieten eine simple API, um
komplette Tabellen zu scannen und bestimmte Zeilen anhand ihrer ID
(rowid ) abzurufen. Wegen des exiblen Datenmodells kann keine Aussage uber die
Spaltennamen einer Tabelle gemacht werden. Aus diesen Grunden kommt im
Rahmen dieser Arbeit kein SQL zum Einsatz, sondern die
Transformationssprache NotaQL.</p>
      <p>In Tabelle 1 wird der zeitliche Verlauf von Spritpreisen gespeichert. Die
Tabelle besteht aus zwei sogenannten Spaltenfamilien, die beim Erstellen der Tabelle
de niert werden. Die erste Spaltenfamilie "Spritpreise\ zeigt die Spritsorten, die
eine Tankstelle anbietet, sowie deren Preise. Die zweite Spaltenfamilie
"Informationen\ hingegen listet den Tankstellennamen sowie die Stra e auf.
row id Spritpreise Informationen</p>
      <sec id="sec-2-1">
        <title>Diesel SuperE10 Tankstelle Stra e</title>
        <p>2014-11-07 12:32:00 1,319 1,489 FillItUp Rue de Gaulle</p>
      </sec>
      <sec id="sec-2-2">
        <title>Diesel Tankstelle Stra e</title>
        <p>2014-11-07 21:30:00 1,409 FillItUp Rotweg</p>
      </sec>
      <sec id="sec-2-3">
        <title>Diesel SuperE10 Tankstelle Stra e</title>
        <p>2014-11-08 04:30:00 1,409 1,509 FillItUp Rue de Gaulle</p>
      </sec>
      <sec id="sec-2-4">
        <title>Diesel Tankstelle Stra e</title>
        <p>2014-11-08 05:30:00 1,389 FillItUp Rotweg</p>
      </sec>
      <sec id="sec-2-5">
        <title>Tabelle 1. Wide-Column Tabelle mit zwei Spaltenfamilien.</title>
        <p>2.1</p>
        <sec id="sec-2-5-1">
          <title>NotaQL</title>
          <p>
            In [
            <xref ref-type="bibr" rid="ref15">15</xref>
            ] wird die Datentransformationssprache NotaQL vorgestellt. Sie ermoglicht
das Ausdrucken vieler MapReduce-Algorithmen anhand von zwei oder drei
Zeilen Code. Im Gegensatz zu Phoenix oder Hive kann direkt auf den Tabellen eines
Wide-Column Stores gearbeitet werden, ohne dass vorher ein Tabellenschema
de niert werden muss. NotaQL dient im Grunde zur Erstellung einer Vorschrift,
wie eine Output-Zelle anhand des Inputs gebildet werden soll, wobei eine Zelle
die Kombination aus einer row-id und einem Spaltennamen ( r; c) bildet. Da
jede von ihnen einen atomaren Wert besitzt, reprasentiert das Tupel ( r; c; v)
die Verknupfung der Zelle mit ihrem Wert. Existieren mehrere Spaltenfamilien
in der Tabelle, konnen die Namen der Spaltenfamilien als Pra x fur den
Spaltennamen verwendet werden, z.B. Informationen:Stra e anstatt Stra e.
Die Moglichkeit zur Selektion von Zeilen wird durch die IN-FILTER-Klausel
gegeben. Sie de niert einen optionalen Filter am Anfang eines NotaQL-Skripts.
          </p>
          <p>Folgendes ist ein NotaQL-Skript, welches angewandt auf Tabelle 1 zur
Berechnung des Durchschnittspreises fur die einzelnen Spritsorten der
Tankstellenkette "FillItUp\ dient:</p>
          <p>IN-FILTER: Informationen:Tankstelle = 'FillItUp',
OUT. r &lt;- IN.Spritpreise: c,</p>
          <p>OUT.aggr:AVGPreis &lt;- AVG(IN.Spritpreise: v);</p>
          <p>Das Skript ist wie folgt zu verstehen: Die erste Zeile fuhrt eine
ZeilensSeplaekltteinernuanmgendu"rTchan.kEstselwlee\rddeenr SnpuarltZeeniflaemnilmieit"IdnefmormWateirotne"nF\illaIutUsgpe\wainhltd.eImn
der zweiten Zeile wird beschrieben, dass die Spaltennamen der
Spaltenfamilie "Spritpreise\ (IN.Spritpreise:_c) die neuen row-ids (OUT._r) sind. Es
wird also fur jeden distinkten Spaltennamen in dieser Spaltenfamilie eine
Zeile in der Ausgabetabelle erzeugt. Die dritte Zeile beschreibt nun die
Anwendung der Aggregatfunktion AVG auf die Werte der Spaltenfamilie "Spritpreise\
(AVG(IN.Spritpreise:_v)); also eine Ermittlung des Durchschnittspreises je
Snoarmtee.nD"AieVseGr PWreeirst\ w( OirUdT.daagngnr:inAVdGePrrSepiasl)teanbfgaemleiglite. D"aagsgEr\rguenbtneirs
ddeemrTSrpaanlstfeonr-mation ist in Tabelle 2 zu sehen.</p>
          <p>row id</p>
        </sec>
      </sec>
      <sec id="sec-2-6">
        <title>Diesel</title>
      </sec>
      <sec id="sec-2-7">
        <title>SuperE10</title>
        <p>aggr</p>
      </sec>
      <sec id="sec-2-8">
        <title>AVGPreis 1,3815</title>
      </sec>
      <sec id="sec-2-9">
        <title>AVGPreis 1,499</title>
      </sec>
      <sec id="sec-2-10">
        <title>Tabelle 2. Transformationsergebnis</title>
        <p>2.2</p>
        <sec id="sec-2-10-1">
          <title>Sampling</title>
          <p>
            Durch die Verwendung von Sampling lassen sich Datentransformationen auf
Kosten der Berechnungsgenauigkeit um einen beliebigen Faktor beschleunigen.
Sampling wird verwendet, um eine Stichprobe, also eine Teilmenge, aus einer
Grundgesamtheit zu ziehen und anhand dieser Statistiken, wie Ergebnisse von
Aggregatfunktionen, der Grundgesamtheit abzuschatzen. Je reprasentativer
eine solche Teilmenge ist, also je mehr ihr prozentualer Aufbau dem der
Grundgesamtheit gleicht, desto genauere Hochrechnungen und Schatzungen erlaubt
sie. Es existieren verschiedene Techniken zum Ziehen von Stichproben [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ]. Im
Folgenden wird die einfache Zufallsstichprobe und das iterative Sampling kurz
erlautert.
          </p>
        </sec>
        <sec id="sec-2-10-2">
          <title>Einfache Zufallsstichprobe Auch bekannt als Simple Random Sampling (SRS).</title>
          <p>Diese Technik kann mit und ohne Zurucklegen der Elemente durchgefuhrt
werden. Wir betrachten letzteres, da durch das Vermeiden von Duplikaten in der
Stichprobe im Allgemeinen eine hohere Genauigkeit erreicht wird. Jedes Element
der Datenmenge hat die gleiche Wahrscheinlichkeit p%, um in die Stichprobe
aufgenommen zu werden. Laut dem Gesetz der gro en Zahlen betragt der
Stichprobenumfang n somit N p=100, wobei N dem Umfang der Datenmenge entspricht.
Die Vorteile dieser Technik liegen in der einfachen Umsetzbarkeit, und dass
keine weitere Informationen, wie die Hau gkeitsverteilung des Merkmals, uber die
Datenmenge vorliegen mussen. Au erdem ist diese Technik unbiased, das hei t,
dass kein Element bei der Auswahl bevorzugt wird, was zu einer Verzerrung der
Hau gkeitsverteilung in der Stichprobe fuhren konnte.</p>
          <p>
            Iteratives Sampling Der Samplingprozess besteht aus mehreren Iterationen
von einfachen Zufallsstichproben. Es emp ehlt sich eine kleine Startgro e zu
wahlen, um bereits nach kurzer Zeit Ergebnisse zu sehen. Die iterative Ausfuhrung
mit immer gro er werdender Stichprobengro e sorgt nicht nur fur die
kontinuierliche Verbesserung der Berechnungsgenauigkeit, sondern liefert auch die
notwendigen Informationen, um ebendiese Genauigkeit mathematisch berechnen zu
konnen. Der Prozess kann abgebrochen werden, wenn fur den Nutzer eine
ausreichende Genauigkeit erzielt wurde. Alternativ ist der Prozess dann beendet,
sobald die Stichprobengro e 100% der Grundmenge betragt. In [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ] wird erlautert,
wie das Ergebnis der vorherigen Iteration fur die darauf folgende
wiederverwendet werden kann. Dieses Verfahren beschleunigt die Berechnung, erhoht jedoch
die Ungenauigkeit, da es sich in diesem Fall um Sampling mit Zurucklegen
handelt.
          </p>
          <p>Hochrechnung Bei der Verwendung der Aggregatfunktionen SUM und COUNT ist
das Ergebnis einer Berechnung nicht direkt aussagekraftig fur die
Grundgesamtheit, wenn die Berechnung nur eine Teilmenge betrachtet hatte. Das Ergebnis
muss somit zuerst mit dem Faktor 100=p hochgerechnet werden, wobei p der
Samplingwahrscheinlichkeit entspricht.</p>
          <p>
            Kon denzintervalle Durch die Verwendung von Sampling und beim
Hochrechnen der Ergebnisse von Aggregatfunktionen ergibt sich eine gewissen
Berechnungsungenauigkeit. Um diese Ungenauigkeit auszudrucken, werden
ci%Kon denzintervalle verwendet. Dabei gilt, dass je gro er ci% ist, desto gro er
ist auch das Intervall. Beispielsweise wird Tabelle 1 als Stichprobe betrachtet und
anhand dieser Daten der Durchschnittspreis fur Diesel geschatzt. Dieser
Durchschnittswert, genannt Stichprobenmittel x, ist in Tabelle 2 gelistet. Die
Berechnung eines 50%-Kon denzintervalles liefert nun das Intervall [
            <xref ref-type="bibr" rid="ref1 ref1">1,3513, 1,4117</xref>
            ],
ein 95%-Kon denzintervall liefert hingegen die etwas breiteren Grenzen [
            <xref ref-type="bibr" rid="ref1 ref1">1,286,
1,477</xref>
            ]. Die Interpretation ist wie folgt: Wurde das Stichprobenziehen und
Anwenden derselben Transformation immer wieder wiederholt werden und jedes
mal ein ci%-Kon denzintervall berechnet werden, so wurden ci% der Intervalle
den wahren Wert beinhalten. Wobei ci wahrend den Wiederholungen immer den
gleichen Wert hat.
          </p>
          <p>Fur die Berechnung der Intervalle wird neben dem Stichprobenmittel x auch
die Varianz der Stichprobe, genannt Stichprobenvarianz s2n, benotigt. Dieser
Wert ist ein Ma fur die Streuung der Daten in der Stichprobe.</p>
          <p>x = 1 Xn xi
n</p>
          <p>i=1
Mittelwert:</p>
          <p>Varianz:</p>
          <p>Dabei entspricht n dem Stichprobenumfang und xi dem i-ten Element in der
Stichprobe. Die Stichprobenvarianz weist weiterhin eine systematische,
nichtzufallige Abweichung auf. Das Ausma dieser Abweichung wird Bias oder
Verzerrung genannt. Zur Korrektur wird der Faktor n=(n 1) verwendet. Dieser
Faktor wird als Bessel-Korrektur bezeichnet. Daraus berechnet sich dann die
korrigierte Stichprobenvarianz s2.</p>
          <p>s2 = n (2)</p>
          <p>Die Quadratwurzel aus der korrigierten Stichprobenvarianz liefert die
Stichprobenstandardabweichung . Diese ist ein Ma fur die Streuung der Daten um
das Stichprobenmittel.</p>
          <p>n
1 s2n
s2n = n1 Xn xi2
i=1
x2
(1)
(3)
= ps2</p>
          <p>
            Die Berechnung der Kon denzintervalle erfolgt nun nach der
ChebyshevFormel [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ]:
[x
p(1= )
pn ; x + p(1= )
pn ]
dient dabei als Genauigkeitsregulator. Fur ein 95%-Kon denzintervall
betragt = 1 - 0.95 = 0.05, fur ein 90% entsprechend = 1 - 0.90 = 0.10. Allgemein
ausgedruckt:
          </p>
          <p>Aktuell gilt die Formel 4 nur fur die Aggregatfunktion AVG. Eine
Erweiterung dieser fur die Aggregatfunktion SUM ist moglich durch die Multiplikation
der Grenzen mit der Anzahl N an Datensatzen in der Grundgesamtheit. N kann
bei Verwendung der einfachen Zufallsstichprobe aus der Stichprobengro e n und
der Sampling-Wahrscheinlichkeit p hergeleitet werden.</p>
          <p>Die Chebyshev-Formel gilt als eine konservative Abschatzung, da sie meist
Intervallgrenzen berechnet, die nicht nur das gewunschten Kon denzniveau
abdecken, sondern auch uberschreiten. Es wird also meist ein zu gro es Intervall
berechnet. Jedoch kann es auch zu einer Unterschreitung des Niveaus kommen,
wenn die geschatzte Standardabweichung stark von der wirklichen abweicht und
diese daruber hinaus noch sehr gro ist. Der Vorteil dieser Formel ist die
einfache Berechenbarkeit und die Anwendbarkeit auf jede beliebige Werteverteilung,
solange das Stichprobenmittel sowie die Stichprobenvarianz berechenbar sind.
3</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Visualisierung von Transformationsergebnissen</title>
      <p>Das Ziel dieser Arbeit ist die Visualisierung von Daten aus einem Wide-Column
Store, welche mit Hilfe von NotaQL-Skripten zuerst transformiert wurden. Der
entsprechende Work ow wird in Abbildung 1 dargestellt. Gestrichelte Linien
zeigen dabei Prozesse an, die nur im Zusammenhang mit einem iterativen
Samplingprozess ausgefuhrt werden.</p>
      <p>
        Zuerst erfolgt eine einfache
Zufallsstichprobe mit der eingestellten
SamplingWahrscheinlichkeit aus der
Eingabetabelle. Die HBase API stellt hierfur die
Klasse RandomRowFilter bereit. Die
Daten werden anschlie end gema der
gegebenen NotaQL-Vorschrift transformiert
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] und - falls erforderlich -
hochgerechnet. Au erdem werden die Ergebnisse fur
einen iterativen Samplingprozess, in
Verbindung mit den Aggregatfunktionen, in
einem Uncertainity-Computer abgelegt. Abb. 1. Arbeitswork ow
Dieser dient unter anderem zur Berechnung von Kon denzintervallen. Vor der
Visualisierung werden die Ergebnisse sortiert in der Ausgabetabelle abgelegt.
Den letzten Schritt, die Erzeugung von Diagrammen, ubernimmt die
Visualisierungskomponente.
3.1
      </p>
      <sec id="sec-3-1">
        <title>Uncertainity-Computer</title>
        <p>Die Aggregatfunktionen AVG, COUNT, SUM, MAX, MIN werden in zwei
Gruppen aufgeteilt. Gruppe eins besteht aus den beiden Funktionen MAX und MIN,
deren Resultat ein bestimmtes Element der zu aggregierenden Werte darstellt.
Die zweite Gruppe besteht aus den Funktionen AVG, COUNT, SUM, auf deren
Resultat alle Werte einen direkten Ein uss haben.</p>
        <p>MAX und MIN Die Funktionen der ersten Gruppe berechnen im Gegensatz
zur zweiten Gruppe keinen Wert, sondern suchen den gro ten beziehungsweise
kleinsten Wert aus einer Datenmenge heraus. Der gesuchte Wert ist also auf
jeden Fall ein Bestandteil der Datenmenge. Werden diese Funktionen nun anhand
einer Stichprobe ausgewertet, so kann man uber den gefunden Wert nur sagen,
dass der wahre Wert nicht kleiner (im Falle von MAX) oder gro er (im Falle
von MIN) ist. Weitere Aussagen anhand der Standardabweichung oder anderen
Werten sind meist nicht aussagekraftig, da diese Funktionen die Ausreiser einer
Verteilung als Ziel haben. Verringert sich jedoch ein mit der MAX-Funktion
berechnetes Ergebnis in Iteration i + 1 gegenuber der vorherigen Iteration i, wird
die vorherige Schatzung beibehalten, um eine Verschlechterung der Schatzwerte
zu verhindern.</p>
        <p>AVG, COUNT und SUM Die Funktionen der zweiten Gruppe berechnen
anhand einer Datenmenge eine Statistik. Im vorherigen Kapitel wurden die
Kondenzintervalle bereits erklart und gezeigt, wie diese fur die Aggregatfunktionen
AVG und SUM berechnet werden konnen. Um auch Kon denzintervalle fur die
Aggregatfunktion COUNT angeben zu konnen, wird die Berechnung dieser
Intervalle mit dem iterativen Samplingprozess verbunden. Zur Berechnung der
Kon denzintervalle verwaltet der Uncertainity-Computer fur jede Output-Zelle
die Anzahl der gespeicherten Werte sowie deren Summe und Quadratsumme.
Daraus konnen bei Bedarf in konstanter Zeit die Kon denzintervalle mit der
Chebyshev-Formel (Gleichung 4) berechnet werden. Es werden somit
mindestens zwei Werte, entsprechend mindestens zwei Samplingschritte, zur
Berechnung benotigt, da sonst die Varianz 0 ist und somit kein Intervall berechnet
werden kann. Dieses Berechnungsverfahren wird fur alle Aggregatfunktionen dieser
Gruppe verwendet.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Visualisierungskomponente</title>
        <p>
          Diagramme wie Linien- oder Balkendiagramme dienen zur adaquaten
Darstellung gro er Datenmengen und bieten gro en Modi kationsspielraum. So lassen
sich Ungenauigkeiten von Daten, also Kon denzintervalle, mit Hilfe von
Whiskers (Abbildung 2) oder Deviation Areas (Abbildung 3) darstellen. Erstere
nutzen dafur einen kleinen vertikalen Balken und letztere heben das Kon
denzintervall farblich vom Hintergrund und anderen Linien ab. Wahrend Whiskers
auf beiden Diagrammtypen angewandt werden konnen, sind die Devation
Areas nur fur Liniendiagramme sinnvoll, da sie eine Interpretation des
Zwischenraums erlauben. Zur Umsetzung der Diagramme haben wir die Java Bibliothek
JFreeChart 1 verwendet und erweitert [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
        </p>
        <sec id="sec-3-2-1">
          <title>Abb. 2. Balkendiagramm mit einem</title>
        </sec>
        <sec id="sec-3-2-2">
          <title>Whisker pro Statistik.</title>
        </sec>
        <sec id="sec-3-2-3">
          <title>Abb. 3. Liniendiagramm mit einer Deviation Area pro Kurve.</title>
          <p>4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Experimente</title>
      <p>In diesem Kapitel demonstrieren wir anhand von Experimenten zum einen die
Genauigkeit, die sich durch die Verwendung von iterativen Samplingtechniken
erreichen lasst. Zum anderen analysieren wir die Performanz dieses Prozesses
und vergleichen die Laufzeiten mit der einer vollstandigen Berechnung. Dazu
betrachten wir zuerst anhand eines Tests mit Startsamplinggro e 1%, die pro
Iteration um 1% steigt, den Verlauf der Kon denzintervallgrenzen und im
darau olgenden Test wird die Verwendung verschiedener Startsamplinggro en mit
entsprechender Erhohung pro Iteration evaluiert.</p>
      <p>Wie in Abbildung 4 zu sehen ist, wachst mit steigendem Iterationsdurchlauf,
also auch steigender Sampling-Wahrscheinlichkeit, die Berechnungsgenauigkeit
der verwendeten Aggregatfunktion. Dadurch sinkt nicht nur im Mittel die
Abweichung zwischen berechnetem und wahrem Wert, sondern auch die
berechnete Standardabweichung, wodurch die Chebyshev-Formel anwendbar ist. Der
berechnete Wert konvergiert also gegen den wahren Wert und somit
konvergieren auch die Intervallgrenzen gegen den wahren Wert. Die Abbildung stellt
einen iterativen Samplingprozess mit Startwahrscheinlichkeit 1% auf der Tabelle
1 dar. Die verwendete Transformationsvorschrift sorgt fur die Berechnung des
Durchschnittspreises fur Diesel uber den kompletten Zeitraum und alle
Tankstellen: OUT._r &lt;- 'Diesel', OUT.Preis &lt;- AVG(IN.Diesel). Die grune und
die gelbe Linie stellen den Werteverlauf der oberen bzw. unteren Grenze des
95%-Kon denzintervalls dar. Die blaue Linie markiert den tatsachlichen
Durchschnittspreis und die rote Linie den Verlauf der berechneten Durchschnittspreise.
Au allig ist, dass manche berechneten Werte au erhalb des Kon denzintervalls
liegen. So zum Beispiel der Wert, der mit einer Sampling-Wahrscheinlichkeit von
1 http://www.jfree.org/jfreechart/index.html</p>
      <sec id="sec-4-1">
        <title>Abb. 4. Darstellung des Verlaufs der Werte des berechneten Dieseldurchschnittpreises</title>
        <p>(rot), des 95%-Kon denzintervalls (grun, gelb) und des wahren Wertes (blau) nach</p>
      </sec>
      <sec id="sec-4-2">
        <title>Anwendung eines iterativen Samplingprozess auf Tabelle 1.</title>
        <p>30% entstanden ist. Die Abweichung dieses Wertes zur Ideallinie ist, im Vergleich
zu seinen Vor- und Nachgangern, wesentlich gro er. Dies lasst sich dadurch
erklaren, dass die Stichprobe die Verteilung der Datenmenge ungenauer dargestellt
hat. Es wurden also prozentual wesentlich mehr unterdurchschnittliche Werte
in die Stichprobe eingelesen, als wirklich in der Datenmenge vorhanden sind.
Es ist also eine zufallige Verzerrung aufgetreten. Obwohl der berechnete Wert
au erhalb des Kon denzintervalls liegt, enthalt dieses in jedem Iterationsschritt
dennoch den wahren Wert. Weiterhin ist zu erkennen, dass fur den ersten
Iterationsschritt und fur das komplette Auslesen der Datenmenge, wie bereits erwahnt,
kein Kon denzintervall berechnet wurde.</p>
        <p>Fur das nachste Experiment wurde die folgende Transformationsvorschrift
verwendet: OUT._r &lt;- IN._c, OUT.avg &lt;- AVG(IN._v); Diese fuhrt fur jeden
Spaltennamen eine Durchschnittswertberechnung aus.</p>
        <p>Eine HBase-Tabelle wurde von einem Daten- 100%
generator mit zehn Million Zeilen gefullt, von 80%
denen jede drei Spalten mit Zufallszahlenwerten
im Intervall [0; 1500] haben. Zudem wurden wei- reu60%
tere Testtabellen generiert und dabei die Anzahl aD40%
der Zeilen und Spalten variiert. Alle Tests wur- 20%
den auf einem Zweikern-Prozessor (je 2,1 GHz)
sowie 3,9 GB RAM durchgefuhrt. Als Wide- 0% 0% 50% 100%
Column Store wurde eine HBase Standalone Da- Samplinggröße
tenbank (Version 0.98.7) verwendet.</p>
        <p>Abbildung 5 zeigt die Abhangigkeit der
Berechnungsdauer von der Samplinggro e. Es fallt
Abb. 5. Berechnungsdauer
relativ zur vollstandigen
Berechnung (blaue Linie). Zum
Vergleich die Optimallinie (orange).
auf, dass bereits eine 1% Samplingberechnung zehn Prozent der Dauer im
Vergleich zur vollstandigen Berechnung benotigt. Mit zunehmender Samplinggro e
nahert sich der Zusammenhang nahezu der Optimallinie.</p>
        <p>Im Folgenden wird der iterative Samplingprozess auf der gleichen Tabelle
(10 Mio. Zeilen, 3 Spalten) genauer untersucht. Dazu wurden auf dieser Tabelle
vier iterative Samplingprozesse mit den Startwahrscheinlichkeiten 1%, 5%, 10%
und 20%, mit entsprechender prozentualen Erhohung pro weiterem
Iterationsschritt, durchgefuhrt (siehe Abbildung 6). Zum Vergleich wurde eine vollstandige
Transformation ohne die Verwendung von Sampling ausgefuhrt. Diese dauerte
knapp zehn Minuten und ist als rote Linie in Abbildung 6 eingezeichnet. Ein
iterativer Samplingprozess besitzt gegenuber der Verarbeitung ohne Sampling
einen zeitlichen Vorteil, solange seine kumulierte Dauer geringer ist als die
Dauer fur die komplette Verarbeitung. Die Verwendung der Startwahrscheinlichkeit
1% liefert zwar am schnellsten die ersten Ergebnisse, jedoch sind diese recht
ungenau und liefern somit nur eine grobe Approximation. Nach acht Schritten hat
der Sampling-Prozess seinen Zeitvorteil verloren und nur 8% der Datenmenge im
letzten Schritt verarbeitet. Mit steigender Startwahrscheinlichkeit erhoht sich die
Dauer bis zum ersten Ergebnis, dafur steigt aber auch die maximal mogliche
Anzahl an ausgelesenen Daten. So ist mit einer Startwahrscheinlichkeit von 20% die
Ausfuhrung von bis zu zwei Iterationsschritten sinnvoll und somit werden 40%
der Datenmenge im zweiten Schritt ausgelesen. Wie in Abbildung 4 zu sehen ist,
ist die Berechnungsgenauigkeit bereits bei einer Samplinggro e von 10 bis 15%
fur viele Anwendungen ausreichend. Diese Gro e ist nach zwei bis drei
Iterationen zu je 5% erreicht, was in der Halfte der Zeit gegenuber einer vollstandigen
Berechnung ausgefuhrt werden kann. Die direkte Wahl einer gro eren
Samplinggro e wurde zwar die gleichen Ergebnisse bereits nach kurzerer Zeit und nur einer
Iteration liefern. Dafur kann dem Benutzer allerdings keine Information uber die
Berechnungsgenauigkeit mittels Whiskers und Deviation Areas gegeben werden.</p>
        <p>Die Wahl der Startwahrscheinlichkeit hangt somit von der gewunschten
Berechnungsdauer fur das erste Ergebnis und der Approximationsgenauigkeit ab.
Dabei bezieht sich die Approximationsgenauigkeit auf die maximale
SamplingWahrscheinlichkeit und etwaige berechnete Kon denzintervalle.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Verwandte Arbeiten</title>
      <p>
        Sowohl Datenvisualisierungen als auch Sampling-Verfahren kommen oft zum
Einsatz, wenn es um die Analyse gro er Datenmengen geht. In [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] wird auf die
Wichtigkeit hingewiesen, bei der Verwendung von Sampling darauf zu achten,
dass die Stichproben die Charakteristika der Originaldaten widerspiegeln. Der in
diesem Artikel vorgestellte Ansatz verwendet zufallige Stichproben anhand der
Zeilen auf einer HBase-Tabelle. Gegenuber komplexeren Strukturen wie
GraphDatenbanken sowie Tabellen, die uber Join-Pfade verbunden werden mussen,
konnen hier Datensatze weitestgehend unabhangig voneinander betrachtet
werden, was eine hohere Genauigkeit zur Folge hat.
      </p>
      <p>
        EARL [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] ist eine auf Hadoop-basierende Sampling-Bibliothek, die
Bootstrapping [7{9] verwendet, um Aussagen uber die Genauigkeit einer Berechnung
      </p>
      <p>5% 10%
Startsamplinggröße und Erhöhungswert
20%</p>
      <p>Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5 Iteration 6 Iteration 7 Iteration 8 Iteration 9</p>
      <sec id="sec-5-1">
        <title>Abb. 6. Ausfuhrung mehrerer Iterationen von Transformationen mit unterschiedlichen</title>
      </sec>
      <sec id="sec-5-2">
        <title>Samplinggro en sowie einer vollstandigen Berechnung (rote Linie).</title>
        <p>zu machen. EARL fuhrt dabei Transformationen kontinuierlich durch. Unser
Ansatz dagegen ist iterativ, was den Vorteil hat, dass auch ohne Bootstrapping
eine Genauigkeitschatzung moglich ist, namlich uber die Varianz der Ergebnisse
verschiedener Iterationen. Beim Bootstrapping wird eine Stichprobe in
Unterstichproben zerlegt, sodass die die aggregierten Resultate auf diesen kleineren
Mengen basieren.</p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] werden Techniken zur Visualisierung von SQL-Anfrageergebnissen
vorgestellt. Der Autor verwendet verschiedene Darstellungsformen wie Whiskers
und Deviation Areas, um die Berechnungsunsicherheit darzustellen.
6
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Zusammenfassung</title>
      <p>Wir haben gezeigt, dass bei der Ausfuhrung von Tabellentransformationen
Sampling-Techniken dazu beitragen konnen, fruh erste Ergebnisse zu sehen. Eine
Visualisierungssystem ist in der Lage, HBase-Tabellen als Linien-, Balken- oder
Kreisdiagramm darzustellen sowie weitere Iterationen auf vergro erten
Stichproben im Hintergrund weiterlaufen zu lassen. Die Ergebnisse mehrerer Iterationen
konnen fur die Genauigkeitsberechnung verwendet werden, die mittels
Whisters und Deviation Areas in die dargestellten Diagramme eingezeichnet werden
konnen. Dadurch erhalt der Benutzer nicht nur nach kurzer Zeit erste Ergebnisse
einer Berechnung, sondern auch eine Information uber deren Genauigkeit und
die Moglichkeit, eine Berechnung vorzeitig abzubrechen, wenn die gewunschte
Genauigkeit erreicht ist. Wir haben mittels Experimenten gezeigt, dass dieses
Vorgehen deutlich schneller ist als eine vollstandige Berechnung, und dass die
Ungenauigkeit bereits bei geringen Stichprobengro en so minimal ist, dass die
Diagramme, die dem Benutzer gezeigt werden, im Wesentlichen so aussehen, als
wurden sie auf der kompletten Datenbasis basieren.</p>
      <p>Literatur</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Apache</surname>
          </string-name>
          <article-title>Hadoop project</article-title>
          . http://hadoop.apache.org/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>2. Apache HBase. http://hbase.apache.org/.</mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>3. Apache Phoenix. http://phoenix.apache.org/.</mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Rick</given-names>
            <surname>Cattell</surname>
          </string-name>
          .
          <article-title>Scalable sql and nosql data stores</article-title>
          .
          <source>ACM SIGMOD Record</source>
          ,
          <volume>39</volume>
          (
          <issue>4</issue>
          ):
          <volume>12</volume>
          {
          <fpage>27</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Danyel</given-names>
            <surname>Fisher</surname>
          </string-name>
          .
          <article-title>Incremental, Approximate Database Queries and Uncertainty for Exploratory Visualization</article-title>
          .
          <source>In IEEE Symposium on Large Data Analysis and Visualization</source>
          . IEEE,
          <year>October 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <article-title>Je rey Dean and Sanjay Ghemawat</article-title>
          .
          <source>Mapreduce: simpli ed data processing on large clusters. Communications of the ACM</source>
          ,
          <volume>51</volume>
          (
          <issue>1</issue>
          ):
          <volume>107</volume>
          {
          <fpage>113</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>B.</given-names>
            <surname>Efron</surname>
          </string-name>
          .
          <article-title>Bootstrap methods: Another look at the jackknife</article-title>
          . Ann. Statist.,
          <volume>7</volume>
          (
          <issue>1</issue>
          ):1{
          <fpage>26</fpage>
          , 01
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Michael</surname>
            <given-names>I.</given-names>
          </string-name>
          <string-name>
            <surname>Jordan</surname>
          </string-name>
          .
          <article-title>Divide-and-conquer and statistical inference for big data</article-title>
          .
          <source>In Proceedings of the 18th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD '12</source>
          , pages
          <issue>4</issue>
          {
          <fpage>4</fpage>
          , New York, NY, USA,
          <year>2012</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Ariel</given-names>
            <surname>Kleiner</surname>
          </string-name>
          , Ameet Talwalkar, Purnamrita Sarkar, and
          <string-name>
            <given-names>Michael</given-names>
            <surname>Jordan</surname>
          </string-name>
          .
          <article-title>The big data bootstrap</article-title>
          .
          <source>arXiv preprint arXiv:1206.6415</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Nikolay</surname>
            <given-names>Laptev</given-names>
          </string-name>
          , Kai Zeng, and
          <string-name>
            <given-names>Carlo</given-names>
            <surname>Zaniolo</surname>
          </string-name>
          .
          <article-title>Early accurate results for advanced analytics on mapreduce</article-title>
          .
          <source>Proceedings of the VLDB Endowment</source>
          ,
          <volume>5</volume>
          (
          <issue>10</issue>
          ):
          <volume>1028</volume>
          {
          <fpage>1039</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Shuai</surname>
            <given-names>Ma</given-names>
          </string-name>
          , Jia Li,
          <string-name>
            <given-names>Chunming</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Xuelian</given-names>
            <surname>Lin</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Jinpeng</given-names>
            <surname>Huai</surname>
          </string-name>
          .
          <article-title>Big graph search: challenges and techniques</article-title>
          .
          <source>Frontiers of Computer Science</source>
          , pages
          <volume>1</volume>
          {
          <fpage>12</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. Marc Schafer, Johannes Schildgen, Stefan De loch.
          <article-title>Sampling with Incremental MapReduce</article-title>
          .
          <source>Workshop on Big Data in Science (BigDS)</source>
          , BTW,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Christopher</surname>
            <given-names>Olston</given-names>
          </string-name>
          , Benjamin Reed, Utkarsh Srivastava, Ravi Kumar, and
          <string-name>
            <given-names>Andrew</given-names>
            <surname>Tomkins</surname>
          </string-name>
          .
          <article-title>Pig latin: a not-so-foreign language for data processing</article-title>
          .
          <source>In Proceedings of the 2008 ACM SIGMOD international conference on Management of data</source>
          , pages
          <volume>1099</volume>
          {
          <fpage>1110</fpage>
          . ACM,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. S. Acharaya,
          <string-name>
            <given-names>P. B.</given-names>
            <surname>Gibbons</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Poosala</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ramaswamy</surname>
          </string-name>
          .
          <article-title>Join Synopses for Approximate Query Answering</article-title>
          .
          <source>Technical report</source>
          , Bell Laboratories, Murray Hill, New Jersey,
          <year>1999</year>
          .
          <article-title>Full version of the paper appearing in SIGMOD'99.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>Johannes</given-names>
            <surname>Schildgen</surname>
          </string-name>
          and Stefan De loch.
          <article-title>NotaQL Is Not a Query Language! It's for Data Transformation on Wide-Column Stores</article-title>
          .
          <source>In British International Conference on Databases - BICOD</source>
          <year>2015</year>
          , 7
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>Seymour</given-names>
            <surname>Sudman</surname>
          </string-name>
          . Applied sampling. Academic Press New York,
          <year>1976</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>Stefan</given-names>
            <surname>Braun</surname>
          </string-name>
          .
          <article-title>Visualisierung von NotaQL-Transformationen unter der Verwendung von Sampling-Techniken</article-title>
          .
          <source>Bachelorarbeit TU Kaiserslautern</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Ashish</surname>
            <given-names>Thusoo</given-names>
          </string-name>
          , Joydeep Sen Sarma, Namit Jain, Zheng Shao, Prasad Chakka, Suresh Anthony, Hao Liu, Pete Wycko , and
          <string-name>
            <given-names>Raghotham</given-names>
            <surname>Murthy</surname>
          </string-name>
          .
          <article-title>Hive: a warehousing solution over a map-reduce framework</article-title>
          .
          <source>Proceedings of the VLDB Endowment</source>
          ,
          <volume>2</volume>
          (
          <issue>2</issue>
          ):
          <volume>1626</volume>
          {
          <fpage>1629</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Matei</surname>
            <given-names>Zaharia</given-names>
          </string-name>
          , Mosharaf Chowdhury,
          <string-name>
            <surname>Michael J Franklin</surname>
            ,
            <given-names>Scott</given-names>
          </string-name>
          <string-name>
            <surname>Shenker</surname>
            , and
            <given-names>Ion</given-names>
          </string-name>
          <string-name>
            <surname>Stoica</surname>
          </string-name>
          .
          <article-title>Spark: cluster computing with working sets</article-title>
          .
          <source>In Proceedings of the 2nd USENIX conference on Hot topics in cloud computing</source>
          , volume
          <volume>10</volume>
          , page 10,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>