开发者社区> 彦小哲> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

HTAP 能够取代 OLAP 吗?

简介: 在实际应用中,为了面对各种需求,OLTP、OLAP 在技术上分道扬镳,在很多企业架构中,这两类任务处理由不同团队完成,同时部署的OLAP和OLTP通过ETL进行衔接。为了提升OLAP的性能,需要在ETL过程中进行大量的预计算,包括数据结构的调整和业务逻辑处理。
+关注继续查看

HTAP是什么

HTAP(Hybrid Transaction and Analytical Processing)数据库,也称混合型关系数据库,是能同时提供OLTP和OLAP的混合关系型数据库。在互联网浪潮出现之前,企业的数据量普遍不大,特别是核心的业务数据,通常一个单机的数据库就可以保存。那时候的存储并不需要复杂的架构,所有的线上请求OLTP和后台分析OLAP都跑在同一个数据库实例上。
640.png

随着互联网的发展,企业的业务数据量不断增多,单机数据库的容量限制制约了其在海量数据场景下的使用。因此在实际应用中,为了面对各种需求,OLTP、OLAP 在技术上分道扬镳,在很多企业架构中,这两类任务处理由不同团队完成,同时部署的OLAP和OLTP通过ETL进行衔接。为了提升OLAP的性能,需要在ETL过程中进行大量的预计算,包括数据结构的调整和业务逻辑处理。这样的好处是可以控制OLAP的访问延迟,提升用户体验。但是,因为要避免抽取数据对OLTP系统造成影响,所以必须在日终的交易低谷期才能启动ETL过程。这样一来, OLAP与OLTP的数据延迟通常就在一天左右,习惯上大家把这种时效性表述为T+1。其中,T日就是指OLTP系统产生数据的日期,T+1日是OLAP中数据可用的日期,两者间隔为1天。

这个时候我们会发现,这个体系的主要问题就是OLAP系统的数据时效性,T+1太慢了。随着大数据时代互联网的高速发展,商业决策更加注重数据的支撑,大量应用要求对海量数据进行实时更新和查询,这都要求OLAP系统更快速地反映业务的变化。另一方面,企业需要维护不同的数据库以便支持两类不同的任务,管理和维护成本高。

因此,能够统一支持事务处理和工作负载分析的数据库成为众多企业的需求。在此背景下,由 Gartner 提出的 HTAP成为希望。基于创新的计算存储框架,HTAP 数据库能够在一份数据上同时支撑业务系统运行和 OLAP 场景,避免在传统架构中,在线与离线数据库之间大量的数据交互。
640 (1).png

HTAP=OLTP+OLAP?

我们了解了OLAP 数据库和 OLTP 数据库之后,我们再来考虑:HTAP=OLTP+OLAP,是这样吗?

我们来仔细考虑考虑,OLTP系统多为行存储,主打高并发、低延时和高稳定性,能够实现复杂的查询操作以秒钟级的响应,适合经常写入的小型业务;而OLAP主要用于大规模的复杂查询,持续时间很长,性能开销极大,主要以读取内容为主,且依赖丰富的索引,常常按列存储;如果他们部署在一起,OLAP的临时查询开销可能会影响OLTP的写入延时,另外很多OLTP数据库在执行OLAP业务时,仍然需要将行存数据转储到列存表中,这样也会大大的影响业务执行效率。

现实情况是,对HTAP的需求,日常还是以OLTP为主,但也需要对数据进行加工,以保证偶尔的OLAP工作负载,这里说的OLAP场景并不是真正意义上的OLAP,它只为了提升在OLTP系统中执行复杂查询的性能。所以大部分的HTAP并不完整包含OLAP的完整功能,且他们的OLAP功能整体比较弱,只是满足偶尔提取一些需要用于分析的少量数据。

在实际的使用过程中,很多企业为了实现HTAP,是花了不少代价的。选型过程中功能需要考虑的因素包括:数据存储格式、SQL引擎的效率、OLTP/OLAP的资源隔离与防干扰措施、数据有几份备份、如何避免大型集群产生数据沼泽等等。可以说综合性能和成本来考量,对于很多企业,HTAP并不能是OLAP的替代方案。

