2016-07-11 4 views
1

Ich versuche LibreOffice Base v5.1.4.2 zu erhalten, die auf Ubuntu v16.04 läuft, um eine Verbindung zu einer Hive v1.2.1-Datenbank herzustellen JDBC. Ich habe die folgenden Gläser, heruntergeladen von Maven Central, auf Libreoffice Klassenpfad ('Extras -> Libreoffice -> Erweitert -> Class Path'):LibreOffice Base JDBC-Verbindung zu Hive gibt "Method not supported" zurück, wenn gültige select-Anweisung ausgeführt wird

hive-common-1.2.1.jar 
hive-jdbc-1.2.1.jar 
hive-metastore-1.2.1.jar 
hive-service-1.2.1.jar 
hadoop-common-2.6.2.jar 
httpclient-4.4.jar 
httpcore-4.4.jar 
libthrift-0.9.2.jar 
commons-logging-1.1.3.jar 
slf4j-api-1.7.5.jar 

ich dann neu gestartet Libreoffice geöffnet Base ausgewählt ‚Eine Verbindung mit einem bestehende Datenbank‘->‚JDBC‘und legen Sie die folgenden Eigenschaften:

enter image description here

ich die Anmeldeinformationen eingegeben und klickte auf die‚Taste Test Connection‘, die ein‚die Verbindung wurde erfolgreich etabliert‘-Meldung zurückgegeben. Groß!

In der LibreOffice Base UI waren die Optionen im Bereich "Tabellen" ausgegraut. Die Optionen auf der Registerkarte "Abfragen" waren nicht verfügbar. Daher habe ich versucht, eine Verbindung mit Hive herzustellen.

enter image description here

Der ‚Assistent verwenden, um Abfrage zu erstellen‘ Option für ein Kennwort aufgefordert, und dann kehrt „Die Feldnamen von‚airline.on_time_performance‘können nicht abgerufen werden.“

field names could not be retrieved

Die JDBC-Verbindung ist Lage, um die Tabellen zu Hive und in der Liste zu verbinden, wenn es Probleme Abrufen der Spalten zu haben scheint. Wenn ich versuche, eine einfache select-Anweisung auszuführen, gibt die ‚Abfrage erstellen in SQL-Ansicht‘ Option eine etwas kryptische Nachricht „Methode nicht unterstützt“:

method not supported

Die Fehlermeldung ist ein bisschen vage. Ich vermute, dass ich eine Abhängigkeit vermisse, da ich am in der Lage bin, eine Verbindung zu Hive aus Java mit JDBC herzustellen.

Ich bin gespannt, ob jemand in der Gemeinde LibreOffice Base mit Hive arbeitet. Wenn ja, was fehlt mir?

+0

Sie sind dutzende Versionen des JDBC-Treibers veraltet. Ich fand 2.5.4 mit nicht viel Mühe. Wahrscheinlich ist der, den Sie verwenden, veraltet w.r.t. die Java-JDBC-Version. Aktualisieren. – EJP

+0

Angesichts des Fehlers "Feldnamen ... konnte nicht abgerufen werden" hatte diese Version des JDBC-Treibers keine Unterstützung für 'DatabaseMetaData.getColumns'. –

Antwort

1

Der Apache-JDBC-Treiber meldet „Methode nicht unterstützt“ für meisten Funktionen, nur weil die Apache Committer nicht die Liste der einfachen yes/no API-Aufrufe zu behandeln störte. Duh.
Wenn Sie selbst sehen möchten, nur download DBVisualizer Free, konfigurieren Sie den Apache Hive-Treiber, öffnen Sie eine Verbindung und überprüfen Sie die Datenbank Info Registerkarte.

Jetzt ist DBVis mit lahmen Treiber ziemlich freizügig, aber es scheint, dass LibreOffice nicht ist.

Sie können die Cloudera Hive JDBC driver als Alternative versuchen. Sie müssen sich lediglich "registrieren" - also Ihre E-Mail-Adresse belassen -, um auf die Download-URL zugreifen zu können. es ist einfacher zu implementieren als die Apache-Sache (basierend auf dem Simba SDK, alle Hive-spezifischen JARs sind gebündelt) und es funktioniert mit jedem BI-Tool. Hoffentlich funktioniert es auch mit LibreThing.

Haftungsausschluss: Ich wünschte, die Apache-Distribution hätte einen richtigen JDBC-Treiber, und jeder könnte ihn verwenden, anstatt sich auf "freie" kommerzielle Software zu verlassen. Aber jetzt ist es nur ein Wunsch.

+0

Danke @Samson. Das ist wirklich hilfreicher Einblick. Ich sehe, dass die Cloudera Hive-Treiber derzeit nur für Redhat und Suse gepackt sind (ich benutze Ubuntu). Das DbVisualizer Tool ist cool - ich habe das vorher nicht gesehen und, wie Sie sagten, verschiedene nicht unterstützte Methoden eindeutig identifiziert. –

+0

Lassen Sie sich nicht vom "Packaging" stolpern - es macht Sinn für ODBC * (native Kompilierung von C-Code) * aber nicht für JDBC * (nur ein paar portable JARs, können Sie sie in Eclipse unter Windows kompilieren und verwenden sie später auf Linux oder AIX) *. Laden Sie ** beliebige ** der "JDBC-Pakete" herunter, öffnen Sie die ZIP-Datei, wählen Sie zwischen der JDBC 4.0-kompatiblen und der JDBC 4.1-kompatiblen Variante (abhängig davon, was LibreBureau unterstützt) und legen Sie die JARs irgendwo unter Windows und Linux ab. –

+0

@Alex, noch eine Sache: die neueste Version des Cloudera Impala JDBC-Treibers hat einen Fehler - in einigen spezifischen Konfigurationen (d. H. Mit SSL aktiviert) scheitert es mit bizarren Nachrichten über "Sockets bereits geöffnet" zur Verbindungszeit. Ich vermute, dass es die gleiche Code-Basis mit dem Hive-Treiber teilt. Wenn Sie selbst bizarre Nachrichten erhalten, versuchen Sie eine ältere Version ... –

Verwandte Themen