設定 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 | 是 |
| 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_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 設定檔中的驅動程式項目」一節。- 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