双11当天处理数据5PB!揭秘HiStore数据库

简介: 阿里巴巴电商业务中历史数据存储与查询相关业务, 大量采用基于列存储技术的HiStore数据库,双11当天HiStore引擎处理数据记录超过6万亿条、原始存储数据量超过5PB。从单日数据处理量上看,该系统已成为全球最大列存储数据库。

阿里巴巴电商业务中历史数据存储与查询相关业务, 大量采用基于列存储技术的HiStore数据库,双11当天HiStore引擎处理数据记录超过6万亿条、原始存储数据量超过5PB。从单日数据处理量上看,该系统已成为全球最大列存储数据库。

“历史数据查询和分析,数据仓库和数据挖掘类系统,都是典型的查询密集型业务,随着数据驱动模式在业务中的大量使用,这样的需求会越来越多。”HiStore项目负责人叶建林表示,“刚刚过去的双11全民购物狂欢节,包括天猫、淘宝和菜鸟网络在内的阿里巴巴核心业务平台,产生了大量的商品、用户及物流数据,这些海量数据查询和分析的主要特点是:数据实时插入和更新少;多维查询和并发查询量大。”

面对这样的应用场景,传统的行存储数据库产品一直不能很好地解决数据量大,多维查询性能低等问题,阿里巴巴自研分布式低成本分析型数据库HiStore凭借高性价比、高压缩比、数据处理量大,以及独特的列存储技术特点,为对海量历史数据存储和查询有强烈需求的客户提供了功能完备的技术解决方案。

依托阿里中间件(Aliware),面对世界级挑战
image.png

HiStore全局功能模块图

“作为一款面向分析型应用领域的数据库产品,HiStore架构设计充分满足了海量数据查询和分析需求,以列为基本存储方式和数据运算对象,结合列数据压缩处理、并行处理、Snapshot并发控制、智能索引等数据处理技术,在成本、查询、统计、分析以及批量加载性能上具备突出的优势。”叶建林介绍,HiStore的研发依托于阿里中间件(Aliware)团队,该团队面对全球规模最大的阿里电商平台所带来的巨大流量和海量数据,以及电商平台固有的稳定性要求,去处理各种复杂业务场景,迎接世界级的技术挑战。

OLAP场景HiStore性能突出

据了解,目前市场上列存储数据库产品也有不少,诸如SAP HANA、HP Vertica、Teradata DB等商业产品,还有InfiniDB,MonetDB、ClickHouse等开源项目。叶建林表示,HiStore虽是后来者,但产品功能十分丰富,支持高性能多维查询,多核并发查询,DML支持,alter table,临时表支持,实例高可用,异构数据源导入,高速数据Load,压缩算法和MVCC等多项特性。相比传统的事务型关系数据库,HiStore在OLAP场景下具有无可比拟的优势:

1、 大幅降低硬件成本:依靠列存储和透明压缩技术,能有效对数据进行压缩; 常规场景下平均压缩比>10:1,远高于常规压缩算法,部分场景压缩比甚至可达40:1,极大地节省了数据存储空间;

2、 存储数据量大:依靠高速数据加载工具(2TB/小时)和高压缩比(>10:1)数据处理技术,可实现TB级数据大小,百亿条记录的存储解决方案;

3、 支持高并发和实时多维度查询:比如支持任意列组合的多维ad-hoc查询,实现海量数据下秒级检索能力;

4、 符合MySQL技术生态的标准,完全兼容MySQL语法和通讯协议,无缝支持绝大部分MySQL生态圈的工具和应用;

5、 线性扩展:结合TDDL/DRDS,可实现存储容量和处理能力的线性提升;

6、 在海量历史数据存储与查询等业务场景下, 和业界竞品相比,HiStore的查询性能和存储性价比优势明显:亿级别数据场景下,查询性能相当的情况下存储成本仅为infinidb的1/3,单机数据加载速度是infinidb两倍。

高压缩比+列存储,鹰眼系统硬件成本降低90%

