CN112631754A - 数据处理方法、装置、存储介质及电子装置 - Google Patents

数据处理方法、装置、存储介质及电子装置 Download PDF

Info

Publication number
CN112631754A
CN112631754A CN202011602736.8A CN202011602736A CN112631754A CN 112631754 A CN112631754 A CN 112631754A CN 202011602736 A CN202011602736 A CN 202011602736A CN 112631754 A CN112631754 A CN 112631754A
Authority
CN
China
Prior art keywords
data
target
threads
operator
processing
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
Application number
CN202011602736.8A
Other languages
English (en)
Inventor
斯奇能
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202011602736.8A priority Critical patent/CN112631754A/zh
Publication of CN112631754A publication Critical patent/CN112631754A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种数据处理方法、装置、存储介质及电子装置,其中,该方法包括:基于获取到的任务数据确定处理任务数据所需的目标算子;确定目标算子在对任务数据进行处理时目标算子中所包括的任务数据的数据量;在目标算子中包括的线程的数量与数据量不匹配的情况下,将目标算子中包括的线程的数量调整为与数据量匹配的目标数量;通过目标数量的线程处理任务数据。通过本发明,解决了相关技术中存在的处理数据速度慢的问题,达到提高数据处理速度,节省资源的效果。

Description

数据处理方法、装置、存储介质及电子装置
技术领域
本发明实施例涉及通信领域,具体而言,涉及一种数据处理方法、装置、存储介质及电子装置。
背景技术
随着大数据技术在各行各业的广泛应用,要求能对海量数据进行实时处理的需求越来越多,同时数据处理的业务逻辑也越来越复杂,传统的批处理方式和早期的流式处理框架也越来越难以在延迟性、吞吐量、容错能力以及使用便捷性等方面满足业务日益苛刻的要求。大数据流式计算的应用场景较多,按照数据产生方式、数据规模大小以及技术成熟度高低这3个不同维度,金融银行业应用、互联网应用和物联网应用。目前,业界成熟的实时流式处理系统有很多。有成熟的商业产品,也有公司、组织或个人开源出来的产品,这些产品有的已经经过生产验证,有些只是原型产品,并且开放出来供调用的接口过多。这种产品现状导致,面对如此众多的、令人烟花缭乱的产品,身为一线的代码开发人员,在前期产品选型、试用,后期产品学习、使用等方面面临诸多困难和压力,增加了开发人员的学习曲线,并且调用过程过于复杂。因此,业界又面临着如何简化现有的流式处理产品的问题。
在相关技术中,业务系统实时操作生成事件(消息/调用),经过一系列的处理分析,这个过程是分散在多台计算机上并行完成的,看上去就像事件连续不断的流经多个计算节点处理,形成一个流式计算过程。然而,多个计算节点中包括的节点容易出现性能瓶颈,影响其他节点的处理数据,导致系统数据处理速度慢。
由此可知,相关技术中存在处理数据速度慢的问题。
针对相关技术中存在的上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法、装置、存储介质及电子装置,以至少解决相关技术中存在的处理数据速度慢的问题。
根据本发明的一个实施例,提供了一种数据处理方法,包括:基于获取到的任务数据确定处理所述任务数据所需的目标算子;确定所述目标算子在对所述任务数据进行处理时所述目标算子中所包括的所述任务数据的数据量;在所述目标算子中包括的线程的数量与所述数据量不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量;通过所述目标数量的所述线程处理所述任务数据。
根据本发明的另一个实施例,提供了一种数据处理装置,包括:获取模块,用于基于获取到的任务数据确定处理所述任务数据所需的目标算子;确定模块,用于确定所述目标算子在对所述任务数据进行处理时所述目标算子中所包括的所述任务数据的数据量;调整模块,用于在所述目标算子中包括的线程的数量与所述数据量不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量;处理模块,用于通过所述目标数量的所述线程处理所述任务数据。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,根据获取到的任务数据确定处理任务数据所需的目标算子,确定目标算子在任务数据进行处理时目标算子中包括的任务数据的数据量,在目标算子中包括的线程的数量与数据量不匹配的情况下,将目标算子中包括的数量调整为与数据量匹配的目标数量,通过目标数量的线程处理任务数据。由于在目标算子中的数据量与线程的数量不匹配的情况下,可以将线程的数量调整为与数据量匹配的目标数量,再通过目标数量的线程处理任务数据,即可以在处理节点出现性能瓶颈时,通过调整线程的数量来处理数据,以提高数据处理的速度,在线程数量多时,可以减少线程的数量,以节约资源。因此,可以解决相关技术中存在的处理数据速度慢的问题,达到提高数据处理速度,节省资源的效果。
附图说明
图1是本发明实施例的一种数据处理方法的移动终端的硬件结构框图;
图2是根据本发明实施例的数据处理方法的流程图;
图3是根据本发明示例性实施例的数据处理方法流程图;
图4是根据本发明示例性实施例的SQL算子处理任务数据示意图;
图5是根据本发明实施例的数据处理装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种数据处理方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种数据处理方法,图2是根据本发明实施例的数据处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,基于获取到的任务数据确定处理所述任务数据所需的目标算子;
步骤S204,确定所述目标算子在对所述任务数据进行处理时所述目标算子中所包括的所述任务数据的数据量;
步骤S206,在所述目标算子中包括的线程的数量与所述数据量不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量;
步骤S208,通过所述目标数量的所述线程处理所述任务数据。
在上述实施例中,目标算子可以通过任务数据的类型确定,也可以根据用户的配置确定。任务数据可以存储在服务器中,用户在订阅任务数据后,可以通过http/https/rmq/kafka等方式获取数据。
在上述实施例中,目标算子中包括一定数量的线程,初始时,该数量可以为人为设定的数量。每个线程可以处理固定数量的数据,当目标算子处理数据时,可以通过http/https/rmq/kafka等方式获取数据,如果获取到的数据量超过总线程处理数据的总量,或小于单个线程处理数据的总量时,可以调整线程的数量,以使线程的数量与数据量匹配,并通过调整数量后的线程处理任务数据。
可选地,上述步骤的执行主体可以是服务器、后台处理器,或者其他的具备类似处理能力的设备,还可以是至少集成有数据处理设备的机器,其中,数据处理设备可以包括计算机、手机等终端,但不限于此。
通过本发明,根据获取到的任务数据确定处理任务数据所需的目标算子,确定目标算子在任务数据进行处理时目标算子中包括的任务数据的数据量,在目标算子中包括的线程的数量与数据量不匹配的情况下,将目标算子中包括的数量调整为与数据量匹配的目标数量,通过目标数量的线程处理任务数据。由于在目标算子中的数据量与线程的数量不匹配的情况下,可以将线程的数量调整为与数据量匹配的目标数量,再通过目标数量的线程处理任务数据,即可以在处理节点出现性能瓶颈时,通过调整线程的数量来处理数据,以提高数据处理的速度,在线程数量多时,可以减少线程的数量,以节约资源。因此,可以解决相关技术中存在的处理数据速度慢的问题,达到提高数据处理速度,节省资源的效果。
在一个示例性实施例中,在所述目标算子中包括的线程的数量与所述数据量不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量包括:确定所述目标算子中包括的每个所述线程的数据处理量;基于所述数据处理量确定所述目标算子中包括的全部线程的总数据处理量;基于所述总数据处理量确定所述线程的数量与所述数据量是否匹配;在确定所述线程的数量与所述数据量的不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量。在本实施例中,目标算子中可以包括多个线程,确定目标算子中每个线程的数据处理量,在根据每个线程的数据处理量确定目标算子中包括的全部线程的总数据处理量,根据总数据处理量确定目标算子中线程的数量与数据量是否匹配,在不匹配的情况下,调整目标算子中的线程数量,以使线程的数量与数据量相匹配。
在一个示例性实施例中,在确定所述线程的数量与所述数据量的不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量包括:在确定所述数据量超过所述总数据处理量的情况下,确定所述目标算子中包括的线程的数量与所述数据量不匹配,基于所述数据量以及线程属性确定所述目标算子中需要增加的线程的第一数量,并在所述目标算子中增加所述第一数量的所述线程,所述线程属性用于指示线程处理数据的能力。在本实施例中,当数据量超过总数据处理量的情况下,可以通过增加线程方式来调节线程的数量。确定线程属性,根据线程属性确定线程能够处理数据的能力,例如,单个线程能够处理10W条数据,当前目标算子中包括两个线程,数据量为40W条,因此,可以增加两个线程,利用四个线程来处理任务数据。
在一个示例性实施例中,在基于所述总数据处理量确定所述线程的数量与所述数据量的不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量包括:在确定所述数据量小于所述总数据处理量的情况下,确定所述目标算子中包括的线程的数量与所述数据量不匹配,基于所述数据量以及线程属性确定所述目标算子中需要减少的线程的第二数量,并在所述目标算子中减少所述第二数量的所述线程,所述线程属性用于指示线程处理数据的能力。在本实施例中,当数据量小于总数据处理量的情况下,可以通过减少线程的方式来调节线程的数量。确定线程属性,根据线程属性确定线程能够处理数据的能力。例如,当前目标算子中包括四个线程,数据量为20W条,且每个线程能够处理10W条数据,因此,可以减少两个线程,利用两个线程处理任务数据。
在一个示例性实施例中,在所述目标算子中增加所述第一数量的所述线程之后,所述方法还包括:判断在预定时间内所述数据量的变化量;在所述变化量小于第一阈值的情况下,在所述目标算子中删除所述第一数量的所述线程;在所述变化量大于第二阈值的情况下,推送所述目标算子处理所述任务数据的日志信息。在本实施例中,在目标算子中增加第一数量的线程之后,还可以判断在预定时间内目标算子内的数据量的变化量,在变化量小于第一阈值的情况下,可以任务增加的线程对节点的性能提升影响不大,则可以删除增加的线程。其中,预定时间可以为1min(该取值仅是一个示例性说明,本发明对预定时间不做限制,例如,还可以取30s,1.5min等),第一阈值可以根据线程处理数据的速度及预定时间确定,例如,第一阈值可以等于线程处理数据的速度与预定时间的乘积的二分之一,本发明对第一阈值不作限制。当变化量大于第二阈值的情况下,可以推送处理任务数据的日志及当前的线程数量。第二阈值可以根据线程处理数据的速度及预定时间确定,例如,第二阈值可以等于线程处理数据的速度及预定时间的乘积。
在上述实施例中,用户可以配置多个中间处理过程、配置多个目的端。数据流从源端导入后,经过中间处理算子最后写入目的端。通过调整线程数量的方式解决了单个环节是性能差就会成为成个任务流梳理的性能瓶颈的问题,服务器可以动态调整每个节点中线程的数量,以适应任务数据的数据量。其中,数据处理方法流程图可参见附图3。流式处理框架下的各个算子之间是独立,可根据各个算子的复杂度配置对应的并发度,保证单个算子不会成为流式处理过程中的性能瓶颈。
在一个示例性实施例中,在所述变化量小于第一阈值的情况下,在所述目标算子中删除所述第一数量的所述线程之后,所述方法还包括:执行告警操作,并在目标显示界面显示处理所述任务数据的状态信息。在本实施例中,在删除增加的线程之后,还可以执行告警操作,并在目标显示界面中显示处理任务数据的状态信息。其中,状态信息可以包括当前任务的处理状态、消费统计信息、日志信息等,用户可以实时监控任务的执行情况,同时还可以监控任务执行过程中各个环节的信息,便于任务配置人员快速准备的定位问题所在,及时调整。例如,更换处理任务的节点的顺序、更换目标算子等。
在一个示例性实施例中,基于获取到的任务数据确定处理所述任务数据所需的目标算子包括:确定所述任务数据的目标类型;基于所述目标类型确定所述目标算子。在本实施例中,单个任务根据用户的配置,可以由多个算子组成(源端算子、中间处理算子、目的端算子等)。源端算子可以支持从rabbitmq/kafka/mysql/oracle/mpp/es/hive等中获取数据。即规则引擎可以根据用户配置从服务端拉取数据。可以根据任务数据的类型确定目标算子,即目标算子可以为用户配置的中间处理算子,中间处理算子可以包括SQL处理算子/格式化处理算子/UDF算子。SQL处理,即通过SQL表达式表述流式计算,对入向数据分析过滤变换等;格式化算子,即对入向消息按照用户自定义内容进行变换;UDF算子,即用户自定义的算子。目的端算子可以将中间处理算子处理后得到的数据存储在rabbitmq/kafka/mysql/oracle/mpp/es/hive/ftp/neo4j等中,即规则引擎将接入的数据流写入对应的目的端。在本实施例中,服务器可以根据任务数据的类型确定源端算子、中间处理算子及目标端算子,在配置目标算子时,可以为目标算子分配内存池,即采用内存池的方式避免频繁的内存申请,同时利用数据源的元数据不变的特征在第一条消息处理后存储消息的元数据信息至目的端算子所指定的存储地址,提高数据结构变换的性能。
在一个示例性实施例中,基于所述目标类型确定所述目标算子包括:在确定所述目标类型为单消息数据类型的情况下,确定所述目标算子为结构化查询语言SQL处理算子;在确定所述目标类型为消息表数据类型的情况下,确定所述目标算子为连接算子。在本实施例中,当任务数据的类型为单消息数据类型的情况下,目标算子可以为SQL算子,当任务数据的类型为消息表数据类型的情况下,目标算子可以为连接算子,即join算子。
在一个示例性实施例中,在所述目标算子为结构化查询语言SQL处理算子的情况下,通过所述目标数量的所述线程处理所述任务数据包括:通过所述目标数量的所述线程中包括的每个线程解析每个线程中所处理的任务数据,以确定所述任务数据的目标字段;对所述目标字段进行结构变换;将进行结构变换后的所述目标字段存储至目标存储空间。在本实施例中,完整的SQL过滤变换涉及select、where部分,这过程中涉及到where部分或者函数计算的字段可能只有几个或者没有,如果整消息做结构变换性能会很差。针对实际场景,可以预先对SQL进行解析分析,提取涉及到过滤及函数变换的字段,只对这部分进行结构变换,其他投影、常量等部分,直接利用已经存储的元数据进行结构映射。在实际测试过程中,此方式可以提高大约3倍的性能(datum是SQL匹配时内部数据结构)。其中,SQL算子处理任务数据示意图可参见附图4。
在一个示例性实施例中,在所述目标算子为连接算子的情况下,通过所述目标数量的所述线程处理所述任务数据包括:通过所述目标数量的所述线程中包括的每个线程执行以下操作:确定每个线程需要处理的所述任务数据中包括的第一消息表中包括对应数据,从所述对应数据中确定出访问量大于第三阈值的第一数据,将所述第一数据存储至主存储器中,将所述对应数据中包括的除所述第一数据之外的数据存储至辅助存储器中;按照预定规则处理存储至所述主存储器中的所述第一数据,以得到第二数据,对所述第二数据与每个线程需要处理的所述任务数据中包括的第二消息表中的第三数据进行处理,以确定第一目标数据。在本实施例中,消息表可以包括第一消息表和第二消息表,第一消息表可以为外表,第二消息表可以为小表,通常第一消息表为一张大表,从几行到上百行不等,第二消息表为一张小表。当外表数据量大于10W条时,可以用内存(对应于主存储器)存储热点数据(对应于第一数据),其他数据存在本地磁盘(对应于辅助存储器)中,并实时更新热点数据,减少内存压力。外表的内存数据根据join条件预先做排序得到第二数据,对第二数据与每个线程中国需要处理的第三数据进行比较,按照预先确定的处理要求,确定出第一目标数据。其中,处理要求可以为在内存中存储的第二数据中查找出与第一消息表中重复的数据,或与第一消息表中没有交集的数据等。在处理过程中,需要将两个表中的数据进行碰撞(即比对),由于按照预定处理规则对第一数据进行了处理,因此,在与小表join时,能快速缩小碰撞范围,大大提高join的性能。其中,预定规则可以为按照升序排列,按照降序排列等。
在一个示例性实施例中,在所述目标算子为连接算子的情况下,通过所述目标数量的所述线程处理所述任务数据包括:通过所述目标数量的所述线程中包括的每个线程执行以下操作:基于所述任务数据中包括的第二消息表确定筛选条件;基于所述筛选条件从每个线程需要处理的所述任务数据中包括的第一消息表中的数据中筛选第四数据;对所述第四数据及所述第二消息表中的第三数据进行处理,以确定第二目标数据。在本实施例中,可以根据消息表的值,下推不确定条件到第一消息表中。即服务器可以根据第二消息表确定数据的筛选条件,只捞取符合条件的数据,大大减少第一消息表计算的数据量。
在一个示例性实施例中,在基于获取到的任务数据确定处理所述任务数据所需的目标算子之前,所述方法还包括:确定预先配置的任务的有向无环图;基于所述有向无环图确定所述任务数据的第一存储地址,并在所述存储地址中获取所述任务数据。在本实施例中,用户可以通过图形界面配置任务的数据流向DAG(有向无环图),以此完成任务流处理逻辑。用户只需要在图形界面上配置流处理的DAG,即可定义流处理任务,学习成本低,修改方便。并且,用户可根据需要选择订阅单个或者多个任务运维信息,服务器在接收到订阅请求后,可以通过http/https/rmq/kafka等方式将任务数据推送给用户。用户可以通过运维界面查看当前任务的状态、消费统计信息、日志等信息,可实时监控任务的执行情况;同时可以监控任务执行过程中各个环节的信息,便于任务配置人员快速准备的定位问题所在,及时调整。
在一个示例性实施例中,在通过所述目标数量的所述线程处理所述任务数据之后,所述方法还包括:确定对所述任务数据进行处理后所得到的处理数据的第二存储地址;将所述处理数据存储至所述第二存储地址中。在本实施例中,可以通过用户预先配置的DAG确定第二存储地址,还可以通过目的端算子确定第二存储地址。其中,目的端算子可以将中间处理算子处理后得到的数据存储在rabbitmq/kafka/mysql/oracle/mpp/es/hive/ftp/neo4j等中,即规则引擎将接入的数据流写入对应的目的端。
在前述实施例中,通过拆分join条件语句,内存表的方式存储大表并按照过滤条件key(对应于上述筛选条件)对大表进行排序,在双表join时减少表的碰撞次数,提高处理性能。单独的消息表处理,只对涉及到函数变换或者过滤条件的字段进行处理,其他字段采用结构映射的方式,提高大消息体的处理性能。对join的存储方式和查找方式进行优化,采用排序和条件下推的方式,极大提高双表join的性能;针对SQL表达式,预处理过程中区分select、where、表达式,在匹配时只对where和表达式部分进行类型转换及计算,实际场景中大部分的投影部分不做类型装换,大大提交了SQL表达式的匹配性能;任务独立的算子之间,根据算子内入向及出向流的大小,自动调整算子内的并发度,避免某个算子成为任务链的性能瓶颈;对于无法通过并发度解决的性能问题,推送告警日志给用户,用户可根据日志及时检查源和目的端的服务性能;根据单任务消息元数据不变、消息个数相同的特点,单任务内采用内存池的方式,大大减少内存申请次数,同时借此存储消息元数据,很大程度上提交处理性能。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的数据处理装置的结构框图,如图5所示,该装置包括:
获取模块52,用于基于获取到的任务数据确定处理所述任务数据所需的目标算子;
确定模块54,用于确定所述目标算子在对所述任务数据进行处理时所述目标算子中所包括的所述任务数据的数据量;
调整模块56,用于在所述目标算子中包括的线程的数量与所述数据量不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量;
处理模块58,用于通过所述目标数量的所述线程处理所述任务数据。
在一个示例性实施例中,所述调整模块56可以通过如下方式实现在所述目标算子中包括的线程的数量与所述数据量不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量:确定所述目标算子中包括的每个所述线程的数据处理量;基于所述数据处理量确定所述目标算子中包括的全部线程的总数据处理量;基于所述总数据处理量确定所述线程的数量与所述数据量是否匹配;在确定所述线程的数量与所述数据量的不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量。
在一个示例性实施例中,所述调整模块56可以通过如下方式实现在确定所述线程的数量与所述数据量的不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量:在确定所述数据量超过所述目标算子中包括全部线程的数据处理量的情况下,确定所述目标算子中包括的线程的数量与所述数据量不匹配,基于所述数据量以及线程属性确定所述目标算子中需要增加的线程的第一数量,并在所述目标算子中增加所述第一数量的所述线程,所述线程属性用于指示线程处理数据的能力。
在一个示例性实施例中,所述调整模块56可以通过如下方式实现在确定所述线程的数量与所述数据量的不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量:在确定所述数据量小于所述总数据处理量的情况下,确定所述目标算子中包括的线程的数量与所述数据量不匹配,基于所述数据量以及线程属性确定所述目标算子中需要减少的线程的第二数量,并在所述目标算子中减少所述第二数量的所述线程,所述线程属性用于指示线程处理数据的能力。
在一个示例性实施例中,所述装置可以用于在所述目标算子中增加所述第一数量的所述线程之后,判断在预定时间内所述数据量的变化量;在所述变化量小于第一阈值的情况下,在所述目标算子中删除所述第一数量的所述线程;在所述变化量大于第二阈值的情况下,推送所述目标算子处理所述任务数据的日志信息。
在一个示例性实施例中,所述装置可以用于在所述变化量小于第一阈值的情况下,在所述目标算子中删除所述第一数量的所述线程之后,执行告警操作,并在目标显示界面显示处理所述任务数据的状态信息。
在一个示例性实施例中,所述确定模块54可以通过如下方式实现基于获取到的任务数据确定处理所述任务数据所需的目标算子:确定所述任务数据的目标类型;基于所述目标类型确定所述目标算子。
在一个示例性实施例中,所述确定模块54可以通过如下方式实现基于所述目标类型确定所述目标算子:在确定所述目标类型为单消息数据类型的情况下,确定所述目标算子为结构化查询语言SQL处理算子;在确定所述目标类型为消息表数据类型的情况下,确定所述目标算子为连接算子。
在一个示例性实施例中,所述确定模块54可以通过如下方式实现在所述目标算子为结构化查询语言SQL处理算子的情况下,通过所述目标数量的所述线程处理所述任务数据:通过所述目标数量的所述线程中包括的每个线程解析每个线程中所处理的任务数据,以确定所述任务数据的目标字段;对所述目标字段进行结构变换;将进行结构变换后的所述目标字段存储至目标存储空间。
在一个示例性实施例中,所述处理模块58可以通过如下方式实现在所述目标算子为连接算子的情况下,通过所述目标数量的所述线程处理所述任务数据:通过所述目标数量的所述线程中包括的每个线程执行以下操作:确定每个线程需要处理的所述任务数据中包括的第一消息表中包括对应数据,从所述对应数据中确定出访问量大于第三阈值的第一数据,将所述第一数据存储至主存储器中,将所述对应数据中包括的除所述第一数据之外的数据存储至辅助存储器中;按照预定规则处理存储至所述主存储器中的所述第一数据,以得到第二数据,对所述第二数据与每个线程需要处理的所述任务数据中包括的第二消息表中的第三数据进行处理,以确定第一目标数据。
在一个示例性实施例中,所述处理模块58可以通过如下方式实现在所述目标算子为连接算子的情况下,通过所述目标数量的所述线程处理所述任务数据:通过所述目标数量的所述线程中包括的每个线程执行以下操作:基于所述任务数据中包括的第二消息表确定筛选条件;基于所述筛选条件从每个线程需要处理的所述任务数据中包括的第一消息表中的数据中筛选第四数据;对所述第四数据及所述第二消息表中的第三数据进行处理,以确定第二目标数据。
在一个示例性实施例中,所述装置可以用于在基于获取到的任务数据确定处理所述任务数据所需的目标算子之前,确定预先配置的任务的有向无环图;基于所述有向无环图确定所述任务数据的第一存储地址,并在所述存储地址中获取所述任务数据。
在一个示例性实施例中,所述装置还可以用于在通过所述目标数量的所述线程处理所述任务数据之后,确定对所述任务数据进行处理后所得到的处理数据的第二存储地址;将所述处理数据存储至所述第二存储地址中。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种数据处理方法,其特征在于,包括:
基于获取到的任务数据确定处理所述任务数据所需的目标算子;
确定所述目标算子在对所任务数据进行处理时所述目标算子中所包括的所述任务数据的数据量;
在所述目标算子中包括的线程的数量与所述数据量不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量;
通过所述目标数量的所述线程处理所述任务数据。
2.根据权利要求1所述的方法,其特征在于,在所述目标算子中包括的线程的数量与所述数据量不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量包括:
确定所述目标算子中包括的每个所述线程的数据处理量;
基于所述数据处理量确定所述目标算子中包括的全部线程的总数据处理量;
基于所述总数据处理量确定所述线程的数量与所述数据量是否匹配;
在确定所述线程的数量与所述数据量的不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量。
3.根据权利要求2所述的方法,其特征在于,在确定所述线程的数量与所述数据量的不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量包括:
在确定所述数据量超过所述总数据处理量的情况下,确定所述目标算子中包括的线程的数量与所述数据量不匹配,基于所述数据量以及线程属性确定所述目标算子中需要增加的线程的第一数量,并在所述目标算子中增加所述第一数量的所述线程,所述线程属性用于指示线程处理数据的能力。
4.根据权利要求2所述的方法,其特征在于,在基于所述总数据处理量确定所述线程的数量与所述数据量的不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量包括:
在确定所述数据量小于所述总数据处理量的情况下,确定所述目标算子中包括的线程的数量与所述数据量不匹配,基于所述数据量以及线程属性确定所述目标算子中需要减少的线程的第二数量,并在所述目标算子中减少所述第二数量的所述线程,所述线程属性用于指示线程处理数据的能力。
5.根据权利要求3所述的方法,其特征在于,在所述目标算子中增加所述第一数量的所述线程之后,所述方法还包括:
判断在预定时间内所述数据量的变化量;
在所述变化量小于第一阈值的情况下,在所述目标算子中删除所述第一数量的所述线程;
在所述变化量大于第二阈值的情况下,推送所述目标算子处理所述任务数据的日志信息。
6.根据权利要求5所述的方法,其特征在于,在所述变化量小于第一阈值的情况下,在所述目标算子中删除所述第一数量的所述线程之后,所述方法还包括:
执行告警操作,并在目标显示界面显示处理所述任务数据的状态信息。
7.根据权利要求1所述的方法,其特征在于,基于获取到的任务数据确定处理所述任务数据所需的目标算子包括:
确定所述任务数据的目标类型;
基于所述目标类型确定所述目标算子。
8.根据权利要求7所述的方法,其特征在于,基于所述目标类型确定所述目标算子包括:
在确定所述目标类型为单消息数据类型的情况下,确定所述目标算子为结构化查询语言SQL处理算子;
在确定所述目标类型为消息表数据类型的情况下,确定所述目标算子为连接算子。
9.根据权利要求8所述的方法,其特征在于,在所述目标算子为结构化查询语言SQL处理算子的情况下,通过所述目标数量的所述线程处理所述任务数据包括:
通过所述目标数量的所述线程中包括的每个线程解析每个线程中所处理的任务数据,以确定所述任务数据的目标字段;
对所述目标字段进行结构变换;将进行结构变换后的所述目标字段存储至目标存储空间。
10.根据权利要求8所述的方法,其特征在于,在所述目标算子为连接算子的情况下,通过所述目标数量的所述线程处理所述任务数据包括:
通过所述目标数量的所述线程中包括的每个线程执行以下操作:
确定每个线程需要处理的所述任务数据中包括的第一消息表中包括对应数据,从所述对应数据中确定出访问量大于第三阈值的第一数据,将所述第一数据存储至主存储器中,将所述对应数据中包括的除所述第一数据之外的数据存储至辅助存储器中;
按照预定规则处理存储至所述主存储器中的所述第一数据,以得到第二数据,对所述第二数据与每个线程需要处理的所述任务数据中包括的第二消息表中的第三数据进行处理,以确定第一目标数据。
11.根据权利要求8所述的方法,其特征在于,在所述目标算子为连接算子的情况下,通过所述目标数量的所述线程处理所述任务数据包括:
通过所述目标数量的所述线程中包括的每个线程执行以下操作:
基于所述任务数据中包括的第二消息表确定筛选条件;
基于所述筛选条件从每个线程需要处理的所述任务数据中包括的第一消息表中的数据中筛选第四数据;
对所述第四数据及所述第二消息表中的第三数据进行处理,以确定第二目标数据。
12.根据权利要求1所述的方法,其特征在于,在基于获取到的任务数据确定处理所述任务数据所需的目标算子之前,所述方法还包括:
确定预先配置的任务的有向无环图;
基于所述有向无环图确定所述任务数据的第一存储地址,并在所述存储地址中获取所述任务数据。
13.根据权利要求1所述的方法,其特征在于,在通过所述目标数量的所述线程处理所述任务数据之后,所述方法还包括:
确定对所述任务数据进行处理后所得到的处理数据的第二存储地址;
将所述处理数据存储至所述第二存储地址中。
14.一种数据处理装置,其特征在于,包括:
获取模块,用于基于获取到的任务数据确定处理所述任务数据所需的目标算子;
确定模块,用于确定所述目标算子在对所任务数据进行处理时所述目标算子中所包括的所述任务数据的数据量;
调整模块,用于在所述目标算子中包括的线程的数量与所述数据量不匹配的情况下,将所述目标算子中包括的线程的数量调整为与所述数据量匹配的目标数量;
处理模块,用于通过所述目标数量的所述线程处理所述任务数据。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至13任一项中所述的方法。
16.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至13任一项中所述的方法。
CN202011602736.8A 2020-12-29 2020-12-29 数据处理方法、装置、存储介质及电子装置 Pending CN112631754A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011602736.8A CN112631754A (zh) 2020-12-29 2020-12-29 数据处理方法、装置、存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011602736.8A CN112631754A (zh) 2020-12-29 2020-12-29 数据处理方法、装置、存储介质及电子装置

