Apache Hive

本页面包含有关将 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 2.3+,Looker 具有 集成级别支持
    • 对于 Apache Hive 3.1.2+,Looker 只能与 Apache Hive 3 数据库在 3.1.2 之后的版本上完全集成。这是由于 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.execution.engine=tez) 上使用 Hive 进行了测试,尽管也可以在 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 的用户账号(如果未使用身份验证,则可以是匿名账号)必须在临时架构中具有以下权限:

  • 创建表格
  • 修改表格
  • 删除表

在尝试使用 Hive 创建 PDT 之前,请先使用 JDBC 客户端进行测试。

队列

如果您希望 Looker 的查询进入特定队列,请在参数中输入队列名称。其他 JDBC 参数田野连接设置页:

?tez.queue.name=the_bi_queue

其他 Hive 参数也可以通过这种方式设置。其他 JDBC 参数田野连接设置页。

使用 user attributes,来自不同用户或不同用户组的查询可以进入不同的队列。为此,请创建一个名为类似 queue_name 的用户属性;然后,在 附加 JDBC 参数 字段中,添加以下内容:

?tez.queue.name={{ _user_attributes['queue_name'] }}

您还可以使用此功能按用户或按组自定义其他 hive-site.xml 参数。

创建 Looker 与数据库的连接

请按照以下步骤创建从 Looker 到数据库的连接:

  1. 在 Looker 的管理部分中,选择连接,然后点击添加连接
  2. 方言 下拉菜单中选择 Apache Hive 2.3+Apache Hive 3.1.2+

  3. 填写连接详情。这些设置中的大多数设置对于大多数数据库方言都是通用的。参见将 Looker 连接到您的数据库文档页面提供相关信息。以下介绍部分设置:

    • 名称: 指定连接的名称。在 LookML 项目中,您将这样引用连接。
    • 主机: 指定主机名。
    • 端口: 指定数据库端口。
    • 数据库: 指定数据库名称。
    • 用户名: 指定数据库用户名。
    • 密码: 指定数据库用户密码。
    • 启用 PDT:使用此开关启用 持久派生表。启用 PDT 后,连接 窗口将显示其他 PDT 设置和 PDT 覆盖 部分。
    • 临时数据库: 指定在本文档页面的 持久派生表 (PDT) 部分中创建的临时模式的名称。
    • PDT 构建器连接数上限:指定此连接上可能同时进行的 PDT 构建数量。将此值设置得过高可能会对查询时间产生负面影响。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
    • 附加 JDBC 参数: 添加任何其他 JDBC 参数。有关支持的参数列表,请参阅此页面上的 支持的 JDBC 参数 部分。
    • 维护计划: 指定一个cron表达式,指示 Looker 何时应该检查数据组和持久派生表。如需详细了解此设置,请参阅维护时间表文档。
    • SSL:选中此复选框可使用 SSL 连接。
    • 验证 SSL: 检查主机名验证。
    • 每个节点的最大连接数:此设置最初可以保留默认值。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
    • 连接池超时时间:此设置最初可以保留默认值。如需详细了解此设置,请参阅将 Looker 连接到数据库文档页面中的连接池超时部分。
    • SQL Runner 预缓存:如需使 SQL Runner 不预加载表信息,仅在选择表时加载表信息,请清除此选项。如需详细了解此设置,请参阅将 Looker 连接到数据库文档页面中的 SQL Runner 预缓存部分。
    • 数据库时区:指定数据库中使用的时区。如果您不想进行时区转换,请将此字段留空。如需了解详情,请参阅使用时区设置文档页面。
  4. 如需验证连接是否成功,请点击连接设置页面底部状态详情部分中的测试连接按钮。

  5. 如果 Looker 显示可以连接,请按连接以创建连接。

然后,您的数据库连接会添加到 Looker 连接 管理页面上的列表中。

支持的 JDBC 参数

对于 Apache Hive,Looker 支持在连接的其他 JDBC 参数字段中添加以下 JDBC 参数。如需了解这些参数,请参阅数据库的相关文档。

  • fetchSize
  • httpPath
  • keyStorePassword
  • password
  • principal
  • serviceDiscoveryMode
  • ssl
  • tez.queue.name
  • transportMode
  • twoWay
  • user
  • zooKeeperNamespace

功能支持

为了让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。

Apache Hive 2.3 及更高版本

自 Looker 26.16 起,Apache Hive 2.3 及更高版本支持以下功能:

功能 是否支持?
Looker (Google Cloud Core)
对称聚合
派生表
基于 SQL 的永久性派生表
原生永久性派生表
稳定视图
终止查询
基于 SQL 的透视
时区
SSL
小计
其他 JDBC 参数
区分大小写
位置类型
列表类型
百分位
不同值百分位
SQL Runner “Show Processes”
SQL Runner “Describe Table”
SQL Runner “Show Indexes”
SQL Runner “Select 10”
SQL Runner “Count”
SQL “Explain”
OAuth 2.0 凭证
上下文注释
连接池
HLL 草图
汇总感知
增量 PDT
毫秒
微秒
具体化视图
环比指标
近似计数不同
数据库内分析模型
自定义日历

Apache Hive 3.1.2+

截至 Looker 26.16 版本,Apache Hive 3.1.2+ 支持以下功能:

功能 是否支持?
Looker (Google Cloud Core)
对称聚合
派生表
基于 SQL 的永久性派生表
原生永久性派生表
稳定视图
终止查询
基于 SQL 的透视
时区
SSL
小计
其他 JDBC 参数
区分大小写
位置类型
列表类型
百分位
不同值百分位
SQL Runner “Show Processes”
SQL Runner “Describe Table”
SQL Runner “Show Indexes”
SQL Runner “Select 10”
SQL Runner “Count”
SQL “Explain”
OAuth 2.0 凭证
上下文注释
连接池
HLL 草图
汇总感知
增量 PDT
毫秒
微秒
具体化视图
环比指标
近似计数不同
数据库内分析模型
自定义日历

后续步骤

将数据库连接到 Looker 后,请为用户配置登录选项