|苏宁6亿会员是如何做到快速精确分析的?( 四 )
线上新买家空调则是拿 {A} 和 {A , C} 做 rb_andnot_cardinality 后的集合为空集 , 数量为 0 。
不足与挑战
基于 PostgreSQL+Citus 的 RoaringBitmap 技术方案 , bitmap 集合之间的位运算性能表现的较为卓越 , 但在很多业务场景需要高基数的 bitmap 集合进行位运算 。
基于 Citus 我们分析发现 , 在位运算的时候 CPU 利用率处于低位 , 后期我们也针对基于 Citus 做了优化 。
如 bitmap 下压到 Work 运算降低 CN 运算量 , 创建 cube 降低基数 , 在一定的程度了提高了效率 , 然在 Ctius 下的 CPU 始终没有得到充分利用 。
ClickHouse 的并发 MPP+SMP 这种执行方式可以很充分地利用机器的集成资源 , 但当时看了 ClickHouse 还没有提供 bitmap 相关的接口 , 不能直接加以应用 , 如何将 RoaringBitmap 融合到 ClickHouse 是一个挑战 。
RoaringBitmap 与 ClickHouse 的整合
在计算引擎中 ClickHouse 算是后起之秀 , 是一个列导向数据库 , 原生的向量化执行引擎 , 其存储是采用 Wired Tiger 的 LSM 引擎 。
目前苏宁的大数据已将 ClickHouse 引入并改造 , 开发了相关的 RoaringBitmap 接口 ,用来支撑业务交互式查询 。
基于 ClickHouse 的 RoaringBitmap 方案计算过程大幅简化 , 查询时候的 IO、CPU、MEM、网络资源都显著降低 , 并且不随着数据规模而现行增加 。
基于 ClickHouse 我们开发了 RoaringBitmap 相关的接口 , 其支持的 Function 函数有:
- bitmapBuild
- bitmapToArray
- bitmapMax
- bitmapMin
- bitmapAnd
- bitmapOr
- bitmapXor
- bitmapAndnot
- bitmapCardinality
- bitmapAndCardinality
- bitmapOrCardinality
- bitmapAndnotCardinality 等
未来展望
为了将基于 ClickHouse 的 RoaringBitmap 方案推广到公司的更多业务和场景中 , 我们在做不断优化和完善 。
目前正着手于以下的尝试:
- ClickHouse 目前不支持 64 位的 bitmap , 正在尝试按 hash 值进行分区 , 每个分区单独计算 , 可轻易将分区进行横向叠加支持到 long 长度 。
- 全局字典表在高基数下构建成本较大 , 占用较多资源也耗时较大 , 后续可根据业务场景将数据字典表最大程度复用 , 同时考虑在无需跨 segment 聚合时候 , 适用这个列的 segment 字典替代 。
- 全链路监控的完善 , 可根据 query_id 进行各个环节的耗时分析 , 便于优化和问题的定位 。
简介:苏宁科技集团大数据中心架构师 , 在 OLAP、OLTP 领域有着深刻的技术积累 。 目前主要负责数据中台和数据工具平台的架构及性能调优工作 , 在数据中台、数据集成开发工具、数据资产、数据质量和数据治理等方面拥有丰富的实战经验 。
【51CTO原创稿件 , 合作站点转载请注明原文作者和出处为51CTO.com】
推荐阅读
- 挖贝网|京基智农投资建设生猪养殖项目 预计总投资额14.06亿
- 有鱼说娱乐|官宣!关晓彤、沈腾等进入苏宁618“SUPER SHOW”盛典明星阵容
- 大众|大众向自动驾驶公司Argo投资26亿美元 和福特共进退
- 苏宁|618价格战打响第一枪!开了三小时会后,苏宁决定突袭
- 奇艺爱奇艺会员服务「车祸」不断,是贪婪还是困境难解?
- 蓝鲸财经记者工作平台|优酷推出“电影通”会员,定价228元包含线上线下观影渠道
- 本智|还要什么会员 BT下载一键满速 铁威马F2-221 NAS体验
- 猎云网|嘉和生物药业获1.6亿美元B轮融资,高瓴资本领投
- 苏宁苏宁“J-10%”开局,价格战搅翻618,京东如何接招?
- 苏宁|苏宁在合肥成立超市采购新公司 注册资本500万
