Verteilte Auswertung von RDF-Graphen mit MapReduce und NoSQL-Datenbanken

Größe: px
Ab Seite anzeigen:

Download "Verteilte Auswertung von RDF-Graphen mit MapReduce und NoSQL-Datenbanken"

Transkript

1 Bachelorarbeit Verteilte Auswertung von RDF-Graphen mit MapReduce und NoSQL-Datenbanken Antony R. Neu Albert-Ludwigs-Universität Freiburg im Breisgau Technische Fakultät Institut für Informatik

2 Anyone can build a fast CPU. The trick is to build a fast system. - Seymour Cray

3 Bearbeitungszeitraum Gutachter Prof. Dr. Georg Lausen Betreuer Alexander Schätzle Martin Przyjaciel-Zablocki

4 Kurzfassung In der vorliegenden Arbeit wird die Speicherung und Auswertung von RDF-Daten mit der Kombination aus dem Apache Hadoop Framework und der NoSQL-Datenbank Cassandra untersucht. Cassandra ermöglicht die verteilte Speicherung der Daten und vereint dabei die Eigenschaften von Google BigTable und Amazon Dynamo. Um SPARQL Basic Graph Pattern-Anfragen auf den RDF-Daten parallel auszuwerten, wird das quelloffene Projekt Apache Hadoop verwendet. Dabei wird die Komponente MapReduce des Frameworks zur Berechnung der notwendigen Verbünde eingesetzt, während das verteilte Dateisystem HDFS der Speicherung der Zwischenergebnisse dient. Nachdem die Strategien zur Auswertung und Speicherung vorgestellt wurden, werden die technischen Details der Implementierung erläutert. Anschließend wird die Implementierung mit synthetisch generierten Daten evaluiert. Die Evaluation liefert zwar gute Laufzeiten bei der Auswertung der Daten, jedoch zeigen sich Probleme bei der Systemstabilität. Schlagwörter: MapReduce, Hadoop, Cassandra, NoSQL, RDF Triple Store, SP 2 Bench, Map-Side-Join 1

5 Inhaltsverzeichnis Kurzfassung 1 1 Einführung 4 2 Grundlagen Semantic Web Resource Description Framework SPARQL Apache Hadoop Apache Cassandra Datenmodell Verteilung der Daten im Cluster Datenzugriff Strategien zur Auswertung und Speicherung der RDF-Daten Speicherstrategie Auswertungsstrategie Implementierung und Optimierungen Einlesen der Daten Auswerten der Anfragen Generieren der Jobs Map-Side Join Alternativen zum Map-Side Join Optimierung für Hadoop Evaluation Allgemeine Rahmenbedingunen

6 5.2 Laufzeiten und Beobachtungen Q Q Q3A Q Einfluss des Konsistenzgrads Einfluss des Replikationsfaktors Datenverteilung Probleme und mögliche Ursachen Verwandte Arbeiten 43 7 Zusammenfassung Ausblick

7 1 Einführung Die Idee des Semantic Web, die im Jahr 2001 von Tim Berners-Lee vorgestellt wurde, ermöglicht Maschinen das automatische Ableiten von Wissen aus dem World Wide Web. Das stichwortbasierte World Wide Web, das man heute größtenteils vorfindet, verhindert, dass Maschinen die Semantik hinter den Wörtern verstehen. Das Resource Description Framework (RDF) wurde entwickelt, um eine Ressource mit semantischen Annotationen zu versehen [1]. Eine Ressource kann nicht nur eine Webseite sein, sondern jede Entität, die sich durch eine eindeutige URI (Unique Resource Identifier) identifizieren lässt. Die Vision des Semantic Web funktioniert nur dann, wenn es möglich ist, die riesigen Daten auszuwerten. Die Speicherung und Analyse der Datensätze können oft nicht von einem Rechner alleine realisiert werden. Auch Supercomputer bieten keine Alternative, denn das Semantic Web soll allen, auch kleineren Firmen oder Institutionen zur Verfügung stehen. Abhilfe schafft das Konzept des Cloud Computing: Die Berechnungen finden nicht mehr lokal statt, sondern werden an ein skalierbares Rechnernetz ausgelagert. Firmen wie Amazon und Rackspace vermieten solche Rechnernetze (Clouds), deren Leistung und Kosten sich nach der tatsächlichen Rechenlast richten. Zur Nutzung dieser skalierbaren Systeme bedarf es Anwendungen und Frameworks, die diese Form der Berechnungen unterstützen. Hadoop MapReduce ist eine quelloffene Implementierung des MapReduce-Frameworks, das ursprünglich von Google entwickelt worden ist. Es ermöglicht das Speichern großer Daten auf dem verteilten Dateisystem HDFS (Hadoop Distributed File System) und das Anwenden von Programmen auf diesen Daten. Facebook und Twitter setzen diese Technologie ein, um tausende Petabyte an Daten zu verwalten. Die Daten können nicht nur blockweise auf dem verteilten Dateisystem, sondern auch strukturiert mit Indizes in Datenbanken gespeichert werden. Das Hadoop-Projekt beinhaltet zu diesem Zweck eine eigene NoSQL-Datenbank HBase, die bereits zur Speicherung und Auswertung von RDF-Daten untersucht worden ist [2]. NoSQL- 4

8 Einführung Datenbanken zeichnen sich durch den Verzicht auf Schemata zur besseren horizontalen Skalierung aus. Cassandra ist eine weitere NoSQL-Datenbank, mit der Firmen wie beispielsweise Facebook, Digg und Twitter gute Erfahrungen gemacht haben. Ziel dieser Arbeit ist es, die Eigenschaften, die sich aus der Kombination von Cassandra mit MapReduce ergeben, in Hinblick auf die Auswertung von SPARQL Basic Graph Patterns auf großen RDF-Graphen zu untersuchen. Die Arbeit beschränkt sich auf das Auswerten einer Folge von SPARQL Basic Graph Patterns mit maximal zwei Variablen pro Tripel. Hierfür wurde eine Implementierung entwickelt, die die Besonderheiten des Datenmodells zum schnellen Zugriff auf die Daten ausnutzt. Die Arbeit ist wie folgt aufgebaut: In Kapitel 2 werden die Grundlagen des Semantic Webs und der verwendeten Technologien vorgestellt. Darauf aufbauend werden im folgenden Kapitel die allgemeinen Strategien zur Auswertung und Speicherung der RDF-Daten vorgestellt. Kapitel 4 erläutert wie diese Strategien in der Implementierung technisch umgesetzt worden sind. Die Ergebnisse der Evaluation werden in Kapitel 5 vorgestellt. Es wurden sowohl das Verhalten bei verschiedenen Datengrößen, als auch der Einfluss verschiedener Parameter untersucht. In Kapitel 6 werden verwandte Arbeiten vorgestellt und die Unterschiede aufgezeigt. Abschließend wird in Kapitel 7 ein Fazit und Ausblick gegeben. 5

9 2 Grundlagen 2.1 Semantic Web Im Jahr 2001 stellte Tim Berners-Lee, der Direktor des W3C, seine Vision des Semantic Webs in einem Artikel in Scientific American vor [1]. Das Semantic Web soll nach Lee nicht das damalige World Wide Web ersetzen, sondern eine Erweiterung dessen sein. Webseiten sind größtenteils so aufgebaut, dass Menschen sie lesen und verstehen können, Maschinen allerdings nicht. Maschinen können nicht erkennen, ob mit dem Wort Bank das Finanzinstitut oder eine Sitzmöglichkeit im Park gemeint ist. Das Semantic Web erlaubt es Maschinen, Wissen aus Webseiten zu gewinnen und diese zu verknüpfen. In dem Artikel beschreibt Berners-Lee, dass es im Semantic Web intelligenten Systemen möglich sein wird, Informationen für die Benutzer zu gewinnen und zu verbinden, die sie sonst selbst recherchieren müssten. Dies sei nur mit einem offenen Standard möglich, der jedoch bis heute noch nicht ausreichend verwendet wird [3]. Seiten wie Wikipedia, Twitter oder Flickr stellen zwar diese Informationen bereit, da sie aber nicht gemeinsam offene Standards verwenden, können sie nicht miteinander verknüpft werden Resource Description Framework Das Resource Description Framework (RDF) ist ein W3C-Standard, der es ermöglicht, Inhalte von Webseiten mit ihrer Bedeutung zu verknüpfen [4]. Das Hauptelement eines RDF-Dokuments ist die sogenannte Aussage. Sie besteht aus drei Elementen: Subjekt, Prädikat und Objekt. Das Subjekt ist eine URI (Unique Resource Identifier), die eindeutig eine Ressource, z.b. eine Person, beschreibt. Das Prädikat ist ebenfalls eine URI und dient der Beschreibung der Relation zwischen Subjekt und Objekt. Beim Objekt handelt es sich entweder um eine URI, wenn eine Beziehung zwischen zwei Ressourcen hergestellt werden soll, oder um ein Literal, 6

10 2.1 Semantic Web zum Beispiel eine Zahl [3]. Sollen Subjekt oder Objekt nicht benannt werden, kann auch ein sogenannter leerer Knoten anstatt einer URI verwendet werden. Dadurch lassen sich Beziehungen zu Objekten modellieren, die nicht bekannt sind oder nicht benannt werden sollen. Betrachtet man die Aussagen als eine vom Subjekt ausgehende gerichtete Kante zwischen Subjekt und Objekt, die mit dem Prädikat beschriftet wird, so ergibt sich ein gerichteter Graph für das RDF-Dokument, der als RDF- Graph bezeichnet wird. Abb. 2.1 zeigt ein Beispiel eines solchen RDF-Graphen, der Informationen zur Person Eric Miller beschreibt. Abbildung 2.1: Beispiel eines RDF-Graphen. Quelle: [5] Die Person wird dabei eindeutig anhand der URI EM/contact#me identifiziert, sodass es zu keinen Mehrdeutigkeiten kommen kann. Als Enkodierung wird häufig die XML-Syntax oder die Turtle-Syntax (Terse RDF Triple Language 1 ) gewählt, während Letztere leichter für Menschen zu lesen ist und im Folgenden verwendet wird. In der Turtle-Syntax werden Aussagen wie Sätze der natürlichen Sprache mit der Reihenfolge Subjekt, Prädikat und Objekt geschrieben und mit einem Punkt beendet. Zur Abkürzung können für jedes RDF-Dokument Präfixe definiert werden, die automatisch ergänzt werden. Einige Tripel des RDF- Graphen aus Abb. 2.1 werden demnach wie in Listing 2.1 dargestellt enkodiert. 1 7

