2024-04-08

江南体育官网下载·性能超Spark 100倍算立方补上邦盛科技实时智

返回

发布时间:2024-09-08 06:22:06 来源:江南官方网站下载 作者:江南app官方网站


  随着互联网和物联网的逐渐普及,各行业都开始源源不断产生单源或多源数据,这些高并发的数据具有高度的实时性和明显的时间序列,数据越热的时候处理,获得的业务价值越高。

  随着数字化转型的深入,企业都在积极建设数据能力,开发数据应用,以实现数据驱动业务。邦盛科技是一家专注于大数据实时智能领域的人工智能厂商,提出“时序中间态”技术体系,针对高并发的热数据可毫秒间完成计算。

  其核心技术之一是能够实时快速、高并发处理数据的流立方技术,这项技术已成为当前实时处理领域的基础设施平台,可在海量数据规模、分析延时短、复杂事件或复杂指标、智能化决策及时序数据等典型特征的行业场景中,实现实时感知、识别和智能决策,帮助企业更好地实现精准预测、瞬时决策、降低业务成本、提高服务质效。

  为了进一步完善公司的实时智能决策与分析体系,邦盛科技历经三年研发,推出时序批计算技术产品“算立方”,补上了邦盛实时智能技术体系的关键拼图,是实时智能从“热数据处理”走到“热知识应用”的关键基础设施。

  为了探讨算立方的技术优势和应用场景价值,以及实时智能技术的应用趋势,爱分析近期专访了邦盛科技CTO王新根博士。

  王新根博士,现任职邦盛科技CTO,分布式系统性能工程专家,邦盛科技“流立方”、“算立方”平台设计者与研发团队负责人,是实时计算、大数据实时分析技术、大数据流批一体技术等方向的专家,国内“性能工程”博士学位获得者。

  王新根博士:邦盛科技的实时智能决策与分析技术体系,整体是以流批一体为核心载体,以知识为媒介,糅合流处理、批处理、智能决策等多种技术体系的技术架构。这一架构可以从横向与纵向两个维度来理解。

  在横向上,实时智能决策与分析体系被划分为知识应用和知识生成两大主要环境,每个环境进一步细分为在线和离线两种场景。

  在知识应用环境中,在线场景专注于接近实时的操作,如事务处理中的即时分析和决策,而离线场景则涉及批处理操作,例如银行的T+1数据同步。在知识生成环境中,离线场景的发展已经趋近成熟,而在线知识生成则代表着未来技术的发展方向,特别是在“热数据”向“热知识”领域的渐进探索。

  纵向上,技术体系被细分为四个层级,覆盖从数据到决策的整个流程,包括原始数据收集,经过数据加工得到事件事实,再通过计算得到指标特征,最终通过决策生成信号标签。最底层从原始数据开始,构成所有分析的基础。

  第二层是从原始数据提炼的事件事实,涉及数据的初步聚合和处理。第三层从这些事件事实中提取维度信息、时间窗口和聚合算子,通过加工计算,形成关键的指标和特征。最顶层则是生成业务所需的信号和标签,如风险控制信号等。

  王新根博士:算立方主要定位在指标/特征离线计算这一层。实时智能技术体系中,我们在知识应用模块已经取得了很大的成绩,特别是在线知识应用部分,数据实时加工用PipeACE技术解决,指标实时计算用流立方、图立方解决,决策部分自研了独立的智能决策引擎。

  离线知识应用部分,在算立方出现之前,我们很早就解决了流批一体的数据定时加工和定时决策引擎,唯独缺失了定时计算这一层,还需要一个跟流立方相呼应的离线计算框架。流批一体融合计算面临着诸多技术难题。流计算和批计算之间存在显著的差异,包括计算方式、支撑模块、资源调度策略以及流程规划等。

  因此,要实现有效的流批一体融合计算,需要重点关注数据源的统一、开发的统一、计算的统一、存储的统一,实现技术栈的收敛,减少开发和运维成本,消除不同计算模式带来的逻辑不一致性。

  早期邦盛科技采用现有批式技术,但由于计算理念和数据结构的差异,在与流立方、图立方联动方面性能跟不上。在工程突破的时候,我们遇到了巨大困难,决定花大力气把这个短板补上。

  经过三年研究和迭代,我们推出了时序批计算产品“算立方”。作为和流立方相配合的批式计算框架,算立方解决了超高性能的定时批式计算效率,实现了有效的面向业务的流批一体融合计算。算立方与流立方相互呼应,分别在离线计算和实时计算方面进行优化配合,降低了流批结合模式的开发和运维成本,使这套技术体系具备独一无二的竞争优势。

  王新根博士:整个学术界和产业界的共识是时序数据逐渐成为数据处理的主流形态,我们把“时序计算”提升到非常重要的程度,我们一开始想借助开源去解决问题,但发现和我们的处理理念格格不入。

  于是,我们从流立方萃取出了“中间态计算”理念,并把时序聚合的中间态应用到批处理,有了算立方产品。流立方对应“时序流处理”,“算立方”对应“时序批处理”,两者理论指引是完全一致的,数据结构是完全一致的,处理思路也是完全一致的,是一脉相承的。

  “时序批处理”技术有其独特的应用场景和价值。例如,在金融场景下,批处理可以用于计算账户当前余额、计算当日累计交易金额、计算到目前为止做了多少次交易等场景。在这些场景下,一般的批处理对时间窗口的含义考虑得较少。

  比如,今天一共交易5笔,Spark擅长一次性计算当天整体累计交易金额。但在“时序计算”领域,时间窗口是一项独立的非常重要的能力。当计算如“当日每笔交易后,交易总金额如何变化”这类问题时,用Spark做批处理需要用over函数,且处理起来十分繁琐,每次都需要对原始数据表进行聚合。

  而算立方能够实时计算出每一笔交易后账户余额如何变化,即通过对逐笔交易进行计算,实现批计算中间结果的使用。“时序批处理”技术既能够实现逐笔指标的结果显示,也能够实现聚合指标的结果显示,比如按照卡号进行中间结果的聚合。

  王新根博士:有一点接近这个理念,Spark通过Spark Streaming给出了自己的解决方案,从批处理到“微批处理”。但我们的时序批处理不仅把时间维度切得更细,而是要切得足够细,细到毫秒级,这是Spark最欠缺的一块能力。比如1秒内发生了10笔交易,其中的第一笔交易不能考虑其他9笔交易的情况,否则整个时序批计算的准确性就有问题。

  爱分析:算立方的数据模型是立方体Cube,这与类似Kylin的Cube这种数据模型有什么区别?

  第一,数据维度,这与Kylin相同。该维度涉及到各种类型的数据元素,例如IP地址、手机号码、设备标识、号等,这些元素构成了数据处理和分析的基础。

  第二,指标维度。例如,对于一张,可能需要计算的指标包括累计交易金额、账户余额等。这些指标为数据分析提供了具体的分析角度和计量标准。

  第三,时间维度。这是邦盛科技算立方独特的第三维,即专注于时间序列的处理。在进行计算时,可以根据需求将数据切分成不同的时间段,并形成聚合数据。例如,如果需要计算过去6小时的数据之和,Cube可以将这6小时切分成每小时一段的6小段,然后对每个小时段的数据进行聚合计算。

  算立方中,Cube通过使用聚合算子提前进行聚合计算,生成了“时序聚合中间态”。在上述例子中,每小时的计算数据都会形成一个“时序聚合中间态”。这个中间态需要通过三个维度来定义:用户、指标和时间。如果需要计算平均值,那么这个“时序聚合中间态”会存储结果和数据个数等变量。类似的聚合算子邦盛科技已经开发了30多个,进一步增强了算立方的数据处理能力。

  王新根博士:如之前提到的,我们之前的技术体系中批计算主要依赖Spark,然而在与竞争对手的比较中,发现仅依赖Spark在性能上并无明显优势。面对这一挑战,我们采取了多项措施。

  首先对Spark的over时间窗口函数进行了调整,以增强其对热点数据的处理能力。尽管如此,这些改进的效果仍然有限。我们还尝试将流立方的算子嵌入Spark体系中,但最终发现Spark在性能方面仍无法满足公司的需求,这种方法不能从根本上解决问题。

  因此,邦盛科技决定从头开始研发“时序批处理”技术,即算立方。在算立方的研发过程中,我们也注意到金融行业客户对架构控制的严格要求,多数金融客户不允许在其大数据环境中部署一套完全独立的计算系统,而是需要满足Spark HDFS的架构。

  因此,算立方也按照这一要求进行了研发。从2018年开始,公司投入了三年时间来研发算立方。到2022年,算立方在某股份银行的反洗钱应用中进行了实践,其效果获得了银行的全面认可。这一成功案例不仅证明了算立方技术的有效性和成熟度,也展示了邦盛科技在时序计算处理能力方面的创新和技术实力。

  王新根博士:Spark非常擅长通用的批处理能力,包括说数据的join、排序、面向通用场景的聚合计算等等。算立方主要是为了补足时序批处理的能力,两者不是互斥的,而是互补的关系。

  中国信息通信研究院对算立方与Spark在时序批计算领域的性能进行了详细的评测。在这项评测中,两种计算方式在相同的任务环境下(包括相同的硬件、计算逻辑和数据量)进行了对比。测试结果显示,在少量指标的计算任务中,算立方的性能超过Spark 55倍。更值得注意的是,随着指标数量的增加,算立方的性能优势还会进一步扩大,可以超过Spark 100倍。

  王新根博士:这一显著的性能差异主要归因于算立方与Spark在计算逻辑上的不同。Spark在进行计算时,每个指标都需要开发一个对应的SQL语句。在需要同时计算多个指标的批处理场景中,Spark要求每个语句都通过不同的计算单元分别进行运算。

  这种方法的缺点在于,如果每个计算单元都需要加载同一张表,那么该表就需要被多次加载,降低了效率。而算立方在处理时遵循“at most once read”的原则。

  具体来说,算立方首先会一次性读取涉及到的所有表格,然后一次性处理所有相关指标,确保每张表最多只被读取处理一次。在对所有数据进行时序排序后,每条数据源也只会被处理一次。最后,这些数据将形成一个指标宽表。

  因此,随着指标数量的增加,算立方相比于Spark的性能提升更加显著。在实际应用场景中,算立方的“增量批处理逻辑”也显著提高了计算效率。例如,每天需要计算前30天的数据之和时,Spark每天都需读取前30天的数据并计算,而算立方能够在新一轮计算开始时直接调用前29天的计算结果,并仅添加新一天的数据进行计算。

  此外,Spark在处理热点数据造成的数据倾斜问题时性能较弱。例如,如果某个客户占据了大部分交易流水,Spark的计算资源消耗上会非常高。而算立方得益于其对聚合算子的乱序计算能力,能够更高效地进行并行计算。

  算立方在处理分区计算的均匀性、协调性和数据倾斜优化方面表现出色,加之“at most once read”的原则,保证了内存使用更少,计算过程更稳定。在流批一体的场景下,流立方与算立方内置的30多种算子能够无缝衔接,使流批一体计算变得更加自然和流畅。这种高效的计算逻辑和优化策略使得算立方在时序批计算领域表现出色。

  爱分析:上述提到了算立方需要满足Spark HDFS的架构,那么算立方与Spark生态的关系是什么?

  王新根博士:在开发初期,考虑到Spark在批计算领域几乎形成了垄断地位,算立方也希望能够依托该生态体系进行应用。于是,算立方被定义为类似 Spark中的GraphX的计算框架,插入到Spark生态系统中,而非替代它。这种设计理念体现了算立方与Spark之间的互补性,而非竞争关系。

  王新根博士:首先,流批一体计算体系的部署时间得到了显著缩短。在引入算立方之前,使用Spark进行规则实施时,比如需要判断用户过去180天的行为,Spark需要花费数天时间来补全时间窗口。这一长时间的等待对于实时决策和快速响应的需求构成了严重制。


江南体育官网下载


TAG标签耗时:0.0024280548095703 秒