Nicht gepackte JDBC-Treiber

Looker für die Verwendung nicht gepackter JDBC-Treiber konfigurieren

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

Für alle Dialekte, für die unter „Unterstützt?“ der Wert „Nein“ angegeben ist, müssen die JDBC-Treiber nicht gepackt sein:

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

Vorbereitung

Wenn Sie Looker mit einer Datenbank verbinden möchten, für die ein nicht gepackter JDBC-Treiber erforderlich ist, benötigen Sie Folgendes:

  • Befehlszeilenzugriff auf Ihren Looker-Server
  • Der JDBC-Treiber als JAR-Datei. In der spezifischen Dokumentation des Dialects finden Sie möglicherweise eine Anleitung dazu, wo Sie diese Datei herunterladen können. Andernfalls wird davon ausgegangen, dass Sie Zugriff auf die erforderliche JAR-Datei haben.
  • Das Fahrersymbol für Ihren Dialekt. Ein Treibersymbol ist ein Stringwert, der in Looker intern verwendet wird, um den Dialekt dem Treiber zuzuordnen. In den Beispielen auf dieser Seite wird der generische Wert driver_symbol verwendet. In der Looker-Dokumentation für jeden Dialekt finden Sie die Symbole, mit denen JDBC-Treiber in Looker für Dialekte registriert werden.
  • Der Treibereintrag in YAML für Ihren Dialekt, der der custom_jdbc_config.yml-Konfigurationsdatei hinzugefügt werden soll. Weitere Informationen finden Sie auf dieser Seite im Abschnitt Treibereinträge in der YAML-Konfigurationsdatei.

Treibereinträge in der YAML-Konfigurationsdatei

Hier 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

Beachten Sie beim Schreiben des Treibereintrags für Ihren Dialekt Folgendes:

  • Die Datei custom_jdbc_config.yml ist YAML-basiert. Das bedeutet, dass Einzüge und Abstände wichtig sind.
  • Die Attribute name und dir_name müssen dem Treibersymbol entsprechen, das Looker für Ihren Dialekt beim Registrieren von JDBC-Treibern verwendet.
  • Anstelle von dir_name kann das Attribut file_name verwendet werden, das den relativen Pfad von custom_jdbc_drivers zur JAR-Datei des JDBC-Treibers enthält. dir_name wird empfohlen, da dadurch mehrere Treiber in eigenen Verzeichnissen isoliert werden und die Wahrscheinlichkeit von Kollisionen von Java-Klassen verringert wird.
  • Die module_path-Eigenschaft hängt vom jeweiligen JDBC-Treiber ab. Es sollte der vollständig qualifizierte Pfad zur Java-Treiberklasse sein. In diesem Beispiel wird ein generischer Wert verwendet. Den spezifischen module_path, den der Treiber verwendet, finden Sie in der Dokumentation zur Registrierung der Treiberklasse.
  • override_jdbc_url_subprotocol ist ein optionales Argument, mit dem das Subprotokoll überschrieben wird, das im JDBC-String verwendet wird, den Looker an die Datenbank sendet. Ein typischer JDBC-String sieht so aus:
jdbc:mysql://localhost:3306/database_name[?propertyName1][=propertyValue1]

Dabei ist mysql das verwendete JDBC-Unterprotokoll.

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

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

Diese Option ist erforderlich, wenn Sie einen nicht gepackten JDBC-Treiber verwenden müssen, für den ein anderes URL-Unterprotokoll als das Standard-URL-Unterprotokoll von Looker erforderlich ist. In den meisten Fällen ist das nicht erforderlich, es sei denn, dies wird in der Dokumentation des Dialects ausdrücklich erwähnt. MongoBI ist ein Beispiel für einen Dialect, für den diese Option erforderlich ist.

Nicht gepackte JDBC-Treiber installieren

  1. Wechseln Sie zum Basisverzeichnis der Looker-Anwendung. In diesem Beispiel wird looker als Basisverzeichnis verwendet.

    cd looker
    
  2. Erstellen Sie ein Verzeichnis mit dem Namen custom_jdbc_drivers. Dies ist das Stammverzeichnis für alle nicht verpackten 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 einen Unterordner mit dem Treibersymbol Ihres Dialects. In diesem Beispiel wird der generische Wert driver_symbol verwendet. Der resultierende Pfad zum Verzeichnis sieht dann so aus: looker/custom_jdbc_drivers/driver_symbol

    cd custom_jdbc_drivers
    mkdir driver_symbol
    

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

    Beispiel: looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jar

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

  5. Wechseln Sie zum Verzeichnis der Looker-Anwendung und erstellen Sie eine Konfigurationsdatei mit dem Namen custom_jdbc_config.yml. Der Pfad zu dieser Datei sollte looker/custom_jdbc_config.yml sein. Diese Datei enthält die Informationen, die Looker zum Suchen und Registrieren des benutzerdefinierten JDBC-Treibers benötigt.

    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 auf dieser Seite im Abschnitt Treibereinträge in der YAML-Konfigurationsdatei.

    - name: driver_symbol
      dir_name: driver_symbol
      module_path: com.dialect.jdbc.DialectDriver
    
  7. Erstellen oder aktualisieren Sie die Datei lookerstart.cfg so, dass die Looker-Anwendung mit der nicht verpackten JDBC-Treiberkonfiguration gestartet wird. Der Pfad zu dieser Datei sollte looker/lookerstart.cfg sein. Fügen Sie die Option --use-custom-jdbc-config hinzu. Wenn es weitere Optionen gibt, fügen Sie diese am Ende der Looker-Startoptionen an:

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

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

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

    ./looker restart
    

    oder none ./looker stop ./looker start

Mehrere nicht verpackte JDBC-Treiber

Wenn Sie mehrere Dialekte für die Verwendung von nicht gepackten JDBC-Treibern konfigurieren müssen, gilt weiterhin das im Abschnitt Nicht gepackte JDBC-Treiber installieren beschriebene Verfahren. Das Verzeichnis custom_jdbc_drivers enthält mehrere Unterverzeichnisse dialect mit eigenen Treiber-JARs und die Datei custom_jdbc_config.yml 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