11 2.1 Semantic r d f : <http : / /www. w3. org /1999/02/22 rdf syntax contact : <http : / /www. w3. org /2000/10/ swap/pim/ contact#>. http : / /www. w3. org / People /EM/ contact#me r d f : type contact : Person. http : / /www. w3. org / People /EM/ contact#me contact : fullname Eric M i l l e r. http : / /www. w3. org / People /EM/ contact#me contact : mailbox mailto org. Listing 2.1: Beispielhaft Enkodierung von RDF-Daten Datenspeicher für RDF-Tripel werden häufig als Triple-Stores bezeichnet. Die Funktionalität solcher Stores reicht von einfachen Datenspeichern bis hin zu ausgereiften Datenbanksystemen, die Anfragen auf RDF-Daten auswerten können. Vertreter solcher ausgereifter Triple-Stores sind beispielsweise Sesame 2 und Jena SPARQL SPARQL (SPARQL Protocol And RDF Query Language) ist eine Anfragesprache für RDF-Daten, ähnlich SQL für relationale Datenbanken. Seit dem 15. Januar 2008 ist SPARQL eine offizielle Empfehlung des W3C (W3C recommendation) [6]. Diese Einführung soll im Wesentlichen nur den Teil der Syntax abdecken, der auch von der Implementierung unterstützt wird. Zum leichteren Verständnis, wird die Syntax anhand eines Beispiels aus [4] eingeführt. PREFIX ex <http://example.org/> SELECT?titel?author WHERE {?buch ex:verlegtbei <http://springer.com/verlag>.?buch ex:titel?titel.?buch ex:autor?autor. } Listing 2.2: Beispielhafte SPARQL-Anfrage (Quelle: [4]) Die in Listing 2.2 dargestellte Anfrage gibt die Titel und Autoren aller Bücher, die beim Springer-Verlag verlegt wurden, zurück. Wie im Beispiel zu sehen ist, besteht eine SPARQL-Anfrage zum größten Teil aus RDF-Tripeln, die in Turtle-Syntax geschrieben sind. Die Tripel beschreiben einen Subgraph des RDF-Graphen, auf den

12 2.1 Semantic Web man die Anfrage stellt. An jeder Tripelposition (Subjekt, Prädikat oder Objekt) ist es möglich, eine Variable zu platzieren, die durch ein? gekennzeichnet wird. Eine Menge solcher Tripel wird als Basic Graph Pattern bezeichnet. Die Formatierung der Ausgabe erfolgt mit dem Befehl SELECT gefolgt von einer Teilmenge der verwendeten Variablen, d. h. es werden nur die Werte der Variablen ausgegeben, die nach SELECT aufgeführt werden. Wie bei der Deklaration von RDF-Daten ist es möglich Präfixe zu definieren, um gekürzte Schreibweisen zu verwenden. SPARQL erlaubt weitere Befehle wie zum Beispiel FILTER, LIMIT und UNION, um die Ergebnisse weiter einzuschränken oder zu erweitern. PREFIX ex <http://example.org/> SELECT?titel?author WHERE {?buch ex:titel?titel.?buch ex:autor?autor. {?buch ex:verlegtbei <http://springer.com/verlag>.} UNION {?buch ex:verlegtbei <http://oreilly.com>. } } Listing 2.3: Beispielhafte SPARQL-Anfrage mit Operatoren Die Anfrage, die in Listing 2.3 dargestellt ist, selektiert alle Paare aus Titel und Autor der Verlage Springer und O Reilly. Diese weiteren Befehle werden im Folgenden in dieser Arbeit nicht weiter betrachtet, da sie von der Implementierung nicht unterstützt werden. Ebenso erfolgt keine Formatierung durch SELECT. Die Implementierung beschränkt sich auf die Auswertung von Anfragen, die aus einem Basic Graph Pattern bestehen. Weiterhin wird angenommen, dass pro Tripel nicht mehr als zwei Variablen vorkommen. Die Anfragen haben also alle die Form, die in Listing 2.4 dargestellt wird. 9

13 2.2 Apache Hadoop PREFIX p1 <uri> PREFIX... SELECT * WHERE { s1 p1?v1. }?v1 p2 o2.... Listing 2.4: SPARQL-Anfrage, die von der Implementierung unterstützt wird. 2.2 Apache Hadoop Hadoop ist ein quelloffenes Projekt mit vielen Unterprojekten zur Speicherung und Analyse großer Daten, das seine Wurzeln im Apache Nutch 4 Projekt hat. Hadoop wurde ursprünglich von Doug Cutting entwickelt und basiert auf dem verteilten Dateisystem Google FS, sowie Google MapReduce, einem Framework für nebenläufige Berechnungen über große Daten. MapReduce wurde ebenfalls von Google zur Wartung der Suchindizes entwickelt. Die beiden Technologien wurden 2003 und 2004 in [7, 8] vorgestellt. Seit 2006 beteiligt sich Yahoo an dem Projekt und entwickelte zwischenzeitlich seine eigene Distribution wurde das Projekt zu einem offiziellen Apache Top-Level-Projekt und wurde seitdem von Unternehmen wie Last.fm, Facebook und der NewYork-Times eingesetzt [9]. Das Projekt besteht aus mehreren Bestandteilen und Unterprojekten, unter anderem: Pig, Hive und HBase. Letzteres ist eine NoSQL Datenbank, die Ähnlichkeiten zu Cassandra aufweist, jedoch auf Hadoop basiert. Pig vereinfacht die Analyse von Daten und stellt häufig genutze Methoden, z.b. Joins bereit. Hive ist eine Datawarehouse-Applikation, die eine SQL-ähnliche Sprache zur Analyse der auf dem HDFS gespeicherten Daten implementiert. Im Folgenden wird ausschließlich auf die Bestandteile MapReduce und HDFS eingegangen, da sie in der Implementierung verwendet wurden. Eine wichtige Kernidee von MapReduce ist die Ausnutzung von Lokalität. Die Daten werden mittels HDFS auf den verschiedenen Rechnern (Knoten) im Netzwerk gespeichert. Möchte eine Anwendung auf die Daten zugreifen, greift jeder Knoten 4 10

14 2.3 Apache Cassandra auf die Daten zu, die ihm lokal zur Verfügung stehen. Dadurch werden weniger Daten über das Netzwerk ausgetauscht und im Idealfall haben alle Knoten die gleiche Größe an Daten zu verarbeiten. Damit dies möglich ist, müssen die Anwendungen dem Map-Reduce-Paradigma folgen. Das Paradigma besagt, dass jedes Programm, ein sogenannter Job, aus einer Map- und einer Reduce-Phase besteht. Ein Knoten verarbeitet zunächst mehrere Map-Tasks, die eine Teilmenge der Daten (Inputsplits) als Eingabe erhalten. Die Inputsplits sind lokal auf dem Knoten gespeichert. Eine Eingabe besteht immer aus einem Schlüssel und einem Wert, ebenso die Ausgabe der Mapper (MapInputKey, MapInputValue, MapOutputKey und MapOutputValue). Nach der Map-Phase werden die Daten anhand des MapOutputKey sortiert und zusammengefasst. Sie werden dann an Reduce-Tasks, die auf anderen Knoten laufen können, geschickt. Ein Reduce-Task erhält einen Schlüssel (ReduceInputKey) und eine Menge von Werten (ReduceInputValues) als Eingabe. Die Ausgabe der Reducer ist ebenfalls ein Schlüssel und ein zugehöriger Wert. Das Format des ReduceInputKey ist identisch mit dem Format des MapOutputKey. Die Eingabewerte sind die Werte, die sortiert und zusammengefasst worden sind, und den gleichen MapOutputKey haben. Es ist also gewährleistet, dass allen Reduce-Tasks jeweils alle diejenigen Werte zur Verfügung stehen, die mit dem gleichen MapOutputKey versehen worden sind. Schließlich werden nach der Verarbeitung in der Reduce-Phase ReduceOutputKey und ReduceOutputValue auf das HDFS geschrieben. Abb. 2.2 visualisiert den Workflow einer MapReduce-Anwendung[9, 10]. Setzt man die Anzahl der Reduce-Tasks auf null, so erfolgt weder eine Sortierung noch eine weitere Verarbeitung durch den Reducer. Die Ergebnisse der Map-Phase werden direkt in das HDFS geschrieben. Das bedeutet, dass auch kein Austausch der Daten über das Netzwerk erfolgt, wie es beim Sortieren und Zusammenfassen vor der Reduce-Phase der Fall wäre. 2.3 Apache Cassandra Klassiche SQL-Datenbanken haben sich in allen Bereichen der Informatik fest etabliert. Wachsende Datenmengen erfordern jedoch eine Möglichkeit der Skalierung bei der Analyse der Daten. Um dieser Nachfrage gerecht zu werden, entstanden die sogenannten NoSQL-Datenbanken ( not only SQL oder no SQL ). Eine Gemeinsam- 11

