Apache Pig. Seminararbeit Software Systems Engineering - WS 2012 / 2013 Sebastian Walther - Studiengang Informatik SSE Master Universität zu Lübeck

Größe: px
Ab Seite anzeigen:

Download "Apache Pig. Seminararbeit Software Systems Engineering - WS 2012 / 2013 Sebastian Walther - Studiengang Informatik SSE Master Universität zu Lübeck"

Transkript

1 1 Apache Pig Seminararbeit Software Systems Engineering - WS 2012 / 2013 Sebastian Walther - Studiengang Informatik SSE Master Universität zu Lübeck Zusammenfassung Diese Seminararbeit soll einen einführenden Überblick der Apache Pig Plattform sowie deren Datenflussanfragesprache Pig Latin vermitteln. Dazu wird im Einführungskapitel auf die grundlegenden Technologien eingegangen welche im Zusammenhang mit Apache Pig stehen. Ebenfalls wird eine Abgrenzung zu der Anfragesprache SQL angegeben. Darauf folgernd werden die Unterschiede zu einer reinen MapReduce Lösung beschrieben. Im Praxisteil wird Pig s Datenmodell sowie die grundlegenden Sprachelemente von Pig Latin erläutert. Darauf folgern die Themen Testen, Performancesteigerung und Benchmarking von Pig Latin Skripten. Anschließend werden die wichtigsten Punkte in der Zusammenfassung aufgeführt. Diese Seminararbeit lehnt sich an das Referenzbuch Programming Pig[1] von Alan Gates an. Abbildung 1: Subprojekte von Hadoop [3] Index Terms Apache Pig, Hadoop, MapReduce, HDFS, Pig Latin I. EINFÜHRUNG Bei Apache Pig handelt es sich um eine in Java implementierte Plattform, mit der es möglich ist, eine große Anzahl von Datensätze zu analysieren und zu verarbeiten. Apache Pig beinhaltet eine eigene Anfragesprache Pig Latin um Datensätze zu lokalisieren, verarbeiten, aufzubereiten und abzulegen. A. Hadoop Apache Hadoop ist ein Framework welches die Möglichkeit bietet mehrere Tausend Rechner bezüglich Speicher- und Rechenkapazität zu einer logischen Einheit zusammenzufassen. Dabei ist das Framework auf Hochverfügbarkeit ausgelegt, indem es Fehler bereits auf der Anwendungsschicht erkennt und behebt [2]. Hadoop lässt sich in mehrere zusammenhängende Subprojekte, wie in Abb.1 darstellen, unterteilen. Zwei dieser Subprojekte werden von Pig verwendet. Zum einen nutzt Pig das verteilte Dateisystem HDFS für die Datenverwaltung und zum anderen wird das Verarbeitungssystem MapReduce eingesetzt um Anfragen auf Daten verteilt durchzuführen. Im Folgenden wird auf diese zwei Subprojekte eingegangen. 1) MapReduce: Das MapReduce Verfahren dient zur verteilten Verarbeitung von Datensätzen auf einem Cluster von Rechnern. Das Verfahren arbeitet in den zwei grundlegenden Phasen Map und Reduce sowie in einer optionalen Phase Combine. Das in Abb.2 dargestellt MapReduce-Beispiel aus [1] soll eine Häufigkeitsanalyse von Wörten eines Textes durchführen. Die drei Phasen werden anhand des Beispiels im Folgenden kurz erläutert. Abbildung 2: MapReduce Beispiel [1] Map-Phase: Innerhalb der Map-Phase wird eine zuvor festgelegte Funktion jeweils auf eine disjunkte Teilmenge der zu verarbeitenden Daten angewandt. Diese Teilmengen werden jeweils von einem einzelnen Rechner des Clusters bearbeitet, sodass eine verteilte und parallele Ausführung der Funktion ermöglicht wird. Im angegebenen Beispiel legt die Map-Funktion für jedes Wort ein Tupel der Form (Wort, Anzahl) an. Combine-Phase: Nach der Map-Phase kann optional die Combine-Phase erfolgen. Dabei werden gleiche Daten einer Ergebnisliste zusammengefügt um die Netzwerklast signifikant zu reduzieren. Diese Phase ist nicht in allen Anwendungsszenarien sinnvoll, kann aber z.b. bei der Häufigkeitsanalyse aus dem obigen Beispiel seine Berechtigung haben. Hierbei werden Tupel zusammengefasst die den gleichen Wert für Wort haben. Die Anzahl wird dann addiert. Aus (Mary,1) und (Mary,1) wird dann z.b. (Mary,2).

