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

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

Überblick und Vergleich von NoSQL. Datenbanksystemen

Überblick und Vergleich von NoSQL. Datenbanksystemen Fakultät Informatik Hauptseminar Technische Informationssysteme Überblick und Vergleich von NoSQL Christian Oelsner Dresden, 20. Mai 2011 1 1. Einführung 2. Historisches & Definition 3. Kategorien von

Mehr

Projektgruppe. Knowledge Representation Persistence and Reasoning

Projektgruppe. Knowledge Representation Persistence and Reasoning Projektgruppe Seminarvortrag von Stefan Middeke Knowledge Representation Persistence and Reasoning 4. Juni 2010 Überblick Motivation Repräsentation der Daten Speicherung und Abfrage von Daten Folgerungen

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

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

ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE. NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik

ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE. NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik ARFA ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik Ralf Leipner Domain Architect Analytics, Risk Management & Finance 33. Berner Architekten

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

Verknüpfte Daten abfragen mit SPARQL. Thomas Tikwinski, W3C.DE/AT

Verknüpfte Daten abfragen mit SPARQL. Thomas Tikwinski, W3C.DE/AT Verknüpfte Daten abfragen mit SPARQL Thomas Tikwinski, W3C.DE/AT Agenda SPARQL Eine Anfragesprache für RDF Was ist eine SPARQL-Abfrage? Beispiel Arbeiten mit Variablen Komplexere Anfragen Filtern und sortieren

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

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

Veranstalter: Lehrstuhl DBIS - Prof. Georg Lausen Betreuer: Thomas Hornung, Michael Schmidt 21.10.2008

Veranstalter: Lehrstuhl DBIS - Prof. Georg Lausen Betreuer: Thomas Hornung, Michael Schmidt 21.10.2008 Veranstalter: Lehrstuhl DBIS - Prof. Georg Lausen Betreuer: Thomas Hornung, Michael Schmidt 21.10.2008 Laut Studienordnung Master/Diplom: 16ECTS/15KP Entspricht: 480 Semesterstunden = 34h/Woche pp p.p.

Mehr

Hadoop. Eine Open-Source-Implementierung von MapReduce und BigTable. von Philipp Kemkes

Hadoop. Eine Open-Source-Implementierung von MapReduce und BigTable. von Philipp Kemkes Hadoop Eine Open-Source-Implementierung von MapReduce und BigTable von Philipp Kemkes Hadoop Framework für skalierbare, verteilt arbeitende Software Zur Verarbeitung großer Datenmengen (Terra- bis Petabyte)

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

Generalisierung von großen Datenbeständen am Beispiel der Gebäudegeneralisierung mit CHANGE

Generalisierung von großen Datenbeständen am Beispiel der Gebäudegeneralisierung mit CHANGE Institut für Kartographie und Geoinformatik Leibniz Universität Hannover Generalisierung von großen Datenbeständen am Beispiel der Gebäudegeneralisierung mit CHANGE Frank Thiemann, Thomas Globig Frank.Thiemann@ikg.uni-hannover.de

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

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

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

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

Big Data Management Thema 14: Cassandra

Big Data Management Thema 14: Cassandra Thema 14: Cassandra Jan Kristof Nidzwetzki Thema 14: Cassandra 1 / 25 Übersicht 1 Grundlagen Überblick Geschichte Datenmodel 2 Architektur Der logische Ring Persistenz der Daten Tunable Consistency Read

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

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

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

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

Peter Dikant mgm technology partners GmbH. Echtzeitsuche mit Hadoop und Solr

Peter Dikant mgm technology partners GmbH. Echtzeitsuche mit Hadoop und Solr Peter Dikant mgm technology partners GmbH Echtzeitsuche mit Hadoop und Solr ECHTZEITSUCHE MIT HADOOP UND SOLR PETER DIKANT MGM TECHNOLOGY PARTNERS GMBH WHOAMI peter.dikant@mgm-tp.com Java Entwickler seit

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

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

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

Form Designer. Leitfaden

Form Designer. Leitfaden Leitfaden Copyright Die hier enthaltenen Angaben und Daten können ohne vorherige Ankündigung geändert werden. Die in den Beispielen verwendeten Namen und Daten sind frei erfunden, soweit nichts anderes

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

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

Stefan Edlich Achim Friedland Jens Rampe Benjamin Brauer. NoSQL. Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken HANSER

Stefan Edlich Achim Friedland Jens Rampe Benjamin Brauer. NoSQL. Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken HANSER Stefan Edlich Achim Friedland Jens Rampe Benjamin Brauer NoSQL Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken HANSER Geleitwort 1 Vorwort 1 1 Einführung 1 1.1 Historie 1 1.2 Definition und

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

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

