首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 IBM Big SQL over HBase,第 2 部分 查询处理和商业智能报告(1)简介

使用 IBM Big SQL over HBase,第 2 部分 查询处理和商业智能报告(1)简介

简介本系列的第 1 部分重点介绍了创建表和各种加载数据的方式。第 2 部分的目的是对以下操作进行演示:
  • 查询 Big SQL HBase 表
  • 一个用于运行简单报告的商业智能和报告工具,展示了 Big SQL JDBC 客户端驱动程序
本系列涵盖大量的内容,所以我们省略了一些基本信息。我们假设读者至少对 InfoSphere BigInsights、HBase 和 JAQL                        有基本的了解(有关这些技术的更多信息,请参见 )。您还可以  本系列中使用的样本数据。
A 部分. 查询处理要有效地查询 HBase,则需要尽可能多地向服务器推送应用程序,包括  projection                        push-down,或者提取查询所需的最少的列。在扫描范围、过滤器、索引查找内容的时候,还应该将查询谓词下推到服务器。设置扫描范围功能非常强大,因为它有助于缩小需要扫描的区域。利用完整的行键,HBase                        可以快速定位区域和行。利用部分键和键范围(上限或下限,或两者同时使用),HBase 可以缩小区域,或消除落在该范围之外的区域。
索引有助于利用键进行查找,但执行这样的查找时需要使用两个表。过滤器不能消除区域,但有些过滤器具有在某个区域内跳过的能力。它们有助于缩小返回到客户端的数据集。
利用有限元数据和有关 HBase 表的统计信息来支持多种提示,这有助于提高查询的效率。
数据为了证明从 Big SQL 下推的影响, 将使用本节中介绍的模式。该示例使用了一个 tpch                        表:一个包含使用下面的映射定义的 150,000 个行的 orders 表。
从 Big SQL shell 发出以下命令来创建 orders 表。表中有一个多对一映射;还有一个复合键和密度列(density column)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE HBASE TABLE ORDERS
(
O_ORDERKEY         BIGINT,
O_CUSTKEY          INTEGER,
O_ORDERSTATUS      VARCHAR(1),
O_TOTALPRICE       FLOAT,
O_ORDERDATE        TIMESTAMP,
O_ORDERPRIORITY    VARCHAR(15),
O_CLERK            VARCHAR(15),
O_SHIPPRIORITY     INTEGER,
O_COMMENT          VARCHAR(79)
)
column mapping
(
key      mapped by (O_CUSTKEY,O_ORDERKEY),
cf:d     mapped by (O_ORDERSTATUS,O_TOTALPRICE,O_ORDERPRIORITY,
                    O_CLERK,O_SHIPPRIORITY,O_COMMENT),
cfd    mapped by (O_ORDERDATE)
)
default encoding binary;




通过发出以下命令将样本数据加载到新创建的表。
1
2
LOAD HBASE DATA INPATH 'tpch/orders.10p.tbl'
DELIMITED FIELDS TERMINATED BY '|' INTO TABLE ORDERS;




1
150000 rows affected (total:21.52s)




下一节将讨论来自 Big SQL 日志文件的输出,演示要检查哪些内容来确认来自 Big SQL                        的下推。要查看日志消息,可能需要先使用下面的命令更改日志记录的级别。
1
2
log com.ibm.Jacl.modules.hcat.mapred.JaclHBaseInputFormat info;
log com.ibm.Jacl.modules.hcat.hbase info;




在 HBase                        级别上将列下推。在多对一映射中,如果查询只需要使用包含许多部分的某个密度列中的一部分,则会返回密度列的整个值。因此,将通常会一起查询的列打包在一起将会获得更高的效率。
使用以下命令 来跟踪 Big SQL 日志文件。
备注:保持会话在一个终端中一直处于打开状态,直至练习完成。您通常需要通过该会话查看在运行某些命令时的后台操作。
1
tail -f /var/ibm/biginsights/bigsql/logs/bigsql.log

返回列表