2 2 Reduce-Phase: In dieser letzten Phase wird auf den Ergebnislisten der vorherigen Phase, jeweils die Reduce- Funktion aufgerufen. Diese reduziert das Datenaufkommen, indem die Funktion beispielsweise nicht benötigte Daten herausfiltert oder Daten aus mehreren Ergebnislisten zusammenfasst. Auf das obige Beispiel bezogen wird innerhalb einer Reduce-Funktion jeweils auf Ergebnislisten mehrerer Map-Instanzen zugegriffen. Der Unterscheid zu der Combine-Phase ist, das die Combine-Funktion jeweils auf die Ergebnisliste einer Map-Instanz zugreift. Die Combine- und Reduce-Phase müssen dabei nicht die gleiche Funktionalität bieten. 2) HDFS: HDFS ist ein verteiltes Dateisystem, welches Dateien auf einen Cluster von Rechnen repliziert speichert und verwaltet. Dabei wird mit einem strombasierten Zugriffsverfahren gearbeitet. Ein HDFS besteht aus mehreren Workern (DataNodes), auf den die Daten abgelegt werden, sowie aus einem Koordinator (NameNode) welcher für die Haltung der Metadaten des Dateisystems zuständig ist. Die Metadaten bestehen dabei größtenteils aus Datei- und Verzeichnisinformationen. Durch die replizierte Speicherung bietet HDFS eine gewisse Sicherheit gegenüber ausfallenden DataNodes. Der NameNode hingegen ist der Single-Point-of-Failure des Dateisystems, wodurch die Verfügbarkeit beeinträchtigt werden kann. Es besteht zwar die Möglichkeit einen Backup-NameNode einzurichten jedoch muss dieser beim Ausfall manuell eingebunden werden [3]. B. Pig Latin Mithilfe der Datenflusssprache Pig Latin lässt sich eine Beschreibung angeben, wie Datensätze aus ein oder mehreren verschiedener Quellen gelesen werden, wie diese bearbeitet und dann wieder in ein oder mehrere Zielsysteme abgelegt werden. Quell- und Zielsystem können z.b. Hadoop Cluster oder lokale Dateien sein. Mit Pig Latin lassen sich ebenfalls standardisierte Operationen auf Daten wie zum Beispiel Joins, Sortierungen, Filteroperationen etc. ausführen. Bei der Entwicklung von Pig Latin wurde der Fokus auf folgende Eigenschaften gelegt [4]: Einfache Programmierung Erweiterbarkeit Anfrageoptimierungsmöglichkeiten Durch diese Eigenschaften ist es möglich eine komplexe sowie effiziente Verarbeitung auf großen Datensätzen mit wenig Aufwand zu realisieren.. 1) Abgrenzung von SQL: Bei SQL handelt es sich um eine Anfragesprache, mit der sich Datenbankanfragen formulieren lassen. Wird mit dem Anfrageergebnis weiter gearbeitet wird die Anfrage schnell unübersichtlich, da temporäre Tabellen erstellt werden müssen. Pig Latin hingegen ist eine datenflussbasierte Sprache in der Datenströme gelesen, verarbeitet und ausgegeben werden ohne das eine Verwendung von Subqueries nötig ist. Dabei gilt zu bedenken, dass beide Sprachen für verschiedene Umgebungen entwickelt wurden. SQL zeigt seine Stärken, wenn es um Anfragen an konsistente relationale Datenbankmanagementsysteme geht. Die Daten müssen dabei einem Schema zugrunde liegen. Pig Latin hingegen ist dafür ausgelegt auf einem Hadoop Cluster zu arbeiten, wo ein Schema unbekannt oder inkonsistent sein kann [1]. C. Unterschiede zu MapReduce Apache Pig erweitert das MapReduce Verfahren dementsprechend, dass eine einfachere, individuelle Umgebung bereitstellt wird. Dies bedeutet, dass bestimmte Funktionalitäten mit Apache Pig deutlich schneller zu implementieren sind als die Implementierung derselben Funktionalität mittels MapReduce und Java. Pig stellt diesbezüglich einige komplexe Implementierungen für Standartoperationen bereit. Dazukommend kann es durchaus vorkommen, dass die Daten im MapReduce-Verfahren nicht gleichverteilt an den einzelnen Ressourcen im Hadoop Cluster vorliegen. Dies kann dazu führen, dass einige Ressourcen deutlich mehr belastet werden als andere. Dies bedeutet wiederrum, dass die Laufzeit sich entsprechend erhöht. Apache Pig kann in einigen Fällen eine Gleichverteilung durch die Operatoren Join und Order-by vornehmen. Ein Weiterer Unterschied besteht darin, das MapReduce kein Dateitypensystem hat. Dadurch erhält der Benutzer zwar mehr Freiheiten, dennoch wird ihm die Möglichkeit verwehrt, das Codeanalysierungen automatisch erfolgen können. Pig ist in der Lage den Code sowie den Datenfluss zu analysieren und so den Benutzer früh auf Fehler hinzuweisen. Liegen jedoch extrem hohe Performanceanforderungen vor sollte auf eine reine MapReduce Lösung zurückgegriffen werden[1]. D. Anwendungsumgebungen Apache Pig lässt sich in verschiedenen Anwendungsumgebungen ausführen [1]. Die einzelnen Umgebungen werden im Folgenden kurz erläutert. 1) Lokaler Modus: Im lokalen Modus kann Apache Pig auf einen einzelnen Rechner ausgeführt werden. Dazu werden Daten aus einer oder mehreren bestehenden Dateien gelesen, verarbeitet und in eine oder mehrere lokale Dateien geschrieben. Der lokale Modus eignet sich in erster Linie dazu, ein implementiertes Pig Latin Skript zu debuggen oder einen Prototypen auf kleinen Datenmengen zu testen, bevor dieses im Hadopp Cluster auf großen Datenmengen angewandt wird. 2) Pig im Hadoop Cluster: Die gängigste Ausführungsvariante für Pig Latin Skripte ist das Hadoop Cluster. Hierzu werden die auszuführenden Skripte von einem Rechner aus in das vorhandene Hadoop Cluster importiert. Dieser Rechner muss Zugriff auf das Cluster haben. Ebenfalls muss der Name des Hadoop Koordinators (NameNode) und der MapReduce-Koordinator (JobTracker) bekannt gemacht werden. 3) Pig in der Cloud: Eine weitere Möglichkeit Pig zu nutzen ist die Ausführung in der Cloud. Hierzu kann zum Beispiel Amazons Web-Service Amazon Elastic MapReduce (EMR) verwendet werden. EMR stellt ein Hadoop Cluster mit einer gewünschten Kapazität bereit um datenintensive Berechnungen parallel durchzuführen. Die häufigsten Einsatzgebiete sind unter anderen Webindizierung, Data-Mining, Protokolldatenanalyse, maschinelles Lernen sowie wissenschaftliche Simulationen [5].