4. Datenabfrage mit QBE 11

4. Datenabfrage mit QBE 11 Informationsbestände analysieren Datenabfrage mit QBE 4. Datenabfrage mit QBE 11 4.1. QBE vs. SQL Relationale Datenbanken haben schon früh den Anspruch gestellt, auch für Nicht- Informatiker nutzbar zu

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

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

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

sedex-client Varianten für den Betrieb in einer hoch verfügbaren

sedex-client Varianten für den Betrieb in einer hoch verfügbaren Département fédéral de l'intérieur DFI Office fédéral de la statistique OFS Division Registres Team sedex 29.07.2014, version 1.0 sedex-client Varianten für den Betrieb in einer hoch verfügbaren Umgebung

Mehr

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13 Dokumentation KREDITVERZEICHNIS Teil 2 Konfiguration Stand 20.02.2013 KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 2/13 Inhalt 1. KONFIGURATION...

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

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

Oracle-Statistiken im Data Warehouse effizient nutzen

Oracle-Statistiken im Data Warehouse effizient nutzen Oracle-Statistiken im Data Warehouse effizient nutzen Reinhard Mense ARETO Consulting Köln Schlüsselworte: DWH, Data Warehouse, Statistiken, Optimizer, Performance, Laufzeiten Einleitung Für die performante

Mehr

Oracle, Datenbank, PowerPoint, Dokumente, PPTX, Automatisierung, Prozess-Automatisierung, smaxt

Oracle, Datenbank, PowerPoint, Dokumente, PPTX, Automatisierung, Prozess-Automatisierung, smaxt Automatische Generierung serialisierter, individualisierter PowerPoint-Präsentationen aus Oracle Datenbanken Andreas Hansel Symax Business Software AG Parkstrasse 22, D-65189 Wiesbaden Schlüsselworte Oracle,

Mehr

Verwaltung großer Datenmengen auf einem Netzwerklaufwerk. Ein Vergleich zwischen MS-ACCESS und SQLite.

Verwaltung großer Datenmengen auf einem Netzwerklaufwerk. Ein Vergleich zwischen MS-ACCESS und SQLite. Verwaltung großer Datenmengen auf einem Netzwerklaufwerk. Ein Vergleich zwischen MS-ACCESS und SQLite. Was tun, wenn man als Entwickler eine Datenbank einsetzen will, aber keine SQL-Datenbank installieren

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

OPERATIONEN AUF EINER DATENBANK

OPERATIONEN AUF EINER DATENBANK Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:

Mehr

Auswertung der Workload-Befragung mit MS ACCESS

Auswertung der Workload-Befragung mit MS ACCESS Auswertung der Workload-Befragung mit MS ACCESS Inhaltsverzeichnis 1. Aufbereitung der Daten... 2 1.1. Herstellung der Textfiles... 2 1.2. Import der Textdateien... 3 1.3. Verbindungen erstellen... 8 2.

Mehr

TYPO3 Redaktoren-Handbuch

TYPO3 Redaktoren-Handbuch TYPO3 Redaktoren-Handbuch Kontakt & Support: rdv interactive ag Arbonerstrasse 6 9300 Wittenbach Tel. 071 / 577 55 55 www.rdvi.ch Seite 1 von 38 Login http://213.196.148.40/typo3 Username: siehe Liste

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

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

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL 1 Transaktionen in SQL Um Daten in einer SQL-Datenbank konsistent zu halten, gibt es einerseits die Möglichkeit der Normalisierung, andererseits sog. Transaktionen. 2 Was ist eine Transaktion Eine Transaktion

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

mitho -Framework für plenty PHP-Framework zur Anbindung an die plenty API

mitho -Framework für plenty PHP-Framework zur Anbindung an die plenty API PHP-Framework zur Anbindung an die plenty API Inhaltsverzeichnis 1 Kurzbeschreibung...3 2 Integration...4 3 Möglichkeiten...5 3.1 Artikel...5 3.2 Aufträge...5 3.3 Kunden...5 4 Interne Funktionsweise...7

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

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

Oracle Warehouse Builder 3i

Oracle Warehouse Builder 3i Betrifft Autoren Art der Info Oracle Warehouse Builder 3i Dani Schnider (daniel.schnider@trivadis.com) Thomas Kriemler (thomas.kriemler@trivadis.com) Technische Info Quelle Aus dem Trivadis Technologie

Mehr

SOLISYON GMBH TOBIAS GRUBER BEN WEISSMAN. Analyse von Dimensions-Schlüsselfehlern bei der Aufbereitung von SSAS Datenbanken

