AntDB“超融合+流式实时数仓”,谈传统数据库与流计算的有机融合

news2024/11/24 0:03:25

(一)

前言

据统计,在信息化时代的今天,人们一天所接触到的信息量,是古人一辈子所能接收到的信息量的总和。当今社会中除了信息量“多”以外,人们对信息处理的“效率”和“速度”的要求也越来越高。譬如,对于很多企业决策者来说,在当前的经济形势下需要尽一切可能降本增效。过去每周看看经营报表的习惯,现在慢慢转变为利用实时可视化的方式来随时分析企业当前的经营状况。


数据库作为信息的核心载体,在过去的半个世纪中,基本设计理念一直是“请求发送+结果返回”的模式。这个机制直接被Apache Storm、Spark Streaming、Flink等流处理框架所借用。


但是,所有对实时数据处理的能力,都是建立在数据库引擎之外的。真正与数据贴合最为紧密的数据库产品,在过去的20年中并没有充分发挥自己的能力。它们还在使用最传统的方式对记录进行一条条预处理,需要经常从外部实时调取额外数据进行手工关联,对开发和运维的负担极大。


因此,数据库融入流式数据处理能力,通过SQL+触发器对实时数据的处理逻辑与拓扑进行定义,是这几年行业中提出的全新课题。


近几年,国外多家企业开始了这方面的尝试,力争大幅度降低未来实时应用的开发难度与运维复杂性。实际上,国内也已经有厂商基于自身技术积累,和对未来应用场景的准确把握,逐步将流式数据处理能力融入到数据库产品中。亚信科技AntDB数据库就是其中具有典型性的代表,也是国内为数不多的,率先研发并具备“超融合+流式实时数仓”能力的数据库。

(二)

超融合架构,打造分布式数据库新纪元

上一个十年,随着国内金融、互联网行业高速发展,谈国产数据库,必谈分布式与云计算能力。其带来的数据规模大,查询复杂度高、关联度高等业务需求,使分布式数据库逐渐发展成熟,并具有平滑扩展、高可靠、低成本等特性优点;而数据库等基础软件的服务方式向云化发展,有利于降低数据库运维成本,灵活调度资源。

在下一个十年,“数智化转型”是推动经济社会从“量增”到“质变”的快速路。用户对数据库的需求日益精细化,从技术底层支撑多业务的系统架构,将越来越受到企业侧的青睐。在此背景下,多引擎数据库的融合能力开始出现,HTAP、湖仓一体、流批一体等都是这个趋势的先行者,即超融合。

图:AntDB数据库超融合框架

亚信科技AntDB数据库提出了全新的“超融合”理念,即将多引擎、多能力融合在一起,满足企业越发复杂的混合负载场景与混合数据类型业务需求。AntDB的超融合框架,能够充分利用分布式数据库引擎的架构优势,在HTAP概念上进行进一步拓展,将时序存储、流处理执行以及向量化分析等多引擎进行统一架构封装。

在同一个数据库集群支持多种业务模型,支持多样化的数据需求,大大降低业务系统的复杂性,实现统一框架下的“一站式数据管理”。

(三)

流式处理引擎,颠覆50年未变的数据库内核

流式处理的概念

2001年9月11日,美国世贸大楼被袭击,美国国防部第一次将“主动预警”纳入国防的宏观战略规划。而IBM作为当时全球最大的IT公司,承担了大量基础支撑软件研发的任务。其中2009年正式发布的IBM InfoSphere Streams,就是全球最早真正意义上的商业化流数据处理引擎之一。

典型的流处理框架,如Apache Storm、Spark Streaming、Flink等也都是基于IBM的设计理念,采用“请求发送+结果返回”的模式进行了研发,并大量应用于实时互联网类型的业务中,对前方产生的海量事件进行实时预处理。

Gartner在《2022中国数据库管理系统市场指南》中,将流处理定义为:涉及对“事件”(event)的观察和触发,通常在“边缘”采集,包括将处理结果传输至其他业务阶段。并将在未来五年中,获得更多关注。

图:Gartner对于流/事件处理的定义

传统部署架构的痛点