3 3 II. APACHE PIG IN DER PRAXIS Im Nachfolgenden Teil wird näher auf Apache Pig eingegangen. Dazu wird als erstes das zugrundeliegende Datenmodell von Apache Pig vorgestellt. Im Anschluss werden Beispielhaft einige Sprachelemente von Pig Latin vorgestellt. Diesbezüglich wird darauf eingegangen wie Daten eingelesen verarbeitet und ausgeschrieben werden. Das darauf folgende Thema beschäftigt sich mit der Verifikation von Pig Latin Skripten und zeigt die grundlegenden Testmöglichkeiten. Ein weiterer Punkt dieses Kapitels deutet an, worauf bei der Entwicklung in puncto Performance geachtet werden sollte. Zum Abschluss werden Benchmarks zu Pig betrachtet. A. Pig s Datenmodel In Apache Pig existieren verschiedene Datentypen, welche sich in zwei Typen Kategorisieren lassen. Einfache Datentypen (Scalar Types) Komplexe Datentypen (Complex Types) 1) Einfache Datentypen: Einfache Datentypen in Pig sind Typen, die auch in den meisten Programmiersprachen vorkommen. Folgende sechs einfache Datentypen stehen zur Verfügung [6]. int: Vorzeichenbehaftete 32-Bit Integerzahl long: Vorzeichenbehaftete 64-Bit Integerzahl float: 32-Bit Fließkommazahl double: 64-Bit Fließkommazahl chararray: char Array (String) im Unicode UTF-8 Format Bytearray: Ein Array mit Bytes 2) Komplexe Datentypen: Komplexe Datentypen stellen in Apache Pig Container dar. Diese können wiederrum komplexe oder einfache Datentypen enthalten. Folgende drei Containertypen stehen zur Verfügung [6]. Map: Eine Map stellt in Pig eine Menge von Key Value paaren als Bytearray dar, wobei der Schlüssel die Position angibt. Der Wert kann jeweils ein beliebiger Pig Datentyp sein. Tuple: Ein Tupel ist eine geordnete Menge mit einer festen Anzahl von Werten. Übertragen auf Datenbanken könnte ein Tupel eine Zeile in einer Tabelle darstellen. Die einzelnen Positionen der geordneten Menge lassen sich namentlich referenzieren, sodass eine einfache Handhabung möglich ist. Ebenfalls ist es möglich ein Tupelschema zu definieren Bag: Dieser Datentyp ist eine ungeordnete Menge von Tupeln. Bags lassen sich wie Tupel ebenfalls in einen Schema definieren, sodass alle Tupel innerhalb des Bags genauer beschrieben werden können. B. User Defined Funktions (UDFs) Apache Pig ermöglicht es innerhalb des Pig Latin Skript benutzerdefinierte Funktionen (UDFs) zu nutzen. Pig stellt eine Reihe von eingebauten Funktionen für die Nutzung mathematischer und datentypbasierter Operationen bereit [7]. Des Weiteren können eigene UDFs in Java implementiert und in Latin Pig genutzt werden [8]. C. Die Sprachelemente von Pig Latin In den folgenden Abschnitten werden die grundlegenden Sprachelemente von Pig Latin vorgestellt um die grundlegende Struktur zu verdeutlichen. Eine Auflistung aller vorhandenen Sprachelemente ist der Apache Pig Dokumentation [9] zu entnehmen. Zu bedenken sei, dass Variablennamen und UDF-Funktionen Case-sensitive sind. Schlüsselwörter hingegen sind nicht Case-sensitiv. Zur Verdeutlichung werden Schlüsselwörter in den nachfolgenden Beispielen groß geschrieben. 1) Kommentare: Kommentare können in Pig Latin gangzeilig oder über mehrere Zeilen angelegt werden. Zwei Operatoren stehen diesbezüglich bereit. Einzeiliger Kommentar (- - Kommentar) im SQL-Stil. Mehrzeiliger Kommentar (/ * Kommentar * /) im Java- Stil. 2) Daten lesen / schreiben: Für das Lesen von Daten aus einer Datei und für das Schreiben von Daten in eine Datei kommen bei Apache Pig verschiedene load und store Funktionen zum Einsatz, welche jeweils für einen bestimmten Bereich geeignet sind. So lässt sich zum Beispiel die Load/Store-Funktion PigStoragenutzen um mit Daten aus einem Hadoop-Cluster zu arbeiten. Ein weiteres Beispiel ist die Funktion HBaseStorage[10], welche Daten aus einer Apache HBase [11] lädt. An dieser Stelle sei noch gesagt, das eine individuelle Nutzung durch die Implementierung eigener Load- und Storefunktionen möglich ist [12]. Um aus einer Datei Daten zu importieren wird der Befehl load benötigt. a = LOAD /data/datainputfile ; Das Beispiel lädt den Inhalt der Datei datainputfileäus dem Ordner dataëin und hinterlegt die Daten in die Variable ä. Dabei müssen die Daten in diesen Fall Tab-separiert vorliegen. Andere Separatoren können durch explizites Angeben der Standard-Loadfunktion PigStorage() innerhalb der Übergabeparameter spezifiziert werden. Das folgende Beispiel liest Daten ein, die durch ein Komma getrennt sind. a = LOAD /data/datainputfile USING PigStorage(, ) ; Ebenfalls lassen sich Schemata mittels des AS angeben. Diese vereinfachen den späteren Umgang mit den Daten indem sie eine Referenz auf die jeweiligen Felder des Datensatzes bereitstellen. users = LOAD /data/userlist AS (loginname, , birthday); Für das Exportieren von Daten in eine Datei wird der Befehl ßtorebenötigt. STORE users INTO /data/dataoutputfile USING PigStorage(, ); Die Angabe der Store-Funktion ist hier ebenfalls optional und kann äquivalent durch eine beliebige andere Store- Funktion ersetzt werden.

