使用这些说明的方言
Looker 可连接到以下 Impala 数据库:
- Cloudera Impala 3.1 及更高版本
- Cloudera Impala 3.1 及更高版本(使用原生驱动程序)
- Cloudera Impala(使用原生驱动程序)
加密网络流量
最佳做法是对 Looker 应用与数据库之间的网络流量进行加密。考虑使用启用安全的数据库访问文档页面上介绍的某个选项。
配置 Looker 以连接到 Cloudera Impala
Looker 通过 JDBC 连接到数据库。对于 Impala 数据库,Looker 默认连接到在端口 21050 上运行 impalad
守护进程的服务器。如需了解详情,请参阅 Cloudera 网站上有关配置 Impala 以使用 JDBC 的文档部分。
在 Looker 的管理部分中,选择连接,然后点击添加连接。
Looker 连接配置取决于所使用的安全性:
连接到没有 Kerberos 或用户身份验证的集群
如需配置不使用 Kerberos 或用户身份验证的连接,请按以下步骤操作:
- 在连接设置页面上,将用户名和密码字段留空。(字段名称旁边的
*
表示这些字段是必填字段,但实际上并非如此。) - 在其他 JDBC 参数字段中,输入
;auth=noSasl
。
验证连接字符串
如需验证日志文件中的 JDBC 连接字符串,请在 Looker 的管理面板中,点击左侧菜单中的日志。然后,按 jdbc
或 noSasl
等字词过滤日志。日志行可能如下所示:
jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl
如需详细了解如何配置 Impala 数据库以使用 JDBC,请参阅 Cloudera 外部网站上的相关文档。
连接到需要 LDAP 身份验证的集群
对于需要 LDAP 身份验证的集群(包括使用 Apache Sentry 和 Kerberos 的集群),请在连接设置页面上输入有权访问 Looker 将要访问的架构的用户名和密码。
连接到受 Kerberos 保护但未使用 Apache Sentry 的集群
Looker 分析师团队可能需要协助正确配置此连接。
通常,Cloudera 环境中的 Kerberos 身份验证是通过 Apache Sentry 处理的。如需了解详情,请参阅 Cloudera 文档。
如果您想将 Looker 配置为使用 Kerberos 身份验证直接连接到 Impala 数据库,请按照本页中的步骤操作。
设置 Kerberos 客户端配置
首先,您需要确保在 Looker 机器上安装了多款软件,并且存在多个文件。
Kerberos 客户端
尝试运行 kinit
,验证 Looker 机器上是否已安装 Kerberos 客户端。如果未安装 Kerberos 客户端,请安装 Kerberos 客户端的二进制文件。
例如,在 Redhat/CentOS 上,此命令为:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
必须在 Looker 机器上以及 Looker 用户的 PATH
和 JAVA_HOME
中安装 Java 8。如有必要,请在 looker
目录中本地安装。
Java 加密扩展
从 Oracle 网站下载并安装适用于 Java 8 的 Java Cryptography Extension (JCE)。
- 找到 Java 安装的
jre/lib/security
目录。 - 从相应目录中移除以下 JAR 文件:
local_policy.jar
和US_export_policy.jar
。 - 将这两个文件替换为 JCE 无限强度管辖区政策文件下载中包含的 JAR 文件。
虽然可以搭配已安装 JCE 的 Java 8 之前的版本使用,但不建议这样做。
- 找到 Java 安装的
更新
~looker/.bash_profile
中的JAVA_HOME
和PATH
,使其指向正确的 Java 和source ~/.bash_profile
安装,或者重新登录。使用
java -version
验证 Java 版本。使用
echo $JAVA_HOME
验证JAVA_HOME
环境变量。
gss-jaas.conf
在 looker
目录中创建一个包含以下内容的 gss-jaas.conf
文件:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
如果测试需要,可以按如下方式将 debug=true
添加到此文件中:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
运行 Looker 的服务器也应具有有效的 krb5.conf
文件。默认情况下,此文件位于 /etc/krb5.conf
中。如果它位于其他位置,则必须在环境(shell 环境中的 KRB5_CONFIG
)中指明。
您可能需要从其他 Kerberos 客户端机器复制此文件。
lookerstart.cfg
通过在 looker
目录(包含 looker
启动脚本的同一目录)中创建一个名为 lookerstart.cfg
的文件来指向 gss-jaas.conf
和 krb5.conf
文件,该文件包含以下代码行:
JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
LOOKERARGS=""
如果 krb5.conf
文件不在 /etc/krb5.conf
中,则还需要添加以下变量:
-Djava.security.krb5.conf=/path/to/krb5.conf
如需进行调试,请添加以下变量:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
然后使用 ./looker restart
重启 Looker。
使用 Kerberos 进行身份验证
用户身份验证
如果
krb5.conf
不在/etc/
中,请使用环境变量KRB5_CONFIG
来指明其位置。运行命令
klist
,确保 Kerberos 票据缓存中存在有效票据。如果没有工单,请运行
kinit username@REALM
或kinit username
来创建工单。与 Looker 搭配使用的账号很可能采用无头模式,因此您可以从 Kerberos 获取 keytab 文件,以存储凭据供长期使用。使用
kinit -k -t looker_user.keytab username@REALM
等命令获取 Kerberos 票据。
自动续订工单
设置一个定期运行的 Cron 作业,以在 Kerberos 票据缓存中保留有效的票据。运行此命令的频率取决于集群的配置。klist
应指示票证的失效时间。
创建 Looker 与数据库的连接
在 Looker 的管理部分中,选择连接,然后点击添加连接。
按如下方式填写连接详细信息(如需了解详情,请参阅将 Looker 连接到数据库文档页面):
- 名称:连接的名称。这是在 LookML 模型中引用连接的方式。
方言:Cloudera Impala 3.1 及更高版本、Cloudera Impala 3.1 及更高版本(含原生驱动程序)或 Cloudera Impala(含原生驱动程序)。
主机:主机名。
端口:数据库端口(默认值为 21050)。
Database:将要建模的默认架构/数据库。如果未为表指定数据库,则系统会假定为该数据库。
用户名:将此项留空。
密码:将此字段留空。
启用 PDT:使用此切换开关可启用永久性派生表。启用 PDT 后,“连接”窗口会显示其他 PDT 设置和 PDT 覆盖部分。
临时数据库:用于存储 PDT 的临时架构/数据库。必须预先创建。
其他 JDBC 参数:JDBC 字符串的其他参数。 在此处指明 Kerberos 主账号,例如
;principal=impala/impala.company.com@REALM
。三部分委托是标准委托。第一个 (impala
) 通常是服务的名称,最后一个 (REALM
) 通常是网域。SSL:选中此复选框可使用 SSL 连接。 如果您的 SSL 证书不是由广受认可的证书授权机构颁发的,并且您使用的是自定义证书,则需要执行以下操作:
- 将证书文件复制到 Looker 服务器。此功能仅适用于客户自托管的 Looker 部署。
- 将以下参数添加到其他 JDBC 参数字段中:
sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword
如需详细了解如何为 Impala 数据库构建正确的 JDBC 字符串,请参阅 Cloudera 文档。
- 数据库时区:数据库中存储的数据的时区。通常,此字段可以留空或设置为 UTC。
最佳实践是,让服务器名称(本例中为 impala.company.com
)成为服务器的规范名称,并且其 IP 地址的反向 DNS 查找结果为该名称。不过,服务器名称应与 Kerberos 域控制器中列出的名称一致:
nslookup servername # get canonical server name and IP address
nslookup ipaddress # get the canonical name back
有时,服务器名称会设置为主机名,而不是完全限定域名。在这种情况下,可能需要修改 /etc/hosts
和 /etc/nsswitch.conf
文件,以确保反向查找按预期解析。
测试连接,确保连接配置正确无误。
调试
- Cloudera 关于调试 Impala 身份验证问题的文档。
- 向配置添加调试信息后,额外的调试信息最终会出现在
looker/logs/looker.log
中。
资源
PDT 的权限
连接到临时架构以使用持久性派生表 (PDT) 的用户必须具有读取/写入权限。
功能支持
如需让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
Cloudera Impala(使用原生驱动程序)
截至 Looker 25.10,Cloudera Impala with Native Driver 支持以下功能:
功能 | 是否支持? |
---|---|
支持级别 | 支持 |
Looker (Google Cloud Core) | 否 |
对称聚合 | 否 |
派生表 | 是 |
基于 SQL 的永久性派生表 | 是 |
永久性原生派生表 | 是 |
稳定视图 | 是 |
终止查询 | 是 |
基于 SQL 的透视 | 是 |
时区 | 是 |
SSL | 是 |
小计 | 否 |
JDBC 其他参数 | 是 |
区分大小写 | 是 |
位置类型 | 是 |
列表类型 | 否 |
百分位 | 否 |
不同值百分位 | 否 |
SQL Runner“显示进程” | 否 |
SQL Runner“描述表” | 是 |
SQL Runner 显示索引 | 否 |
SQL Runner 选择 10 | 是 |
SQL Runner 计数 | 是 |
SQL Explain | 是 |
OAuth 2.0 凭据 | 否 |
上下文注释 | 是 |
连接池 | 否 |
HLL 草图 | 否 |
汇总认知度 | 是 |
增量 PDT | 否 |
毫秒 | 是 |
微秒 | 是 |
具体化视图 | 否 |
与前一时间段相比的指标 | 否 |
近似计数不同 | 是 |
Cloudera Impala 3.1 及更高版本
自 Looker 25.10 起,Cloudera Impala 3.1 及更高版本支持以下功能:
功能 | 是否支持? |
---|---|
支持级别 | 支持 |
Looker (Google Cloud Core) | 是 |
对称聚合 | 是 |
派生表 | 是 |
基于 SQL 的永久性派生表 | 是 |
永久性原生派生表 | 是 |
稳定视图 | 是 |
终止查询 | 是 |
基于 SQL 的透视 | 是 |
时区 | 是 |
SSL | 是 |
小计 | 否 |
JDBC 其他参数 | 是 |
区分大小写 | 是 |
位置类型 | 是 |
列表类型 | 否 |
百分位 | 否 |
不同值百分位 | 否 |
SQL Runner“显示进程” | 否 |
SQL Runner“描述表” | 是 |
SQL Runner 显示索引 | 否 |
SQL Runner 选择 10 | 是 |
SQL Runner 计数 | 是 |
SQL Explain | 是 |
OAuth 2.0 凭据 | 否 |
上下文注释 | 是 |
连接池 | 否 |
HLL 草图 | 否 |
汇总认知度 | 是 |
增量 PDT | 否 |
毫秒 | 是 |
微秒 | 是 |
具体化视图 | 否 |
与前一时间段相比的指标 | 否 |
近似计数不同 | 是 |
Cloudera Impala 3.1 及更高版本(使用原生驱动程序)
自 Looker 25.10 起,使用原生驱动程序的 Cloudera Impala 3.1 及更高版本支持以下功能:
功能 | 是否支持? |
---|---|
支持级别 | 支持 |
Looker (Google Cloud Core) | 否 |
对称聚合 | 是 |
派生表 | 是 |
基于 SQL 的永久性派生表 | 是 |
永久性原生派生表 | 是 |
稳定视图 | 是 |
终止查询 | 是 |
基于 SQL 的透视 | 是 |
时区 | 是 |
SSL | 是 |
小计 | 否 |
JDBC 其他参数 | 是 |
区分大小写 | 是 |
位置类型 | 是 |
列表类型 | 否 |
百分位 | 否 |
不同值百分位 | 否 |
SQL Runner“显示进程” | 否 |
SQL Runner“描述表” | 是 |
SQL Runner 显示索引 | 否 |
SQL Runner 选择 10 | 是 |
SQL Runner 计数 | 是 |
SQL Explain | 是 |
OAuth 2.0 凭据 | 否 |
上下文注释 | 是 |
连接池 | 否 |
HLL 草图 | 否 |
汇总认知度 | 是 |
增量 PDT | 否 |
毫秒 | 是 |
微秒 | 是 |
具体化视图 | 否 |
与前一时间段相比的指标 | 否 |
近似计数不同 | 是 |
后续步骤
将数据库连接到 Looker 后,请为用户配置登录选项。