設定 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+ | 是 |
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 | 是 |
Dremio | 是 |
Dremio 11+ | 是 |
Exasol | 是 |
Firebolt | 是 |
Google BigQuery Legacy SQL | 是 |
Google BigQuery Standard SQL | 是 |
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 | 是 |
事前準備
如要將 Looker 連線至需要未封裝 JDBC 驅動程式的資料庫,您需要:
- 可透過指令列存取 Looker 伺服器。
- JDBC 驅動程式為 JAR 檔案。方言的特定文件可能會說明這個檔案的下載位置;如果沒有說明,則假設您已取得所需的 JAR 檔案。
- 所用方言的驅動程式符號。驅動程式符號是 Looker 在內部用來比對方言與驅動程式的字串值。本頁範例使用的是通用值
driver_symbol
。請參閱各方言的 Looker 說明文件,瞭解 Looker 用來將 JDBC 驅動程式註冊至方言的符號。 - 要新增至
custom_jdbc_config.yml
設定檔的方言 YAML driver 項目。詳情請參閱本頁的「YAML 設定檔中的驅動程式項目」一節。
YAML 設定檔中的驅動程式項目
以下是 custom_jdbc_config.yml
檔案中的驅動程式項目範例:
- 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 驅動程式類別的完整合格路徑。本例使用的是一般值,但如要找出驅動程式使用的特定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 預設網址子協定以外的網址子協定,則必須使用這個選項。在大多數情況下,除非方言的說明文件明確指出需要這個選項,否則您不需要執行此操作。MongoBI 就是需要這個選項的方言。
安裝未封裝的 JDBC 驅動程式
變更為 Looker 應用程式基本目錄。本範例使用
looker
做為基礎目錄。cd looker
建立名為
custom_jdbc_drivers
的目錄。這是所有未封裝 JDBC 驅動程式安裝作業的頂層目錄。這個目錄的路徑應為looker/custom_jdbc_drivers
mkdir custom_jdbc_drivers
在
custom_jdbc_drivers
目錄中,建立名稱含有語言變體驅動程式符號的子目錄。本範例使用的是泛型值driver_symbol
。產生的目錄路徑會類似looker/custom_jdbc_drivers/driver_symbol
cd 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 設定檔中的驅動程式項目」一節。- 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"
如果您將
LOOKERARGS
設在lookerstart.cfg
以外的位置 (例如環境變數),可以在此新增這個啟動標記。或者,您也可以設定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