4 4 3) Relationale Operationen: Zwischen dem Lesen und Schreiben von Daten kommen relationale Operationen zum Einsatz. Diese bietet verschiedenste Möglichkeiten Daten umzuformen oder zu vereinigen. Im Folgenden werden beispielhaft einige essentielle Operation vorgestellt. Für weitere Informationen diesbezüglich und eine Auflistung aller vorhandenen Operationen sei auf den entsprechenden Teil der Dokumentation [13] verwiesen. FOREACH: Der foreach-befehl ermöglicht es alle Datensätze, die in einer Variable hinterlegt sind, zu durchlaufen um gewisse datenbasierte Operationen oder UDFs auf einem Cluster von Daten gleicher Struktur anzuwenden. Das nachfolgende Beispiel wählt aus den Datensätzen der Variable users jeweils die ersten beiden Felder aus und legt das Ergebnis in result ab. users = LOAD /data/userlist AS (loginname, , birthday); result = FOREACH users GENERATE loginname, ; FILTER: Der Filteroperator ist in de Lage ein bestimmtes Datum aus einem Satz von Datensäten nach bestimmten Regeln zu Filtern. Diese Regeln können vom Benutzer angegeben werden und können aus Vergleichen oder regulären Ausdrücken bestehen. users = LOAD /data/userlist AS (loginname, ); startswithm = FILTER users BY loginname matches M.* ; Das angegebene Beispiel wählt aus den Datensätzen in users alle heraus, bei denen der Loginname mit M beginnt und legt diese in der Variable startswithm ab. GROUP: Der Group-Operation gruppiert Datensätze nach einen definierten Datum. Die Gruppierten Daten werden dann jeweils in einem Container vom Typ Bag abgelegt. Group unterscheidet sich vom SQL Befehl GROUP-BY dahingehend das bei Pig keine Aggregationsfunktion in Verbindung zu GROUP stehen muss. Das heißt, dass die Daten nicht reduziert werden müssen. Das nachfolgende Beispiel gruppiert die Kundenliste aus der Variable customers nach dem Wert zipcode und legt diese in result ab. Das Ergebnis ist eine Bag. Diese Bag enthält wiederum Bags welche jeweils Daten mit dem gleichen Wert für zipcode haben. customers = LOAD /data/customerlist AS (name, zipcode,...); result = GROUP customers BY zipcode; D. Testen Apache Pig bietet seit der Version 0.8 das Framework PigUnit [14] zum Testen von Pig Latin Skripten an. Das Framework integriert Testmöglichkeiten für Pig Latin-Skripte in JUnit. Neben dem regulären Testen kann mittels PigUnit auch sichergestellt werden, das nach Änderungen an UDFs oder Versionsänderungen von Hadoop bzw. Pig die gewünschte Funktionalität nach wie vor gegeben ist. Für die nachfolgenden Beispiele aus [1] wird folgendes Pig Latin-Skript [1] angenommen, welches einen Durchschnittswert berechnet und in der Variable ävgdivïnnerhalb des Skripts ablegt. --pigunit.pig divs = LOAD NYSE_dividends AS (exchange, symbol, date, dividends); grpd = GROUP divs ALL avgdiv = FOREACH grpd GENERATE AVG(divs.dividends); STORE avgdiv INTO average_dividend ; Das folgende Beispiel zeigt einen Test für das Skript aus der Datei pigunit.pig. Im ersten Schritt des Tests wird eine Variable vom Typ PigTest[15] angelegt, wobei im Konstruktor die Skriptdatei übergeben wird. Als nächstes wird das gewünschte Ergebnis unter Angabe des richtigen Datentyps angegeben. Die Funktion assertoutput() der Klasse PigTestprüft im Anschluss ob das gewünschte Ergebnis mit dem berechneten Ergebnis übereinstimmt. Der String ävgdivreferenziert dabei auf die gleichnamige Variable im Skript. public class PigUnitExample { private PigTest test; private static Cluster cluster; public void testdatainfile() throws ParseException, IOException { } test = new PigTest("../pigunit.pig") ; String[] output = { " ( )" }; test.assertoutput("avgdiv", output); Dadurch, dass Variablenwerte getestet werden, bietet die Klasse PigTest die Möglichkeit Zwischenergebnisse im Skript zu validieren um nach Fehlerquellen zu suchen. Statt externe Daten zu verwenden können die Testdaten auch innerhalb des Tests angegeben werden. Dies ist sinnvoll wenn die realen Daten zum Testzeitpunkt nicht vorliegen oder zu groß sind. Die Angabe der Testdaten erfolgt dann innerhalb der Testmethode. String[] input = { "NYSE\tCPO\t \t0.14", "NYSE\tCPO\t \t0.14", "NYSE\tCCS\t \t0.414", "NYSE\tCCS\t \t0.414", "NYSE\tCIF\t \t0.029", }; Damit die angegebenen Testdaten verwendet werden können, müssen diese in der Methode assertoutput() angegeben werden. test.assertoutput("divs", input, "avgdiv", output); Durch Angabe der ersten beiden Parameter wird die Funktion load für die Skriptvariable divs überschrieben, sodass der Inhalt des String-Arrays input als Eingabestrom verwendet wird. Auf die gleiche Weise lässt ich das zu verwendende Pig Latin-Skript innerhalb des Tests angeben. Dazu wird wiederrum ein Stringarray mit den Inhalten des Skripts erstellt. String[] script = { "divs = LOAD../../..data/NYSE_dividends AS (exchange, symbol,...,);", "grpd = GROUP divs ALL;", "avgdiv = FOREACH grpd GENERATE AVG(divs. dividends);", "STORE avgdiv INTO average_dividends ;". };

5 5 Durch Angabe des Stringarrays als Übergabeparameter für das Objekt vom Typ PigTest lässt sich das erstellte Skript verwenden. test = new PigTest(script); E. Performance Wie auch in anderen Sprachen ist die Performance des erstellten Codes von einigen Faktoren abhängig, welche es zu beachten gilt. So auch bei Pig. Für die Implementierung eines performanten Pig Latin-Skripts stellt Apache einige Regeln zur Verfügung [16]. Um einen Eindruck diesbezüglich zu vermitteln werden im Folgenden einige dieser Regeln erläutert. 1) Der richtige Datentyp: Pig schreibt keine explizite Datentypdefinition vor. Dennoch ist es aus Performancegründen an einigen Stellen sinnvoll den passenden Datentyp explizit mit anzugeben. Liegen Daten zum Beispiel typisiert in einen Bytearray vor werden diese für numerische Operationen automatisch als Doublewerte behandelt. Bei folgender beispielhafter UDF werden jedoch Werte des Typs Integer summiert. long SUM({(int)} input) In diesem Beispiel entstehen, ohne explizite Datentypeingabe, Performancekosten die leicht hätten eingespart werden können. 2) Auswahl der join-operation: Wie auch in anderen Bereichen der Anfrageoptimierung kann sich die Auswahl des passenden Join-Operation signifikant auf die Performance auswirken. Abb.3 gibt einen ersten Leitfaden für die Auswahl von Join-Operationen an die Hand. Dabei ist Faktoren wie Speicherplatz und Sortierungsgegebenheiten von Bedeutung. Zeitpunkt Geschwindigkeitsfaktor Testmethode ,97 PigMix ,83 PigMix ,68 PigMix ,53 PigMix ,04 PigMix ,09 PigMix ,15 PigMix ,16 PigMix2 Tabelle I: Entwicklung von Pig hinsichtlich der Laufzeiten werden um irrelevante Teildaten zeitnah aus den Datenströmen entfernen zu lassen. F. Benchmarks zu Apache Pig PigMix und PigMix2 sind jeweils eine Menge von Queries, welche eingesetzt werden um auf den neusten Releaseversionen Benchmarks durchzuführen. PigMix2 beinhaltet neben zusätzlichen Queries alle Queries von PigMix. Das Ziel von dabei ist es die Skalierbarkeit sowie die benötigte Zeit für die Ausführung verschiedener Queries zwischen Apache Pig und einer reinen MapReduce Implementierung in Java zu vergleichen. Die auf Hadoop basierte Testumgebung umfasste dabei 26 Worker und ein NameNode auf dem ebenfalls der JobTracker läuft. Als grundlegendes Ergebnis zeigte sich, dass eine reine Java Implementierung nach wie vor in den meisten Fällen die schneller Variante ist. Dazu sei zu bedenken, dass der Entwicklungsaufwand hier jedoch wesentlich höher ausfällt. Die zeitliche Tendenz für die einzelnen Releases zeigt, dass sich die Laufzeiten von Pig gegenüber der reinen Java-Implementierung deutlich verbessert haben, sodass sich die Laufzeiten an die reinen Java-Implementierungslaufzeiten angenähert haben. Tabelle I zeigt den mittleren Vergleich über die einzelnen Releases von Pig im Vergleich zu einer reinen Java- Implementierung. Der Faktor gibt dabei den Durschnitt aller Quotienten des Verhältnisses Java / Pig an. Tabelle II zeigt die Laufzeiten verschiedener Operationen und das Verhältnis zwischen Pig und einer Java-Implementierung. Für weitere Informationen bezüglich PigMix sei auf die offizielle Website von PigMix verwiesen [17]. Abbildung 3: Auswahl des optimalen Join-Operators [1] 3) Filter und Projektion: Pig nutzt intern einen logischen Optimierer der dafür zuständig ist Filter und Projektionen im Skript möglichst früh auszuführen. Dennoch sollte diese beiden Operatoren so früh und oft wie möglich eingesetzt III. ZUSAMMENFASSUNG Mit dem Subsystem Apache Pig aus dem Hadoop Framework lassen sich viele Daten schnell, einfach und zuverlässig abfragen. Pig nutzt zwei weiter Subsysteme des Hadoop Framework. Zum Einen das verteilte Dateisystem HDFS und zum Anderen Hadoops MapReduce-Verfahren mit dem Anfragen verteilt ausgeführt werden können. Die Daten müssen dabei nicht in einem geordneten Schema, wie in relationalen Datenbanken, vorliegen. Mit Hilfe der Anfragesprache Pig Latin lässt sich mit vergleichsmäßig wenig Aufwand eine komplexe Datenbankanfrage modellieren. Dazu werden immer die drei Schritte einlesen, verarbeiten und ausgeben berücksichtigt. Innerhalb des Schrittes Daten verarbeiten lassen sich benutzerdefinierte