作为列存储数据库,高效的压缩算法是其降低整体成本的利器,叶建林表示,阿里内部最重要的历史数据存储和查询系统-- EagleEye(鹰眼),之前日处理记录数万亿条,日产生数据数百TB,采用HiStore后,利用其高速写入和高压缩比能力,集群机器规模缩减90%,压缩比例达到20:1,成本得到大幅削减。此外,集团安全部风险控制中心的数据存储,采用HiStore后平均压缩比10:1,并可提供毫秒级多维度聚合分析查询。

实时多维查询,人社上云查询性能优秀

支持实时多维度查询是HiStore的另一个重要优势。从2016年2月起,人社部信息中心组织核心厂商共同研发人社部LEAF6云应用平台。据叶建林介绍,在阿里云提供的人社上云测试方案中,HiStore协助完成上云之后几百个数据分库的建立、数据导入,数据同步等各种复杂配置及性能调优(分库分表、小表广播、异构索引等)。在5000万社保人口,大概800亿条记录,单表记录330亿条的数据背景下,测试查询以在线分组统计,多表join为主,HiStore性能表现优秀。

针对不断增长的海量数据存储和查询需求及更苛刻的业务场景,作为阿里中间件(Aliware)其中一员的HiStore也面临诸多挑战,未来将持续深挖高性能,高性价比,高可用的三高优势,依托阿里集团内外广泛的业务场景不断打磨提升产品质量; 同时产品服务化体系也会不断完善,推出人性化管控平台,打造企业级互联网产品。

目录
相关文章
|
2月前
|
存储 JSON 关系型数据库
【干货满满】解密 API 数据解析:从 JSON 到数据库存储的完整流程
本文详解电商API开发中JSON数据解析与数据库存储的全流程,涵盖数据提取、清洗、转换及优化策略,结合Python实战代码与主流数据库方案,助开发者构建高效、可靠的数据处理管道。
|
18天前
|
存储 数据管理 数据库
数据字典是什么?和数据库、数据仓库有什么关系?
在数据处理中,你是否常困惑于字段含义、指标计算或数据来源?数据字典正是解答这些问题的关键工具,它清晰定义数据的名称、类型、来源、计算方式等,服务于开发者、分析师和数据管理者。本文详解数据字典的定义、组成及其与数据库、数据仓库的关系,助你夯实数据基础。
数据字典是什么?和数据库、数据仓库有什么关系?
|
5月前
|
存储 缓存 数据库
数据库数据删除策略:硬删除vs软删除的最佳实践指南
在项目开发中,“删除”操作常见但方式多样,主要分为硬删除与软删除。硬删除直接从数据库移除数据,操作简单、高效,但不可恢复;适用于临时或敏感数据。软删除通过标记字段保留数据,支持恢复和审计,但增加查询复杂度与数据量;适合需追踪历史或可恢复的场景。两者各有优劣,实际开发中常结合使用以满足不同需求。
372 4
|
28天前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
114 0
|
3月前
|
存储 SQL Java
数据存储使用文件还是数据库,哪个更合适?
数据库和文件系统各有优劣:数据库读写性能较低、结构 rigid,但具备计算能力和数据一致性保障;文件系统灵活易管理、读写高效,但缺乏计算能力且无法保证一致性。针对仅需高效存储与灵活管理的场景,文件系统更优,但其计算短板可通过开源工具 SPL(Structured Process Language)弥补。SPL 提供独立计算语法及高性能文件格式(如集文件、组表),支持复杂计算与多源混合查询,甚至可替代数据仓库。此外,SPL 易集成、支持热切换,大幅提升开发运维效率,是后数据库时代文件存储的理想补充方案。
|
6月前
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
|
5月前
|
人工智能 关系型数据库 分布式数据库
让数据与AI贴得更近,阿里云瑶池数据库系列产品焕新升级
4月9日阿里云AI势能大会上,阿里云瑶池数据库发布重磅新品及一系列产品能力升级。「推理加速服务」Tair KVCache全新上线,实现KVCache动态分层存储,显著提高内存资源利用率,为大模型推理降本提速。
|
3月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
601 1
|
4月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
3月前
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
218 62

热门文章

最新文章