未封裝的 JDBC 驅動程式

設定 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 驅動程式時,namedir_name 屬性必須是 Looker 用於方言的驅動程式符號。
  • 你可以使用 file_name 屬性,而非包含從 custom_jdbc_drivers 到 JDBC 驅動程式 JAR 檔案相對路徑的 dir_namedir_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 驅動程式

  1. 變更為 Looker 應用程式基本目錄。本範例使用 looker 做為基本目錄。

    cd looker
    
  2. 建立名為 custom_jdbc_drivers 的目錄。這是所有未封裝 JDBC 驅動程式安裝作業的頂層目錄。這個目錄的路徑應為 looker/custom_jdbc_drivers

    mkdir custom_jdbc_drivers
    
  3. custom_jdbc_drivers 目錄中,建立以方言的驅動程式符號命名的子目錄。本範例使用一般值 driver_symbol。產生的目錄路徑會類似 looker/custom_jdbc_drivers/driver_symbol

    cd custom_jdbc_drivers
    mkdir driver_symbol
    

  4. 將方言的 JDBC 驅動程式檔案放入這個目錄。具體方法取決於方言的驅動程式位置,以及上傳至伺服器的方式,但請務必確認相關 JAR 檔案位於 driver_symbol 目錄中:looker/custom_jdbc_drivers/driver_symbol/

    例如:looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jar

    將必要檔案移至 Looker 伺服器的方式,取決於您取得驅動程式檔案的位置,以及偏好的檔案傳輸方式。將檔案傳輸到這個目錄的指令範例包括 wgetscpcurl

  5. 將目錄變更為 Looker 應用程式目錄,並建立名為 custom_jdbc_config.yml 的設定檔。這個檔案的路徑應為 looker/custom_jdbc_config.yml。這個檔案會包含 Looker 尋找及註冊自訂 JDBC 驅動程式所需的資訊。

    cd looker
    vim custom_jdbc_config.yml
    
  6. custom_jdbc_config.yml 設定檔中新增方言的項目。如要瞭解驅動程式項目,請參閱本頁的「YAML 設定檔中的驅動程式項目」一節。

    - name: driver_symbol
      dir_name: driver_symbol
      module_path: com.dialect.jdbc.DialectDriver
    
  7. 建立或更新 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",讓現有值擴展至這個檔案。

  8. 重新啟動 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