未封裝的 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.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 的,這意味著縮排和空格很重要。
  • namedir_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 驅動程式

  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 設定檔中的 Driver 條目 部分。

    - 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