6 6 Querie Java Pig Verhältnis Java/Pig L1 explode L2 fr join L3 join L4 distinct agg L5 anti-join L6 large group by key L7 nested split L8 group all L9 order by 1 field L10 order by multi. fields L11 distinct + union L12 multi-store L13 outer join L14 merge join L15 multi. diff. aggregates L16 accumulative mode L17 wide key group [10] [Online]. Available: backend/hadoop/hbase/hbasestorage.html [11] [Online]. Available: [12] [Online]. Available: 2FStore+Functions [13] [Online]. Available: Relational+Operators [14] [Online]. Available: [15] [Online]. Available: ] pig-0.8.1/org/apache/pig/pigunit/pigtest.html [16] [Online]. Available: optimization-rules [17] [Online]. Available: PigMix Tabelle II: Ausführungszeiten von PigMix2 Funktionen (UDFs) aufrufen. Eine Reihe mathematischer und datentypoperativer UDFs stehen hierbei zur Verfügung. Ebenso lassen sich eigene UDFs in Java definieren und im Pig Latin verwenden. Durch das Datenmodell von Pig ist es möglich eine Codeanalyse automatisch vornehmen zu lassen. Dies bedeutet, dass z.b. geprüft wird ob die verwendeten Datentypen an den jeweiligen Positionen sinnvoll sind. Jedoch ist es dem Anwender überlassen, ob dieser Angaben zu den Datentypen innerhalb des Skripts macht. Neben der automatischen Codeanalyse bietet es sich an zusätzlich PigUnit zu verwenden. PigUnit bietet die Möglichkeit Pig Latin-Skripte zu testen. Dabei setzt PigUnit auf JUnit auf, wodurch eine komfortable Testumgebung zur Verfügung steht. Damit die Performance von Pig erhalten bleibt, sind einige Dinge bei der Implementierung der Skripte zu beachten. Die meisten davon beziehen sich auf Datenoperationen und lassen sich ebenfalls im Anfrageoptimierungsbereich wiederfinden. Apache Pig bietet dem Benutzer eine einfach zu verstehende Datenflusssprache Pig Latin. Zwar können die Anfragen auch ohne Apache Pig modeliert weden, jedoch beansprucht dies in einigen Fällen deutlich mehr Aufwand. PigMix Benchmarks haben gezeigt, das die Ausführungsgeschwindigkeit, seit dem ersten Release von Pig, deutlich gestiegen ist. Jedoch ist die durchschnittliche Ausführungsgeschwindigkeit von Pig Skripten gegenüber einer reinen Java Implementierung immer noch leicht höher. LITERATUR [1] A. Gates, Programming Pig, first edition ed. OREILLY, [2] [Online]. Available: [3] T. White, Hadoop: The Definitive Guide, F. Edition, Ed. OREILLY, [4] [Online]. Available: [5] [Online]. Available: [6] [Online]. Available: ref2.html# Data+Types+and+More [7] A. Gates, Programming Pig, first edition ed. OREILLY, 2011, p. Appendix A. [Online]. Available: ] html [8] [Online]. Available: [9] [Online]. Available:

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift. Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

