HiStore

HiStore是阿里中间件技术团队研发的列式数据库产品,具备高压缩比、高并发等特点,适用于海量数据存储与分析场景。它支持实时高效的多维度自由组合检索,并提供了快速的数据加载工具。

HiStore是阿里中间件技术团队研发的数据库产品,是一款基于独特的知识网格技术的列式数据库,定位于海量数据高压缩比列式存储,是低存储成本,低维护成本,海量数据OLAP存储引擎;有效的解决了海量数据存储的成本问题,以及在百亿数据场景下支持实时高效的多维度自由组合的检索。


HiStore的优势

• 存储数据量大:TB级数据大小,百亿条记录。数据量存储主要依赖自己提供的高速数据加载工具(2TB/小时)和高数据压缩比(>10:1);
• 高压缩比:平均压缩比>10:1,远高于常规压缩算法,甚至可以达到40:1,极大地节省了数据存储空间。高数据压缩比主要依赖列式存储和patent-pending的灵活压缩算法;
• 基于列存储:无需建索引,无需分区。即使数据量十分巨大,查询速度也很快。用于数据仓库。不需要建索引,就避免了维护索引及索引随着数据膨胀的问题。把每列数据分块压缩存放,每块有知识网格节点记录块内的统计信息,代替索引,加速搜索;
• 大数据量查询性能强劲、稳定:亿级记录数条件下,同等的SELECT查询语句,速度比MyISAM、InnoDB等普通的MySQL存储引擎快30倍。高效查询主要依赖特殊设计的存储结构对查询的优化,但这里优化的效果还取决于数据库结构和查询语句的设计;
• 并行导入:基于MySQL的协议的并行导入,以及专门的入库工具;
• 高并发:实时性的多维数据检索;实时数据导入,海量数据秒级检索;为实时业务提供保障;
• 线性扩展:结合TDDL / DRDS,可实现存储容量和处理能力的线性提升;
• 系统易用:迁移成本低,无其它依赖独立部署,mysql工具及应用可直接无缝运行其上;
• 快速响应复杂的聚合类查询:适合复杂的分析性的SQL查询,如SUM,COUNT,AVG,GROUP BY;


HiStore的价值

• 节约设计开销,没有复杂的数据仓库模型设计要求(比如星状模型、雪花模型),无需要物化视图、数据分区、索引建立;
• 节省存储资源,高压缩比率通常是10:1,某些应用可能达到40:1;
• 集成利用广泛,和众多的BI套件相容,比如Pentaho的,Cognos公司,Jaspersof;
• 降低运维成本,随着数据库的逐渐增大,查询和装载性能持续保持稳定,实施和管理简单,需要极少的管理;
• 分库分表支持,结合TDDL/DRDS,可实现无缝的横向扩展功能和处理能力的线性提升;


HiStore适用场景

• 日志/事件管理系统:调用链路日志跟踪,消息轨迹分析,系统/网络安全审计记录;
• 通信行业:话单分析,用户行为分析等;
• 大数据量的分析应用:网页/在线分析,移动分析,客户行为分析,营销和广告数据;
• 数据仓库/数据集市:实时展示统计分析后数据,便于用户根据统计结果做决策;
• 对数据存储成本敏感,查询有实时性要求的场景应考虑HiStore;
• 物联网:保存大量物理节点的采集上报,状态等信息,用于后期统计处理;
• 历史评价数据,历史订单数据等;


HiStore全局功能模块图



HiStore引擎架构图



HiStore引擎架构图(与MySQL和Postgres的)



Knowledge Grid(知识网格) - 高性能的重要原因



HiStore负载流程



HiStore字符串查询



粗糙集(Rough集)

HiStore的核心技术之一,HiStore在执行查询的时候会根据知识网络(知识网格)把DN分成三类:
• 相关的DN(相关节点),满足查询条件限制的DN
• 不相关的DN(无关节点),不满足查询条件限制的DN
• 可疑的DN(可疑节点),DN里面的数据部分满足查询条件的限制


案例(商品评价管理) - 获取评价标识(按时)

SELECT COUNT(feed_id)

FROM feed_item_subscribe

WHERE seller_id = 12345 AND (gmt_modify BETWEEN str_to_date('start', '%Y%m%d%H') AND str_to_date('end', '%Y%m%d%H')) -- [start, end)

LIMIT start+1, num -- 分页




案例分析

SELECT COUNT(*) FROM employees WHERE salary > 100000 AND age < 35 AND job = 'it' AND city = 'hangzhou';




1.  查找包含salary>100000的数据包
2.  查找包含age<35的数据包
3.  查找包含job = 'it' 的数据包
4.  查找包含city = 'hangzhou' 的数据包
5.  去除所有与检索条件不相干的标记
6.  最后在确定的数据包内解压缩相关数据
7.  执行检索



同类产品

  • ○Infobright

  • ○InfiniDB

  • ○Pivotal Greenplum

  • ○Amazon RedShift

  • ○Teradata DB

  • ○HP Vertica

  • ○SAP HANA

  • ○IBM Netezza

  • ○神舟通用,kstore

  • ○华为高斯DB

  • ○达梦数据库DM7


不同数据类型的压缩比率



数据压缩比率除了和数据类型有关之外,还和数据的差异性有特别大关系,比如posFlag只有0,1,-1三种可能,这种数据显然不可能取得很好的压缩比率。


再看看act字段,act字段使用了comment lookup,比简单的char类型具有更佳的压缩比率和查询性能。comment lookup的原理其实比较像位图索引。在所有的字段当中date字段的压缩比率是最高的,最后数据的大小只有0.1M。varchar的压缩比率就比较差了,所以除非必要,不然不建议使用varchar。数据的压缩不只是和数据类型有关,数据的差异程度起了特别大的作用。比如上面表中一些字段的选择就可以优化,ip可以改为bigint类型,date甚至可以根据需要拆分成year/month/day三列。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值