但是,不论Apache Storm、Spark Streaming、还是Flink等流处理框架的设计,都是将目光集中在“处理”本身。由于其自身不具备数据库的能力,当需要与其他数据进行关联、临时存储等互动时,则需要进行复杂的数据抽取。这使得大量的开发人员,还需要编写复杂的Java/C++/Scala代码,用最传统的方式对记录进行一条条预处理,并且还需要经常从其他外部的缓存/数据库中实时调取额外数据进行手工关联,开发和运维的负担极大。

在亚信科技AntDB数据库发展的十几年中,我们看到大量运营商对核心数据处理加工的业务场景。这些需求中,有些能够很容易地使用传统技术满足,但还有一些一定需要采用流式计算等实时处理能力才能支持。

数据库与流式处理的有机融合

流数据处理模式与传统数据库的内核设计有着极大的区别。其核心本质在于,传统数据库架构设计中,应用与数据库之间是“请求-响应“的关系,即业务发起SQL请求,数据库随即执行请求并返回结果。

而流处理内核则是“订阅-推送“的模式。通过预先定义好的数据处理模型,对数据承载的业务“事件”进行处理,之后将处理后的结果推送给下游应用进行展现或入库。

图:AntDB数据库流式处理引擎的基础架构

因此在流式数据实时处理领域,亚信科技AntDB数据库做了大量从零开始的创新性探索与研究,于2022年底推出AntDB-S流处理数据库引擎,彻底将流式计算与传统交易、分析型数据存储进行了融合,让用户可以在数据库引擎内,通过标准SQL自由定义数据的结构以及实时处理逻辑。

同时数据在数据库内部的流对象、表对象之间自由流转的过程中,用户可以随时通过建立索引、流表关联、触发器、物化视图等方式对数据进行性能优化、数据加工、集群监控、以及业务逻辑定制。

功能优势

  • 技术堆栈简化:在实时流事件的处理上,AntDB数据库流式处理一体引擎将大量的实时数据处理做到数仓内部,更进一步向通用事务靠拢。

  • 标准SQL定义:传统流处理方式对于SQL 的处理很弱,还要写大量业务代码,而AntDB-S可以通过统一SQL语句进行处理,流的使用上更便捷。

  • 统一数据接口:支持流批模式的转换,AntDB数据库统一超融架构,实现了对外的接口统一,数据的采集与处理无需分开,流批都用SQL 即可全部搞定。

  • 支持完整事务处理:传统流处理过程中不支持数据的修改,AntDB-S支持流处理中对数据的修改和事务操作。

  • 实时结果更准确:通过分布式事务的ACID特性,解决实时流数据处理中,数据容灾和一致性的问题,可以精确判断数据故障点,完成流事件的矫正计算和重统计。

(四)

实时数据平台,快速实现企业全链路实时化

引入数据仓库、数据挖掘、HTAP等先进理念,通过实时数据应用平台来装载庞大的信息量,进行实时分析处理,克服数据处理过程中的困难,是当下各企事业单位、互联网、金融,政务等行业核心系统建设的重点。

AntDB-S流式数据库可以被应用于实时数仓、实时报表、实时告警、异步交易等业务场景,用户可以通过直接使用简单SQL创建复杂的流式数据处理业务逻辑,轻松替代Apache Storm、Spark Streaming、Flink等传统流式处理引擎。

图:AntDB新一代流式处理引擎

譬如说,对于实时统计报表来说,所有的统计指标项都可以通过 SQL命令做到监测实时变化数据。而对于实时告警来说,所有的告警记录都能够被数据库在毫秒级推送给前端应用,而不需要应用定时从告警表中反复循环查询。

在对传统流式引擎替代的过程中,AntDB-S可以帮助用户节省大量的开发与测试资源,同时数据的安全性与ACID也完全依托于其底层的AntDB数据库,从根本上保证数据的一致性与安全可靠。除此以外,AntDB数据库所支持的全部高可用、容灾、多租户、鉴权授权、分布式、事务等能力将会完全被AntDB-S所继承,几十倍降低用户对流式业务的开发与维护成本。