APACHE PIG SEMINARARBEIT SSE - WS12/13 SEBASTIAN WALTHER

APACHE PIG SEMINARARBEIT SSE - WS12/13 SEBASTIAN WALTHER APACHE PIG SEMINARARBEIT SSE - WS12/13 SEBASTIAN WALTHER INHALT Das Hadoop Framework Hadoop s Distributed File System (HDFS) MapReduce Apache Pig Was ist Apache Pig & Pig Latin Anwendungsumgebungen Unterschied

Mehr

Kommunikations-Management

Kommunikations-Management Tutorial: Wie importiere und exportiere ich Daten zwischen myfactory und Outlook? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory Daten aus Outlook importieren Daten aus myfactory nach Outlook

Mehr

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

So importieren Sie einen KPI mithilfe des Assistenten zum Erstellen einer Scorecard

So importieren Sie einen KPI mithilfe des Assistenten zum Erstellen einer Scorecard 1 von 6 102013 18:09 SharePoint 2013 Veröffentlicht: 16.07.2012 Zusammenfassung: Hier erfahren Sie, wie Sie einen KPI (Key Performance Indicator) mithilfe des PerformancePoint Dashboard Designer in SharePoint

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

1 Lieferantenbewertung

1 Lieferantenbewertung 1 Lieferantenbewertung Mit Hilfe der Lieferantenbewertung können alle aktiven Lieferanten nach ISO Kriterien bewertet werden. Die zur Bewertung hinterlegten Faktoren können individuell vorgegeben werden.

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Inkrementelles Backup

Inkrementelles Backup Inkrementelles Backup Im Gegensatz zu einer kompletten Sicherung aller Daten werden bei einer inkrementellen Sicherung immer nur die Dateien gesichert, die seit der letzten inkrementellen Sicherung neu

Mehr

Berechnungen in Access Teil I

Berechnungen in Access Teil I in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer

Mehr

Access 2013. Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013

Access 2013. Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013 Access 2013 Susanne Weber 1. Ausgabe, 1. Aktualisierung, Juni 2013 Grundlagen für Anwender ACC2013 2 Access 2013 - Grundlagen für Anwender 2 Mit Datenbanken arbeiten In diesem Kapitel erfahren Sie was

Mehr

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO

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

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2 Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2 Installationsvoraussetzungen: Die Update-Routine benötigt das DotNet-Framework 4.0 Client Profile, das normalerweise über

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Variablen & erweiterte Aktionen nutzen

Variablen & erweiterte Aktionen nutzen 341 In Captivate können Sie mit Hilfe von Variablen Texte & Werte speichern oder Systeminformationen ausgeben. Außerdem können Sie auf Basis von Variablen komplexere Aktionen entwickeln, wie z. B. eine

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9 Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9 1 Allgemeine Beschreibung "Was war geplant, wo stehen Sie jetzt und wie könnte es noch werden?" Das sind die typischen Fragen, mit denen viele Unternehmer

Mehr

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen Stand: 13.12.2010 Die BüroWARE SoftENGINE ist ab Version 5.42.000-060 in der Lage mit einem Microsoft Exchange Server ab Version 2007 SP1

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern 1 Einleitung Lernziele Symbolleiste für den Schnellzugriff anpassen Notizenseiten drucken eine Präsentation abwärtskompatibel speichern eine Präsentation auf CD oder USB-Stick speichern Lerndauer 4 Minuten

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

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

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

Import und Export von Übergängern

Import und Export von Übergängern Import und Export von Übergängern SibankPLUS bietet Ihnen eine komfortable Schnittstelle, um den Wechsel der Schüler nach der Stufe 4 von der Grundschule auf eine weiterführende Schule zu verarbeiten.

Mehr

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695 Database Exchange Manager Replication Service- schematische Darstellung Replication Service- allgemeines Replikation von Daten von bzw. in ein SAP-System und einer relationalen DMS-Datenbank Kombination

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Anleitung E-Mail - Archivierung

Anleitung E-Mail - Archivierung Anleitung E-Mail - Archivierung Aufgrund unserer langjährigen Erfahrung, wissen wir um viele Kundenprobleme in der Bedienung von IKT-Produkten. Um solche Probleme bei der Nutzung der Net4You Produkte zu

Mehr

Kurzeinführung Excel2App. Version 1.0.0

