1,列存储格式。
2,可扩展分布式系统,Druid通常部署在大数集群中,水平扩展能力强。
3,大规模并行处理。Druid可以跨整个集群并行处理一个查询。
4,实时或批量数据导入。Druid可以实时(摄取的数据可以立即用于查询)或成批地摄取数据。
5,自我修复,自我平衡,易于操作。添加或删除服务器,集群将在后台自动重新平衡,而不需要停机。
6,不会丢失数据。一旦Druid接收了您的数据,一个副本就安全地存储在深存储中(通常是HDFS)。
7,支持索引。
8,时序数据库,基于时间分区。
9,预聚合。Druid在数据摄入时可以做一些聚合操作,节省存储空间,提高性能。
1,插入率非常高,但更新不太常见(最好不更新)。
2,大多数查询是聚合和报告查询(“分组依据”查询)。
3,查询延迟低,为100毫秒到几秒钟。
4,数据需要针对时间进行优化。
5,您可能有多个表,但每个查询只命中一个大的分布式表。查询可能会命中多个较小的“查找”表。
6,快速统计数据。
相当于关系型数据库中的表名。
每一个datasource都被时间划分为chunk(块),比如说按天划分(也有可能会被其它属性进一步划分)。每一个chunk中会包含一个或者多个segment(段)。
用于存储数据。
特点:
1,列式存储。每个列单独存储,读取数据时只需要读取需要的列不需要读取整条数据。
2,列分为三种类型
timestamp column (时间戳列)
单位:
dimension columns(纬度列)
单位:
默认单位是string,其它单位需要明确说明,格式:{“name”: “page”, “type”: “double”}。string类型的默认会创建bitmap,其它类型不能创建。
metric columns(度量列)
针对特定列进行预聚合运算
type:聚合类型
name:聚合结果列名
fieldName:针对的列
datasource_intervalStart_intervalEnd_version_partitionNum
dataSourceName_开始时间_截止时间_版本好_分区号
备注: segmentname反应到文件系统中是一个文件夹名字,没有分区的话就没有分区号,时间都是0时区,北京时间是东八区,比0时区早八小时。
对一个时间区间内所有的segments更新是原子操作,全部写成功后查询才会读取高版本数据。多个时间区间之间的更新操作不是原子操作,更新数据时最好不要跨区间。更新成功后低版本数据会很快被清理。
建议1:每个segment文件大小在300MB-700MB范围内。
建议2:每个segment文件建议包含的数据条数为500万条。
建议2 优先于建议1 ,指定数据条数能直接控制查询时一个线程处理的数据量。
查询数据的时候,历史数据节点中每个线程负责查询一个segment,如果segment太大不利于查询的并行度;如果segment太小,线程池中线程之间的调度会花费大量额外时间。
下一篇: Druid服务介绍
到此这篇druid是干嘛的(druid是什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/21265.html