ETL Support installieren - OrientDB

Dies ist eines von verschiedenen aufkommenden Tutorials zu OrientDB. Falls du nicht wissen solltest worum es sich dabei handelt, so ist das natürlich kein Problem. Eine kleine Einführung findest du bei der Einführung in OrientDB.

OrientDB

Was ist ETL?

ETL beschreibt das Extrahieren, Transformieren und Laden von Daten. Es die Beschriebung des Prozesses um Daten aus unterschiedlichsten Datenquellen in eine Zieldatenbank zu überführen.

MySQL Support installieren (optional)

Zu allererst benötigen wir den Java Connector wenn ihr MySQL nutzen wollt als Quelle. Es gibt unterschidliche Wege an diesen zu gelangen. Wir nehmen jetzt der Einfachheit halber den von der offiziellen Website. Aber hierbei muss man unnötigerweise viel Zusatzsoftware installieren. Dies ist nicht notwendig, da wir eigentlich nur die jar-Datei brauchen. Ich empfehle daher die nicht offizielle Quelle des mvnrepository. Hier bekommst du die zum derzeiten Standpunkt aktuellste Version.

Wenn du nun die "jar"-Datei hast dann kopiere diese in das lib-Verzeichnis (orientdb\lib). Nun ist ein Neustart von OrientDB notwendig. Dazu einfach die "shutdown.bat" ausführen.

mysql-connector-java

Maven installieren

Nun müsst ihr Maven installieren. Ein detailliertes Tutorial findet ihr hier.

OrientDB-ETL installieren

Nachdem OrientDB erfolgreich installiert ist, ladet ihr euch das OrientDB-ETL Paket herunter. Sollte der Download nicht funktionieren dann ladet das Paket einfach manuell von OrientDB-ETL.

Wir müssen jetzt nur noch den Download enpacken.

Jetzt verwenden wir Maven zum kompilieren. Dazu die Konsole in dem Ordner aufrufen (z.B. "C:\Users\Mr. Kox\Desktop\OrientDB\orientdb-etl-master\orientdb-etl-master>") und mit dem Befehl "mvn clean install" den Build-Prozess starten.

Sobald dieser Prozess abgeschlossen ist, steht "orientdb-etl.jar" zur Verfügung. Diese befindet sich im Unterverzeichnis "target". Diese Datei kopieren wir in das "lib"-Verzeichnis von OrientDB.

Neben dem ".jar" brauchen wir auch das "oetl"-Script. Das ist im "script" Ordner zu finden. Nun müsst ihr unter Windows einfach die ".bat"-Datei kopieren und beim OrientDB-Verzeichnis in das "bin"-Verzeichnis kopieren.

ETL Installation überprüfen

Schauen wir nun ob die Installation erfolgreich war. Dazu in das "bin"-Verzeichnis von OrientDB und in diesem die Konsole starten. Jetzt können wir mit "oetl.bat" testen ob das Script grundsätzlich funktioniert. Alles was jetzt noch fehlt ist ein ETL-Beispiel.

Aufbau einer ETL-Datei (json)

Eine ETL-Datei verfolgt immer eine gewisse Struktur. Diese ist abhängig von der Mächtigkeit der Datenbank. Bei OrientDB hat man beispielsweise folgende Elemente zur Auswahl:

{
  "config": {
    <name>: <value>
  },
  "begin": [
    { <block-name>: { <configuration> } }
  ],
  "source" : {
    { <source-name>: { <configuration> } }
  },
  "extractor" : {
    { <extractor-name>: { <configuration> } }
  },
  "transformers" : [
    { <transformer-name>: { <configuration> } }
  ],
  "loader" : { <loader-name>: { <configuration> } },
  "end": [
   { <block-name>: { <configuration> } }
  ]
}

Fazit

Ein sehr einfacher Weg um Daten von MySQL zu OrientDB zu laden.

Kommentar schreiben

Kommentare: 2
  • #1

    raj8 (Dienstag, 18 November 2014 22:54)

    {
    "config": {
    "log": "debug"
    },
    "extractor" : {
    "jdbc": { "driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
    "url": "jdbc:sqlserver://localhost;databaseName=smallgarden",
    "userName": "fa",
    "userPassword": "sunrise",
    "query": "select * from Garden" }
    },
    "transformers" : [
    { "vertex": { "class": "Garden"} }
    ],
    "loader" : {
    "orientdb": {
    "dbURL": "plocal:C:\orientdb-community-2.0-M2\databases\BigGarden",
    "dbAutoCreate": true
    }
    }
    }

    I get error with this script though all the above steps are completed successfully. Requesting help.

  • #2

    kwoxer (Mittwoch, 19 November 2014 09:53)

    I posted my snippet in the Google Groups Forum https://groups.google.com/forum/#!topic/orient-database/gJRqTM2RnT8

    Hope it helps.