Nicht gepackte JDBC-Treiber

Looker für die Verwendung von nicht verpackten JDBC-Treibern konfigurieren

Bei einigen der von Looker unterstützten Dialekte 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 dann Looker so konfigurieren, dass der nicht verpackte Treiber wie auf dieser Seite beschrieben registriert wird.

Für alle Dialekte mit dem Wert „Nein“ unter „Unterstützt?“ ist die Installation von nicht verpackten JDBC-Treibern erforderlich:

Dialekt Unterstützt?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13.x - 0.17.x
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Exasol
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud AlloyDB for PostgreSQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica

Vorbereitung

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

  • Befehlszeilen-Zugriff auf Ihren Looker-Server.
  • Den JDBC-Treiber als JAR-Datei. In der spezifischen Dokumentation des Dialekts finden Sie möglicherweise eine Anleitung zum Herunterladen dieser Datei. Andernfalls wird davon ausgegangen, dass Sie Zugriff auf die erforderliche 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 Looker-Dokumentation für die einzelnen Dialekte finden Sie die Symbole, die Looker verwendet, um JDBC-Treiber für Dialekte zu registrieren.
  • Den YAML-Treibereintrag für Ihren Dialekt, der der Konfigurationsdatei custom_jdbc_config.yml hinzugefügt werden muss. Weitere Informationen finden Sie im Abschnitt Treibereinträge in der YAML-Konfigurationsdatei auf dieser Seite.

Treibereinträge in der YAML-Konfigurationsdatei

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

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

Beim Schreiben des Treibereintrags für Ihren Dialekt gilt Folgendes:

  • Die Datei custom_jdbc_config.yml basiert auf YAML. Daher sind Einrückungen und Abstände wichtig.
  • Die Attribute name und dir_name müssen das Treibersymbol sein, das Looker für Ihren Dialekt verwendet, wenn JDBC-Treiber registriert werden.
  • Sie können das Attribut file_name anstelle von dir_name verwenden, das den relativen Pfad von custom_jdbc_drivers zur JDBC-Treiber-JAR-Datei enthält. dir_name wird empfohlen, da dadurch mehrere Treiber in eigenen Verzeichnissen isoliert werden und die Wahrscheinlichkeit von Java-Klassenkonflikten verringert wird.
  • Die Eigenschaft module_path hängt vom jeweiligen JDBC-Treiber ab. Sie sollte der vollständig qualifizierte Pfad zur Java-Treiberklasse sein. In diesem Beispiel wird ein generischer Wert verwendet. Den spezifischen module_path des Treibers finden Sie in der Dokumentation zum Registrieren der Treiberklasse.
  • override_jdbc_url_subprotocol ist ein optionales Argument, mit dem das Unterprotokoll ü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, sieht dieser JDBC-String so aus:

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

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

Nicht verpackte 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 Verzeichnis der obersten Ebene für alle Installationen von nicht verpackten JDBC-Treibern. 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 mit dem Treibersymbol Ihres Dialekts. 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. Platzieren Sie die JDBC-Treiberdateien für Ihren Dialekt in diesem Verzeichnis. Die Methode hierfür hängt davon ab, wo der Treiber Ihres Dialekts gefunden und auf den Server hochgeladen werden kann. Achten Sie jedoch 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 von Ihrer bevorzugten Methode zur Dateiübertragung. 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 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 in der YAML-Konfigurationsdatei finden Sie im Abschnitt Treibereinträge 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 Konfiguration für nicht verpackte JDBC-Treiber gestartet wird. Der Pfad zu dieser Datei sollte looker/lookerstart.cfg sein. Fügen Sie die Option --use-custom-jdbc-config hinzu. Wenn es andere Optionen gibt, hängen Sie diese am Ende der Looker-Startoptionen an:

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

    Wenn Sie LOOKERARGS an einer anderen Stelle als in 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" festlegen, damit die vorhandenen Werte in diese Datei übernommen 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 verpackte JDBC-Treiber

Wenn Sie mehr als einen Dialekt für die Verwendung von nicht verpackten JDBC-Treibern konfigurieren müssen, gilt weiterhin die im Abschnitt Nicht verpackte JDBC-Treiber installieren beschriebene Vorgehensweise. Das Verzeichnis custom_jdbc_drivers enthält mehrere Unterverzeichnisse dialect 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