第四章:druid.io的功能

目前druid.io的版本已经发展到0.7.1了,其功能也在不断的完善中,功能的基本描述及使用在官方文档上面已经有很详细的介绍。

这里将不对功能做过多的描述,重点是在用的过程和怎么用。


目前druid.io提供了几个查询类型功能:
1、groupby
2、search
3、segment Metadata
4、timeseries
5、topN
6、datasource metadata
其中1、2、4、5属于使用功能;3、6属于管理功能。
在使用功能范围内,使用非常频繁的是1、4,然后是2、5。
先说简单的使用:
对于search应用,类似于在输入框里进行自动补全功能,不过druid.io支持的多个维度匹配和对多个value的匹配,个人觉得search的场景有很多替代方案。 多个维度search做过滤时,是没有记录关联性的。对于另一个topN来说,应用场景多数是排行榜这样的统计,例如:统计下载量排名前十的APP,topN是groupby功能的一个特例,在druid.io单独作为一个功能是对其进行了优化处理。关于排序的方式也有很多细节的区别,例如:数字排序、lexicographic、AlphaNumberic等。 AlphaNumberic方式功能很强,如下:
Traditional

Alphanum
z1.doc
z10.doc
z100.doc
z101.doc
z102.doc
z11.doc
z12.doc
z13.doc
z14.doc
z15.doc
z16.doc
z17.doc
z18.doc
z19.doc
z2.doc
z20.doc
z3.doc
z4.doc
z5.doc
z6.doc
z7.doc
z8.doc
z9.doc
        

z1.doc
z2.doc
z3.doc
z4.doc
z5.doc
z6.doc
z7.doc
z8.doc
z9.doc
z10.doc
z11.doc
z12.doc
z13.doc
z14.doc
z15.doc
z16.doc
z17.doc
z18.doc
z19.doc
z20.doc
z100.doc
z101.doc
z102.doc
目前的topN只支持单维度。
关于timeseries的方式,也可以认为是 groupby功能的一个特例,主要针对没有维度选择的场景,这样可以提高计算和响应时间。

重点说下groupby类型,因为它是其它查询类型延伸的基础,整个groupby类型,包含维度选择、统计指标选择、过滤条件、时间范围及时区、排序方式、结果集返回大小,数据集选择。

维度选择属性dimensions
对于维度,细节可以做到展示名称与存储名称分离;提供维度值转换后的统计方式,例如:我要按ip前三段来做统计
click_ip
click 
conversion
119.30.23.111
1
0
119.30.23.121
1
0
119.30.23.130
0
1
201.22.308.55
1
0
202.67.22.306
1
0
202.67.22.307
1
0
202.67.22.308
0
1
119.20.11.35
1
0
按前三段统计结果如下:
click_ip
click 
conversion
119.30.23
2 1
201.22.308
1
0
202.67.22
2
1
119.20.11
1
0
关于维度的值怎么转换,文档有详细的介绍js方式、正则方式等都有(在早期的版本中js的转换功能没有实现,在我们后面集成的0.6.121.1版本里已经实现了),目前新的版本(0.7.1.1)增加了对时间的处理。

过滤条件选择属性filters
注意:filters的处理是针对dimension的。
filters支持层级条件(通过and和or两个逻辑操作符进行),也是支持等于、js方式、正则方式进行判断。这里延伸出来一个问题就是对当前维度过滤,并且当前维度有转换逻辑,那么这两个逻辑在一起谁先执行呢?
如果需要对aggregations过滤使用Having语法功能。

统计指标属性aggregations和postaggregations。
我们先来了解下aggregations,引擎提供了最基础的方式:count、longsum、doublesum、min、max。
druid.io在针对aggregations的支持非常强悍,因为使用了js的引擎,所以能够非常灵活的应对不同的业务计算场景(包括复杂的计算逻辑),而且是配置化(个人使用感觉类似于fork/join和MR),并且也支持常量,dimension和metrics都可以参与其中。

postaggregations是在aggregations的基础之上在进行的处理,主要是对指标进行一个横向的二次计算处理,这两部分很重要,需要在实战中好好体会。
时间范围其实关联两方面,一个跟数据存储相关;一个跟数据查询相关;另一个特点就是支持时区转换查询特别适合业务范围属于全球化的公司。

结果集的默认返回是全量(这里涉及到对数据量的控制),当然为了快速响应是有一个limit的设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值