配置 Looker 以使用未打包的 JDBC 驅動程式
對某些人來說Looker 支援的方言由於許可相關原因,JDBC 驅動程式不能打包到 Looker JAR 檔案中。在這些情況下,您必須在 Looker 伺服器上安裝 JDBC 驅動程序,然後按照本頁所述配置 Looker 以註冊未打包的驅動程式。
「是否支援?」下值為「否」的所有方言都需要安裝未打包的 JDBC 驅動程式:
| 方言 | 是否支援? |
|---|---|
| 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 | |
| MongoSQL | |
| 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 |
必要條件
若要將 Looker 連線到需要未打包 JDBC 驅動程式的資料庫,您需要以下工具:
- 透過命令列存取您的 Looker 伺服器。
- JDBC 驅動程式以 JAR 檔案的形式提供。該方言的特定文件可能包含有關在哪裡下載此文件的說明;否則,假定您已擁有所需的 JAR 文件。
- 您的方言的 驅動程式符號。驅動程式符號是 Looker 內部用於將方言與驅動程式匹配的字串值。本頁範例使用通用值
driver_symbol。有關 Looker 用於向方言註冊 JDBC 驅動程式的符號,請參閱 Looker 針對每種方言的文檔。 - 要將你的方言的 YAML driver 條目 加入
custom_jdbc_config.yml設定檔。有關更多信息,請參閱此頁面上的 YAML 設定檔 部分中的 Driver 條目。
YAML 設定檔中的驅動程式條目
以下是 custom_jdbc_config.yml 檔案中 driver 條目 的範例:
- name: driver_symbol
dir_name: driver_symbol
module_path: com.dialect.jdbc.DialectDriver
override_jdbc_url_subprotocol: driver_subprotocol # optional
編寫您所在方言的驅動程式條目時:
- 檔案
custom_jdbc_config.yml是基於 YAML 的,這意味著縮排和空格很重要。 name和dir_name屬性必須是 Looker 在註冊 JDBC 驅動程式時用於您的方言的驅動程式符號。- 可以使用屬性
file_name來代替dir_name,其中包含從custom_jdbc_drivers到 JDBC 驅動程式 JAR 檔案的相對路徑。建議使用dir_name,因為它有助於將多個驅動程式隔離到各自的目錄中,並減少 Java 類別衝突的可能性。 module_path屬性將取決於特定的 JDBC 驅動程式。它應該是 Java driver 類別 的完整路徑。本範例使用通用值,但要尋找特定值,請點擊此處。module_path驅動程式使用方法請參考其文件。登記駕駛員類別。override_jdbc_url_subprotocol是一個可選參數,用於覆寫 Looker 傳送到資料庫的 JDBC 字串中使用的子協定。典型的 JDBC 字串如下所示:
jdbc:mysql://localhost:3306/database_name[?propertyName1][=propertyValue1]
其中 mysql 是正在使用的 JDBC 子協定。
如果指定 override_jdbc_url_subprotocol: driver_subprotocol,則此 JDBC 字串將變為:
jdbc:driver_subprotocol://localhost:3306/database_name[?propertyName1][=propertyValue1]
如果您需要使用未打包的 JDBC 驅動程序,並且該驅動程式需要除 Looker 的預設 URL 子協議之外的 URL 子協議,則必須使用此選項。大多數情況下,除非方言的文檔明確說明需要,否則無需這樣做。 MongoBI 就是一個需要此選項的方言範例。
安裝未打包的 JDBC 驅動程式
切換到 Looker 應用程式根目錄。本範例使用
looker作為基本目錄。cd looker建立一個名為
custom_jdbc_drivers的目錄。這是所有未打包的 JDBC 驅動程式安裝的頂級目錄。此目錄的路徑應為looker/custom_jdbc_driversmkdir custom_jdbc_drivers在
custom_jdbc_drivers目錄中,建立一個以你的方言的 驅動符號 命名的子目錄。本範例使用通用值driver_symbol。產生的目錄路徑將類似於looker/custom_jdbc_drivers/driver_symbolcd custom_jdbc_drivers mkdir driver_symbol將適用於您語言的 JDBC 驅動程式檔案放入此目錄。具體方法取決於您的方言驅動程式在伺服器上的位置以及上傳方式,但請確保相關的 JAR 檔案位於
driver_symbol目錄中:looker/custom_jdbc_drivers/driver_symbol/例如:
looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jar將必要的檔案移至 Looker 伺服器的方式取決於您從哪裡取得驅動程式檔案以及您的檔案傳輸偏好。將檔案傳輸到此目錄的命令範例包括
wget、scp和curl。將目錄變更為 Looker 應用程式目錄,並建立一個名為
custom_jdbc_config.yml的設定檔。此文件的路徑應為looker/custom_jdbc_config.yml。此檔案將包含 Looker 尋找和註冊自訂 JDBC 驅動程式所需的資訊。cd looker vim custom_jdbc_config.yml在
custom_jdbc_config.yml設定檔中新增您的方言的新條目。有關驅動程式條目的信息,請參閱本頁的 YAML 設定檔中的 Driver 條目 部分。- name: driver_symbol dir_name: driver_symbol module_path: com.dialect.jdbc.DialectDriver建立或更新檔案
lookerstart.cfg,以便 Looker 應用程式使用未打包的 JDBC 驅動程式設定啟動。此文件的路徑應為looker/lookerstart.cfg。新增選項--use-custom-jdbc-config。如果還有其他選項,請將其新增至 Looker 啟動選項的末端:LOOKERARGS="--use-custom-jdbc-config"如果您在
lookerstart.cfg以外的其他地方設定了LOOKERARGS,例如在環境變數中,則可以將此啟動標誌新增至那裡。或者,您可以設定LOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config",以便將現有值擴展到此文件中。重新啟動 Looker 應用程式。在此指令中,請使用 Looker 啟動腳本的名稱,例如
./looker或./looker.sh./looker restart或是
none ./looker stop ./looker start
多個未打包的 JDBC 驅動程式
如果您需要配置多個方言來使用未打包的 JDBC 驅動程序,則 安裝未打包的 JDBC 驅動程式 部分中所述的程序仍然適用。custom_jdbc_drivers 目錄將包含多個 dialect 子目錄,每個子目錄都有自己的驅動程式 JAR 文件,並且 custom_jdbc_config.yml 文件將包含多個條目:
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