本页介绍了如何将 Looker 连接到 Apache Hive 2.3 及更高版本和 Apache Hive 3.1.2 及更高版本。
请注意以下关于 Looker 对不同版本 Apache Hive 的支持的信息:
- Looker 支持连接到 Apache Hive 2.3 及更高版本和 Apache Hive 3.1.2 及更高版本。
- 对于 Apache Hive 3.1.2 及更高版本,只有在 3.1.2 之后的版本中,Looker 才能与 Apache Hive 3 数据库完全集成。这是因为 Hive 2.4.0 到 3.1.2 版本存在查询解析问题,导致 Looker 生成的 SQL 的解析时间非常长。
- Looker 不支持连接到 Apache Hive 2。对连接到 Apache Hive 2 的查询将返回错误。
加密网络流量
最佳做法是加密 Looker 应用与数据库之间的网络流量。不妨考虑启用安全的数据库访问文档页面中介绍的选项之一。
简介
Looker 的架构支持使用 JDBC 连接到数据库服务器。对于 Hive,这是 Thrift 服务器 (HiveServer2)。如需了解详情,请参阅 Apache 文档。
默认情况下,此服务器将监听端口 10000。
Looker 是一款交互式查询工具,因此需要与交互式 SQL 引擎搭配使用。如果 Hive 在 MapReduce 上运行(hive.execution.engine
设置为 mr
),则 Hive 返回查询结果的速度会太慢,无法满足实际需求。
Looker 已通过 Tez 上的 Hive (hive.execution.engine=tez
) 进行测试,但也可以针对 Spark 上的 Hive 运行 Looker。Hive 1.1 中添加了 Spark 支持。(Looker 支持 Hive 1.2.1 及更高版本。)
永久性派生表 (PDT)
如需使用 Hive 连接在 Looker 中启用永久派生表 (PDT),请创建一个供 Looker 使用的临时架构。以下示例命令可用于创建 looker_scratch
架构:
CREATE SCHEMA looker_scratch;
Looker 用于连接到 Hive 的用户账号(如果不使用身份验证,则可以是匿名的)必须在测试架构中具有以下能力:
- 创建表
- 修改表
- 舍弃表
请先使用 JDBC 客户端进行测试,然后再尝试使用 Hive 创建 PDT。
队列
如果您希望将来自 Looker 的查询发送到特定队列,请在连接设置页面的其他 JDBC 参数字段中输入队列名称参数:
?tez.queue.name=the_bi_queue
您可以通过这种方式在连接设置页面上的其他 JDBC 参数字段中设置其他 Hive 参数。
借助用户属性,来自不同用户或不同用户群组的查询可能会进入不同的队列。为此,请创建一个名为 queue_name
的用户属性;然后,在其他 JDBC 参数字段中,添加以下内容:
?tez.queue.name={{ _user_attributes['queue_name'] }}
您还可以使用此方法按用户或群组自定义其他 hive-site.xml
参数。
创建 Looker 与数据库的连接
请按照以下步骤创建 Looker 与数据库之间的连接:
- 在 Looker 的管理部分中,选择连接,然后点击添加连接。
从方言下拉菜单中选择 Apache Hive 2.3+ 或 Apache Hive 3.1.2+。
填写连接详情。大多数设置对于大多数数据库方言都是通用的。如需了解详情,请参阅将 Looker 连接到数据库文档页面。下面介绍了其中一些设置:
- 名称:指定连接的名称。您将以这种方式在 LookML 项目中引用该连接。
- 主机:指定主机名。
- 端口:指定数据库端口。
- 数据库:指定数据库名称。
- 用户名:指定数据库用户名。
- 密码:指定数据库用户密码。
- 启用 PDT:使用此切换开关可启用永久性派生表。启用 PDT 后,连接窗口会显示其他 PDT 设置和 PDT 替换项部分。
- 临时数据库:指定在此文档页面的永久派生表 (PDT) 部分中创建的临时架构的名称。
- PDT 构建器连接数上限:指定此连接上可能的并发 PDT 构建数量。将此值设置得过高可能会对查询时间产生负面影响。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
- 其他 JDBC 参数:指定任何其他 JDBC 字符串参数。
- 数据组和 PDT 维护时间表:指定一个
cron
表达式,用于指示 Looker 何时应检查数据组和永久性派生表。数据组和 PDT 维护时间表文档。 - SSL:选中此复选框以使用 SSL 连接。
- 验证 SSL:检查是否已进行主机名验证。
- 每个节点的连接数上限:此设置最初可以保留默认值。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
- 连接池超时:此设置最初可以保留默认值。如需详细了解此设置,请参阅将 Looker 连接到数据库文档页面的连接池超时部分。
- SQL Runner 预缓存:如需让 SQL Runner 不预加载表信息,仅在选择表时加载表信息,请取消选中此选项。如需详细了解此设置,请参阅将 Looker 连接到数据库文档页面的 SQL Runner 预缓存部分。
- 数据库时区:指定数据库中使用的时区。如果您不想进行时区转换,请将此字段留空。如需了解详情,请参阅使用时区设置文档页面。
如需验证连接是否成功,请点击测试。如需了解问题排查信息,请参阅测试数据库连接文档页面。
如需保存这些设置,请点击连接。
功能支持
为了让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
Apache Hive 2.3 及更高版本
从 Looker 25.0 开始,Apache Hive 2.3 及更高版本支持以下功能:
功能 | 是否支持? |
---|---|
支持级别 | 集成 |
Looker (Google Cloud Core) | 否 |
对称汇总 | 否 |
派生表 | 是 |
永久性 SQL 派生表 | 是 |
永久性原生派生表 | 是 |
稳定视图 | 是 |
查询终止 | 是 |
基于 SQL 的转换 | 否 |
时区 | 是 |
SSL | 是 |
小计 | 是 |
JDBC 其他参数 | 是 |
区分大小写 | 是 |
位置类型 | 是 |
列表类型 | 是 |
百分位 | 是 |
不同值百分位 | 否 |
SQL Runner 显示进程 | 否 |
SQL Runner 中的“Describe Table”命令 | 是 |
SQL Runner 显示索引 | 是 |
SQL Runner Select 10 | 是 |
SQL Runner 计数 | 是 |
SQL 说明 | 是 |
Oauth 凭据 | 否 |
上下文注释 | 是 |
连接池 | 否 |
HLL 草图 | 否 |
汇总认知度 | 是 |
增量 PDT | 否 |
毫秒 | 是 |
微秒 | 是 |
具体化视图 | 否 |
近似计数不同 | 否 |
Apache Hive 3.1.2 及更高版本
从 Looker 25.0 开始,Apache Hive 3.1.2 及更高版本支持以下功能:
功能 | 是否支持? |
---|---|
支持级别 | 支持 |
Looker (Google Cloud Core) | 是 |
对称汇总 | 否 |
派生表 | 是 |
永久性 SQL 派生表 | 是 |
永久性原生派生表 | 是 |
稳定视图 | 是 |
查询终止 | 是 |
基于 SQL 的转换 | 否 |
时区 | 是 |
SSL | 是 |
小计 | 是 |
JDBC 其他参数 | 是 |
区分大小写 | 是 |
位置类型 | 是 |
列表类型 | 是 |
百分位 | 是 |
不同值百分位 | 否 |
SQL Runner 显示进程 | 否 |
SQL Runner 中的“Describe Table”命令 | 是 |
SQL Runner 显示索引 | 否 |
SQL Runner Select 10 | 是 |
SQL Runner 计数 | 是 |
SQL 说明 | 是 |
Oauth 凭据 | 否 |
上下文注释 | 是 |
连接池 | 否 |
HLL 草图 | 否 |
汇总认知度 | 是 |
增量 PDT | 否 |
毫秒 | 是 |
微秒 | 是 |
具体化视图 | 否 |
近似计数不同 | 否 |
后续步骤
将数据库连接到 Looker 后,请为用户配置登录选项。