Kurzeinführung Excel2App. Version 1.0.0 Kurzeinführung Excel2App Version 1.0.0 Inhalt Einleitung Das Ausgangs-Excel Excel-Datei hochladen Excel-Datei konvertieren und importieren Ergebnis des Imports Spalten einfügen Fehleranalyse Import rückgängig

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

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

teamsync Kurzanleitung

teamsync Kurzanleitung 1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier

Mehr

DOKUMENTATION VOGELZUCHT 2015 PLUS

DOKUMENTATION VOGELZUCHT 2015 PLUS DOKUMENTATION VOGELZUCHT 2015 PLUS Vogelzucht2015 App für Geräte mit Android Betriebssystemen Läuft nur in Zusammenhang mit einer Vollversion vogelzucht2015 auf einem PC. Zusammenfassung: a. Mit der APP

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen) 1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Die Excel Schnittstelle - Pro Pack

Die Excel Schnittstelle - Pro Pack Die Excel Schnittstelle - Pro Pack Die Excel Pro Pack ist eine Erweiterung der normalen Excel Schnittstelle, die in der Vollversion von POSWare Bestandteil der normalen Lizenz und somit für alle Lizenznehmer

Mehr

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und

Mehr

Installationsanleitungen

Installationsanleitungen Installationsanleitungen INPA SGBD-Entwicklungsumgebung (EDIABAS) INPA für Entwickler Bevor Sie EDIABAS / INPA installieren können, müssen Sie sich für den Ordner sgref auf smuc0900 freischalten lassen.

Mehr

Anleitung zum Anlegen und Bearbeiten einer News in TYPO3 für www.fk-havelland-mitte.de

Anleitung zum Anlegen und Bearbeiten einer News in TYPO3 für www.fk-havelland-mitte.de WEBandIT.net - Anleitung zum Anlegen und Bearbeiten einer News in TYPO3 für www.fk-havelland-mitte.de Die Internet-Seite wird intern durch das Programm TYPO3 verwaltet. Eine Anmeldung ist nur durch Zugangsdaten

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

INSTALLATIONSANLEITUNG

INSTALLATIONSANLEITUNG INSTALLATIONSANLEITUNG MASTER UPDATE 2.1.0.4 2014 Gambio GmbH. www.gambio.de Inhaltsverzeichnis 1 Changelog 3 2 Datensicherung 3 3 Installation Master Update 4 3.1 Update von Shopsystemen v2.0.7c bis v2.0.15.4

Mehr

AUTOMATISCHE E-MAIL-ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

AUTOMATISCHE E-MAIL-ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD! AUTOMATISCHE E-MAIL-ARCHIVIERUNG 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD! INHALT AUTOMATISCHE E-MAIL-ARCHIVIERUNG... 4 Eingehende E-Mails können

Mehr

Business Intelligence Praktikum 1

Business Intelligence Praktikum 1 Hochschule Darmstadt Business Intelligence WS 2013-14 Fachbereich Informatik Praktikumsversuch 1 Prof. Dr. C. Wentzel Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 14.10.2013 Business Intelligence Praktikum

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Das Compare-, Merge- und Versionierungstool für Microsoft Dynamics NAV. NAVObjectEditor RECY CLE

Das Compare-, Merge- und Versionierungstool für Microsoft Dynamics NAV. NAVObjectEditor RECY CLE Das Compare-, Merge- und Versionierungstool für Microsoft Dynamics NAV NAVObjectEditor RECY CLE NAV Object Editor by tegos Das Compare-, Merge- und Versionierungstool für Microsoft Dynamics NAV NAVObjectEditor

Mehr

Datenübernahme easyjob 3.0 zu easyjob 4.0

Datenübernahme easyjob 3.0 zu easyjob 4.0 Datenübernahme easyjob 3.0 zu easyjob 4.0 Einführung...3 Systemanforderung easyjob 4.0...3 Vorgehensweise zur Umstellung zu easyjob 4.0...4 Installation easyjob 4.0 auf dem Server und Arbeitsstationen...4

Mehr

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper) Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10 Technische Informationen (White Paper) Inhaltsverzeichnis 1. Über dieses Dokument... 3 2. Überblick... 3 3. Upgrade Verfahren... 4

Mehr

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger Grundlegendes Oracle9i PostgreSQL Prevayler Memory mywms bietet umfangreiche Konfigurationsmöglichkeiten um die Daten dauerhaft zu speichern.

Mehr

Installationsanleitung SSL Zertifikat

Installationsanleitung SSL Zertifikat Installationsanleitung SSL Zertifikat HRM Systems AG, Technikumstrasse 82, Postfach, CH-8401 Winterthur, Telefon +41 52 269 17 47, www.hrm-systems.ch Inhaltsverzeichnis 1. Einleitung 3 2. Austausch Zertifikat

Mehr

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Proxy. Krishna Tateneni Übersetzer: Stefan Winter Krishna Tateneni Übersetzer: Stefan Winter 2 Inhaltsverzeichnis 1 Proxy-Server 4 1.1 Einführung.......................................... 4 1.2 Benutzung.......................................... 4 3 1

Mehr

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe Tutorium Informatik 1 Aufgabe 2: Formatierte Ein- und Ausgabe Fachbereich: Elektrotechnik Inhaltsverzeichnis 1 Aufgabe 1 2 Benötigte Funktionen und Schlüsselwörter 2 Robert Halas / FH Regensburg - 2003

Mehr

Zugriff auf Daten der Wago 750-841 über eine Webseite

Zugriff auf Daten der Wago 750-841 über eine Webseite Zugriff auf Daten der Wago 750-841 über eine Webseite Inhaltsverzeichnis Einleitung... 3 Auslesen von Variablen... 4 Programm auf der SPS... 4 XML-Datei auf der SPS... 4 PHP-Script zum Auslesen der XML-Datei...

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

Mehr

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden. Track in Route umwandeln ACHTUNG: Ein Track kann nur dann in eine Route umgewandelt werden, wenn der Track auf Wegen gefahren wurde. Ein Querfeldein-Track kann nicht in eine Route umgewandelt werden, da

Mehr

white sheep GmbH Unternehmensberatung Schnittstellen Framework

white sheep GmbH Unternehmensberatung Schnittstellen Framework Schnittstellen Framework Mit dem Schnittstellen Framework können Sie einerseits Ihre Schnittstellen automatisch überwachen. Eine manuelle Kontrolle wird überflüssig, da das Schnittstellen Framework ihre

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

BASIS Karten, WEA-Katalog, Projektierung, Objekte etc.

BASIS Karten, WEA-Katalog, Projektierung, Objekte etc. Das Basismodul enthält diese Elemente: 1. Projektsteuerung / -management 3. Kartenhandling-System 2. Windenergieanlagen-Katalog 4. Projektierung und objektorientierte Dateneingabe Die Projektsteuerung

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Idimager ein Bildverwaltungsprogramm-DAM Software

Idimager ein Bildverwaltungsprogramm-DAM Software Idimager ein Bildverwaltungsprogramm-DAM Software Nachdem hie im Forum zu Bildverwaltung anscheinend noch nichts steht, will ich mal eine kurze Beschreibung meines Bildverwaltungsprogramms zeigen. Idimager

Mehr

BEO-Sanktionsprüfung Eine Einführung zum Thema Sanktionsprüfung und eine Übersicht zur BEO-Lösung.

BEO-Sanktionsprüfung Eine Einführung zum Thema Sanktionsprüfung und eine Übersicht zur BEO-Lösung. BEO-Sanktionsprüfung Eine Einführung zum Thema Sanktionsprüfung und eine Übersicht zur BEO-Lösung. BEO GmbH Hennengärtli Endingen Tel.: 0 / 00-0 Fax: 0 / 00- info@beo-software.de www.beo-software.de Sanktionsprüfung

Mehr

Kommunikations-Management

Kommunikations-Management Tutorial: Wie kann ich E-Mails schreiben? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory E-Mails schreiben können. In myfactory können Sie jederzeit schnell und einfach E-Mails verfassen egal

Mehr

ARAkoll 2013 Dokumentation. Datum: 21.11.2012

ARAkoll 2013 Dokumentation. Datum: 21.11.2012 ARAkoll 2013 Dokumentation Datum: 21.11.2012 INHALT Allgemeines... 3 Funktionsübersicht... 3 Allgemeine Funktionen... 3 ARAmatic Symbolleiste... 3 Monatsprotokoll erzeugen... 4 Jahresprotokoll erzeugen

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Durch Doppelklick auf die Zeile der entsprechenden Schnittstelle gelangt man in die Detaileingabe der Schnittstelle.

Durch Doppelklick auf die Zeile der entsprechenden Schnittstelle gelangt man in die Detaileingabe der Schnittstelle. Technote M-System Versender-Schnittstellen Frank Renner, 2013-07 Mit M-System ist es möglich die jeweilige Software der Versender DPD, DHL und UPS so einzubinden, dass direkt beim Verbuchen von Lieferscheinen

Mehr

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

Anleitung Lernobjekt-Depot (LOD)

Anleitung Lernobjekt-Depot (LOD) Anleitung Lernobjekt-Depot (LOD) Anwender von easylearn können voneinander profitieren. Das Lernobjekt-Depot steht allen Benutzern zur Verfügung, um Lernobjekte wie Knowledge Snacks, etc untereinander

Mehr

Verarbeitung der E-Mail-Adressen

Verarbeitung der E-Mail-Adressen Verarbeitung der E-Mail-Adressen A) Auswertung aus dem Infotyp 0105 - Kommunikation zur Feststellung, welche E-Mail-Adressen gespeichert sind Aufruf über direkte Eingabe der Transaktion (notfalls Transaktionsfenster

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

Archiv - Berechtigungen

Archiv - Berechtigungen Archiv - Berechtigungen - 1 Inhaltsverzeichnis 1. Grunddefinitionen...3 1.1. Mögliche Definitionen...3 1.1.1. Programme...3 1.1.2. Prinzipale...3 1.1.3 Archivzugriff...3 1.2. Leserichtung...3 1.2.1. Ordnerbezogen...3

Mehr

Tutorial: Wie kann ich Dokumente verwalten?

Tutorial: Wie kann ich Dokumente verwalten? Tutorial: Wie kann ich Dokumente verwalten? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory Dokumente verwalten können. Dafür steht Ihnen in myfactory eine Dokumenten-Verwaltung zur Verfügung.

Mehr

Ein Ausflug zu ACCESS

Ein Ausflug zu ACCESS Ein Ausflug zu ACCESS Die folgenden Folien zeigen beispielhaft, wie man sein DB- Wissen auf ACCESS übertragen kann betrachtet wird ACCESS 2002, da gerade im Bereich der Nutzung von SQL hier einiges nachgearbeitet

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

PHP Kurs Online Kurs Analysten Programmierer Web PHP

PHP Kurs Online Kurs Analysten Programmierer Web PHP PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione

Mehr

White Paper WinLine "Business Intelligence"

White Paper WinLine Business Intelligence White Paper WinLine "Business Intelligence" Seite 2 Inhaltsverzeichnis 1. WinLine "Business Intelligence"...3 1.1. Voraussetzung für die BI-Ausgabe...4 1.2. BI-Vorlagen...4 1.2.1. Erstellung einer Vorlage...4

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel

Mehr

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb CashPro basiert auf Accesstechnologie 2003 und ist auch unter den aktuellen Accessversionen 2007 bis 2013 einsetzbar und Mehrbenutzerfähig.

Mehr

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x Je nach BüroWARE Version kann sich das Menü des Datenbankassistenten von den Bildschirmausdrucken in unserem Leitfaden unterscheiden. Der

Mehr