典型业务场景

  • 实时统计:从过去的“每天出报表”变为毫秒级推送,展示实时经营状态。

  • 实时告警:从过去的“定时风险监控”变为“实时风险推送告警”。

  • 降本增效:从过去的“java代码开发”变为零代码开发,降低应用开发成本。

  • 异步交易:从过去的“端到端一致事务”增强了异步事务处理支持,增大并发提升性能。

图:AntDB典型业务场景

关于AntDB数据库

AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/385808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows11如何打开ie浏览器

目录1.背景:2.方法一:在 edge 中配置使用 ie 模式3.方法二:通过 Internet 选项 打开1.背景: 昨天电脑自动从win10升级为win11了,突然发现电脑找不到ie浏览器了,打开全都是直接跳转到 edge 浏览器&#xff0…

Linux下使用C语言实现简单的聊天室程序

本文章介绍一种基于Linux使用C语言实现简单的局域网聊天室程序的方法,支持消息群发,历史数据查询,好友列表查看,好友上线下线提醒等功能。聊天界面如下图所示:下面将按步骤介绍该系统的设计实现,首先在linu…

【JavaWeb】HTML常用标签

HTML标签结构 HTML语言主要都是由标签构成的。 标签名 在 <> 中 如<body> 标签大部分成对出现&#xff0c;代表开始和结束 如 <body>标签中的内容</body> 少部分单个出现&#xff0c;叫单标签 </br> 代表换行 标签中可以加属性&#xff0c;多个…

Oracle使用序列触发器实现主键id自动增长

记录一下oracle中的字段自增问题 在mysql中我们可以使用auto_increment来实现自动增长功能 而在oracle主键没有自动增长类型&#xff0c;所以一般使用序列产生的值作为某张表的主键,实现主键自增。 序列是oracle用来生产一组等间隔的数值。序列是递增&#xff0c;而且连续的。…

The JSON value could not be converted to System.DateTime

项目场景&#xff1a; 我们在使用Asp.Net Core WebApi和前端进行交互时&#xff0c;经常会因为提交数据中有时间自动而导致服务端接收不到数据&#xff0c;前端报错的问题。 问题描述 在开发中经常是后端同学把WebApi开发完毕后&#xff0c;然后前端同学进行接口对接开发。理…

Java:Java vs Kotlin–Android应用程序开发的最佳语言?

在移动应用技术领域&#xff0c;Java和Kotlin是最流行的搜索词之一。如果你也在寻找Java与Kotlin框架的比较&#xff0c;那么这篇文章就是为你准备的!让我们来全面了解一下这两种技术之间的区别。编程语言的定义Java的工作原理&#xff1a;Java的工作原理是“编写一次&#xff…

前端整理 —— javascript 2

1. generator 详细介绍 generator 介绍 generator 是 ES6 提供的一种异步编程解决方案&#xff0c;在语法上&#xff0c;可以把它理解为一个状态机&#xff0c;内部封装了多种状态。执行generator&#xff0c;会生成返回一个遍历器对象。返回的遍历器对象&#xff0c;可以依次…

软考中级-结构化开发

1 系统设计的基本原理&#xff08;1&#xff09;抽象&#xff08;2&#xff09;信息隐蔽&#xff08;3&#xff09;模块化将待开发软件分解为多个可独立开发、测试的模块&#xff0c;分而治之&#xff0c;最后组装。&#xff08;4&#xff09;模块独立每个模块完成一个相对独立…

世界文明的脉络

人类文明大体上可分为农耕文明、海洋文明和游牧文明三大类别&#xff0c;文明的标志一般是文字、青铜器、城市以及礼仪性建筑等要素。据此&#xff0c;史学家目前已发现了巴比伦文明、埃及文明、印度文明、华夏文明、希腊文明和波斯文明六种主要文明&#xff0c;其中前四种文明…

字节跳动测开岗,4面都过了,HR告诉我被刷在这个地方....

说在前面 面试时最好不要虚报工资。本来字节跳动是很想去的&#xff0c;几轮面试也通过了&#xff0c;最后没offer&#xff0c;自己只想到下面几个原因&#xff1a; 虚报工资&#xff0c;比实际高30%&#xff1b;有更好的人选&#xff0c;这个可能性不大&#xff0c;我看还在…

