配置 Looker 以使用未打包的 JDBC 驱动程序
对于某些 Looker 支持的方言,由于许可相关原因,无法将 JDBC 驱动程序打包到 Looker JAR 文件中。在这些情况下,您必须在 Looker 服务器上安装 JDBC 驱动程序,然后按照本页中的说明配置 Looker 以注册未打包的驱动程序。
“受支持?”下值为“否”的所有方言都需要安装未打包的 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 | 是 |
迪诺多 7 | 是 |
迪诺多 8 号星 | 是 |
德雷米奥 | 是 |
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 服务器。
- JAR 文件格式的 JDBC 驱动程序。方言的特定文档可能提供了关于在何处下载此文件的说明;否则,我们假设您有权访问所需的 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,这意味着缩进和间距很重要。 name
和dir_name
属性必须是 Looker 在注册 JDBC 驱动程序时要求使用的方言驱动程序符号。- 可以使用属性
file_name
(而非dir_name
),其中包含从custom_jdbc_drivers
到 JDBC 驱动程序 JAR 文件的相对路径。建议使用dir_name
,因为它可以将多个驱动程序隔离到各自的目录,并降低 Java 类发生冲突的可能性。 module_path
属性取决于特定的 JDBC 驱动程序。它应该是 Java 驱动程序类的完全限定路径。此示例使用的是通用值,但要查找驱动程序使用的特定module_path
,请参阅有关如何register驱动程序类的文档。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_drivers
mkdir custom_jdbc_drivers
在
custom_jdbc_drivers
目录中,创建一个以您方言的驱动程序符号命名的子目录。此示例使用通用值driver_symbol
。生成的目录路径将类似于looker/custom_jdbc_drivers/driver_symbol
cd 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