如何满足当今的OLAP业务

在大数据不断高速发展的时代,当您的企业发现传统的数据库已经不能满足业务需求,需要选型OLAP或者HTAP来解决OLAP需求时,重要考虑哪些影响数据使用的因素呢?

  • SQL能力:是否具备完善的SQL标准和ACID特性,支持对接和兼容常用的开源组件,来保障用户轻松实现不同数据基础设施的平稳迁移。
  • 实时性:在瞬息万变的商业社会,要尽快的做出决策需要进行实时的数据分析和数据服务。正如我们刚才分析的,HTAP要兼容OLAP和OLTP场景,往往很难保证全量数据T+0实时性。
  • 高并发:在需要大量使用高并发OLAP的场景,HTAP如何满足;同时,还需要考虑高负载运行时对OLTP业务的影响。
  • 扩展能力:当计算和存储需要扩展时,不同的架构的数据库会有不同的扩容方式,相对而言,存算分离的数据库可以自由增减计算和存储资源,按需付费节约成本。

按照上述的参考,您在选型OLAP或者HTAP时,如果希望获得支持存算分离、分布式事务处理、SQL 兼容性、云化弹性供给、Hadoop 生态、性能优化等关键特性的解决方案,以此来助力企业实现降成本、提性能、全融合的大数据建设目标,建议选择Snowflake、Databricks、OushuDB 这一类云原生数据平台,它们突破了传统 MPP 和 Hadoop 的局限性,实现了上述的存算完全分离,计算和存储可部署在不同物理集群,并通过虚拟计算集群技术实现了高并发,同时保障事务支持。近两年,国内也诞生了全实时 Omega 架构的湖仓一体,甚至可以完成全量数据 "T+0"的流处理和实时按需查询,摆脱了"T+1"的传统痛点,强大的云原生OLAP也有效解决了HTAP面对海量数据管理的问题。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云架构师朱波:云上高性能计算加速药物研发
资源的弹性供应能力、灵活的定价模式以及高效的运维管理。
196 0
学习C++,学习类,那override和final你用过没?
学习C++,学习类,那override和final你用过没?
21 0
Apache Hive--介绍&Hive 实现思路模拟| 学习笔记
快速学习Apache Hive--介绍&Hive 实现思路模拟
45 0
glide架构描述
本文的分析基于glide 3.7.0源码 glide是google官方推荐的图片加载框架,github地址为bumptech/glide 。glide的强大在于它的生命周期管理(glide可以根据Activity的生命周期自动加载或者暂停图片任务);glide使用了三级缓存(一级活跃缓存、二级内存缓存、三级磁盘缓存);gilide使用了BitmapTool机制对图片内存进行复用,可以防止界面快速滑动时的内存不断申请、释放造成的内存抖动;glide可以使用Thumbnail预览图的方式提高加载速率和加载体验。
1655 0
比自建 Hadoop 还便宜!云栖大会揭秘阿里云数加 MaxCompute
DT时代,越来越多的企业应用数据步入云端。 Hadoop是当下流行的大数据并行计算体系,横向扩展、生态圈成熟等一直是它的主要特点。 阿里云数加MaxCompute (原名ODPS)是一种快速、完全托管的TB/PB级数据仓库解决方案。
11548 0
VC 透明滑动控件Slider Control
操作系统:Windows 7软件环境:Visual C++ 2008 SP1本次目的:为滑动控件设置背景透明       经常在编写有背景的程序时,滑动控件Slider Control看起来与背景十分不合,我们可以从CSliderCtrl派生自己的类出来,以实现这个功能。
931 0
HDU 1856
More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) Total Submission(s): 6073    Accepted Submission(s): 2225 Problem Description Mr Wang w
1286 0
+关注
彦小哲
基础软件新鲜事
56
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载