Nicht gepackte JDBC-Treiber

Looker zur Verwendung nicht gepackter JDBC-Treiber konfigurieren

Bei einigen der von Looker unterstützten Dialekten kann der JDBC-Treiber aus Lizenzgründen nicht in der Looker-JAR-Datei gepackt werden. In diesen Fällen müssen Sie den JDBC-Treiber auf Ihrem Looker-Server installieren und Looker dann so konfigurieren, dass der entpackte Treiber wie auf dieser Seite beschrieben registriert wird.

Alle Dialekte, bei denen unter „Unterstützt?“ die Option „Nein“ angegeben ist, erfordern nicht gepackte JDBC-Treiberinstallationen:

Dialekt Unterstützt?
Actian Lawine
Nein
Amazon Athena
Yes
Amazon Aurora MySQL
Yes
Amazon Redshift
Yes
Druid
Yes
Apache Druid 0.13+
Yes
Apache Druid 0.18+
Yes
Apache Hive 2.3 und höher
Yes
Apache Hive 3.1.2 und höher
Yes
Apache Spark 3 und höher
Yes
ClickHouse
Yes
Cloudera Impala 3.1 und höher
Yes
Cloudera Impala 3.1+ mit nativem Treiber
Nein
Cloudera Impala mit nativem Treiber
Nein
DataVirtuality
Nein
Databricks
Yes
Denodo 7
Yes
Denodo 8
Yes
Dremio
Yes
Dremio 11+
Yes
Exasol
Yes
Firebolt
Yes
Google BigQuery Legacy-SQL
Yes
Google BigQuery-Standard-SQL
Yes
Google Cloud PostgreSQL
Yes
Google Cloud SQL
Yes
Google Spanner
Yes
Greenplum
Yes
HyperSQL
Yes
IBM Netezza
Yes
MariaDB
Yes
Microsoft Azure PostgreSQL
Yes
Microsoft Azure SQL-Datenbank
Yes
Microsoft Azure Synapse-Analyse
Yes
Microsoft SQL Server 2008 oder höher
Yes
Microsoft SQL Server 2012 und höher
Yes
Microsoft SQL Server 2016
Yes
Microsoft SQL Server 2017 und höher
Yes
MongoBI
Nein
MySQL
Yes
MySQL 8.0.12 und höher
Yes
Oracle
Yes
Oracle ADWC
Yes
PostgreSQL 9.5+
Yes
PostgreSQL vor 9.5
Yes
PrestoDB
Yes
PrestoSQL
Yes
SAP HANA 2 und höher
Yes
SingleStore
Yes
SingleStore 7 und höher
Yes
Snowflake
Yes
Teradata
Nein
Trino
Yes
Vektor
Nein
Vertica
Yes

Vorbereitung

Zum Verbinden von Looker mit einer Datenbank, die einen nicht gepackten JDBC-Treiber erfordert, benötigen Sie Folgendes:

  • Befehlszeilenzugriff auf Ihren Looker-Server.
  • Der JDBC-Treiber als JAR-Datei. Die spezifische Dokumentation des Dialekts enthält möglicherweise Anweisungen dazu, wo diese Datei heruntergeladen werden kann. Andernfalls gehen wir davon aus, dass Sie Zugriff auf die benötigte JAR-Datei haben.
  • Das Treibersymbol für Ihren Dialekt. Ein Treibersymbol ist ein Stringwert, den Looker intern verwendet, um den Dialekt dem Treiber zuzuordnen. In den Beispielen auf dieser Seite wird der generische Wert driver_symbol verwendet. In der Liste der Treibersymbole auf dieser Seite finden Sie die Symbole, mit denen Looker JDBC-Treiber bei Dialekten registriert.
  • Der YAML-Treibereintrag für den Dialekt, der der Konfigurationsdatei custom_jdbc_config.yml hinzugefügt werden soll. Weitere Informationen finden Sie im Abschnitt Treibereinträge in der YAML-Konfigurationsdatei auf dieser Seite.

Treibereinträge in der YAML-Konfigurationsdatei

Hier ist ein Beispiel für einen Treibereintrag in der Datei custom_jdbc_config.yml:

  - name: driver_symbol
    dir_name: driver_symbol
    module_path: com.dialect.jdbc.DialectDriver
    override_jdbc_url_subprotocol: driver_subprotocol  # optional

Wenn Sie den Treibereintrag für Ihren Dialekt schreiben:

  • Die Datei custom_jdbc_config.yml ist YAML-basiert. Das bedeutet, dass Einzüge und Leerzeichen wichtig sind.
  • Die Attribute name und dir_name müssen das Treibersymbol sein, das Looker bei der Registrierung von JDBC-Treibern für Ihren Dialekt erwartet.
  • Es ist möglich, das Attribut file_name anstelle von dir_name zu verwenden, das den relativen Pfad von custom_jdbc_drivers zur JAR-Datei des JDBC-Treibers enthält. dir_name wird empfohlen, da so dafür gesorgt wird, dass mehrere Treiber in ihren eigenen Verzeichnissen isoliert bleiben und Java-Klassen kollidieren.
  • Das Attribut module_path hängt vom jeweiligen JDBC-Treiber ab. Es sollte der voll qualifizierte Pfad zur Java-Treiberklasse sein. In diesem Beispiel wird ein generischer Wert verwendet. Informationen zum Ermitteln der spezifischen module_path, die der Treiber verwendet, finden Sie in der Dokumentation zum register der Treiberklasse.
  • override_jdbc_url_subprotocol ist ein optionales Argument, mit dem das Subprotokoll überschrieben wird, das im JDBC-String verwendet wird, der von Looker an die Datenbank gesendet wird. Ein typischer JDBC-String sieht so aus:
