2016-08-01 51 views
1

Ich versuche, eine Verbindung zu einer Vertica DB von R mit "RODBC" -Paket herzustellen. Außerdem ist die Maschine, die ich benutze, ein entfernter Server, der keinen direkten Internetzugang hat, so dass ich im Grunde alle Quelldateien von meinem lokalen zu dem entfernten Server "transferiere", um das System aufzubauen. Also, um Ihnen einen klaren Zusammenhang zu geben, ich bin der all meine Schritte in der Teilnahme an den „RODBC“ -Paket unter Installation:Warum kann der Installationsprozess des R-Pakets "RODBC" in "R CMD INSTALL" den ODBC-Treibermanager nicht finden?

Schritt 1 - Ich habe die RODBC_1.3-13.tar. gz Quelldatei für RODBC und dann versucht, es direkt zu installieren "R CMD INSTALL". Allerdings habe ich Fehler als "ODBC-Header sql.h und sqlexth.h nicht gefunden" gefunden. enter image description here

Schritt 2 - Nach einigen Recherchen fand ich, dass die Installation von "unixodbc-dev" würde möglicherweise dieses Problem lösen. Daher habe ich alle benötigten Abhängigkeiten für "unixodbc-dev" heruntergeladen und auf den Server übertragen. Wie Sie die Liste sehen: enter image description here

daher auch installiert ich erfolgreich "unixodbc-dev ": enter image description here

scheint jedoch eine andere Fehlermeldung, wenn ich versuchte, die" RODBC neu zu installierensudo R CMD INSTALL /home/mli/RODBC_1.3-13.tar.gz "mit" keine ODBC-Treiber-Manager „gefunden " in dem es Fehler zurückgibt":

enter image description here

Wie die Nachricht anzeigt, kann das Installationsprogramm meinen ODBC-Treibermanager nicht finden. Also, ich heruntergeladen "Vertica-client-7.2.3-0.x86_64.tar.gz" und entpackt es auf dem Server:

enter image description here

So, nun meine Frage ist, wie kann ich Passen Sie den Befehl "R CMD INSTALL" an, indem Sie einige Parameter-Handles verwenden, um das Installationsprogramm anzuweisen, den Treibermanager zu finden? Oder versuche ich das in eine richtige Richtung? Lass es mich wissen, bitte. Jede Hilfe würde wirklich geschätzt werden !!! :)

ADDITION: Ich habe auch versucht, es mit JDBC in dem die ich die "RJDBC" -Paket in R und verwendet, um die JDBC Treiber von vertica-client-7.2 erfolgreich geladen. 3-0.x86_64.tar.gz. Außerdem habe ich bereits "rJava" installiert. Ich habe jedoch immer noch einen Fehler, als ich versuchte, die Verbindung herzustellen.Ich bin Auflistung mein Ergebnis unter:

ich erfolgreich die "RJDBC" mit "$ R CMD INSTALL RJDBC_0.2-5.tar.gz installiert --library =/usr/local/lib/R/site-library/ "und dann habe ich die folgenden Skripts in R versucht. Alle Linien werden erfolgreich ausgeführt, außer auf der Linie 16:

enter image description here

Basierend auf der Fehlermeldung, nahm ich die Version des JDBC-Treiber, die war ich mit zu neu für den Vertica-Server. Also, ich habe versucht, eine ältere Version anstelle JDBC Treiber zu verwenden, wie die „Vertica-jdk5-6.1.0-0.jar“, die ich von diesem Link heruntergeladen haben: http://www.java2s.com/Code/Jar/v/Downloadverticajdk56100jar.htm Also zog ich die Datei " Vertica-jdk5-6.1.0-0.jar "zu meinem Home-Verzeichnis auf dem Server und verändert dann die JDBC Treiberpfad im R Skript:

enter image description here

Wie Sie sehen können , es gibt immer noch Fehler "FATAL: Unsup ported Frontend Protokoll 3.6: Server unterstützt 3.0 bis 3.5 ". Mache ich das richtig? Oder gibt es ein Problem mit dem neuen Treiber, den ich heruntergeladen habe? Wie kann es funktionieren? Bitte, jede Hilfe wird wirklich geschätzt werden! Vielen Dank!!!

Antwort

0

Ein paar Dinge:

Erste, tun nur sudo apt-get install r-cran-rodbc. Das Paket wurde (von mir) in nicht geringem Maße erstellt, weil der Umgang mit unixODBC oder iODBC keinen Spaß macht. Aber selbst wenn Sie das haben, brauchen Sie immer noch den ODBC-Treiber für Linux von Vertica. Und dieser Teil ist Stute.

Zweite, ich habe gerade etwas ähnliches neulich aber nur JDBC, die funktionierte. Sie brauchen natürlich sudo apt-get install r-cran-rjava, die eine eigene Dose Würmer hat (aber ich habe Java bereits erwähnt ...) Trotzdem, vielleicht versuchen Sie das stattdessen?

Dritte, können Sie schummeln und verwenden Sie einfach psql wies auf den Vertica-Port (in der Regel eine über dem PostgreSQL-Port).

+0

Vielen Dank für die Auflistung aller Optionen! Ja, dem stimme ich voll und ganz zu! Es macht wirklich keinen Spaß (Ich versuchte es tatsächlich mit dem JDBC, aber ich bin auch von einem Fehler betroffen. Ich habe meinen ursprünglichen Beitrag mit mehr Details zu meinem Problem bei der Verwendung von JDBC aktualisiert. Bitte lassen Sie mich wissen, ob das etwas ist du könntest helfen, schon wieder danke Dirk! –