stm32CubeIDE FMC 驱动LCD(8080)

一&#xff0c;TFT屏硬件接口16位&#xff0c;80并口。二&#xff0c;FMC介绍。FSMC&#xff08;Flexible Static Memory Controller&#xff09;&#xff0c;译为灵活的静态存储控制器。STM32F1 系列芯片使用 FSMC 外设来管理扩展的存储器&#xff0c;它可以用于驱动包括 SRAM…

【halcon】模板匹配参数之金字塔级数

背景 今天&#xff0c;在使用模板匹配的时候&#xff0c;突然程序卡死&#xff0c;CPU直接飙到100%。最后排查发现是模板匹配其中一个参数 NumLevels 导致的&#xff1a; NumLevels: The number of pyramid levels used during the search is determined with numLevels. If n…

java25种设计模式抽象工厂模式

Java设计模式 - 抽象工厂模式 抽象工厂模式是另一个创建模式。 抽象工厂模式&#xff0c;也称为工厂的工厂&#xff0c;有一个工厂创建其他工厂。 当使用抽象工厂模式时&#xff0c;我们首先使用超级工厂创建工厂&#xff0c;然后使用创建的工厂创建对象。 简单来说&#xff0…

事件循环机制(Event Loop)和宏任务(macro-tast)微任务(micro-tast),详细讲解!!!

“事件循环机制” 和 “宏任务微任务” 也是前端面试中常考的面试题了。首先&#xff0c;要深刻理解这些概念的话&#xff0c;需要回顾一些知识点。知识点回顾1、进程与线程进程。 程序运行需要有它自己的专属内存空间&#xff0c;可以把这块内存空间简单的理解为进程每个应用至…

计算机求解满足三角形各边数字之和相等的数字填充

圆圈处不重复的填入1至9&#xff0c;使得每条边的四个数字相加的总和相等。 求解思路&#xff1a; 数组中存放1到9的数字&#xff0c;每次随机交换两个数字&#xff0c;构建出新的数字组合&#xff0c;计算这个数字组合是否符合要求。 #include <stdio.h> #include <…

SpringBoot实现Excel导入导出,简单好用

EasyPoi简介 POI是Java操作MicroOffice&#xff08;如对Excel的导入导出&#xff09;的一个插件。POI的全称是&#xff08;Poor Obfuscation Implementation&#xff09;&#xff0c;POI官网地址是 http://poi.achache.org/index.html 。 EasyPoi对POI进行了优化&#xff0c;…

SVN vs Git 不是技术之争,而是生态之争

师父&#xff08;80 后老员工&#xff09;&#xff1a;小吉啊&#xff0c;我看我们文档越来越多了&#xff0c;手动管理起来很费劲。你去搞一个 SVN 来用一哈&#xff0c;做个版本控制&#xff0c;这样大家都方便。 徒弟&#xff08;95 后新力量&#xff09;&#xff1a;师父啊…

电脑快捷方式删除文件后四种找回方法

快捷指令是一种用作替代快捷键操作的技术。也可以称为“快捷键”&#xff0c;“快捷方式”或“快捷键序列”&#xff0c;它们允许用户在非常快速和方便的方式建立特定操作序列&#xff0c;这对于执行重复性或提高效率非常有用。通过使用快捷指令&#xff0c;您可以执行快速复制…

pod进阶

一.资源限制当定义 Pod时可以选择性地为每个容器设定所需要的资源数量。最常见的可设定资源是CPU和内存大小&#xff0c;以及其他类型的资源。当为 pod 中的容器指定了request资源时&#xff0c;调度器就使用该信息来决定将Pod 调度到哪个节点上。当还为容器指定了limit资源时&…

C++Primer16.1.6节练习

练习16.28&#xff1a; 简易的shared_ptr代码如下 #include <iostream> #include <vector> #include <list> using namespace std;//shared_ptr模板 template<typename T>class SharedPtr {friend SharedPtr<T>& MakeShared(T* t); public…