jdbc:mysql://localhost:3306/database_name[?propertyName1][=propertyValue1]

Dabei ist mysql das verwendete JDBC-Subprotokoll.

Wenn Sie override_jdbc_url_subprotocol: driver_subprotocol angeben, wird dieser JDBC-String zu:

jdbc:driver_subprotocol://localhost:3306/database_name[?propertyName1][=propertyValue1]

Diese Option ist erforderlich, wenn Sie einen unverpackten JDBC-Treiber verwenden müssen, der ein anderes URL-Subprotokoll als das Standard-URL-Subprotokoll von Looker erfordert. In den meisten Fällen ist dies nur dann erforderlich, wenn in der Dokumentation des Dialekts ausdrücklich angegeben, dass dies erforderlich ist. MongoBI ist ein Beispiel für einen Dialekt, für den diese Option erforderlich ist.

Ungepackte JDBC-Treiber installieren

  1. Wechseln Sie zum Basisverzeichnis der Looker-Anwendung. In diesem Dokument gehen wir von looker aus.

    cd looker
    
  2. Erstellen Sie ein Verzeichnis mit dem Namen custom_jdbc_drivers. Dies ist das Verzeichnis der obersten Ebene für alle nicht gepackten JDBC-Treiberinstallationen. Der Pfad zu diesem Verzeichnis sollte looker/custom_jdbc_drivers sein

    mkdir custom_jdbc_drivers
    
  3. Erstellen Sie im Verzeichnis custom_jdbc_drivers ein Unterverzeichnis, das nach dem Treibersymbol Ihres Dialekts benannt ist. In diesem Beispiel wird der generische Wert driver_symbol verwendet. Der resultierende Pfad zum Verzeichnis sieht so aus: looker/custom_jdbc_drivers/driver_symbol

    cd custom_jdbc_drivers
    mkdir driver_symbol
    

  4. Legen Sie die JDBC-Treiberdateien für Ihren Dialekt in diesem Verzeichnis ab. Die entsprechende Methode hängt davon ab, wo der Treiber Ihres Dialekts gefunden und auf den Server hochgeladen werden kann. Achten Sie jedoch darauf, dass sich die relevanten JAR-Dateien im Verzeichnis driver_symbol befinden: looker/custom_jdbc_drivers/driver_symbol/

    Beispiel: looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jar

    Das Verschieben der erforderlichen Dateien auf den Looker-Server hängt davon ab, wo Sie die Treiberdateien erhalten und welche Einstellungen Sie für die Dateiübertragung bevorzugen. Beispiele für Befehle zum Übertragen von Dateien in dieses Verzeichnis sind wget, scp, curl usw.

  5. Wechseln Sie zurück zum Looker-Anwendungsverzeichnis und erstellen Sie eine Konfigurationsdatei mit dem Namen custom_jdbc_config.yml. Der Pfad zu dieser Datei sollte looker/custom_jdbc_config.yml lauten. Diese Datei enthält die Informationen, die Looker benötigt, um den benutzerdefinierten JDBC-Treiber zu finden und zu registrieren.

    cd looker
    vim custom_jdbc_config.yml
    
  6. Fügen Sie der Konfigurationsdatei custom_jdbc_config.yml einen neuen Eintrag für Ihren Dialekt hinzu. Informationen zu Treibereinträgen finden Sie im Abschnitt Treibereinträge in der YAML-Konfigurationsdatei auf dieser Seite.

    - name: driver_symbol
      dir_name: driver_symbol
      module_path: com.dialect.jdbc.DialectDriver
    
  7. Erstellen oder aktualisieren Sie die Datei lookerstart.cfg, damit die Looker-Anwendung mit der entpackten JDBC-Treiberkonfiguration gestartet wird. Der Pfad zu dieser Datei sollte looker/lookerstart.cfg lauten. Fügen Sie die Option --use-custom-jdbc-config hinzu. Wenn es andere Optionen gibt, hängen Sie dies am Ende der Looker-Startoptionen an:

    LOOKERARGS="--use-custom-jdbc-config"
    

    Wenn LOOKERARGS an einer anderen Stelle als lookerstart.cfg festgelegt ist, z. B. in einer Umgebungsvariable, können Sie dort dieses Start-Flag hinzufügen. Alternativ können Sie LOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config" festlegen, damit die vorhandenen Werte in diese Datei erweitert werden.

  8. Starten Sie die Looker-Anwendung neu. Verwenden Sie in diesem Befehl den Namen Ihres Looker-Startskripts, z. B. ./looker oder ./looker.sh.

    ./looker restart
    

    oder none ./looker stop ./looker start

Mehrere nicht gepackte JDBC-Treiber

Wenn Sie mehr als einen Dialekt konfigurieren müssen, um entpackte JDBC-Treiber zu verwenden, können Sie trotzdem weiter wie im Abschnitt Nicht gepackte JDBC-Treiber installieren beschrieben vorgehen. Das Verzeichnis custom_jdbc_drivers hat mehrere dialect-Unterverzeichnisse mit eigenen Treiber-JARs und die Datei custom_jdbc_config.yml enthält mehrere Einträge:

ls looker/custom_jdbc_drivers

driver_symbol_1 driver_symbol_2
ls looker/custom_jdbc_drivers/driver_symbol_1

Dialect1Driver.jar
- name: driver_symbol_1
  dir_name: driver_symbol_1
  module_path: com.dialect.jdbc.Dialect1Driver

- name: driver_symbol_2
  dir_name: driver_symbol_2
  module_path: com.dialect.jdbc.Dialect2Driver