15 2.3 Apache Cassandra Abbildung 2.2: MapReduce Workflow. Quelle: [10] keit aller NoSQL-Datenbanken, ist der Verzicht auf fixe Schemata zu Gunsten einer besseren horizontalen Skalierung. Weitere Gemeinsamkeiten sind die verteilte Speicherung der Daten, dynamische Anpassung der gespeicherten Daten und der Verzicht auf ACID-Eigenschaften wie sie bei SQL-Systemen üblich sind. Momentan gibt es mehr als hundert verschiedene NoSQL-Datenbanken 5 mit verschiedenen Datenmodellen. Sie lassen sich u. a. in dokumentenorientierte Datenbanken (CouchDB 6 ), Graphendatenbanken (Neo4J 7 ) oder Objektdatenbanken (ZODB 8 ) einteilen. Cassandra fällt in die Kategorie Key-Value-Store [11, 12]. Cassandras Datenmodell basiert auf der NoSQL-Datenbank Google Bigtable, während die Verteilung der Daten Gemeinsamkeiten mit Amazon Dynamo aufweist. Ursprünglich wurde es von Facebook entwickelt, um das Durchsuchen des Nachrichtensystems zu realisieren. Seit 2010 ist das Projekt ein Top-Level-Projekt der Apache Foundation

16 2.3 Apache Cassandra Datenmodell Das Grundelement des Datenmodells ist die Spalte (engl. column). Eine Spalte besteht aus drei Elementen: einem Schlüssel, einem Wert und einem Zeitstempel. Der Zeitstempel wird verwendet, um eventuell auftretende Konflikte in der verteilten Datenmenge zu lösen. Der Schlüssel und der Wert lassen sich als Abbildung verstehen, in der der Schlüssel auf den Wert abgebildet wird. Eine Spalte kann auch weitere Spalten enthalten und wird in diesem Fall als Superspalte (engl. super column) bezeichnet. Superspalten haben keinen Zeitstempel, da die Subspalten Zeitstempel enthalten. Ein Datensatz besteht aus mehreren Spalten oder Superspalten und wird als Zeile (engl. row) bezeichnet. Der Datensatz wird eindeutig anhand seines Zeilenschlüssels (engl. row key) identifiziert [11]. Datensätze werden in Spaltenfamilien (engl. column families) zusammengefasst, ähnlich den Tabellen in SQL. Eine Spaltenfamilie kann nur entweder Spalten oder Superspalten enthalten. Enthält sie Letzteres handelt es sich um eine Superspaltenfamilie. Im Gegensatz zum relationalen Datenmodell, hat nicht jeder Datensatz die gleiche Anzahl Columns. Ebenso können Datensätze frei um weitere Columns erweitert werden. In relationalen Datenbanken wäre eine Änderung der Tabelle notwendig. Mehre Spaltenfamilien werden in einem Keyspace zusammengefasst. Ein alternativer Ansatz ist das Betrachten des Datenmodells als multidimensionale Map. Abhängig davon, ob Superspaltenfamilien oder Spaltenfamilien verwendet werden, ergibt sich eine Map mit 4 oder 5 Dimensionen, die in Listing 2.5 dargestellt wird. Keyspace [ ColumnFamilyName ] [ Rowkey ] [ Columnname ] = value Keyspace [ ColumnFamilyName ] [ Rowkey ] [ SuperColName ] [ SubColName ] = v a l u e Listing 2.5: Cassandras Datenmodell als multidimensionale Map Abb. 2.3 zeigt den Aufbau einer Superspaltenfamilie anhand eines Beispiels. Die Studenten-Superspalten enthalten unterschiedliche Subspalten, da nicht zu jedem Studenten eine Handynummer existiert. Außerdem besuchen nicht alle Studenten die gleichen Veranstaltungen, sodass auch hier eine unterschiedliche Anzahl an Subspalten entsteht. Auch die Anzahl Superspalten ist nicht fix und könnte unterschiedlich sein. Die Daten werden beim Einfügen in die Datenbank sortiert, sodass keine nachträgliche Sortierung erfolgt. Eine Funktion wie ORDER BY aus SQL gibt es nicht. 13

17 2.3 Apache Cassandra Student (SuperColumnFamily) Rowkey : SuperColumn: Kontakt Telefon Mobil SuperColumn: Noten Info 1 3,7 Info 2 2,0 Praktikum 1,3 Rowkey : SuperColumn: Kontakt Telefon 4589 ICQ SuperColumn: Noten Info 1 1,7 BWL 1 1,3 Abbildung 2.3: Beispielhafte SuperColumnFamily Dadurch werden hohe Leseraten erzielt, jedoch kann die Sortierung nicht beim Lesezugriff festgelegt werden. Bei Spaltenfamilien erfolgt die Sortierung über den Namen der Spalte, bei Superspaltenfamilien über den Namen der Superspalten und Subspalten. Der Datenbankentwickler kann zwischen verschiedenen vordefinierten Vergleichern (engl. Comparator) auswählen oder einen eigenen implementieren. In der Version stellt Cassandra folgende Vergleicher zur Verfügung: AsciiType, BytesType, CompositeType, LexicalUUIDType, LongType, TimeUUIDType und UTF8Type [11]. Beim Erstellen einer Spaltenfamilie wird jeweils ein Vergleicher für die Super- und Subspalten festgelegt. Während klassische relationale Datenbanken aus Tabellen bestehen, die über einen Verbund bei einer Anfrage miteinander verknüpft werden können, müssen bei Cassandra die Daten vorab denormalisiert werden. Die Daten werden bei der Denormalisierung mehrmals unterschiedlich formatiert in die Datenbank geschrieben, z.b. würden alle benötigten Verbünde vorab berechnet und abgespeichert werden. Eben Hewitt beschreibt in [11], dass es wichtig ist, sich bei der Entwicklung einer Anwendung mögliche Anfragen an die Datenbank vorab zu überlegen und die Daten- 14

18 2.3 Apache Cassandra bank entsprechend aufzubauen. Hewitt empfiehlt eine Spaltenfamilie pro möglicher Art der Anfrage Verteilung der Daten im Cluster Cassandra bietet verschiedene Möglichkeiten der Partitionierung. Es werden vordefinierte Partitionierer (engl. Partitioners) mitgeliefert, die um eigene Partitionierer, die das IPartitioner Interface implementieren, erweitert werden können [11]. Grundsätzlich werden zur Bestimmung des Knotens, auf dem die Daten gespeichert werden sollen, der Zeilenschlüssel, der Replikationsfaktor (engl. replication factor) und die Replikationsstrategie verwendet 9. Der Replikationsfaktor gibt an, wieviele Kopien der Daten im Cluster existieren. Ein Replikationsfaktor von 3 bedeutet beispielsweise, dass ein Datensatz dreimal im Cluster abgespeichert wird. Der Randompartitioner erlaubt es, die Daten gleichmäßig über den Cluster zu verteilen, da als Schlüssel der MD5-Hashwert des Zeilenschlüssels verwendet wird. Allerdings bedeutet dies auch, dass die Daten unsortiert vom System ausgegeben werden und Anfragen, die gezielte Zeilenbereiche auswählen, ineffizient ausgeführt werden. Der OrderPreservingPartitioner verwendet die UTF8-Repräsentation des Zeilenschlüssels als Schlüssel. Folglich werden die Daten anhand des Zeilenschlüssels physisch abgespeichert. Je nach Zeilenschlüssel kann dies bedeuten, dass die Daten unregelmäßig über den Cluster verteilt werden, da die zu speichernden Daten oftmals nicht gleichverteilt sind. Wird als Zeilenschlüssel zum Beispiel der Nachname einer Person verwendet, so gäbe es eine Häufung bei den Knoten, die die Nachnamen, die mit S beginnen, abspeichern. Die Last wäre also nicht regelmäßig verteilt. Vorteilhaft ist allerdings das Ausgeben sortierter Daten und die Möglichkeit, effizient Zeilenbereichsanfragen auszuwerten [11, 13] Datenzugriff Die Speicherung der Daten weist erhebliche Unterschiede zu relationalen Datenbanksystemen auf, folglich erfolgt der Datenzugriff ebenfalls auf eine andere Art. Cassandra ermöglicht den Zugriff der gespeicherten Daten per Thrift 10 und stellt hierfür eine API zur Verfügung. Die Entwickler von Cassandra empfehlen jedoch,

19 2.3 Apache Cassandra nicht direkt per Thrift auf Cassandra zuzugreifen, sondern auf einen Client in der gewünschten Programmiersprache zurückzugreifen[11, 13]. Der Konsistenzgrad (engl. consistency level) wird pro Schreib- oder Leseanfrage angegeben und definiert die Dauerhaftigkeit (engl. durability) der Anfrage. Die möglichen Konsistenzgrade bei einer Leseanfrage werden nachfolgend aufgelistet[11, 13]: ONE: Die Anfrage wird sofort vom ersten Knoten, an den die Anfrage gestellt wird, beantwortet. Dabei ist es möglich, dass das Ergebnis veraltet ist. Im Hintergrund wird ein Prozess gestartet, der überprüft, ob die Daten auf den Knoten identisch sind, die gemäß Replikationsfaktor Kopien der Daten speichern. Ist dies nicht der Fall, wird das Datum verwendet, dessen Zeitstempel aktueller ist. Dieser Vorgang wird als read repair bezeichnet. QUORUM: Die Anfrage wird erst beantwortet, wenn n + 1 Knoten die Daten auf 2 Konsistenz überprüft haben, wobei n der Replikationsfaktor ist. Im Hintergrund wird ein read repair -Prozess gestartet, der alle Kopien im Cluster überprüft. ALL : Alle n Knoten, auf denen sich eine Kopie der Daten befindet, müssen die Konsistenz bestätigen. Die Anfrage schlägt fehl, wenn einer der Knoten nicht verfügbar ist. Werden die Konsistenzgrade ONE oder QUORUM verwendet, ist es möglich, dass die Anfrage einen veralteten Wert zurückliefert. Das Reparieren der Daten erfolgt in diesem Falle erst, nachdem der Wert zurückgegeben worden ist. Da alle weiteren Anfragen nach der Reparatur konsistent sind, wird die Konsistenz von Cassandra als eventually consistent bezeichnet. Beim Schreiben stehen weitere Konsistenzgrade zur Verfügung: ANY : Der Schreibvorgang muss nur von einem Knoten bestätigt werden, unabhängig vom Replikationsfaktor. Dabei wird ein sogenannter Hint als Bestätigung akzeptiert. Ein Hint wird dann zurückgeliefert, wenn ein Knoten, auf dem die Daten als Kopie vorliegen, nicht verfügbar ist. Cassandra speichert den Schreibvorgang zwischen und schreibt die Daten, sobald der Knoten wieder erreichbar ist. ONE : Dieser Konsistenzgrad verhält sich wie ANY, jedoch reicht ein Hint als Bestätigung nicht aus. 16