Publications (1)

Publication Number Publication Date
CN112631754A true CN112631754A (zh) 2021-04-09

Family

ID=75286740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011602736.8A Pending CN112631754A (zh) 2020-12-29 2020-12-29 数据处理方法、装置、存储介质及电子装置

Country Status (1)

Country Link
CN (1) CN112631754A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360557A (zh) * 2021-05-28 2021-09-07 青岛海信网络科技股份有限公司 一种数据集成速度的调整方法、装置、设备及介质
CN114490116A (zh) * 2021-12-27 2022-05-13 北京百度网讯科技有限公司 数据处理方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360557A (zh) * 2021-05-28 2021-09-07 青岛海信网络科技股份有限公司 一种数据集成速度的调整方法、装置、设备及介质
CN114490116A (zh) * 2021-12-27 2022-05-13 北京百度网讯科技有限公司 数据处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN111339071B (zh) 一种多源异构数据的处理方法及装置
CN109815283B (zh) 一种异构数据源可视化查询方法
CN107103064B (zh) 数据统计方法及装置
CN113360554B (zh) 一种数据抽取、转换和加载etl的方法和设备
US11314808B2 (en) Hybrid flows containing a continous flow
US9992269B1 (en) Distributed complex event processing
CN106156047B (zh) 一种快照信息处理方法及装置
CN105653425A (zh) 基于复杂事件处理引擎的监控系统
CN110740079B (zh) 一种面向分布式调度系统的全链路基准测试系统
CN104317942A (zh) 一种基于Hadoop云平台的海量数据比对方法及系统
CN112631754A (zh) 数据处理方法、装置、存储介质及电子装置
CN108108445A (zh) 一种智能数据处理方法和系统
CN114372084A (zh) 面向传感流数据的实时处理系统
CN107506381A (zh) 一种大数据分布式调度分析方法、系统装置及存储介质
CN113360581A (zh) 数据处理方法、装置及存储介质
CN113741883A (zh) 一种rpa轻量级数据中台系统
CN111125199B (zh) 一种数据库访问方法、装置及电子设备
CN115033646A (zh) 一种基于Flink&Doris构建实时数仓系统的方法
CN113268530A (zh) 海量异构数据采集方法、系统、计算机设备和存储介质
CN112182031B (zh) 数据查询方法及装置、存储介质、电子装置
CN110266555A (zh) 用于分析网站服务请求的方法
CN113672668A (zh) 大数据场景下的日志实时处理方法及装置
CN112363838A (zh) 数据处理方法及装置、存储介质、电子装置
CN112559525A (zh) 数据检查系统、方法、装置和服务器
CN114756629B (zh) 基于sql的多源异构数据交互分析引擎及方法

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