未打包的 JDBC 驱动程序

漫游器:noindex

将 Looker 配置为使用未打包的 JDBC 驱动程序

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

下表显示了需要安装未打包的 JDBC 驱动程序的方言:

前提条件

要将 Looker 连接到需要未打包的 JDBC 驱动程序的数据库,您需要:

  • 拥有对 Looker 服务器的命令行访问权限。
  • JDBC 驱动程序成为 JAR 文件。方言的具体文档可能包含有关在哪里下载此文件的说明;否则,我们假设您有权访问所需的 JAR 文件。
  • 您方言的司机符号。驱动程序符号是 Looker 在内部使用的字符串值,用于匹配方言与驱动程序。此页面上的示例使用了通用值 driver_symbol。如需了解 Looker 用于注册 JDBC 驱动程序的方言的符号,请参阅本页面上的驱动程序符号列表
  • 要添加到 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 属性必须是在注册 JDBC 驱动程序时 Looker 希望您设定的方言所代表的驱动程序符号
  • 您可以使用属性 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 驱动程序,上述流程仍然适用。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