20 2.3 Apache Cassandra QUORUM : n + 1 Knoten, wobei n der Replikationsfaktor ist, müssen den Schreibvorgang bestätigen. 2 ALL : Alle n Knoten müssen den Schreibvorgang bestätigen. Nachdem ein Konsistenzgrad ausgewählt worden ist, kann nun der Zugriff auf die Daten erfolgen. Wird das Datenmodell als multidimensionale Map betrachtet, erfolgt der Zugriff durch Angeben der Schlüssel. Je nachdem, welche Schlüssel angegeben worden sind, werden Subspalten, Superspalten oder ganze Zeilenbereiche zurückgegeben. Eine Filterung der gewünschten Daten ist durch Definition von Wertebereichen (engl. ranges) möglich. Wird bei einer Anfrage ein SlicePredicate definiert, so werden nur die dadurch definierten Spalten zurückgegeben. Dabei gibt es zwei Möglichkeiten, die gewünschten Spalten zu definieren. Entweder werden die Spaltennamen explizit angegeben oder es wird ein Bereich definiert, der durch einen Anfangs- und Endschlüssel gegeben ist. Die Daten zwischen Start und Ende ergeben sich aus dem verwendeten Vergleicher. Per SlicePredicate kann außerdem eine Limitierung der Spaltenanzahl ( count ) und die Umkehrung der Reihenfolge ( reversed ) erfolgen. Es ist nicht möglich ein SlicePredicate für Subspalten zu definieren. Wird eine Superspalte ausgewählt, werden immer alle Subspalten serialisiert. Eine Anwendung, die nicht alle Subspalten benötigt, muss also nach der Serialisierung filtern. Die Funktionen get_range_slices und multi_get_range der Cassandra API erlauben es, die resultierenden Zeilen der Anfrage einzuschränken. Sie erfordern aber, um effektiv genutzt werden zu können, den Einsatz des veralteten OrderPreserving- Partitioner. Eine Übersicht aller weiteren Funktionen findet sich in [11, 13]. 17

21 3 Strategien zur Auswertung und Speicherung der RDF-Daten In diesem Kapitel werden die Strategien zur Speicherung und Auswertung der RDF- Daten mit Cassandra und Hadoop beschrieben. Details der Implementierung werden in Kapitel 4 erläutert. 3.1 Speicherstrategie Die Speicherstrategie der Implementierung basiert auf einem Vorschlag, der von Ladwig und Harth in [14] vorgestellt wurde. Die Autoren präsentieren ein Speicherschema für RDF-Daten, sowie einen RDF-Layer und RDF-Store (CumulusRDF) für Cassandra. Die Daten werden insgesamt dreimal abgespeichert, um schnelles Nachschlagen aller acht möglichen Tripelmuster zu gewährleisten. Zum Speichern der Daten werden in Cassandra drei Superspaltenfamilien verwendet: SPO, POS und OSP. Die Tripel werden auf Zeilenschlüssel, Superspaltenname und Subspaltenname abgebildet, wobei der Wert der Subspalte leer gelassen wird. Dies ist notwendig, um mehrwertige Prädikate zu unterstützen. In der Spaltenfamilie SPO wird das Subjekt als Zeilenschlüssel, das Prädikat als Superspaltenname und das Objekt als Subspaltenname verwendet. Äquivalent werden die Tripel für die Spaltenfamilien POS und OSP abgebildet. Abb. 3.1 verdeutlicht die Speicherstrategie anhand eines Beispiels. Die RDF-Daten modellieren Bekanntschaften zwischen Benutzern, sowie deren Alter. Es werden die drei Superspaltenfamilien, sowie die zugehörigen Schlüssel und Spaltennamen aufgeführt. Aus Platzgründen werden lediglich Auszüge gezeigt. 18

22 3.1 Speicherstrategie data.n3... ex:tom ex:userknows ex:jerry ex:tom ex:userknows ex:chris ex:jerry ex:userknows ex:chris ex:tom ex:userage 28 ex:tom ex:userage Cluster: Cluster01 Keyspace: RDF-Data SPO ex:jerry ex:userknows ex:userage ex:tom ex:chris ex:tom ex:userknows ex:jerry ex:chris ex:userage POS ex:userknows ex:chris ex:tom ex:tom ex:jerry... ex:jerry ex:userage ex:25 ex:28 ex:jerry ex:tom OSP ex:jerry ex:userage... ex:chris... ex:tom ex:userknows Abbildung 3.1: Beispielhafte Speicherung der Daten 19

23 3.1 Speicherstrategie Tab. 3.1 führt die möglichen Tripelmuster auf, sowie die Spaltenfamilien, die zur Auswertung verwendet werden können. Es wird bei dieser Strategie versucht, möglichst viele Schlüssel beim Zugriff festzulegen. Die Schlüssel werden immer in der Reihenfolge Zeilenschlüssel, Superspaltenname und Subspaltenname festgelegt. Bei einer Variablen werden folglich Zeilenschlüssel und Superspaltenname (via SlicePredicate) beim Zugriff festgelegt. Bei zwei Variablen im Tripelmuster kann nur der Zeilenschlüssel festgelegt werden. Bei dieser Strategie muss also nur im Falle von drei Variablen über die Zeilenschlüssel iteriert werden. Dadurch wird das Ergebnis der Anfrage frühzeitig eingeschränkt. Ein wesentlicher Nachteil ist der hohe Speicherplatzbedarf. Ein Datum wird in drei verschiedenen Spaltenfamilien gespeichert. Wird zusätzlich ein Replikationsfaktor größer 1 gewählt, existieren weitere Kopien der Daten. Bei einem Replikationsfaktor von 3 ergäben sich somit 9 Kopien (insgesamt) der Daten im System. Triple Pattern Index (s, p, o) SPO, POS, OSP (s, p,?) SPO (?, p, o) POS (s,?, o) OSP (?, p,?) POS (s,?,?) SPO (?,?, o) OSP (?,?,?) SPO, POS, OSP Tabelle 3.1: Tripelmuster mit zu verwendender Spaltenfamilie. Quelle: [14] Der RDF-Store CumulusRDF[14] unterstützt keine leeren Knoten, da hier ein Verbund notwendig ist. Die Autoren beschränken sich aber hier auf das Nachschlagen von Tripelmustern. Implementierungen, die RDF-Daten auf Hadoops verteilten Dateisystem speichern, nutzen häufig das Prinzip der vertikalen Partitionierung aus. Die RDF-Tripel werden anhand des Prädikats in Dateien aufgeteilt. Bei der Auswertung von Anfragen muss, sofern ein Prädikat gegeben ist, nur die Datei geladen werden, die das Prädikat enthält. Es wurde versucht diesen Ansatz auf Cassandra zu übertragen, indem man pro Prädikat einen Keyspace anlegt. Allerdings zeigte sich, dass Cassandra Datenmodell nicht zur Verwendung vieler Keyspaces ausgelegt ist. So wird der Keyspace gewöhnlich bei der Initialisierung festgelegt, danach folgen die Anfragen auf diesen Keyspace. Außerdem müsste zur Beantwortung von Anfragen mit einer Variable als 20

24 3.1 Speicherstrategie Prädikat ein Index gespeichert werden, der alle Keyspace-Namen enthält. Mit dessen Hilfe würde dann über alle Keyspaces iteriert. Bei der Implementierung wurde festgestellt, dass die Verteilung der Daten auf die Knoten im Cluster mit Hadoop nicht optimal ist. Die Rechenlast wird nicht ausgeglichen verteilt, sondern wird nur einem Knoten zugewiesen. Dies liegt an den ausgewählten Spaltenfamilien, sowie dem frühzeitigen Festlegen des Zeilenschlüssels. Daher werden für den ersten Verbund, bei dem die Daten von Hadoop geladen werden, andere Spaltenfamilien verwendet. Details zur Optimierung werden in Kap erläutert. 21

25 3.2 Auswertungsstrategie 3.2 Auswertungsstrategie Die vorgestellte Implementierung unterstützt Anfragen, die aus Basic Graph Patterns mit bis zu 2 Variablen pro Tripelmuster bestehen. Zur Auswertung wird für jedes konsekutive Paar an Tripelmustern ein Verbund (engl. join) über die gemeinsamen Variablen dieser Tripel durchgeführt. Pro Verbund wird ein MapReduce-Job generiert, der die Daten aus Cassandra lädt und das Zwischen- oder Endergebnis auf das HDFS schreibt. Für n Tripel sind also n-1 MapReduce-Jobs nötig, um die Anfrage zu beantworten. Abb. 3.2 zeigt den Datenfluss der MapReduce-Jobs. Der erste der insgesamt n-1 Join- Jobs lädt den ersten und zweiten Datensatz aus Cassandra. Die Zwischenergebnisse werden auf das HDFS in einem temporären Ordner gespeichert. Der zweite Job erhält die Zwischenergebnisse vom HDFS, sowie den zweiten Datensatz aus Cassandra. Der Job speichert die Zwischenergebnisse auf das HDFS. Dieser Vorgang wiederholt sich bis zum letzten Job, der das Endergebnis auf das HDFS schreibt. Das Endergbnis enthält alle resultierenden Abbildungen der Variablen auf einen der Anfrage entsprechenden Wert. Cassandra 1.Input laden 2.Input laden 2.Input Join 1 Join 2 Join n-1... Zwischenergebnisse laden Zwischenergebnisse speichern Zwischenergebnisse speichern Zwischenergebnisse laden Endergebnis speichern HDFS Abbildung 3.2: Job-Sequenz mit Datenfluss 22

