未打包的 JDBC 驱动程序

配置 Looker 以使用未封装的 JDBC 驱动程序

对于某些 Looker 支持的方言,由于许可相关原因,无法将 JDBC 驱动程序打包到 Looker JAR 文件中。在这些情况下,您必须在 Looker 服务器上安装 JDBC 驱动程序,然后按照本页所述配置 Looker 以注册未打包的驱动程序。

值为“No”的所有方言在“是否支持?”下方需要安装未打包的 JDBC 驱动程序:

方言 是否支持?
阿克蒂安雪崩
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
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+
带有原生驱动程序的 Cloudera Impala
DataVirtuality
Databricks
Denodo 7 购物中心
迪诺多 8 号星
Dremio
Dremio 11+
Exasol
火箭
Google BigQuery 旧版 SQL
Google BigQuery 标准 SQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL 数据库
Microsoft Azure Synapse 分析
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 9.5 之前的版本
PrestoDB
PrestoSQL
SAP HANA 2 及更高版本
SingleStore
SingleStore 7+
Snowflake
TeraData
Trino
矢量
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,这意味着缩进和间距很重要。
  • namedir_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]

如果您需要使用需要 Looker 默认网址子协议以外的网址子协议的未打包 JDBC 驱动程序,则必须使用此选项。在大多数情况下,除非方言文档中明确指出,否则没有必要这样做。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 目录将包含多个具有各自驱动程序 JAR 的 dialect 子目录,并且 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