《焦方飞:阿里巴巴海量数据场景下的列式数据库HiStore(23页).pdf》由会员分享,可在线阅读,更多相关《焦方飞:阿里巴巴海量数据场景下的列式数据库HiStore(23页).pdf(23页珍藏版)》请在三个皮匠报告上搜索。
1、An OLAP Columnar Database in the Context of Alibabas Massive Data-HiStoreAlibaba Database Technical Specialist,Jiao Fangfei阿里巴巴海量数据场景下的列式数据库HiStore阿里巴巴数据库技术专家焦方飞Why HiStore案例分析231技术介绍Why HiStore痛点在哪里(业界)存储成本查询效率数据维度实时性数据迁移痛点在哪里(集团内)业务层面以集团内某日志系统为例,每日PB级别的量级,评估需要数千台mysql存储成本存储领域有几万到几十万台物理机,存储的离线数据,历史
2、数据、日志、轨迹、用户行为分析数据,占据大概一半左右性能要求如此多的数据,如何在减低成本的同时保证高性能的分析HiStore 高性能分析型列式数据库高性能OLAP多维Ad-hoc查询性能强劲快速响应复杂聚合类查询高性能数据导入海量数据低成本PB级数据存储超高压缩比运维成本低,迁移成本低MySQL生态完全兼容MySQL生态易用性好以十分之一的成本,获得十倍的性能提升!HiStore详细特性OLAP引擎 支持任意Column组合的多维ad-hoc查询.单机可以支持百亿+数据量的秒级聚合查询.查询计划并发执行(SMP),显著降低查询响应时间.列式(Column-based)存储 海量数据扫描时,数据
3、按列进行细粒度访问,避免不必要的磁盘IO消耗。基于当前列的元信息进行高效存储优化.基于知识网格的查询优化与执行器 不依赖传统索引结构.即使数据量十分巨大,查询速度也很快 大数据量查询性能强劲 知识网格在数据装载以及查询过程中自动维护,无需人工介入.高效压缩算法 压缩率在 1:1040 之间.极大节省数据存储成本.针对不同数据类型提供多种压缩算法.标准MySQL协议和语法支持 客户端应用迁移成本低,无需修改现有业务代码.结合TDDL/DRDS实现存储容量和处理能力的线性提升高性能数据导入 二进制流导入支持 降低HiStore Engine负载(CPU Offload).多语言客户端支持.案例分析
4、HiStore适用场景数据分析商业智能用户画像用户行为历史数据归档数据日志/轨迹记录/监控数据仓库高德热力图(用户画像)项目介绍将人地关系数据和用户画像数据进行连接,可以为地产,商铺等客户选址提供极大的帮助。主要包括热力图即任何一个地方在每个小时的人流变化的热力图像.业务难点及痛点数据量大,每天数百亿条,总量几万亿;导入速度要求高:每天数据导入需要2小时内完成,即2小时导入数百亿条数据;针对万亿级别做复杂聚合操作(count distinct,in,group by order by),业务需要确保查询时间在10s以内;HiStore价值与意义秒级别的复杂聚合查询;高性能数据导入,数百亿增量数
5、据在两小时完成;高压缩比,机器成本低;御膳房(OLAP&ADhoc查询)项目介绍御膳房策略中心是集团“品销全营销,uni-marketing”项目中的一部分,产品定位是品牌发展策略的支持平台,通过海量实时数据,帮助品牌商更高效,更明智地做出品牌发展相关的商业决策,1500W条/日;业务难点及痛点 商品属性的维度是动态的,需要支持多维查询 查询的数据量很大,涉及到8亿数据和1亿数据之间join 目前存储成本太高、稳定性不好且数据导入实时性不够 HiStore价值与意义 秒级别的高效稳定的多维查询,支持多达4096列,动态增删列:标准MySQL语句(ALTER TABLE)高性能数据导入,数十亿数
6、据在一个小时加载完成,相对当前方案提升五倍 御膳房二期全链路和透视项目(从几百台高配物理机集群,替换为50台HiStore docker部署)蚂蚁体验平台(用户行为分析)项目介绍 蚂蚁体验平台构建一套包含“问题收集、分析、推进、协作、价值衡量”的体系,帮助蚂蚁金服的产品做良性的改进;方便蚂蚁小二对集团的数据进行分析,比如对花呗的几千万上亿的会员进行画像分析;业务难点及痛点 之前使用MySQL方案,单表数据大于2000万时,查询经常超时 特征列不能超过100,查询条件越多越慢 扩展不方便,维护索引麻烦HiStore价值与意义亿级别数据实现秒级别的高效稳定的多维查询查询条件越多查询速度越快100列
7、扩展到512列,扩展方便MySQLHiStoreHiStore集群托管业务数据量1400万9000万600亿特征列数512512Count(*)|where 1列15秒2秒1秒Count(*)|where 5列65秒0.8秒0.6秒Count(*)|where 10列150秒0.35秒0.43秒全链路追踪系统EagleEye项目介绍EagleEye是集团内一款应用广泛的分布式调用跟踪系统,主要帮助用户方便地查看应用的实时数据及快速定位线上问题,为全链路压测、跨单元分析、链路梳理提供数据支撑。业务难点及痛点数据量大,PB级别,存储成本极高峰值数千万的TPS,使用MySQL成本太高HiStore价
8、值与意义秒级别的多维度Adhoc查询单机支持数十万TPS写入高压缩比,为集团节省数千台机器成本技术介绍Column-based Engine基于列(Column-based)的数据存储数据组织结构HiStore引擎将数据组织为两个层次:物理存储介质上的的块数据(Data Node,DN).知识网格(Knowledge Grid,KG):由描述数据块的元信息节点(Metadata Node,MD)和知识节点(Knowledge Node,KN)组成.知识网格KG(数据元信息节点MD和知识节点KN):数据元信息节点(MD)包含了其对应数据块中数据的相关信息:数据聚合函数值(MIN,MAX,SUM,
9、AVG等).记录数量(count)数据中的null记录标记.知识节点(KN)除了基础元数据外,还包括数据特征以及更深度的数据统信息.知识网格存储在内存中,方便快速查询.HiStore整体架构核心技术1:查询优化器核心技术2:压缩数据实时检索直接压缩数据查询采用Succinct 技术,针对不同类型的字段进行了单独的优化处理。位图上rank和select定位,整个index结构会非常的小,快而省。支持count,range查询,通配符等查询Hi-index原理原始数据BWT变换,字典排序,便于数据恢复和压缩BWT数据经delta或游程编码,数据压缩Suffix数组抽样,减少数据设置Checkpoi
10、nt点,加快检索。核心技术3:高性能数据写入 挑战:海量数据,低延迟写入INSERT写入放大,性能低客户端缓存,业务开发成本高解决方案:HiStore写入缓冲网络流实时解析磁盘友好Append-Only写文件,减少随机IO智能数据散列,多磁盘并行IO并行压缩:多核平滑系统负载基于mmap的ring buffer核心技术4:MVCC无锁读事务 问题 读写锁导致查询阻塞 仅支持两版本并发 解决方案 MVCC,单写,非阻塞多读 Snapshot 隔离级别Tradeoff:不支持跨表事务 技术难点 chunk级别多版本 Copy-on-write 原子性提交多个修改 资源延迟回收核心技术5:硬件加速1
11、35.2674.740204060800HiStoreHiStoreQAT单单位位秒秒GZIP压缩算法下1200W行数据导入时间16.32111.968024681012141618HiStoreQATHiStore默认(LZ4)压缩比基于Intel QAT技术实现基于硬件压缩,解压缩 现状:GZIP压缩算法压缩率高,但是速度慢吞吐量小。改进后:通过FPGA子卡完成数据压缩解压缩,压缩速度是GZIP算法在CPU上运行的10倍以上。压缩率比HiStore默认的LZ4算法提高30%外部客户如何使用私有云作为阿里企业级互联网架构中的一个方案,在私有云场景中输出公有云对于阿里云公有云上的服务,可以通过购买ECS,然后部署HiStore的方式来输出DRDS铂金版集成到DRDS铂金版里,提供HTAP服务