26 3.2 Auswertungsstrategie Der Verbund wird als sogenannter Map-Side-Join realisiert. Das bedeutet, dass der Verbund innerhalb der Map-Phase des MapReduce-Programms bereits abgeschlossen wird. Bei einem Verbund werden Tripel, die sich aus einem linken Tripelmuster ergeben, mit Tripeln, die von einem rechten Tripelmuster stammen, verbunden. In der Map-Phase werden die Tripel der linken Seite geladen und es werden dynamisch für jedes dieser Tripel die zu verbindenden Tripel der rechten Seite geladen. Da auf eine Reduce-Phase bei dieser Methode verzichtet wird, wird die Zeit eingespart, die sonst nötig wäre, um die Daten zu sortieren und nach Schlüssel zu gruppieren. Schließlich wird auch Netzwerkverkehr eingespart, da die Daten nicht an die Reducer geschickt werden müssen. In der Map-Phase wird jeweils über die Daten iteriert, die sich aus dem linken Tripelmuster ergeben. Es ergibt sich eine Menge an Abbildungen von der Menge der Variablen auf die jeweiligen Werte, die nachfolgend Mapping genannt wird. Für jedes Mapping werden nun die Daten, die verbunden werden sollen, angefragt und geladen. Dabei wird ausgenutzt, dass es eine Schnittmenge der Variablen zwischen den beiden Tripelmustern gibt. Linkes Tripelmuster:?inproc rdf:type bench: Inproceeding Rechtes TripelMuster:?inproc dc:creator?author Mappings: Gemeinsame Variable:?inproc {?author =persons:eileen_heick,?inproc=inproc:inproceeding1} {?author=persons:paul_erdoes,?inproc=inproc:inproceeding1} Iteration {?inproc=inproc:inproceeding1} Iteration {?inproc=inproc:inproceeding2} {?inproc=inproc:inproceeding3} null null {?inproc=inproc:inproceeding4} {?author=persons:gizla_nordmark,?inproc=inproc:inproceeding4} Iteration {?author=persons:eileen_heick,?inproc=inproc:inproceeding1} {?author=persons:paul_erdoes,?inproc=http:inproc:inproceeding1} {?author=persons:gizla_nordmark,?inproc=inproc:inproceeding4} Abbildung 3.3: Beispielhafter Verbund in der Map-Phase des Jobs Abb. 3.3 verdeutlicht den Verbund anhand eines Beispiels. Die linke und rechte Seite 23

27 3.2 Auswertungsstrategie bilden jeweils Mappings (Abbildungen) der Variablen auf den jeweiligen Wert, der in der Zeile in Cassandra vorliegt oder vom HDFS geladen wurde, wenn es sich um ein Zwischenergebnis handelt. Im Beispiel wird über alle möglichen Werte für die Variable?inproc iteriert. Durch die vorhandene Schnittmenge der linken und rechten Seite ergeben sich vor dem Zugriff auf die Datenbank Werte für die gemeinsamen Variablen. Nun wird für die rechte Seite dynamisch auf Cassandra zugegriffen. Dabei werden die bekannten Schlüssel, die sich aus den gemeinsamen Variablen ergeben, berücksichtigt. Im Beispiel wird also erkannt, dass?inproc eine gemeinsame Variable ist. Folglich gibt es für die rechte Seite nur noch die Variable?author, da der jeweilige Wert für?inproc von der linken Seite übernommen wird. Es gibt nun zwei Möglichkeiten: Entweder erhält man eine Menge an Mappings, über die man nun iteriert und das Kreuzprodukt mit dem linken Mapping bildet oder es gibt kein Mapping für die rechte Seite. Dies ist dann der Fall, wenn die Cassandra-Datenbank für die definierten Schlüssel keinen Wert liefert. In diesem Fall wird diese Zeile nicht im Verbund berücksichtigt. Im Beispiel liegen also für inproc:inproceeding2 und inproc:inproceeding3 keine Daten über die Autoren vor, sodass der Verbund für diese Werte nicht berechnet wird. Für die anderen Werte liegen Daten über die Autoren vor, sodass das Kreuzprodukt berechnet werden kann. 24

28 4 Implementierung und Optimierungen Insgesamt wurden zwei Anwendungen implementiert. Die erste Anwendung dient zum Speichern von RDF-Daten in Cassandra. Sie erhält eine im N3-Format vorliegende RDF-Datei als Eingabe und speichert die Daten in die drei Spaltenfamilien SPO, POS und OSP (siehe Kap. 3.1). Der Benutzer kann den Keyspace festlegen, sowie die Anzahl der Tripel, die pro Batch in die Datenbank geschrieben werden, um die Schreibgeschwindigkeit zu regulieren. Die Anwendung wird auf einem Knoten des Clusters geladen und dort ausgeführt. Die zweite Anwendung, die der Auswertung der SPARQL-BGP Anfragen dient, wird mit Hadoop gestartet und läuft verteilt auf dem Cluster. Als Eingabe erhält das Programm die Anfrage, sowie den Namen des Keyspace, auf dem die Auswertung durchgeführt werden soll. Die Ausgabe erfolgt auf dem HDFS. Abb. 4.1 zeigt die Systemarchitektur. Links ist die Anwendung zur Auswertung der SPARQL-BGP- Anfragen zu sehen, während rechts das Einleseprogramm dargestellt wird. Beide Anwendungen wurden in der Programmiersprache Java implementiert. Der Hector Client 1 ermöglicht den Zugriff auf Cassandra in Java-Programmen und wird in beiden Anwendungen verwendet. Das selbsternannte Ziel von Hector ist es, dem Entwickler Funktionen zur Verfügung zu stellen, um einfacher auf Cassandra zuzugreifen. Dabei greift der Client selbst per Thrift-API auf Cassandra zu und ist somit ein Wrapper dieser Funktionen. Die MapReduce-Jobs greifen per ColumnFamilyInputFormat und Hector-Client auf die Datenbank zu. Das ColumnFamilyInputFormat wird vom Cassandra-Projekt zur Verfügung gestellt, um Daten aus Cassandra mit MapReduce zu verarbeiten

29 4.1 Einlesen der Daten Abbildung 4.1: Systemarchitektur der Implementierung 4.1 Einlesen der Daten Die Daten liegen im N3-Format auf dem Server vor. Zum Einlesen wurde ein Programm implementiert, das die Daten mit dem Parser des Sesame-Frameworks 2 in Aussagen unterteilt. Die Präfixe werden vom Parser automatisch erweitert, sodass die URIs in voller Länge abgespeichert werden. Zum Schreiben der Daten in die Cassandra-Datenbank wird der Hector-Client eingesetzt. Die Laufzeit wird verbessert, wenn die Funktion addinsertion statt insert verwendet wird. Auf diese Weise werden die Daten zunächst als sogenannter Batch gesammelt und dann gleichzeitig in die Datenbank geladen. Batchgrößen zwischen 500 und 2000 lieferten gute Ergebnisse. Die Laufzeit verbessert sich bei größeren Batchgrößen wenig, aber das Risiko einer OutOfMemory-Exception steigt, da die Daten auf den Heap der Java Virtual Machine zwischengespeichert werden

Teamprojekt & Projekt

Teamprojekt & Projekt 18. Oktober 2010 Teamprojekt & Projekt Veranstalter: Betreuer: Prof. Dr. Georg Lausen Thomas Hordnung, Alexander Schätzle, Martin Przjyaciel-Zablocki dbis Studienordnung Master: 16 ECTS 480 Semesterstunden

Mehr

Semantic Web: Resource Description Framework (RDF)

Semantic Web: Resource Description Framework (RDF) Big Data Semantic Web: RDF Information Retrieval Map Reduce: Massiv parallele Verarbeitung Datenströme Peer to Peer Informationssysteme No SQL Systeme Multi-Tenancy/Cloud-Datenbanken Semantic Web: Resource

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

Teamprojekt & Projekt

Teamprojekt & Projekt 2. November 2010 Teamprojekt & Projekt Veranstalter: Betreuer: Prof. Dr. Georg Lausen Alexander Schätzle, Martin Przjyaciel-Zablocki, Thomas Hornung dbis Studienordnung Master: 16 ECTS 480 Semesterstunden

Mehr

Wide Column Stores. Felix Bruckner Mannheim, 15.06.2012

Wide Column Stores. Felix Bruckner Mannheim, 15.06.2012 Wide Column Stores Felix Bruckner Mannheim, 15.06.2012 Agenda Einführung Motivation Grundlagen NoSQL Grundlagen Wide Column Stores Anwendungsfälle Datenmodell Technik Wide Column Stores & Cloud Computing

Mehr

Hadoop aus IT-Operations Sicht Teil 1 Hadoop-Grundlagen

Hadoop aus IT-Operations Sicht Teil 1 Hadoop-Grundlagen Hadoop aus IT-Operations Sicht Teil 1 Hadoop-Grundlagen Brownbag am Freitag, den 26.07.2013 Daniel Bäurer inovex GmbH Systems Engineer Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und

Mehr

Perzentile mit Hadoop ermitteln

Perzentile mit Hadoop ermitteln Perzentile mit Hadoop ermitteln Ausgangspunkt Ziel dieses Projektes war, einen Hadoop Job zu entwickeln, der mit Hilfe gegebener Parameter Simulationen durchführt und aus den Ergebnissen die Perzentile

