Kyligence AI 服务 - 让大模型完成准确、可靠的数值计算和回答! 立即了解更多
AI 数智助理
Kyligence Zen Kyligence Zen
Kyligence Enterprise Kyligence Enterprise
Kyligence Turbo Kyligence Turbo
指标平台解决方案
OLAP 解决方案
行业解决方案
客户总览
金融
零售
制造
医药
其他
云平台
BI
寻求合作
资源
Kyligence Enterprise
Kyligence Zen
培训
Apache Kylin
Byzer
Gluten
博客
关于
市场活动
作者简介
李扬,Kyligence 联合创始人兼 CTO
Apache Kylin 联合创建者及项目管理委员会成员 (PMC),曾任 eBay 全球分析基础架构部大数据资深架构师、IBM InfoSphere BigInsights 技术负责人和摩根士丹利副总裁,IBM“杰出技术贡献奖”获奖者,具有大数据分析领域 10 多年实战经验。
专注于大数据分析、并行计算、数据索引、关系数学、近似算法和压缩算法等前沿技术。在过去 15 年的工作经历中,见证并直接参与了 OLAP 技术的发展 。
了解 Kylin 的技术同仁,一定对预计算这个概念不陌生。业内对于预计算的价值一直褒贬不一,今天笔者将结合自己的十多年的工作经验,从预计算的历史、原理到企业的应用,以及未来的发展来为大家带来更为全面的解读。
预计算的早期形式
预计算是一种用于信息检索和分析的常用技术,其基本含义是提前计算和存储中间结果,再使用这些预先计算的结果加快进一步的查询。
其实在我们不知道预计算的时候,我们就已经使用过预计算了。预计算的历史大概可以追溯到 4000 年前古巴比伦人最早使用的乘法表。你回想小学背过的乘法表(如下图所示), 记住了乘法口诀,我们就可以通过心算来进行一些简单的乘法运算,这个过程其实就是一种简单的预计算。
乘法图表来源: https://en.wikipedia.org/wiki/Multiplication_table
数据库中的预计算
预计算也广泛应用于数据库技术中。比如,关系数据库中的索引其实就是一种预计算。为了快速地检索数据,数据库会主动维护一个数据索引的结构,用来描述表格中一列或者多列数据的缩影。一旦索引的预计算完成,数据库不用每次都重新查找表格的每一行,就能快速地定位数据。假设N是表格的行数,有了索引的预计算,数据检索的时间可以从O(N)减少至O(log(N)) 甚至到 O(1)。
索引作为一种预计算,带来便利的同时也存在一些弊端。当表格中插入新的行数时,就需要重新进行的计算和储存。当索引越多,查询响应越快时,那其实也意味着要进行更多的预计算,这当然也会显著减缓数据更新的速度。下列图表展示了索引数量增加后,表格插入行的性能也相应降低 。
索引数量对插入行性能的影响图表来源:https://use-the-index-luke.com/sql/dml/insert
汇总表,通常由物化视图实现,也是数据库中预计算应用的另一种形式。汇总表本质上是对于原始表格的汇总。一个十亿行的交易表按照日期进行聚合以后,可能就只剩几千行了。对数据的分析就可以通过汇总表而不是原始表来完成。受益于汇总表中数据量的大幅缩小,交互式的数据探索在汇总表上能提速数百倍甚至数千倍。而想在原始表格中完成这样的交互式分析几乎是不可能的。构建一个交易表的成本并不低,而且如果需要与初始表格保持同步更新的话,那成本就更高了。不过,考虑到分析速度的大幅提升及其所带来的价值,汇总表仍然是现代数据分析中广泛使用的一种工具。
OLAP 和 Cube 中的预计算
随着数据库技术的演进,数据库根据用途也出现了专精和分工。1993年,关系数据库之父埃德加·科德(Edgar F. Codd)创造了 OLAP(On-Line Analytical Processing)这一术语来表示联机分析处理。由此,数据库被分为专精于在线事务处理的 OLTP 数据库,和专精于在线分析的 OLAP 数据库。就同你推测的一样,OLAP 数据库将预计算技术的运用提升到了更高的层次。
Cube 系统是一种特殊的 OLAP 数据库,它将预计算发挥到了极致。分析时数据可以具有任意数量的维度,而 Cube 就一个数据的多维度数组。将关系型数据载入到 Cube 的过程就是一种预计算,其中包括了对表格的关联和聚合。一个满载的 Cube 约等于 2n 个汇总表,其中 n 是维度的数量。这种巨量的预计算可能需要数小时才能完成!
Cube 的优势和劣势都十分明显。一方面来说,一旦 Cube 构建完成,就能带来最快的分析体验,因为所有的计算都已经预先完成了。无论你想查看数据哪个维度,结果其实都早已计算好了。除了从 Cube 获取查询结果和进行可视化操作之外,几乎不需要再进行联机计算,这完美实现了低延迟和高并发。
另一方面,Cube 不够灵活,而且维护成本较高。这不仅仅是因为预计算和存储本身消耗资源,更多是因为将数据从关系数据库中载入 Cube 通常需要人工建设数据管道。每次业务需求变更时,都需要一个新的开发周期来更新数据管道和 Cube。这既需要投入时间,也需要投入金钱。
尽管投入不菲,在追求极致的低延迟高并发的大数据多维分析场景下,Cube 技术一直是不可或缺的一个选项。
Cube 图源:https://en.wikipedia.org/wiki/OLAP_cube
大数据时代的挑战与机遇
展望未来,预计算在大数据时代又会面临什么挑战和机遇呢?
先说结论,随着数据总量和数据用户的持续增加,预计算将成为数据服务层中必不可少的基石。为了更好地解释这一点,我们先要理解数字化转型时代的大背景和预计算的技术特征。
先来看看当下企业数字化转型的一些大背景。
数据增长图来源:https://www.statista.com/statistics/871513/worldwide-data-created/
云计算价格图源:https://redmonk.com/rstephens/2020/07/10/iaas-pricing-patterns-and-trends-2020/
再来总结一下预计算的技术特征:
在以上的大背景下,让我们一起来看看,预计算将会如何帮助我们解决一些基本的分析需求。
如何在数据增长的同时依旧保持快速查询响应?
随着数据量增长,对比在线计算和预计算完成查询的时间复杂度
如何更好地满足“平民分析师”的并发需求?
当数据量和用户数量同时增长,如何管理 TCO(总拥有成本)?
预计算数据服务和 MPP 服务总体拥有成本对比
总而言之,在数字化转型的时代,预计算将会是大规模数据变现的关键技术。数据服务系统在预计算加持下,能够同时实现快速响应时间,高并发和低 TCO。当然,就额外的数据准备而言,预计算也有它缺,这一点我们也会在下文展开讨论。
举例:将OLAP查询提速200倍
下面我们近距离观察一个实例,看看 Apache Kylin 如何使用预计算,将一个 TPC-H 查询加速200倍。TPC-H是一个数据库研究领域常用的决策分析测试基准。
在100 GB 数据量下,TPC-H 基准里的7号查询在 Hive+Tez 的 MPP 引擎下需要执行35.23秒。从下图可以看到,这个查询并不简单,包括了一个子查询。执行计划显示,这个查询的包含了多个Join运算和一个 Aggregate 运算。这两种计算也是整体执行中最大的瓶颈。
TPC-H 基准里的7号查询在 MPP 引擎下的执行计划
从预计算视角,我们容易想到使用一个物化视图,可以将 Join 运算提前算好,从而节省查询时的开销。如果人工来做,方法大致如下。
TPC-H 基准里的7号查询人工处理物化视图
注意到新的执行计划由于 Join 运算被替换为物化视图而大大简化了。但这个方法的缺点在于物化视图需要人编程工来创建和维护,并且应用层需要改写 SQL 来查询新的物化视图,而不是原始表。这种改写在实际工程中代价很大,因为涉及大面积的应用层重构,通常需要一个完整的开发周期,并需要全回归的应用测试。最后,Aggregate 运算仍然在线计算,预计算还有较大的提升空间。
为了做到更完美的预计算,Apache Kylin 做了一下设计:
TPC-H 基准里的7号查询在 Apache Kylin 环境下的执行计划
在 Apache Kylin 上执行同样的查询,在相当的硬件条件下,只需要0.17秒。充分的预计算消除了 Join 和 Aggregate 两个最大运算瓶颈。在执行计划优化过程中,系统会自动挑选最合适的 Cuboid 并替换到执行计划里。应用层的 SQL 不需要修改,就能获得透明加速200倍的分析体验。
预计算未来可期
尽管预计算在大数据领域表现优异,但也确实存在一些缺点,例如,预计算可能会加剧数据管道的延迟,还需要额外的人工运维。不过好消息是,Gartner 预测:“到 2022 年,通过机器学习的增加和自动服务级别管理的壮大,数据管理手动任务将减少 45%”。我们将会在接下来的两年内,看到新一代智能数据库系统缓解甚至彻底消除这些问题。
在不久的将来,新一代数据库将以智能化和自动化的方式融入预计算技术。下面是我们对未来一些预测:
参考文献
近年来,随着商业环境的竞争日益激烈,企业对于实时数据服务的需求急剧增加。Kyligence 在服务众多客户的过
数据要素在银行各业务领域和流程中发挥着至关重要的作用,面对激烈的市场竞争和客户需求,银行越来越注重从数据管理中
作为一名消费者,炎热的夏天我们会走进一家便利店,从冰柜中选出一瓶汽水;下午工作有点累了,我们会在公司的自动贩卖
2024 年伊始,Kyligence 联合创始人兼 CEO 韩卿(Luke)分享了对 AI 与数据行业的一些战
房地产行业是我国国民经济中的重要支柱产业之一,在房地产市场供求关系发生重大变化的当下,房企面临多重挑战。Kyl
今年年初,Kyligence 高级副总裁兼合伙人葛双寅(Silas Ge)受邀在阿斯利康“跃行致远三十周年年会
2024 年伊始,Kyligence 联合创始人兼 CEO 韩卿在公司内部的飞书订阅号发表了多篇 Rethin
400 8658 757
工作日:10:00 - 18:00
已有账号? 点此登陆
预约演示,您将获得
完整的产品体验
从数据导入、建模到分析的全流程操作演示。
行业专家解惑
与资深行业专家的交流机会,解答您的个性化问题。
请填写真实信息,我们会在 1-2 个工作日内电话与您联系。
全行业落地场景演示
涵盖金融、零售、餐饮、医药、制造等多个行业,最贴合您的业务需求与场景。
Data + AI 应用落地咨询
与资深技术专家深入交流,助您的企业快速落地 AI 场景应用。
立即预约,您将获得
精准数据计算能力:
接入高精度数值计算大模型服务,为您的企业级AI应用提供强大支持。
个性化业务场景解决方案:
量身定制的计算模型和数据分析服务,切实贴合您的业务需求和应用场景。
Data + AI 落地应用咨询:
与资深专家深入探讨数据和 AI 如何帮助您的企业加速实现应用落地,构建更智能的数据驱动未来。
申请体验,您将获得
体验数据处理性能 2x 加速
同等规模资源、同等量级数据、同一套数据处理逻辑,处理耗时下降一半
专家支持
试用部署、生成数据、性能对比各操作环节在线支持