設定 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 & 9 | 是 |
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 用於向方言註冊 JDBC 驅動程式的符號,請參閱各方言的 Looker 說明文件。 - 要新增至
custom_jdbc_config.yml
設定檔的方言 YAML 驅動程式項目。詳情請參閱本頁的「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 為基礎,因此縮排和間距很重要。- 註冊 JDBC 驅動程式時,
name
和dir_name
屬性必須是 Looker 用於方言的驅動程式符號。 - 你可以使用
file_name
屬性,而非包含從custom_jdbc_drivers
到 JDBC 驅動程式 JAR 檔案相對路徑的dir_name
。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"
如果您在
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