Mehr

SEMT. Prof. G. Bengel. Searching as a Service (Programming Model: MapReduce)

SEMT. Prof. G. Bengel. Searching as a Service (Programming Model: MapReduce) Hochschule Mannheim Fakultät für Informatik SEMT Prof. G. Bengel Sommersemester 2009 Semester 8I Searching as a Service (Programming Model: MapReduce) Michel Schmitt (520361) 1.06.2009 Inhalt 1. Einführung...

Mehr

Algorithmen. Consistent Hashing Bloom Filter MapReduce. Distributed Hash Tables. Einführung 1

Algorithmen. Consistent Hashing Bloom Filter MapReduce. Distributed Hash Tables. Einführung 1 Algorithmen Consistent Hashing Bloom Filter MapReduce Distributed Hash Tables Einführung 1 Consistent Hashing Problem: Wie finde ich den Speicherort für ein Objekt in einem verteilten System mit n Knoten?

Mehr

MapReduce in der Praxis

MapReduce in der Praxis MapReduce in der Praxis Rolf Daniel Seminar Multicore Programmierung 09.12.2010 1 / 53 Agenda Einleitung 1 Einleitung 2 3 Disco Hadoop BOOM 4 2 / 53 1 Einleitung 2 3 Disco Hadoop BOOM 4 3 / 53 Motivation

Mehr

NoSQL. Was Architekten beachten sollten. Dr. Halil-Cem Gürsoy adesso AG. Architekturtag @ SEACON 2012 Hamburg

NoSQL. Was Architekten beachten sollten. Dr. Halil-Cem Gürsoy adesso AG. Architekturtag @ SEACON 2012 Hamburg NoSQL Was Architekten beachten sollten Dr. Halil-Cem Gürsoy adesso AG Architekturtag @ SEACON 2012 Hamburg 06.06.2012 Agenda Ein Blick in die Welt der RDBMS Klassifizierung von NoSQL-Datenbanken Gemeinsamkeiten

Mehr

Apache HBase. A BigTable Column Store on top of Hadoop

Apache HBase. A BigTable Column Store on top of Hadoop Apache HBase A BigTable Column Store on top of Hadoop Ich bin... Mitch Köhler Selbstständig seit 2010 Tätig als Softwareentwickler Softwarearchitekt Student an der OVGU seit Oktober 2011 Schwerpunkte Client/Server,

Mehr

Weitere Decision-Support Anfrage- Typen

Weitere Decision-Support Anfrage- Typen Big Data Top-k / Ranking / Skyline Semantic Web: RDF Information Retrieval PageRank / HITS Map Reduce: Massiv parallele Verarbeitung Datenströme Peer to Peer Informationssysteme No SQL Systeme Multi-Tenancy/Cloud-Datenbanken

Mehr

Neue Ansätze der Softwarequalitätssicherung

Neue Ansätze der Softwarequalitätssicherung Neue Ansätze der Softwarequalitätssicherung Googles MapReduce-Framework für verteilte Berechnungen am Beispiel von Apache Hadoop Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik

Mehr

Charakteristika und Vergleich von SQL- und NoSQL- Datenbanken

Charakteristika und Vergleich von SQL- und NoSQL- Datenbanken Universität Leipzig Fakultät für Mathematik und Informatik Abteilung Datenbanken Dozent: Prof. Dr. Erhard Rahm Betreuer: Stefan Endrullis Problemseminar NoSQL-Datenbanken Semester: WS 11/12 Charakteristika

Mehr

NoSQL. Einblick in die Welt nicht-relationaler Datenbanken. Christoph Föhrdes. UnFUG, SS10 17.06.2010

NoSQL. Einblick in die Welt nicht-relationaler Datenbanken. Christoph Föhrdes. UnFUG, SS10 17.06.2010 NoSQL Einblick in die Welt nicht-relationaler Datenbanken Christoph Föhrdes UnFUG, SS10 17.06.2010 About me Christoph Föhrdes AIB Semester 7 IRC: cfo #unfug@irc.ghb.fh-furtwangen.de netblox GbR (http://netblox.de)

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015 Abstrakt zum Vortrag im Oberseminar Graphdatenbanken Gero Kraus HTWK Leipzig 14. Juli 2015 1 Motivation Zur Darstellung komplexer Beziehungen bzw. Graphen sind sowohl relationale als auch NoSQL-Datenbanken

Mehr

Institut für Verteilte Systeme

Institut für Verteilte Systeme Institut für Verteilte Systeme Prof. Dr. Franz Hauck Seminar: Multimedia- und Internetsysteme, Wintersemester 2010/11 Betreuer: Jörg Domaschka Bericht zur Seminarssitzung am 2011-01-31 Bearbeitet von :

Mehr

Einführung in Hadoop

Einführung in Hadoop Einführung in Hadoop Inhalt / Lern-Ziele Übersicht: Basis-Architektur von Hadoop Einführung in HDFS Einführung in MapReduce Ausblick: Hadoop Ökosystem Optimierungen Versionen 10.02.2012 Prof. Dr. Christian

Mehr

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221 Oracle 10g und SQL Server 2005 ein Vergleich Thomas Wächtler 39221 Inhalt 1. Einführung 2. Architektur SQL Server 2005 1. SQLOS 2. Relational Engine 3. Protocol Layer 3. Services 1. Replication 2. Reporting

Mehr

Clouds. Erwartungen der Nutzer. Wolkig bis Heiter. (c) 2013, Peter Sturm, Universität Trier. Er ist verwöhnt! Er ist nicht dankbar!

Clouds. Erwartungen der Nutzer. Wolkig bis Heiter. (c) 2013, Peter Sturm, Universität Trier. Er ist verwöhnt! Er ist nicht dankbar! Clouds Wolkig bis Heiter Erwartungen der Nutzer Er ist verwöhnt! Verfügbarkeit Viele Anwendungen Intuitive Interfaces Hohe Leistung Er ist nicht dankbar! Mehr! Mehr! Mehr! Moore 1 Erwartungen der Entwickler

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

Apache Hadoop. Distribute your data and your application. Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.

Apache Hadoop. Distribute your data and your application. Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache. Apache Hadoop Distribute your data and your application Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.org Apache The Apache Software Foundation Community und

Mehr

Hadoop. Simon Prewo. Simon Prewo

Hadoop. Simon Prewo. Simon Prewo Hadoop Simon Prewo Simon Prewo 1 Warum Hadoop? SQL: DB2, Oracle Hadoop? Innerhalb der letzten zwei Jahre hat sich die Datenmenge ca. verzehnfacht Die Klassiker wie DB2, Oracle usw. sind anders konzeptioniert

Mehr

Seminar Cloud Data Management WS09/10. Tabelle1 Tabelle2

Seminar Cloud Data Management WS09/10. Tabelle1 Tabelle2 Seminar Cloud Data Management WS09/10 Tabelle1 Tabelle2 1 Einführung DBMS in der Cloud Vergleich verschiedener DBMS Beispiele Microsoft Azure Amazon RDS Amazon EC2 Relational Databases AMIs Was gibt es

Mehr

User Stories in agilen Projekten. Deutschland 8,50. RESTful JSF » 92. Ein Widerspruch? Java Web Services SOAP mit JAX-WS » 69. Cassandra und Hector

User Stories in agilen Projekten. Deutschland 8,50. RESTful JSF » 92. Ein Widerspruch? Java Web Services SOAP mit JAX-WS » 69. Cassandra und Hector inkl. Java Magazin 8.2011 JAVA Mag CD User Stories in agilen Projekten Deutschland 8,50 Österreich 9,80 Schweiz sfr 16,80 Atlassian-Entwicklungstools RESTful JSF IPHONE 4 JAVA DEVELOPERS Video von der

Mehr

Persönlichkeiten bei bluehands

Persönlichkeiten bei bluehands Persönlichkeiten bei Technologien bei Skalierbare Anwendungen mit Windows Azure GmbH & co.mmunication KG am@.de; posts..de/am 1 2 3 4 5 6 7 8 9 Immer mehr Mehr Performance Mehr Menge Mehr Verfügbarkeit

Mehr

Spark, Impala und Hadoop in der Kreditrisikoberechnung

Spark, Impala und Hadoop in der Kreditrisikoberechnung Spark, Impala und Hadoop in der Kreditrisikoberechnung Big Data In-Memory-Technologien für mittelgroße Datenmengen TDWI München, 22. Juni 2015 Joschka Kupilas, Data Scientist, Adastra GmbH 2 Inhalt Vorwort

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 11 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe15 Moritz Kaufmann (moritz.kaufmann@tum.de)

Mehr

Einführung in Hadoop & MapReduce. Dr. Kathrin Spreyer Big Data Engineer

Einführung in Hadoop & MapReduce. Dr. Kathrin Spreyer Big Data Engineer Einführung in Hadoop & MapReduce Dr. Kathrin Spreyer Big Data Engineer München, 19.06.2013 Agenda Einleitung 1. HDFS 2. MapReduce 3. APIs 4. Hive & Pig 5. Mahout Tools aus Hadoop-Ökosystem 6. HBase 2 Worum

Mehr

Hadoop Demo HDFS, Pig & Hive in Action. Oracle DWH Konferenz 2014 Carsten Herbe

Hadoop Demo HDFS, Pig & Hive in Action. Oracle DWH Konferenz 2014 Carsten Herbe Hadoop Demo HDFS, Pig & Hive in Action Oracle DWH Konferenz 2014 Carsten Herbe Wir wollen eine semi-strukturierte Textdatei in Hadoop verarbeiten und so aufbereiten, dass man die Daten relational speichern

Mehr

Eine. eingereicht. von

Eine. eingereicht. von ALBERT-LUDWIGS-UNIVERSITÄT FREIBURG INSTITUT FÜR INFORMATIK PigSPARQL Eine Übersetzung von SPARQL nach n Pigg Latin MASTERARBEIT eingereicht von Alexander Schätzle am Lehrstuhl für Datenbanken und Informationssysteme

Mehr

Oracle Big Data Technologien Ein Überblick

Oracle Big Data Technologien Ein Überblick Oracle Big Data Technologien Ein Überblick Ralf Lange Global ISV & OEM Sales NoSQL: Eine kurze Geschichte Internet-Boom: Erste Ansätze selbstgebauter "Datenbanken" Google stellt "MapReduce"

Mehr

SQL- & NoSQL-Datenbanken - Speichern und Analysen von großen Datenmengen

SQL- & NoSQL-Datenbanken - Speichern und Analysen von großen Datenmengen SQL- & NoSQL-Datenbanken - Speichern und Analysen von großen Datenmengen Lennart Leist Inhaltsverzeichnis 1 Einführung 2 1.1 Aufgaben einer Datenbank...................... 2 1.2 Geschichtliche Entwicklung

Mehr

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

Mehr

Data Mining in der Cloud

Data Mining in der Cloud Data Mining in der Cloud von Jan-Christoph Meier Hamburg, 21.06.2012 1 Ablauf Einführung Verwandte Arbeiten Fazit / Ausblick Literatur 2 Ablauf Einführung Verwandte Arbeiten Fazit / Ausblick Literatur

Mehr

Cloud-Computing. 1. Definition 2. Was bietet Cloud-Computing. 3. Technische Lösungen. 4. Kritik an der Cloud. 2.1 Industrie 2.

Cloud-Computing. 1. Definition 2. Was bietet Cloud-Computing. 3. Technische Lösungen. 4. Kritik an der Cloud. 2.1 Industrie 2. Cloud Computing Frank Hallas und Alexander Butiu Universität Erlangen Nürnberg, Lehrstuhl für Hardware/Software CoDesign Multicorearchitectures and Programming Seminar, Sommersemester 2013 1. Definition

Mehr

Apache Lucene. Mach s wie Google! Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.org

Apache Lucene. Mach s wie Google! Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.org Apache Lucene Mach s wie Google! Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.org 1 Apache Apache Software Foundation Software free of charge Apache Software

Mehr

4. Relationen. Beschreibung einer binären Relation

4. Relationen. Beschreibung einer binären Relation 4. Relationen Relationen spielen bei Datenbanken eine wichtige Rolle. Die meisten Datenbanksysteme sind relational. 4.1 Binäre Relationen Eine binäre Relation (Beziehung) R zwischen zwei Mengen A und B

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

Java Forum Stuttgart 2013 Kai.Spichale@adesso.de twitter.com/kspichale spichale.blogspot.de

Java Forum Stuttgart 2013 Kai.Spichale@adesso.de twitter.com/kspichale spichale.blogspot.de NoSQL für Java-Entwickler Java Forum Stuttgart 2013 Kai.Spichale@adesso.de twitter.com/kspichale spichale.blogspot.de 23.06.2013 Agenda Datengröße Key-value Stores 1. Wide Column 2. Cassandra Document

Mehr

Big-Data-Technologien - Überblick - Prof. Dr. Jens Albrecht

Big-Data-Technologien - Überblick - Prof. Dr. Jens Albrecht Big-Data-Technologien - Überblick - Quelle: http://www.ingenieur.de/panorama/fussball-wm-in-brasilien/elektronischer-fussball-smartphone-app-helfen-training Big-Data-Anwendungen im Unternehmen Logistik

Mehr

25.09.2014. Zeit bedeutet eine Abwägung von Skalierbarkeit und Konsistenz

25.09.2014. Zeit bedeutet eine Abwägung von Skalierbarkeit und Konsistenz 1 2 Dies ist ein Vortrag über Zeit in verteilten Anwendungen Wir betrachten die diskrete "Anwendungszeit" in der nebenläufige Aktivitäten auftreten Aktivitäten in einer hochgradig skalierbaren (verteilten)

Mehr

Antwortzeitverhalten von Online Storage Services im Vergleich

Antwortzeitverhalten von Online Storage Services im Vergleich EPOD Encrypted Private Online Disc Antwortzeitverhalten von Online Storage Services im Vergleich Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Erweiterung des verteilten Datenspeichersystems Cassandra um eine Indexunterstützung

Erweiterung des verteilten Datenspeichersystems Cassandra um eine Indexunterstützung Leibniz Universität Hannover Fakultät für Elektrotechnik und Informatik Institut für Praktische Informatik Fachgebiet Datenbanken und Informationssysteme Erweiterung des verteilten Datenspeichersystems

Mehr

MapReduce-Konzept. Thomas Findling, Thomas König

MapReduce-Konzept. Thomas Findling, Thomas König MapReduce - Konzept 1 Inhalt 1. Motivation 2. Einführung MapReduce Google Rechenzentren Vergleich MapReduce und Relationale DBS 3. Hadoop Funktionsweise Input / Output Fehlerbehandlung 4. Praxis-Beispiel

Mehr

SQL- & NoSQL-Datenbanken. Speichern und Analysen von großen Datenmengen

SQL- & NoSQL-Datenbanken. Speichern und Analysen von großen Datenmengen SQL- & NoSQL-Datenbanken Speichern und Analysen von großen Datenmengen 1 04.07.14 Zitat von Eric Schmidt (Google CEO): There was 5 exabytes of information created between the dawn of civilization through

Mehr

Datenbearbeitung in der Cloud anhand von Apache Hadoop Hochschule Mannheim

Datenbearbeitung in der Cloud anhand von Apache Hadoop Hochschule Mannheim Tobias Neef Cloud-Computing Seminar Hochschule Mannheim WS0910 1/23 Datenbearbeitung in der Cloud anhand von Apache Hadoop Hochschule Mannheim Tobias Neef Fakultät für Informatik Hochschule Mannheim tobnee@gmail.com

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

GPU-basierte Beschleunigung von MapReduce am Beispiel von OpenCL und Hadoop

GPU-basierte Beschleunigung von MapReduce am Beispiel von OpenCL und Hadoop am Beispiel von OpenCL und Masterseminar Hochschule für Technik, Wirtschaft und Kultur Leipzig Leipzig, 02.11.2011 Gliederung 1 Grundlagen 2 3 Gliederung 1 Grundlagen 2 3 Was ist? Clustersystem zur verteilten

Mehr

SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen

SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen WEITER BLICKEN. MEHR ERKENNEN. BESSER ENTSCHEIDEN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN VERSION 1.0 OPTIMIERUNG VON ABFRAGEN IN MS SQL

Mehr

RDF(a) und Microformats

RDF(a) und Microformats Weiterführende Themen zu Internet- und WWW-Technologien Hasso-Plattner-Institut 16. Mai 2011 1 Einführung Hintergrund Die Geschichte 2 RDF Ziel Repräsentationen Vokabularien 3 Microformats Motivation Beispiele

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2) 14. URIs Uniform Resource Identifier 14-1 14. URIs Uniform Resource Identifier 14-2 Motivation Das WWW ist ein Hypermedia System. Es enthält: Resourcen (Multimedia Dokumente) Verweise (Links) zwischen

Mehr

NoSQL & Big Data. NoSQL Databases and Big Data. NoSQL vs SQL DBs. NoSQL DBs - Überblick. Datenorientierte Systemanalyse. Gerhard Wohlgenannt

NoSQL & Big Data. NoSQL Databases and Big Data. NoSQL vs SQL DBs. NoSQL DBs - Überblick. Datenorientierte Systemanalyse. Gerhard Wohlgenannt NoSQL & Big Data Datenorientierte Systemanalyse NoSQL Databases and Big Data Gerhard Wohlgenannt Die besprochenen Systeme haben nicht den Anspruch und das Ziel DBS zu ersetzen, sondern für gewisse Anwendungsfälle

Mehr

NoSQL-Databases. Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de

NoSQL-Databases. Präsentation für Advanced Seminar Computer Engineering, Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de NoSQL-Databases Präsentation für Advanced Seminar "Computer Engineering", Matthias Hauck, matthias.hauck@stud.uni-heidelberg.de Klassische SQL-Datenbanken Anwendungsgebiet: Geschäftsanwendungen Behördenanwendungen

Mehr

Big Data Hype und Wirklichkeit Bringtmehrauchmehr?

Big Data Hype und Wirklichkeit Bringtmehrauchmehr? Big Data Hype und Wirklichkeit Bringtmehrauchmehr? Günther Stürner, Vice President Sales Consulting 1 Copyright 2011, Oracle and/or its affiliates. All rights Überschrift 2 Copyright 2011, Oracle and/or

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

TimeSafe Leistungserfassung

TimeSafe Leistungserfassung Keep your time safe. TimeSafe Leistungserfassung Adressimport 1/8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Allgemeines... 3 1.1 Adressen in der TimeSafe Leistungserfassung... 3 1.2 Organisationen und/oder

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Integration Services - Dienstarchitektur

Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Dieser Artikel solle dabei unterstützen, Integration Services in Microsoft SQL Server be sser zu verstehen und damit die

Mehr

Semantic Wiki Eine Erweiterung des Wiki-Konzepts von Harald Cichos

Semantic Wiki Eine Erweiterung des Wiki-Konzepts von Harald Cichos Semantic Wiki Eine Erweiterung des Wiki-Konzepts von Harald Cichos Seminar: Semantic Web Wintersemester 2005/2006 Universität Jena Seminarleiter: Prof. Dr. C. Beckstein, Dr. H. Sack, Dipl.-Inform. H. Peter

Mehr

Überblick. Einführung Graphentheorie

Überblick. Einführung Graphentheorie Überblick Einführung Graphentheorie Graph-Algorithmen mit Map Kurzeinführung Graphentheorie Algorithmus zum Finden von Cliquen Graphen bestehen aus Knoten (englisch: Node, Vertex, Mehrzahl Vertices) Kanten

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen C3: Structured Query Language Lernziele: Nach der Bearbeitung dieser Lektion haben Sie folgende Kenntnisse erworben: Sie können elementaren

