CarbonData:大数据融合数仓新一代引擎
【摘要】 CarbonData将存储和计算逻辑分离,通过索引技术让存储和计算物理上更接近,提升CPU和IO效率,实现超高性能的大数据分析。以CarbonData为融合数仓的大数据解决方案,为金融转型打造新一代数仓引擎。
金融领域随着数据与日俱增(如国内某大行,平均3亿笔业务/天,峰值6亿/天);业务驱动下的数据分析灵活性要求越来越高,不同业务的数据分系统构建,导致冗余严重,缺乏高效、统一的融合数仓,阻碍企业快速转型。如何对浪涌式的数据进行整合分析,发挥最大价值,金融机构对数据的处理提出了相应诉求具体表现如下:
第一,数据统一存储:为了节约成本,企业希望一份数据支持多种使用场景;减少数据孤岛和冗余,通过数据共享产生更大价值。
第二,高效:金融业务数据分析要求越来越高效、实时。
第三,易集成:提供标准接口,新的大数据方案与企业已采购的工具和IT系统要能无缝集成,支撑老业务快速迁移。
第四,大集群:区别于以往的单机系统,企业客户希望新的大数据方案能应对日益增多的数据,随时可以通过增加资源的方式横向扩展,无极扩容。
第五,开放生态:通过开源开放,让更多的客户和合作伙伴的数据连接在一起,发挥更大的价值。
存储和计算逻辑分离,开发CarbonData创新项目,满足上述诉求
华为针对上述典型诉求,从2013年开始调研分析业界大数据方案,发现每种技术都只能解决某种场景的诉求,不能同时满足上述的所有诉求,如:MPP数据库技术不能有效与Hadoop生态集成,数据不能统一共享存储;搜索类技术提升了性能,但是数据膨胀很大,不支持标准SQL、不能兼容老的业务,这促使了华为着手开发CarbonData项目。整个大数据时代的开启,可以说是源自于Google的MapReduce论文,他引发了Hadoop开源项目以及后续一系列的生态发展。他的“伟大”之处在于计算和存储解耦的架构,使企业的部分业务(主要是批处理)从传统的垂直方案中解放出来,计算和存储可以按需扩展极大提升了业务发展的敏捷性,让众多企业普及了这一计算模式,从中受益。CarbonData借鉴了这一理念,存储和计算逻辑上分离,通过索引技术让存储和计算物理上更接近,提升CPU和IO效率,实现超高性能的大数据分析:
列式存储:高效的列式数据组织,区别于行存,可以实现列裁剪和过滤下压,使OLAP查询性能更高。同时,CarbonData针对明细数据查询实现了深度优化,在需要返回所有列的场景下性能优于其他列存方案。
丰富的索引支持:支持全局多维索引、文件索引、Min/Max、倒排索引等多种索引技术,从表级,文件级,列级等多个层级逐级快速定位数据,避免SQL-on-Hadoop引擎常见的“暴力扫描“,从而大幅提升性能,实现十年数据秒级响应, 三百维字段任意组合查询。
全局字典编码:除了常见的Delta、RLE、BitPacking等编码外,CarbonData应用了全局字典编码来实现免解码的计算,计算框架可以直接使用经过编码的数据来做聚合,排序等计算,这对需要做跨节点数据交换的业务来说性能提升非常明显(3倍以上)。
自适应类型转换:CarbonData针对分析型应用中大量使用的数值类型(Double/Decimal/Numeric/BigInt)实现存储内数据类型转换,配合列式数据压缩,使得压缩非常高效,数据压缩率基于应用场景不同一般在2到8之间。
标准SQL兼容:在SparkSQL基础上,支持标准SQL99/2003/存储过程语法,TPC-DS标准测试用例全部无修改运行通过;支持数据批量更新、删除,适用于OLAP场景下数据的周期性刷新,例如拉链表更新、维表数据同步。
数据生态集成:支持与Hadoop、Spark等大数据生态系统集成,支持和商业BI工具无缝对接。既满足传统数仓、数据集市、BI应用要求,也提供大数据生态丰富多样的API支持,覆盖从GB级到EB级应用。
开源开放: CarbonData于2016年6月3日全票通过进入大数据领域全球最大的开源社区Apache,目前特性贡献来自于华为、Intel、Talend、Ebay、Inmobi、阿里、美团、乐视、滴滴等公司资深架构师和开发人员。
以CarbonData为融合数仓的大数据方案为金融转型打造新一代数仓引擎
1)XX银行针对交易流水记录做审计业务,针对140亿的大数据量,老的方案经过多次优化查询仍需700多秒且系统不稳定,采用了CarbonData方案后平均性能提升10+倍,分行的明细查询平均在10秒内。
2)XX银行的行长手机项目(亿级数据),行长可通过手机终端随时查询各分行利润、营收报表等,客户原有系统查询需要等待10秒以上,采用了CarbonData方案后,平均性能提升了4-10倍,且支持数据线性增加,查询性能保持在小于3秒。
华为将依托社区开发模式,通过开放、共赢的方式,推动大数据技术生态持续发展,为金融业务转型,打造高性能多业务融合部署的新一代数仓引擎,为客户快速创造价值。
作者:EI技术布道师-陈亮
CarbonData:大数据融合数仓新一代引擎的更多相关文章
- 大数据系列之分布式计算批处理引擎MapReduce实践-排序
清明刚过,该来学习点新的知识点了. 上次说到关于MapReduce对于文本中词频的统计使用WordCount.如果还有同学不熟悉的可以参考博文大数据系列之分布式计算批处理引擎MapReduce实践. ...
- 分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例【转】
Kylin 麒麟官网:http://kylin.apache.org/cn/download/ 关键字:olap.Kylin Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的 ...
- GooseFS助力大数据业务数倍提升计算能力
前言 GooseFS是由腾讯云推出的一款分布式缓存方案,主要针对包括需要缓存加速的数据湖业务场景,提供基于对象存储COS服务的近计算端数据加速层. GooseFS 基于开源大数据缓存方案 Alluxi ...
- 大数据系列之分布式计算批处理引擎MapReduce实践
关于MR的工作原理不做过多叙述,本文将对MapReduce的实例WordCount(单词计数程序)做实践,从而理解MapReduce的工作机制. WordCount: 1.应用场景,在大量文件中存储了 ...
- 分布式大数据多维数据分析(olap)引擎kylin[转]
Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay 开发并贡献至开源社区.它能在亚秒内查询巨大的Hiv ...
- 【云+社区极客说】新一代大数据技术:构建PB级云端数仓实践
本文来自腾讯云技术沙龙,本次沙龙主题为构建PB级云端数仓实践 在现代社会中,随着4G和光纤网络的普及.智能终端更清晰的摄像头和更灵敏的传感器.物联网设备入网等等而产生的数据,导致了PB级储存的需求加大 ...
- 基于MaxCompute的数仓数据质量管理
声明 本文中介绍的非功能性规范均为建议性规范,产品功能无强制,仅供指导. 参考文献 <大数据之路——阿里巴巴大数据实践>——阿里巴巴数据技术及产品部 著. 背景及目的 数据对一个企业来说已 ...
- 追本溯源 解析“大数据生态环境”发展现状(CSDN)
程学旗先生是中科院计算所副总工.研究员.博士生导师.网络科学与技术重点实验室主任.本次程学旗带来了中国大数据生态系统的基础问题方面的内容分享.大数据的发展越来越快,但是对于大数据的认知大都还停留在最初 ...
- Tapdata 实时数据融合平台解决方案(一):现代企业数据架构及痛点
作者介绍:TJ,唐建法,Tapdata 钛铂数据 CTO,MongoDB中文社区主席,原MongoDB大中华区首席架构师,极客时间MongoDB视频课程讲师. "怎样可以来搭建一个数据中台? ...
随机推荐
- 【gradle使用前篇—Groovy简介】
Groovy介绍 Groovy是一种动态语言,对它的定义是:Groovy是在java平台上的,具有像Python.Ruby和smalltalk语言特性的灵活动态语言,Groovy保证了这些特性像jav ...
- Linux Shell | 解析xml节点
01 xml文件 # user.xml <user> <name>Toy</name> <sex>man</sex> <room/&g ...
- layaair和egret的区别
egret缺点1 编译速度非常慢 2 就是强类型转换非常的麻烦 3 只能用ts 所以只能用他们的IDE 不能用sublime layaair唯一不足的就是 insepct太垃圾 占用游戏界面 所以建议 ...
- python中的集合、元组和布尔
#元组,元组跟列表一样,只不过列表可读可写,而元组一般用来只读,不修改#python中不允许修改元组的数据,也包括不能删除其中的元素. t1 = ('a','b','c','d','s','a') & ...
- [.NET] 常用的reusable library
1. NAudio NAudio is an open source .NET audio and MIDI library, containing dozens of useful audio re ...
- Worktile正式发布全新研发产品!
经过近一年时间的打磨,Worktile研发产品正式发布啦!和以往Worktile版本升级不同的是,这是一个全新的产品形态,目前已上线 Agile(敏捷开发).Pipe(持续交付).Testhub(测试 ...
- (C#)WPF:.h(头文件)、.lib(静态链接库文件)和.dll(动态链接库文件)之间的区别与联系
静态链接库(Lib)与动态链接库(DLL)的区别 静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件:动态链接就是把调用的函数所在文件模块(DLL)和 ...
- nyoj 259-茵茵的第一课 (python, input, print)
259-茵茵的第一课 内存限制:64MB 时间限制:3000ms 特判: No 通过数:23 提交数:36 难度:0 题目描述: 茵茵今年已经六年级了,爸爸给她报了一个学习程序设计的班. 第一节课上, ...
- java中hashmap容量的初始化
HashMap使用HashMap(int initialCapacity)对集合进行初始化. 在默认的情况下,HashMap的容量是16.但是如果用户通过构造函数指定了一个数字作为容量,那么Hash会 ...
- InfluxDB 聚合函数实用案例
InfluxDB 聚合函数实用案例 文章大纲 InfluxDB 简介 InfluxDB是GO语言编写的分布式时间序列化数据库,非常适合对数据(跟随时间变化而变化的数据)的跟踪.监控和分析.在我们的项目 ...