SOLISYON GMBH TOBIAS GRUBER BEN WEISSMAN. Analyse von Dimensions-Schlüsselfehlern bei der Aufbereitung von SSAS Datenbanken WEITER BLICKEN. MEHR ERKENNEN. BESSER ENTSCHEIDEN. Analyse von Dimensions-Schlüsselfehlern bei der Aufbereitung von SSAS Datenbanken SOLISYON GMBH TOBIAS GRUBER BEN WEISSMAN ANALYSE VON OLAP-AUFBEREITUNGSFEHLERN

Mehr

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF RDF und RDF Schema Einführung in die Problematik Von HTML über XML zu RDF Kirsten Albrecht Roland Illig Probleme des HTML-basierten

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

NoSQL-Datenbanken und Hadoop im Zusammenspiel mit dem Data Warehouse

NoSQL-Datenbanken und Hadoop im Zusammenspiel mit dem Data Warehouse NoSQL-Datenbanken und Hadoop im Zusammenspiel mit dem Data Warehouse Carsten Czarski Oracle Deutschland B.V. & Co KG Big Data Betrachten von Daten die bislang nicht betrachtet wurden

Mehr

Big Data und SQL - das passt! Philipp Loer ORDIX AG Paderborn

Big Data und SQL - das passt! Philipp Loer ORDIX AG Paderborn Schlüsselworte Hadoop, Hive, Sqoop, SQL Big Data und SQL - das passt! Philipp Loer ORDIX AG Paderborn Einleitung In diesem Vortrag werden, nach einer kurzen Einführung in Apache Hadoop, die beiden Werkzeuge

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

ISBN: 978-3-8428-0679-5 Herstellung: Diplomica Verlag GmbH, Hamburg, 2011

ISBN: 978-3-8428-0679-5 Herstellung: Diplomica Verlag GmbH, Hamburg, 2011 Nils Petersohn Vergleich und Evaluation zwischen modernen und traditionellen Datenbankkonzepten unter den Gesichtspunkten Skalierung, Abfragemöglichkeit und Konsistenz Diplomica Verlag Nils Petersohn Vergleich

Mehr

4 Grundlagen der Datenbankentwicklung

4 Grundlagen der Datenbankentwicklung 4 Grundlagen der Datenbankentwicklung In diesem Kapitel werden wir die Grundlagen der Konzeption von relationalen Datenbanken beschreiben. Dazu werden Sie die einzelnen Entwicklungsschritte von der Problemanalyse

Mehr

Preisaktualisierungen via BC Pro-Catalogue

Preisaktualisierungen via BC Pro-Catalogue Preisaktualisierungen via BC Pro-Catalogue 1. Allgemein Seite 1 2. Anwendungsfall : Lieferant mit im System bereits vorhandenen Katalog Seite 2-3 3. Anwendungsfall : Neuer Lieferant Seite 4-8 1. Allgemein

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

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

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

Proseminar: Website-Management-Systeme

Proseminar: Website-Management-Systeme Proseminar: Website-Management-Systeme Thema: Web: Apache/Roxen von Oliver Roeschke email: o_roesch@informatik.uni-kl.de Gliederung: 1.) kurze Einleitung 2.) Begriffsklärung 3.) Was ist ein Web? 4.) das

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

TIKOS Leitfaden. TIKOS Update

TIKOS Leitfaden. TIKOS Update TIKOS Leitfaden TIKOS Update Copyright 2015, Alle Rechte vorbehalten support@socom.de 06.05.2015 Inhalt 1. Allgemeine Hinweise... 3 2. Ausführen des Updates... 3 3. Mögliche Meldungen beim Update... 9

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

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

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

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

Handbuch organice SQL-Reportgenerator

Handbuch organice SQL-Reportgenerator organice Software GmbH Handbuch organice SQL-Reportgenerator Benutzerhandbuch Stand: August 2013 Inhalt 1. Allgemeine Informationen... 3 1.1 Einführung... 3 1.2 Voraussetzungen... 3 1.3 Zielgruppe... 3

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

Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1

Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1 Automatisierte Erstellung von Software-Builds und -dokumentationen Teil 1 Autoren: Hagedorn, Robert; Denninger, Oliver Kontakt: {hagedorn denninger}@fzi.de Web: http://zfs.fzi.de Ort, Datum: Karlsruhe,

Mehr

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen FAEL-Seminar Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte

Mehr

9. Einführung in Datenbanken

9. Einführung in Datenbanken 9. Einführung in Datenbanken 9.1 Motivation und einführendes Beispiel 9.2 Modellierungskonzepte der realen Welt 9.3 Anfragesprachen (Query Languages) 9.1 Motivation und einführendes Beispiel Datenbanken

Mehr

Datenbanken. Ein DBS besteht aus zwei Teilen:

