CN113760983A - 数据处理方法、系统及非瞬时性计算机可读存储介质 - Google Patents
数据处理方法、系统及非瞬时性计算机可读存储介质 Download PDFInfo
- Publication number
- CN113760983A CN113760983A CN202110075480.8A CN202110075480A CN113760983A CN 113760983 A CN113760983 A CN 113760983A CN 202110075480 A CN202110075480 A CN 202110075480A CN 113760983 A CN113760983 A CN 113760983A
- Authority
- CN
- China
- Prior art keywords
- data
- real
- stream
- session
- time calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种数据处理方法、系统及非瞬时性计算机可读存储介质,涉及计算机技术领域。其中的数据处理方法包括:将从客户端接收的流数据写入消息中间件;通过结构化流处理引擎对流数据进行实时计算,获得实时计算结果;将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库;通过数据湖接收并响应离线的数据请求,通过联机分析处理数据库接收并响应实时的数据请求。本公开实现了流批一体的数据处理方法,既能够节省计算资源和存储资源,又能够保障离线的数据请求与实时的数据请求在响应结果上的一致性,从而为开发和维护数据处理系统提供了便利。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种数据处理方法、系统及非瞬时性计算机可读存储介质。
背景技术
采用Lambda架构的数据处理系统,通常包括实时子系统和离线子系统。这两套子系统采用不同的计算逻辑和存储资源。
通过不同的查询方式向这两套子系统分别发起查询请求,可以分别满足不同的业务时效需求。
发明内容
本公开解决的一个技术问题是,如何实现流批一体的数据处理方法。
根据本公开的一个方面,提供了一种数据处理方法,包括:将从客户端接收的流数据写入消息中间件;通过结构化流处理引擎对流数据进行实时计算,获得实时计算结果;将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库;通过数据湖接收并响应离线的数据请求,通过联机分析处理数据库接收并响应实时的数据请求。
在一些实施例中,通过结构化流处理引擎对流数据进行实时计算包括:通过Spark结构化流处理引擎,从消息中间件读取流数据并按照会话标识对流数据进行分组,获得各个分组会话的流数据;通过Spark结构化流处理引擎的状态算子flatMapGroupsWithState,缓存各个分组会话的流数据并对各个分组会话的流数据执行业务计算逻辑,获得各个分组会话的统计字段。
在一些实施例中,对各个分组会话的流数据执行业务计算逻辑获得各个分组会话的统计字段包括:对任一分组会话中的各个流数据进行排序;获取任一分组会话中的各个流数据的业务指标参数;根据业务指标参数,确定任一分组会话的统计字段。
在一些实施例中,将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库包括:在实时计算结果发生变更的情况下,将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库。
在一些实施例中,通过结构化流处理引擎对流数据进行实时计算的间隔时长大于预设时长。
在一些实施例中,数据处理方法还包括:在数据湖上设置会话已完成分区和会话未完成分区;其中,将实时计算结果以Upsert方式写入数据湖的会话未完成分区。
在一些实施例中,将从客户端接收的流数据写入消息中间件包括:通过HTTP接收机从客户端接收流数据;通过HTTP接收机将流数据写入Kafka消息中间件。
根据本公开的另一个方面,提供了一种数据处理系统,包括:HTTP接收机,被配置为将从客户端接收的流数据写入消息中间件;消息中间件,被配置为存储流数据;Spark结构化流处理引擎,被配置为对流数据进行实时计算,获得实时计算结果,并被配置为将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库;数据湖,被配置为接收并响应离线的数据请求;联机分析处理数据库,被配置为接收并响应实时的数据请求。
在一些实施例中,Spark结构化流处理引擎被配置为:从消息中间件读取流数据并按照会话标识对流数据进行分组,获得各个分组会话的流数据;通过状态算子flatMapGroupsWithState,缓存各个分组会话的流数据并对各个分组会话的流数据执行业务计算逻辑,获得各个分组会话的统计字段。
在一些实施例中,Spark结构化流处理引擎被配置为:对任一分组会话中的各个流数据进行排序;获取任一分组会话中的各个流数据的业务指标参数;根据业务指标参数,确定任一分组会话的统计字段。
在一些实施例中,Spark结构化流处理引擎被配置为:在实时计算结果发生变更的情况下,将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库。
在一些实施例中,通过结构化流处理引擎对流数据进行实时计算的间隔时长大于预设时长。
在一些实施例中,数据湖上设置有会话已完成分区和会话未完成分区;Spark结构化流处理引擎被配置为将实时计算结果以Upsert方式写入数据湖的会话未完成分区。
在一些实施例中,消息中间件为Kafka消息中间件;HTTP接收机被配置为:从客户端接收流数据;将流数据写入Kafka消息中间件。
根据本公开的又一个方面,提供了一种数据处理系统,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述的数据处理方法。
根据本公开的再一个方面,提供了一种非瞬时性计算机可读存储介质,其中,非瞬时性计算机可读存储介质存储有计算机指令,指令被处理器执行时实现前述的数据处理方法。
本公开实现了流批一体的数据处理方法,既能够节省计算资源和存储资源,又能够保障离线的数据请求与实时的数据请求在响应结果上的一致性,从而为开发和维护数据处理系统提供了便利。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开一些实施例的数据处理方法的流程示意图。
图2示出了通过结构化流处理引擎对流数据进行实时计算的流程示意图。
图3示出了本公开一些实施例的数据处理系统的结构示意图。
图4示出了本公开另一些实施例的数据处理系统的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
经研究发现,采用Lambda架构的数据处理系统会浪费计算资源和存储资源,且开发和维护数据处理系统较为复杂。例如,为了修改一个技术指标,需要分别修改在两个子系统中的计算逻辑。同时,由于两个子系统中的计算逻辑不同,离线的响应结果和实时的响应结果很可能存在差异,需要后续对比结果数据。
如果采用开源的流处理框架Flink或者实时计算框架Spark StructuredStreaming实现Append模式的流批一体,则存在一定的缺陷。例如,采用Flink或者SparkStructured Streaming需要将计算结果输出到HDFS(Hadoop Distributed File System,分布式文件系统)和OLAP(Online Analytical Processing,联机分析处理)系统进行存储,然而HDFS不支持Upsert(更新或插入)操作而只支持Append(在结尾插入)操作,因此需要确保写入数据正确性以后才能写入,这样导致延迟比较大,影响及时性和用户体验。再比如,HDFS写入不具有原子性,任务失败时,容易造成脏数据,处理比较复杂。有鉴于此,本公开借助开源的Delta Lake数据湖技术实现流批一体的数据处理方法。
首先结合图1描述本公开数据处理方法的一些实施例。
图1示出了本公开一些实施例的数据处理方法的流程示意图。如图1所示,该方法包括步骤S101~步骤S104。
在步骤S101中,将从客户端接收的流数据写入消息中间件。
例如,通过HTTP接收机从客户端接收流数据。其中,客户端具体可以为个人计算机或移动端设备上的应用或网页,流数据具体可以为埋点数据和用户浏览数据。然后,通过HTTP接收机可以将流数据写入Kafka消息中间件。
在步骤S102中,通过结构化流处理引擎对流数据进行实时计算,获得实时计算结果。
例如,可以通过结构化流处理引擎Spark Structured Streaming读取Kafka消息中间件存储的流数据,并对流数据进行实时计算。本领域技术人员能够理解,每次对流数据进行实时计算之间存在一定的间隔时长。也就是说,在满足数据正确性的前提下,为了提高数据的及时性,每隔一定的间隔时长触发一次实时计算。该间隔时长可以设置为大于预设时长,例如设置为1分钟,从而兼顾数据的及时性和数据的吞吐量,并减轻对Delta Lake和OLAP系统的负面影响。
在步骤S103中,将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库。
例如,结构化流处理引擎可以通过“Batch Result Upsert(批结果更新或插入)模块,将实时计算结果以更新或插入Upsert方式分别写入Delta Lake数据湖和联机分析处理数据库OLAP系统。
在一些实施例中,为了进一步提升数据处理的效率和性能,可以判断每次实时计算结果与上一次实时计算结果之间是否发生变更。在实时计算结果发生变更的情况下,将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库。其中,Upsert是数据库操作中的术语,其表示若主键存在则以Update方式进行数据更新,若主键不存在则以Insert方式进行数据插入。在实时计算结果发生未变更的情况下,则无需将实时计算结果写入Delta Lake数据湖或联机分析处理数据库OLAP系统。会话结束后,可以把最终的实时计算结果再次以Upsert方式写入Delta Lake和OLAP系统,修正前面写入的中间状态的实时计算结果。
在一些实施例中,为了进一步提升Upsert操作的效率和性能,可以在Delta Lake数据湖上设置会话已完成分区和会话未完成分区。其中,将实时计算结果以Upsert方式写入数据湖的会话未完成分区,从而大幅减少Upsert操作需要扫描的数据量。
在步骤S104中,通过数据湖接收并响应离线的数据请求,通过联机分析处理数据库接收并响应实时的数据请求。
Delta Lake数据湖中的数据主要用于离线计算和分析,因此Delta Lake数据湖支持离线的数据查询请求和数据分析请求,例如支持Hive、Spark、Presto等引擎的查询请求。OLAP数据库支持多维度的实时数据查询请求,例如支持web页面的多维度的实时数据查询请求。本领域技术人员能够理解,此处的OLAP系统具体可以选用Clickhouse、Doris等等,只要OLAP系统支持Upsert操作即可。
本实施例通过数据湖实现了流批一体的数据处理方法,能够克服Lambda架构的缺点。在满足多维度的数据查询请求的前提下,既能够节省计算资源和存储资源,又能够保障离线的数据请求与实时的数据请求在响应结果上的一致性,从而为开发和维护数据处理系统提供了便利。
同时,借助数据湖支持Upsert的特性,本实施例不断的用更准确的实时计算结果修正前面已经写入的实时计算结果,从而兼顾数据的准确性和及时性;借助数据湖支持原子性的特性,本实施例在任务写入失败后,不会产生脏数据;借助数据湖支持多版本的特性,本实施例中的数据可以随时回退到之前的某个版本,提升了数据的安全性。
此外,将实时计算结果批量写入OLAP系统,能够兼顾数据的容错性、可靠性和OLAP系统内各个节点之间的负载均衡。
下面结合图2描述通过结构化流处理引擎对流数据进行实时计算的一些实施例。
图2示出了通过结构化流处理引擎对流数据进行实时计算的流程示意图。如图2所示,该实施例包括步骤S2021~步骤S2023。
在步骤S2021中,通过Spark结构化流处理引擎,从消息中间件读取流数据并按照会话标识Session Id对流数据进行分组,获得各个分组会话的流数据。
在步骤S2022中,通过Spark结构化流处理引擎的状态算子flatMapGroupsWithState,缓存各个分组会话的流数据并对各个分组会话的流数据执行业务计算逻辑,获得各个分组会话的统计字段。
鉴于Spark Structured Streaming没有内置的会话窗Session Window的概念,可以通过flatMapGroupsWithState来模拟Session Window缓存会话内的所有消息,并进一步执行业务计算逻辑。下面以获取任一分组会话的统计字段为例,具体举例说明如何执行业务计算逻辑。
首先,对任一分组会话中的各个流数据进行排序。例如,可以按照各个流数据的消息序号以及请求时间进行排序和遍历。
然后,获取任一分组会话中的各个流数据的业务指标参数。其中,业务指标参数具体可以包括客户端所在的地理信息、网络运营商信息、页面停留时长、访问深度、会话内第一个访问页面、会话内最后一个访问页面、客户端的操作系统及版本号等等。
最后,根据这些业务指标参数,确定任一分组会话的统计字段。例如,用该分组会话中下一个页面的请求时间减去当前页面的请求时间,即可确定该分组会话中当前页面的停留时间。
本领域技术人员能够理解,Spark Structured Streaming支持恰好一次exactly-once语义,并提供了checkpoint功能。结合kafka可以重置消费位点、Delta Lake的原子性和OLAP的Upsert语义,满足端到端的exactly-once特性,即保证消息不丢不重。
下面结合图3描述本公开数据处理系统的一些实施例。
图3示出了本公开一些实施例的数据处理系统的结构示意图。如图3所示,数据处理系统30包括:HTTP接收机301,被配置为将从客户端接收的流数据写入消息中间件;消息中间件302,被配置为存储流数据;Spark结构化流处理引擎303,被配置为对流数据进行实时计算,获得实时计算结果,并被配置为将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库;数据湖304,被配置为接收并响应离线的数据请求;联机分析处理数据库305,被配置为接收并响应实时的数据请求。
在一些实施例中,Spark结构化流处理引擎303被配置为:从消息中间件读取流数据并按照会话标识对流数据进行分组,获得各个分组会话的流数据;通过状态算子flatMapGroupsWithState,缓存各个分组会话的流数据并对各个分组会话的流数据执行业务计算逻辑,获得各个分组会话的统计字段。
在一些实施例中,Spark结构化流处理引擎303被配置为:对任一分组会话中的各个流数据进行排序;获取任一分组会话中的各个流数据的业务指标参数;根据业务指标参数,确定任一分组会话的统计字段。
在一些实施例中,Spark结构化流处理引擎303被配置为:在实时计算结果发生变更的情况下,将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库。
在一些实施例中,通过结构化流处理引擎303对流数据进行实时计算的间隔时长大于预设时长。
在一些实施例中,数据湖上设置有会话已完成分区和会话未完成分区;Spark结构化流处理引擎303被配置为将实时计算结果以Upsert方式写入数据湖的会话未完成分区。
在一些实施例中,所述消息中间件303为Kafka消息中间件;HTTP接收机301被配置为:从客户端接收流数据;将流数据写入Kafka消息中间件。
本实施例通过数据湖实现了流批一体的数据处理系统,能够克服Lambda架构的缺点。在满足多维度的数据查询请求的前提下,既能够节省计算资源和存储资源,又能够保障离线的数据请求与实时的数据请求在响应结果上的一致性,从而为开发和维护数据处理系统提供了便利。
同时,借助数据湖支持Upsert的特性,本实施例不断的用更准确的实时计算结果修正前面已经写入的实时计算结果,从而兼顾数据的准确性和及时性;借助数据湖支持原子性的特性,本实施例在任务写入失败后,不会产生脏数据;借助数据湖支持多版本的特性,本实施例中的数据可以随时回退到之前的某个版本,提升了数据的安全性。
此外,本实施例将实时计算结果批量写入OLAP系统,能够兼顾数据的容错性、可靠性和OLAP系统内各个节点之间的负载均衡。
在本公开所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
下面结合图4描述本公开数据处理系统的另一些实施例。
图4示出了本公开另一些实施例的数据处理系统的结构示意图。如图4所示,数据处理系统40包括:存储器410以及耦接至该存储器410的处理器420,处理器420被配置为基于存储在存储器410中的指令,执行前述任意一些实施例中的数据处理方法。
其中,存储器410例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
数据处理系统40还可以包括输入输出接口430、网络接口440、存储接口450等。这些接口430、440、450以及存储器410和处理器420之间例如可以通过总线460连接。其中,输入输出接口430为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口440为各种联网设备提供连接接口。存储接口450为SD卡、U盘等外置存储设备提供连接接口。
本公开还包括一种非瞬时性计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现前述任意一些实施例中的数据处理方法。
前述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (16)
1.一种数据处理方法,包括:
将从客户端接收的流数据写入消息中间件;
通过结构化流处理引擎对流数据进行实时计算,获得实时计算结果;
将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库;
通过数据湖接收并响应离线的数据请求,通过联机分析处理数据库接收并响应实时的数据请求。
2.根据权利要求1所述的数据处理方法,其中,所述通过结构化流处理引擎对流数据进行实时计算包括:
通过Spark结构化流处理引擎,从消息中间件读取流数据并按照会话标识对流数据进行分组,获得各个分组会话的流数据;
通过Spark结构化流处理引擎的状态算子flatMapGroupsWithState,缓存各个分组会话的流数据并对各个分组会话的流数据执行业务计算逻辑,获得各个分组会话的统计字段。
3.根据权利要求2所述的数据处理方法,其中,所述对各个分组会话的流数据执行业务计算逻辑获得各个分组会话的统计字段包括:
对任一分组会话中的各个流数据进行排序;
获取所述任一分组会话中的各个流数据的业务指标参数;
根据所述业务指标参数,确定所述任一分组会话的统计字段。
4.根据权利要求1所述的数据处理方法,其中,所述将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库包括:
在实时计算结果发生变更的情况下,将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库。
5.根据权利要求1所述的数据处理方法,其中,通过结构化流处理引擎对流数据进行实时计算的间隔时长大于预设时长。
6.根据权利要求1所述的数据处理方法,还包括:在数据湖上设置会话已完成分区和会话未完成分区;
其中,将实时计算结果以Upsert方式写入数据湖的会话未完成分区。
7.根据权利要求1所述的数据处理方法,其中,所述将从客户端接收的流数据写入消息中间件包括:
通过HTTP接收机从客户端接收流数据;
通过HTTP接收机将所述流数据写入Kafka消息中间件。
8.一种数据处理系统,包括:
HTTP接收机,被配置为将从客户端接收的流数据写入消息中间件;
消息中间件,被配置为存储流数据;
Spark结构化流处理引擎,被配置为对流数据进行实时计算,获得实时计算结果,并被配置为将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库;
数据湖,被配置为接收并响应离线的数据请求;
联机分析处理数据库,被配置为接收并响应实时的数据请求。
9.根据权利要求8所述的数据处理系统,其中,所述Spark结构化流处理引擎被配置为:
从消息中间件读取流数据并按照会话标识对流数据进行分组,获得各个分组会话的流数据;
通过状态算子flatMapGroupsWithState,缓存各个分组会话的流数据并对各个分组会话的流数据执行业务计算逻辑,获得各个分组会话的统计字段。
10.根据权利要求9所述的数据处理系统,其中,所述Spark结构化流处理引擎被配置为:
对任一分组会话中的各个流数据进行排序;
获取所述任一分组会话中的各个流数据的业务指标参数;
根据所述业务指标参数,确定所述任一分组会话的统计字段。
11.根据权利要求8所述的数据处理系统,其中,所述Spark结构化流处理引擎被配置为:
在实时计算结果发生变更的情况下,将实时计算结果以更新或插入Upsert方式分别写入数据湖和联机分析处理数据库。
12.根据权利要求8所述的数据处理系统,其中,通过结构化流处理引擎对流数据进行实时计算的间隔时长大于预设时长。
13.根据权利要求8所述的数据处理系统,其中,所述数据湖上设置有会话已完成分区和会话未完成分区;
所述Spark结构化流处理引擎被配置为将实时计算结果以Upsert方式写入数据湖的会话未完成分区。
14.根据权利要求8所述的数据处理系统,其中,所述消息中间件为Kafka消息中间件;
所述HTTP接收机被配置为:从客户端接收流数据;将所述流数据写入Kafka消息中间件。
15.一种数据处理系统,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至7中任一项所述的数据处理方法。
16.一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1至7中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110075480.8A CN113760983A (zh) | 2021-01-20 | 2021-01-20 | 数据处理方法、系统及非瞬时性计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110075480.8A CN113760983A (zh) | 2021-01-20 | 2021-01-20 | 数据处理方法、系统及非瞬时性计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113760983A true CN113760983A (zh) | 2021-12-07 |
Family
ID=78786385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110075480.8A Pending CN113760983A (zh) | 2021-01-20 | 2021-01-20 | 数据处理方法、系统及非瞬时性计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760983A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115202765A (zh) * | 2022-06-14 | 2022-10-18 | 浙江智臾科技有限公司 | 流数据处理方法和流数据处理系统 |
-
2021
- 2021-01-20 CN CN202110075480.8A patent/CN113760983A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115202765A (zh) * | 2022-06-14 | 2022-10-18 | 浙江智臾科技有限公司 | 流数据处理方法和流数据处理系统 |
CN115202765B (zh) * | 2022-06-14 | 2023-03-28 | 浙江智臾科技有限公司 | 流数据处理方法和流数据处理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108363602B (zh) | 智能ui界面布局方法、装置、终端设备及存储介质 | |
US8819078B2 (en) | Event processing for graph-structured data | |
CN111209352B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US10284623B2 (en) | Optimized browser rendering service | |
US10735537B2 (en) | Information pushing | |
CN110019267A (zh) | 一种元数据更新方法、装置、系统、电子设备及存储介质 | |
CN110390739B (zh) | 一种车辆数据处理方法及车辆数据处理系统 | |
CN110147327B (zh) | 一种基于多粒度的web自动化测试管理方法 | |
CN113067709B (zh) | 基于云服务的计费方法、装置、设备及可读存储介质 | |
CN107408065A (zh) | 监视应用加载 | |
CN104679500B (zh) | 实体类自动生成实现方法及装置 | |
Wang | Stream processing systems benchmark: Streambench | |
CN110225087A (zh) | 基于全局负载均衡的云存取方法、装置及存储介质 | |
CN114253798A (zh) | 指标数据采集方法和装置、电子设备、存储介质 | |
CN113760983A (zh) | 数据处理方法、系统及非瞬时性计算机可读存储介质 | |
CN110737432A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
CN109063059A (zh) | 行为日志处理方法、装置及电子设备 | |
CN116821533A (zh) | 页面渲染方法、计算机设备和计算机可读存储介质 | |
CN115455006A (zh) | 数据处理方法、数据处理装置、电子设备及存储介质 | |
CN113220530B (zh) | 数据质量监控方法及平台 | |
CN117131059A (zh) | 报表数据处理方法、装置、设备及存储介质 | |
CN115033436A (zh) | 页面测试方法及装置、电子设备、存储介质 | |
CN112100226A (zh) | 一种数据查询方法及计算机可读存储介质 | |
CN112860844A (zh) | 案件线索处理系统、方法、装置和计算机设备 | |
CN116028108B (zh) | 一种依赖包安装用时分析方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |