Apache Pig. Seminararbeit Software Systems Engineering - WS 2012 / 2013 Sebastian Walther - Studiengang Informatik SSE Master Universität zu Lübeck
|
|
- Alexandra Hofmeister
- vor 8 Jahren
- Abrufe
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.
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
MehrSoftware 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
MehrOP-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
MehrEinfü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
MehrAGROPLUS 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
MehrAPACHE 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
MehrKommunikations-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
MehrSoftwaretests 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
Mehr1 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.
MehrSo 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
MehrDiplomarbeit. 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
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrDas 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
MehrZeichen 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
MehrFachbericht 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
Mehr1 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.
Mehr4. 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
Mehr5 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
MehrInkrementelles 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
MehrBerechnungen 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
MehrAccess 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
MehrDatenü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
Mehr4D 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
MehrHinweise 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
MehrGrundlagen 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
MehrVariablen & 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
Mehretutor 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:
MehrProgrammierkurs 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
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
MehrHandbuch 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
Mehrpro4controlling - 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
MehrBü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
MehrSANDBOXIE 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:
Mehr1 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 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
MehrDer 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.
MehrIn 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
MehrSuche 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
MehrImport 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.
MehrDatabase 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
MehrDatensicherung. 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
MehrBinä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
MehrAnleitung 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
MehrKurzeinfü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
MehrIn 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
MehrEr 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
MehrKapitel 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
MehrOracle: 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
MehrOPERATIONEN 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:
Mehrteamsync 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
MehrDOKUMENTATION 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
MehrArtikel 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
Mehr2. 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
Mehr1 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
MehrDie 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
MehrInformatik 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
MehrInstallationsanleitungen
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.
MehrAnleitung 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
MehrSEP 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
MehrINSTALLATIONSANLEITUNG
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
MehrAUTOMATISCHE 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
MehrBusiness 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
MehrFachdidaktik 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,
MehrDas 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
MehrDatenü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
MehrUpgrade 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
Mehrmywms 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.
MehrInstallationsanleitung 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
MehrProxy. 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
MehrTutorium 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
MehrZugriff 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...
MehrHandbuch 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
MehrACHTUNG: 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
Mehrwhite 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
MehrJava 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
MehrBASIS 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
MehrKlausur 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
MehrIdimager 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
MehrBEO-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
MehrKommunikations-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
MehrARAkoll 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 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
MehrJava 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
MehrObjektorientierte 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
MehrDurch 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
MehrTask: 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
MehrAnleitung 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
MehrVerarbeitung 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
MehrKlassenentwurf. 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
MehrJavakurs 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,
MehrArchiv - 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
MehrTutorial: 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.
MehrEin 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
MehrRobot 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
MehrPHP 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
MehrWhite 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
MehrFunktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel
MehrInstallationsanleitung 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.
MehrLeitfaden 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