Looker für die Verwendung von nicht paketierten JDBC-Treibern konfigurieren
Bei einigen von Looker unterstützten Dialekten kann der JDBC-Treiber aus lizenzrechtlichen Gründen nicht in der Looker-JAR-Datei enthalten sein. 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?“ sind nicht paketierte JDBC-Treiberinstallationen erforderlich:
Dialekt | Unterstützt? |
---|---|
Actian Avalanche | Nein |
Amazon Athena | Ja |
Amazon Aurora MySQL | Ja |
Amazon Redshift | Ja |
Amazon Redshift 2.1+ | Ja |
Amazon Redshift Serverless 2.1+ | Ja |
Apache Druid | Ja |
Apache Druid 0.13+ | Ja |
Apache Druid 0.18+ | Ja |
Apache Hive 2.3+ | Ja |
Apache Hive 3.1.2+ | Ja |
Apache Spark 3+ | Ja |
ClickHouse | Ja |
Cloudera Impala 3.1+ | Ja |
Cloudera Impala 3.1+ with Native Driver | Nein |
Cloudera Impala with Native Driver | Nein |
DataVirtuality | Nein |
Databricks | Ja |
Denodo 7 | Ja |
Denodo 8 & 9 | Ja |
Dremio | Ja |
Dremio 11+ | Ja |
Exasol | 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 Database | Ja |
Microsoft Azure Synapse Analytics | Ja |
Microsoft SQL Server 2008+ | Ja |
Microsoft SQL Server 2012+ | Ja |
Microsoft SQL Server 2016 | Ja |
Microsoft SQL Server 2017+ | Ja |
MongoBI | Nein |
MySQL | Ja |
MySQL 8.0.12+ | Ja |
Oracle | Ja |
Oracle ADWC | Ja |
PostgreSQL 9.5+ | Ja |
PostgreSQL pre-9.5 | Ja |
PrestoDB | Ja |
PrestoSQL | Ja |
SAP HANA | Ja |
SAP HANA 2+ | Ja |
SingleStore | Ja |
SingleStore 7+ | Ja |
Snowflake | Ja |
Teradata | Nein |
Trino | Ja |
Vector | Nein |
Vertica | Ja |
Vorbereitung
Wenn Sie Looker mit einer Datenbank verbinden möchten, für die ein nicht verpackter JDBC-Treiber erforderlich ist, benötigen Sie Folgendes:
- Befehlszeilenzugriff auf Ihren Looker-Server.
- Der 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 das Dialekt mit dem Treiber abzugleichen. 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. - Der YAML-Treibereintrag für Ihren Dialekt, der der Konfigurationsdatei
custom_jdbc_config.yml
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 sehen Sie 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
Beim Schreiben des Treibereintrags für Ihren Dialekt gilt Folgendes:
- Die Datei
custom_jdbc_config.yml
basiert auf YAML. Das bedeutet, dass Einrückung und Abstände wichtig sind. - Die Attribute
name
unddir_name
müssen das Treibersymbol sein, das Looker für Ihren Dialekt verwendet, wenn JDBC-Treiber registriert werden. - Es ist möglich, das Attribut
file_name
anstelle vondir_name
zu verwenden, das den relativen Pfad voncustom_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 Konflikten zwischen Java-Klassen sinkt. - Die
module_path
-Eigenschaft hängt vom jeweiligen JDBC-Treiber ab. Dies sollte der vollständig qualifizierte Pfad zur Java-Treiberklasse sein. In diesem Beispiel wird ein generischer Wert verwendet. Informationen zum Ermitteln des spezifischenmodule_path
, das vom Treiber verwendet wird, finden Sie in der Dokumentation des Treibers. Dort wird beschrieben, wie die Treiberklasse registriert wird. 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 der 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 standardmäßige URL-Unterprotokoll von Looker erfordert. In den meisten Fällen ist das nicht erforderlich, es sei denn, in der Dokumentation des Dialekts wird ausdrücklich darauf hingewiesen. MongoBI ist ein Beispiel für einen Dialekt, für den diese Option erforderlich ist.
Nicht verpackte JDBC-Treiber installieren
Wechseln Sie in das Basisverzeichnis der Looker-Anwendung. In diesem Beispiel wird
looker
als Basisverzeichnis verwendet.cd looker
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 solltelooker/custom_jdbc_drivers
sein.mkdir custom_jdbc_drivers
Erstellen Sie im Verzeichnis
custom_jdbc_drivers
ein Unterverzeichnis mit dem Treibersymbol Ihres Dialekts. In diesem Beispiel wird der generische Wertdriver_symbol
verwendet. Der resultierende Pfad zum Verzeichnis sieht so aus:looker/custom_jdbc_drivers/driver_symbol
cd custom_jdbc_drivers mkdir driver_symbol
Legen Sie die JDBC-Treiberdateien für Ihren Dialekt in diesem Verzeichnis ab. Die Methode dafür hängt davon ab, wo sich der Treiber Ihres Dialekts befindet und wie er auf den Server hochgeladen wird. Achten Sie aber 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
Wie Sie die erforderlichen Dateien auf den Looker-Server verschieben, hängt davon ab, woher Sie die Treiberdateien beziehen, und von Ihrer bevorzugten Methode für die Dateiübertragung. Beispiele für Befehle zum Übertragen von Dateien in dieses Verzeichnis sind
wget
,scp
undcurl
.Wechseln Sie in das Looker-Anwendungsverzeichnis und erstellen Sie eine Konfigurationsdatei mit dem Namen
custom_jdbc_config.yml
. Der Pfad zu dieser Datei solltelooker/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
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
Erstellen oder aktualisieren Sie die Datei
lookerstart.cfg
, damit die Looker-Anwendung mit der Konfiguration des nicht verpackten JDBC-Treibers gestartet wird. Der Pfad zu dieser Datei solltelooker/lookerstart.cfg
sein. Fügen Sie die Option--use-custom-jdbc-config
hinzu. Wenn es andere Optionen gibt, hängen Sie diese an das Ende der Looker-Startoptionen an:LOOKERARGS="--use-custom-jdbc-config"
Wenn Sie
LOOKERARGS
an einer anderen Stelle alslookerstart.cfg
festgelegt haben, z. B. in einer Umgebungsvariable, können Sie dieses Startflag dort hinzufügen. Alternativ können SieLOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config"
so festlegen, dass die vorhandenen Werte in diese Datei erweitert werden.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 paketierten JDBC-Treibern konfigurieren müssen, gilt weiterhin das Verfahren, das im Abschnitt Nicht paketierte JDBC-Treiber installieren beschrieben wird. Das Verzeichnis custom_jdbc_drivers
enthält 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