Mehr

NoSQL Deep Dive mit Cassandra. Kai Spichale

NoSQL Deep Dive mit Cassandra. Kai Spichale NoSQL Deep Dive mit Cassandra Kai Spichale 13.04.2011 1 NoSQL 13.04.2011 2 BerlinExpertDays NoSQL Wide Column Stores / Column Families Document Stores Graph Databases Key Value / Tupe Stores 13.04.2011

Mehr

Hadoop aus IT-Operations Sicht Teil 2 Hardware- und Netzwerk-Grundlagen

Hadoop aus IT-Operations Sicht Teil 2 Hardware- und Netzwerk-Grundlagen Hadoop aus IT-Operations Sicht Teil 2 Hardware- und Netzwerk-Grundlagen Brownbag am Freitag, den 09.08.2013 Daniel Bäurer inovex GmbH Systems Engineer Wir nutzen Technologien, um unsere Kunden glücklich

Mehr

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

Systemmonitoring unter Linux

Systemmonitoring unter Linux Systemmonitoring unter Linux CPU-Counter B.Sc. Wirtsch.-Inform. Arno Sagawe, 29.06.10 Department of Informatics Scientifics Computing 1 Gliederung Systemmonitoring Protokolle und Dateien für das Systemmonitoring

Mehr

Optimierung von Analytischen Abfragen über Statistical Linked Data mit MapReduce

Optimierung von Analytischen Abfragen über Statistical Linked Data mit MapReduce Optimierung von Analytischen Abfragen über Statistical Linked Data mit MapReduce Sébastien Jelsch 1, Benedikt Kämpgen 1 und Stefan Igel 2 1 FZI Forschungszentrum Informatik sebastien.jelsch@fzi.de, kaempgen@fzi.de

Mehr

NoSQL für Anwendungen

NoSQL für Anwendungen NoSQL für Anwendungen Hochschule Mannheim Fakultät für Informatik Cluster Grid Computing Seminar SS 2012 Lemmy Tauer (729400) lemmy.coldlemonade.tauer@gmail.com NoSQL CAP / ACID / Kompromisse Key-Value

Mehr

eingereicht von Martin

eingereicht von Martin ALBERT-LUDWIGS-UNIVERSITÄT FREIBURG INSTITUT FÜR INFORMATIK RDFPath Verteilte Analyse von RDF-Graphenn MASTERARBEIT eingereicht von Martin Przyjaciel-Zablocki am Lehrstuhl für Datenbanken und Informationssysteme

Mehr

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL )

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL ) Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 6 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 1.12.2003 SQL-DDL und SQL-Anfragen

Mehr

syntax.tex Eine Übersicht

syntax.tex Eine Übersicht syntax.tex Eine Übersicht Bernd Worsch 7. Juli 1997 Inhaltsverzeichnis 1 Einleitung 1 2 Bevor es funktioniert... 1 3 Grundelemente von syntax.tex 1 4 Strukturelemente von syntax.tex 3 5 Setzen von Syntaxdiagrammen

Mehr

GeoShop Netzwerkhandbuch

GeoShop Netzwerkhandbuch Technoparkstrasse 1 8005 Zürich Tel.: 044 / 350 10 10 Fax.: 044 / 350 10 19 GeoShop Netzwerkhandbuch Zusammenfassung Diese Dokumentation beschreibt die Einbindung des GeoShop in bestehende Netzwerkumgebungen.

Mehr

BigTable. 11.12.2012 Else

BigTable. 11.12.2012 Else BigTable 11.12.2012 Else Einführung Distributed Storage System im Einsatz bei Google (2006) speichert strukturierte Daten petabyte-scale, > 1000 Nodes nicht relational, NoSQL setzt auf GFS auf 11.12.2012

Mehr

MapReduce und Datenbanken Thema 15: Strom bzw. Onlineverarbeitung mit MapReduce

MapReduce und Datenbanken Thema 15: Strom bzw. Onlineverarbeitung mit MapReduce MapReduce Jan Kristof Nidzwetzki MapReduce 1 / 17 Übersicht 1 Begriffe 2 Verschiedene Arbeiten 3 Ziele 4 DEDUCE: at the intersection of MapReduce and stream processing Beispiel 5 Beyond online aggregation:

Mehr

Thema: Das MapReduce-Framework

Thema: Das MapReduce-Framework Software as a Service Cloud Computing und aktuelle Entwicklungen Seminararbeit Thema: Das MapReduce-Framework Betreuer: Prof. Dr. Klaus Küspert Dipl.-Inf. Andreas Göbel Nicky Kuhnt Friedrich-Schiller-Universität

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Entwicklung eines Electronic Resource Management Systems für Bibliotheken auf Basis von Linked Data Technologien

Entwicklung eines Electronic Resource Management Systems für Bibliotheken auf Basis von Linked Data Technologien Entwicklung eines Electronic Resource Management Systems für Bibliotheken auf Basis von Linked Data Technologien Lydia Unterdörfel, Björn Muschall Wissenschaftskommunikation im Semantischen Web (EFRE)

Mehr

Web Technologien NoSQL Datenbanken

Web Technologien NoSQL Datenbanken Web Technologien NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Department of Law and Economics WS 2011/2012 Wednesdays, 8:00 10:00 a.m. Room HS 021, B4

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de MapReduce MapReduce - Veranschaulichung der Phasen Prof. Dr.-Ing. S. Michel TU Kaiserslautern

Mehr

Erste Schritte, um selber ConfigMgr Reports zu erstellen

Erste Schritte, um selber ConfigMgr Reports zu erstellen Thomas Kurth CONSULTANT/ MCSE Netree AG thomas.kurth@netree.ch netecm.ch/blog @ ThomasKurth_CH Erste Schritte, um selber ConfigMgr Reports zu erstellen Configuration Manager Ziel Jeder soll nach dieser

Mehr

Web Data Mining. Alexander Hinneburg Sommersemester 2007

Web Data Mining. Alexander Hinneburg Sommersemester 2007 Web Data Mining Alexander Hinneburg Sommersemester 2007 Termine Vorlesung Mi. 10:00-11:30 Raum?? Übung Mi. 11:45-13:15 Raum?? Klausuren Mittwoch, 23. Mai Donnerstag, 12. Juli Buch Bing Liu: Web Data Mining

Mehr

Hadoop. High Performance Batches in der Cloud. Hadoop. Folie 1 25. Januar 2011

Hadoop. High Performance Batches in der Cloud. Hadoop. Folie 1 25. Januar 2011 High Performance Batches in der Cloud Folie 1 Alles geht in die Cloud Image: Chris Sharp / FreeDigitalPhotos.net Cloud und Batches passen zusammen Batches Cloud Pay-per-Use Nur zeitweise genutzt Hohe Rechenkapazitäten

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector 7.4 Analyse anhand der SQL-Trace 337 7.3.5 Vorabanalyse mit dem Code Inspector Der Code Inspector (SCI) wurde in den vorangegangenen Kapiteln immer wieder erwähnt. Er stellt ein paar nützliche Prüfungen

Mehr

Think Big. Skalierbare Anwendungen mit Azure. Aydin Mir Mohammadi Bluehands GmbH & co.mmunication KG

Think Big. Skalierbare Anwendungen mit Azure. Aydin Mir Mohammadi Bluehands GmbH & co.mmunication KG Skalierbare Anwendungen mit Azure Bluehands GmbH & co.mmunication KG 1 2 3 4 5 6 7 8 9 Immer mehr Mehr Performance Mehr Menge Mehr Verfügbarkeit Skalierung http://www.flickr.com/photos/39901968@n04/4864698533/

Mehr

Kontextbasiertes Information Retrieval

Kontextbasiertes Information Retrieval Kontextbasiertes Information Retrieval Modell, Konzeption und Realisierung kontextbasierter Information Retrieval Systeme Karlheinz Morgenroth Lehrstuhl für Medieninformatik Fakultät Wirtschaftsinformatik

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

NEWpixi* API und die Umstellung auf REST. Freitag, 3. Mai 13

NEWpixi* API und die Umstellung auf REST. Freitag, 3. Mai 13 NEWpixi* API und die Umstellung auf REST Fakten NEWpixi* API Technik REST-basierend.NET Webservice IIS Webserver Release 31. August 2013, zusammen mit dem NEWpixi* ELI Release Legacy API und erste NEWpixi*

Mehr

Semantic Markup für die Dokumentenklassifizierung. Seminarvortrag von Mirko Pracht

Semantic Markup für die Dokumentenklassifizierung. Seminarvortrag von Mirko Pracht Semantic Markup für die Dokumentenklassifizierung Seminarvortrag von Mirko Pracht Ziel des Vortrags Aufbau digitaler Bibliotheken Verbesserung Informationssuche Semantic Markup Gliederung 1. Grundlagen

Mehr

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

Mehr

Big Data Mythen und Fakten

Big Data Mythen und Fakten Big Data Mythen und Fakten Mario Meir-Huber Research Analyst, IDC Copyright IDC. Reproduction is forbidden unless authorized. All rights reserved. About me Research Analyst @ IDC Author verschiedener IT-Fachbücher

Mehr

ERANGER 3.5.4 (FREEBSD) ERANGER 3.6.4 (RHEL) Release Announcement

ERANGER 3.5.4 (FREEBSD) ERANGER 3.6.4 (RHEL) Release Announcement ERANGER 3.5.4 (FREEBSD) ERANGER 3.6.4 (RHEL) Release Announcement 6. November 2014 2014 Junisphere Systems AG Junisphere Systems AG Glatt Tower, P.O. Box CH-8301 Glattzentrum Tel. +41 (0)43 443 31 80 info@junisphere.net

Mehr