如今,随着企业业务规模的扩张、互联网应用的普及以及智能硬件的发展,可用的信息量及其规模正在呈现爆发增长的趋势。从采集到的异构数据中挖掘更深层次的信息并进行深度分析来赋予其价值对于业务发展来说至关重要。并且,这些异构数据的价值在于其时效性,通过对实时流产生的海量数据进行实时处理或进行历史数据关联分析等复杂处理可以全方位支持业务决策的制定,而这些都离不开流计算的支持。
Slipstream是星环科技自主研发的一款企业级、高性能实时流计算引擎,通过提供丰富的组件与产品功能可以帮助用户快速开发实时数据仓库、实时报表分析、实时智能推荐、实时欺诈检测与风险控制等应用。目前Slipstream已在金融 、交通、能源、电信、电商等多个行业数百个生产集群中部署使用。
近日,星环科技实时流计算引擎Transwarp Slipstream正式发布9.0版本,新版本新增了无窗口关联功能,在聚合计算能力上进行了深度优化,充分提升了实时报表分析能力。Slipstream9.0借助引擎新特性,打破了窗口的局限性,进一步简化了大屏展示、实时报表等业务的开发,全面保证了数据的时效性和正确性,做到和实时同步任务几乎相同时延,产品的实时性提升了一个新台阶。本文将重点介绍全新的Slipstream9.0及其可视化开发监控工具Slipboard带来的全新功能以及在性能上带来的提升。
产品优势
随着流计算的不断发展,客户可以使用流计算引擎开发出越来越复杂的实时应用来实现对数据价值的挖掘。Slipstream是企业级流计算引擎,可以全方位支持用户在不同业务场景下的应用。例如在实时数仓方面,Slipstream可以很好地应对上百任务、近万Task并发的数据同步,并做到自动容灾、实时告警、数据不丢不重,这些核心特性在某港务公司和制药公司得到了很好的落地。相对于采用编程方式开发流应用,Slipstream主要核心优势包括:
SQL兼容性极高
Slipstream通过SQL的方式为用户提供开发接口,完整支持NSI SQL 2003、2016标准,提供丰富的算子、函数,满足大多数流处理场景。相比以往流处理平台的高技术门槛,用户使用Slipstream无需编码,省去项目构建发布打包等流程,仅通过SQL即可轻松上手开发部署应用,大幅度降低用户开发以及学习成本。并且,Slipstream支持丰富的存储类型,对星环各类数据库产品以及其他第三方产品提供良好支持,全方位满足用户在各类业务场景下的使用需求。通过配合Slipboard可视化流应用开发及管理工具,也可以在界面生成流应用,并实时监控任务状态,配置告警规则等。此外,采用编程方式可能对性能的影响不可控,无法将引擎性能发挥到极致。Slipstream就数据处理和访问进行了诸多优化,例如使用SQL可以无缝对接引擎内部。
高可用支持
Slipstream支持服务高可用及任务高可用。支持端到端Exactly-Once,任务自动故障恢复,多种状态存储和Checkpoint存储选择,满足各种高可用场景需求。在服务发生故障时,将业务的影响程度降到最低,高效提升故障恢复速度。随着流计算的不断发展,用户可以使用Slipstream开发出越来越复杂的实时应用来实现对数据的价值挖掘,例如金融领域的反洗钱反欺诈、交通领域的人车路管控、道路交通运行态势预警研判等。
新版本优化与新增功能
Slipstream9.0在性能和功能上都实现了全面增强,接下来将为您介绍此系列版本带来的全新变化。
全新功能加持
新增规则引擎V3,助力用户灵活配置业务规则,提高开发效率
规则引擎是处理复杂规则集合的引擎。通过模拟业务决策过程,根据预设规则库中预定义的语义模块处理事件并触发相应操作得到最终的执行结果。规则引擎的核心作用在于将复杂、易变的规则与应用系统的执行逻辑分离,由灵活可变的规则来描述业务需求。其大大降低了系统的维护成本,使企业的决策能够更加快速的反应到应用系统中。规则引擎通常由三部分组成,即规则库、事实收集和推理引擎。规则是由条件和结论组成的推理语句,可以进行推演或归纳。当事实满足条件时,相应的结论被激活。此类引擎广泛应用于银行信贷、交易风控、反洗钱、业务发展等诸多领域。Slipstream在9.0新增了规则引擎V3,其充分兼容Drools语法,支持本地调试,提供异步接口,访问数据库的同时可以保证高吞吐。通过内置规则引擎,可助力用户灵活配置业务规则,分离应用开发者的技术决策和商业决策者的商业决策逻辑,有效提高复杂逻辑的代码的可维护性,提高开发效率。
异步运行UDF,提升处理性能
Slipstream为用户提供了许多的解决方案来处理复杂的业务场景,但是随着用户业务规模的增长,原生函数很难应对一些复杂情况。因此,Slipstream支持用户使用UDF(User-Defined Functions自定义函数)。但是,一些用户定义的函数在使用过程中必须等待资源,在等待时,计算线程极易被阻塞而影响性能。因此,Slipstream支持异步运行UDF,其使用多路复用线程模型,异步非阻塞的处理数据,从而提升UDF处理性能。
无窗口流流Join,避免窗口出现数据进度不一致等风险
Join是处理数据流的重要操作符之一,为了在无限的数据流上连续产生输出,通常使用窗口来限制join处理的范围。但是,在同一个窗口的两个数据流之间进行join往往存在数据乱序或者延时的情况,导致两个流的数据进度不一致,出现数据跨窗口的情况,那么数据就无法在同一个窗口内join。并且,窗口无法支持时间跨度较大的延迟。因此,为了避免上述问题的产生,Slipstream9.0支持用户无需创建窗口即可实现流流Join。
新增KeyByte存储支持,业务逻辑涉及KeyByte时可以高效开发管理
Slipstream9.0新增KeyByte存储支持,其引擎内置支持输出到KeyByte,并提供查询功能。在过往版本中,用户在进行数据查询时,需要先查询KeyByte,再去跟表进行联合查询。并且,当数据需要进行更新时,需要单独写程序。在引进KeyByte后,用户可以直接拿KeyByte的数据来做计算,并且可以直接更新KeyByte数据,无需再单独写程序来跟KeyByte做交互,可以同步进行资源管理。
新增json字段类型,充分提升产品易用性
Slipstream9.0支持SQL 2016 标准中json的创建和访问,新增json 字段、以及丰富的查询和编辑json功能,为json提供更全的支持,整体简化了json 对象的处理,极大程度地提升了Slipstream的易用性。
关键性能提升
引进无锁队列和多路复用技术,改善流控机制,提高吞吐
如果流任务中有聚合计算,就需要对数据进行Shuffle,使相同聚合key的数据汇聚到同一个节点计算。为了提升Shuffle性能,Slipstream引进了无锁队列,在并发量高的环境下有效避免了使用锁带来的性能损失,并避免了死锁问题。另外,数据源消费环节也使用了无锁队列,支持异步拉取Event Store、RabbitMQ等数据,处理速度更快。流控与背压是Shuffle的重要一环,当下游处理能力下降的时候,通过流控和背压很好地控制住上游数据的拉取速率,减小集群的负载,保障了服务的稳定。Slipstream在使用无锁队列的同时,改善流控机制,采用多路复用技术,非阻塞传递数据与消息,任务之间共享TCP连接,充分利用资源并控制内存使用,使流上Shuffle性能步入一个新台阶。
状态与高可用优化,提升故障恢复效率
分布式流处理系统被用来处理不断扩展的实时数据,它能够组织共享的分布式计算资源并实时处理多个数据流。但是,一旦发生系统故障,单个节点的故障会中断甚至停止整个流处理进程,导致数据集不完整以及结果不准确,最终危及对数据较为敏感的应用程序(例如,医疗监控、财务分析和警报系统)。因此,流计算系统的容错机制十分重要。容错机制的核心是checkpoint(检查点)。Checkpoint是一个全局的程序快照,通过定期执行checkpoint来对状态变量的内容进行快照并进行持久化存储。当发生故障时,可以使用最新的checkpoint进行重启。然而,随着业务量与数据规模的增长,创建checkpoint的时间会十分耗时并且消耗大量资源。Slipstream基于屏障机制实现了轻量级的异步checkpoint技术,通过定期触发任务检查点,将对应时刻的任务状态持久化到分布式存储上来保证系统崩溃下计算的一致性,保证了系统高可用和高效率。并且,为了避免资源的浪费并降低故障恢复的时长,Slipstream引入RocksDB作为状态存储,支持增量checkpoint,使用RocksDB内置的备份机制来合并检查点数据。这样,checkpoint的数据会自动合并老的检查点数据并自动清理,从而保障故障恢复的效率。此外,Slipstream9.0可将checkpoint的数据存于Event Store中,进一步避免由于读写频繁所导致的性能影响。
对数据处理和拷贝进行优化,充分提升mapjoin性能
MapJoin简单来说就是在Map阶段将小表读入内存,顺序扫描大表完成Join。在CPU使用率比较高的时候mapJoin的性能很容易受到影响。在运行时基本类型的自动装箱一定程度上降低了性能并消耗额外的内存,codegen减少了数据转换的周期消耗,避免了资源的浪费,整体性能有所提高。因此,Slipstream通过codegen技术充分提升了mapjoin性能,有效避免了性能退化。
优化Source Event Store Offset重置策略,方便进行数据回溯,提升整体易用性
当第一次启动流任务的时候,会从Event Store最新的Offset开始读取,但是有时候需要消费任务启动之前的数据。Slipstream优化了灵活的消费Event Store Offset策略,支持用户按Offset ,按时间来重置,更加方便灵活,可以有效防止数据丢失。
优化可视化开发监控工具Slipboard,全方位提升监控、运维、告警功能
传统的监控系统展现能力比较弱,Slipstream结合多年来实际生产部署的管理运维经验,深入分析实时处理监控的痛点,开发了一套完整的指标收集框架,并通过Slipboard 进行配置管理和监控。例如任务监控到故障数据后进行预警和告警,对集群的整体运行状况进行监控,提供任务处理的延迟、吞吐、实时数据量、使用资源等丰富指标。除了告警、辅助用户进行页面运维以外,Slipboard还提供了一套图形化的任务设计接口,降低了对应用开发人员的技术门槛要求,降低了开发人员的学习成本,进一步提高了应用开发的效率。
总结
实时分析在应用场景中至关重要,通过对实时数据进行实时处理,用户可以快速制定出可行的业务决策,防止数据价值的流失。星环Slipstream实时流计算引擎已为上千家行业用户提供实时的数据采集、存储、查询、处理等服务。用户通过使用Slipstream可以快速开发出一系列应用,充分应用于欺诈检测、实时风控、实时推荐、设备故障检测、预测性维护等应用场景。例如,基于星环实时流计算引擎Slipstream构建的实时邮政监管平台每天都会有上亿的异构数据写入,在确保数据高并发写入的同时需要保障数据不丢不重,入库即可进行查询和分析。通过Slipstream,平台实现了不同结构数据的高并发写入,写入性能达到了数百万记录/秒,每天接入70亿业务数据,累计接入了PB级海量数据,具备数据采集、存储、处理、加工等一系列重要功能,帮助实现了离线业务、在线业务的即席秒级查询分析、秒级上亿数据的交互式复杂查询、分析、探索等应用需求。实时数据处理可以帮助多个应用领域,例如股票交易、新产品监控、欺诈检测和监管合规监控,通过实时警报和实时分析支持趋势感知和决策制定。并且,实时任务的故障更可能给企业造成经济损失,严重的甚至会导致生产事故,因此,实时处理的监控也尤为重要。Slipstream通过配合Slipboard可视化流应用开发及管理工具,可以在界面生成流应用,并实时监控任务状态,配置告警规则,实现系统与应用级实时监控,高效保障系统的稳定运行。此次,Slipstream9.0在产品易用性、性能、开发效率、存储成本等方面实现了全面升级。未来,Slipstream将持续对更多核心优势进行迭代与升级,帮助用户挖掘实时数据价值。