Datenbanken. Ein DBS besteht aus zwei Teilen: Datenbanken Wikipedia gibt unter http://de.wikipedia.org/wiki/datenbank einen kompakten Einblick in die Welt der Datenbanken, Datenbanksysteme, Datenbankmanagementsysteme & Co: Ein Datenbanksystem (DBS)

Mehr

NoSQL HANSER. Einstieg in die Web 2.0 Datenbanken. Stefan Edlich Achim Friedland Jens Hampe Benjamin Brauer Markus Brückner

NoSQL HANSER. Einstieg in die Web 2.0 Datenbanken. Stefan Edlich Achim Friedland Jens Hampe Benjamin Brauer Markus Brückner Stefan Edlich Achim Friedland Jens Hampe Benjamin Brauer Markus Brückner NoSQL Einstieg in die Web 2.0 Datenbanken 2., akutalisierte und erweiterte Auflage HANSER Geleitwort Vorwort Vorwort zur 2. Auflage

Mehr

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München Time CGI Version 1.5 Stand 04.12.2013 TimeMachine Dokument: time.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor Version Datum Kommentar

Mehr

Vorlesung Theoretische Informatik

Vorlesung Theoretische Informatik Vorlesung Theoretische Informatik Automaten und Formale Sprachen Hochschule Reutlingen Fakultät für Informatik Masterstudiengang Wirtschaftsinformatik überarbeitet von F. Laux (Stand: 09.06.2010) Sommersemester

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

Smart-Grid-Tools Beschleunigen Sie die Erstellung von Bauteilen ZUSAMMENFASSUNG. IM WORKSHOP Tip #14. Die Herausforderung, große Bauteile zu erstellen

Smart-Grid-Tools Beschleunigen Sie die Erstellung von Bauteilen ZUSAMMENFASSUNG. IM WORKSHOP Tip #14. Die Herausforderung, große Bauteile zu erstellen IM WORKSHOP Tip #14 Smart-Grid-Tools Beschleunigen Sie die Erstellung von Bauteilen ZUSAMMENFASSUNG Mai 2007 Autor: Phil Loughhead Die Erstellung von Bauteilen ist ein fundamentaler Bestandteil des Design-

Mehr

Das Handbuch zu KSystemLog. Nicolas Ternisien

Das Handbuch zu KSystemLog. Nicolas Ternisien Nicolas Ternisien 2 Inhaltsverzeichnis 1 KSystemLog verwenden 5 1.1 Einführung.......................................... 5 1.1.1 Was ist KSystemLog?................................ 5 1.1.2 Funktionen.....................................

Mehr

Aktuelle SE Praktiken für das WWW

Aktuelle SE Praktiken für das WWW Aktuelle SE Praktiken für das WWW SQL vs. NoSQL W. Mark Kubacki 23.06.2010 Gliederung Zusammenfassung Entstehungsgeschichte SQL vs. NoSQL Systemarchitekturen und Wachstumsmuster SQL NoSQL Überblick und

Mehr

Inhaltsverzeichnis. 1 Grundsätzliche Überlegung. 2 Hinweis zur Installation

Inhaltsverzeichnis. 1 Grundsätzliche Überlegung. 2 Hinweis zur Installation Inhaltsverzeichnis 1 Grundsätzliche Überlegung...1 2 Hinweis zur Installation...1 3 Konfiguration von AutoDocument...2 3.1 Erfassung der Listeneinträge...2 3.2 Hinterlegung von Notizen...3 3.3 Definition

Mehr

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse? Ein Beispiel Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse? Dipl.-Kfm. Claus Häberle WS 2015 /16 # 42 XML (vereinfacht) visa

Mehr

!"#$"%&'()*$+()',!-+.'/',

!#$%&'()*$+()',!-+.'/', Soziotechnische Informationssysteme 5. Facebook, Google+ u.ä. Inhalte Historisches Relevanz Relevante Technologien Anwendungsarchitekturen 4(5,12316,7'.'0,!.80/6,9*$:'0+$.;.,&0$'0, 3, Historisches Facebook

Mehr

Recherchebericht. Eine URL (Uniform Resource Locator; dt. einheitlicher Quellenanzeiger ) lokalisiert eine Ressource, wie eine Website, und ihren Ort.

Recherchebericht. Eine URL (Uniform Resource Locator; dt. einheitlicher Quellenanzeiger ) lokalisiert eine Ressource, wie eine Website, und ihren Ort. Recherchebericht Begriffe: Ein Betriebssystem ist eine Software, die die Schnittstelle zwischen den Hardwarekomponenten und der Anwendungssoftware bildet. Es verwaltet die Hardwareressourcen, wie Arbeitsspeicher,

Mehr

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

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

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

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

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