CN117271661A - 流数据的计算方法、计算装置和电子设备 - Google Patents
流数据的计算方法、计算装置和电子设备 Download PDFInfo
- Publication number
- CN117271661A CN117271661A CN202311252692.4A CN202311252692A CN117271661A CN 117271661 A CN117271661 A CN 117271661A CN 202311252692 A CN202311252692 A CN 202311252692A CN 117271661 A CN117271661 A CN 117271661A
- Authority
- CN
- China
- Prior art keywords
- target
- stream data
- partition
- node
- dimension table
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 98
- 238000005192 partition Methods 0.000 claims abstract description 341
- 238000000034 method Methods 0.000 claims abstract description 98
- 238000013507 mapping Methods 0.000 claims abstract description 67
- 238000003860 storage Methods 0.000 claims description 62
- 125000004122 cyclic group Chemical group 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 17
- 230000015556 catabolic process Effects 0.000 abstract description 3
- 238000006731 degradation reaction Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 31
- 230000005540 biological transmission Effects 0.000 description 24
- 230000009467 reduction Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种流数据的计算方法、计算装置和电子设备。该方法包括:获取目标流数据对应的主键值和维表对应的主键值,得到目标流数据主键值和维表主键值;根据维表主键值按照分区策略确定维表的第一目标分区,并获取第一目标分区与节点的第一映射关系,根据第一映射关系确定第一目标分区对应的目标节点,将维表存储至目标节点;根据目标流数据主键值按照分区策略确定目标流数据的第二目标分区,并获取第二目标分区与节点的第二映射关系,根据第二映射关系确定第二目标分区对应的目标节点,将目标流数据存储至目标节点,以在目标节点上对目标流数据与维表进行流式计算。解决了大量维表存储至同一节点造成的流数据计算性能下降的问题。
Description
技术领域
本申请涉及流数据的计算领域,具体而言,涉及一种流数据的计算方法、计算装置、计算机可读存储介质和电子设备。
背景技术
在当前的流式计算业务场景中,常会遇到流式数据与维表结合计算的情况,以FLINK(由Apache开发的一种开源流处理框架)为例,通常对于数据量小的维表可以加载存放到分配的任务JVM(Java虚拟机,Java Virtual Machine,简称JVM)中,对于数据量大的静态数据表(以下称作维表),无法直接加载到JVM中(会产生内存溢出问题),一般会把维表放到第三方内存数据数据库比如HBase(开源数据库),在任务执行过程中会从HBase中获取数据进行计算,如图1所示,计算框架从流数据源中通过读取数据并分区,打散通过网络发送到更多的计算节点(计算节点1至计算节点n)进行计算或者转换(数据处理1至数据处理n),在数据处理节点当需要维表的数据时,会连接HBase实例中获取数据,数据需要从HBase实例节点(hbase1、hbase2、…、hbaseN)传输到数据处理节点进行计算,最后在计算节点m上进行数据合并并输出。当维表的数据量大的时候,网络IO的延迟不可忽略,对性能有较大的影响;另外对于计算节点当维表比较大的时候,因为内存的原因难以做到把数据全部缓冲到某一个节点。
上述方法采用传统的内存存储,可扩展性差,数据量达到一定量级后会出现内存瓶颈。采用一般的分布式内存数据库,流式数据在任务节点无法和维表数据“短距离”结合,在网络上有一定的性能消耗,数据量越大越明显。在性能要求比较高的情况下,一般的内存数据库与流式数据结合无法满足业务的要求。
因此,需要一种解决流数据计算过程中大量维表数据存储在同一节点造成性能降低的方法。
发明内容
本申请的主要目的在于提供一种流数据的计算方法、计算装置、计算机可读存储介质和电子设备,以至少解决现有技术中流数据计算过程中大量维表数据存储在同一节点造成性能降低的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种流数据的计算方法,包括:获取目标流数据和所述目标流数据对应的维表,并获取所述目标流数据对应的主键值和所述维表对应的主键值,得到目标流数据主键值和维表主键值,其中,所述目标流数据主键值和所述维表主键值相同;根据所述维表主键值按照分区策略确定所述维表的第一目标分区,并获取所述第一目标分区与节点的第一映射关系,根据所述第一映射关系确定所述第一目标分区对应的目标节点,将所述维表存储至所述目标节点,其中,所述第一目标分区为所述维表对应的分区,所述分区策略是对所述主键值进行运算,以对所述主键值对应的所述目标流数据和所述维表进行分区的策略;根据所述目标流数据主键值按照所述分区策略确定所述目标流数据的第二目标分区,并获取所述第二目标分区与节点的第二映射关系,根据所述第二映射关系确定所述第二目标分区对应的所述目标节点,将所述目标流数据存储至所述目标节点,以在所述目标节点上对所述目标流数据与所述维表进行流式计算,其中,所述第二目标分区为所述目标流数据对应的分区,所述第二目标分区表示所述目标流数据对应的分区。
可选地,根据所述维表主键值按照分区策略确定所述维表的第一目标分区,包括:将所述维表主键值进行循环冗余校验,得到第一校验值,并获取所述第一目标分区的个数,将所述第一校验值与所述第一目标分区的个数进行取余运算,得到第一余数,确定与所述第一余数相同的序号对应的分区为所述第一目标分区,其中,每个所述第一目标分区对应一个序号;根据所述目标流数据主键值按照所述分区策略确定所述目标流数据的第二目标分区,包括:将所述目标流数据主键值进行循环冗余校验,得到第二校验值,并获取所述第二目标分区的个数,将所述第二校验值与所述第二目标分区的个数进行取余运算,得到第二余数,确定与所述第二余数相同的序号对应的分区为所述第二目标分区,其中,每个所述第二目标分区对应一个序号。
可选地,所述目标节点包括目标主节点和多个目标从节点,将所述目标流数据存储至所述目标节点,包括:计算所述目标主节点和多个所述目标从节点的繁忙度,其中,所述繁忙度的高低表示所述节点的CPU使用率和内存使用率的高低,所述CPU使用率和所述内存使用率越高,所述繁忙度越高;在所述目标主节点和多个所述目标从节点的所述繁忙度都小于预设阈值的情况下,将所述目标流数据存储至所述繁忙度最低的所述目标主节点或所述目标从节点;在任意一个所述目标主节点或所述目标从节点的所述繁忙度大于或者等于所述预设阈值的情况下,将所述目标流数据存储至除所述目标节点之外的其他节点。
可选地,计算所述目标主节点和多个所述目标从节点的繁忙度,包括:通过公式计算所述繁忙度,其中,z表示所述繁忙度,a表示所述CPU使用率的权重,x表示所述CPU使用率,b表示所述内存使用率的权重,y表示所述内存使用率,m表示所述CPU使用率的阈值,n表示所述内存使用率的阈值。
可选地,在任意一个所述目标主节点或所述目标从节点的所述繁忙度大于或者等于所述预设阈值的情况下,将所述目标流数据存储至除所述目标节点之外的其他节点,包括:计算所述其他节点的主节点和多个从节点的繁忙度,并计算所述其他节点的主节点和多个从节点的繁忙度的平均值,得到每个所述其他节点对应的繁忙度平均值;比较多个所述繁忙度平均值的大小,将所述目标流数据存储至所述繁忙度平均值最低的所述其他节点。
可选地,在将所述目标流数据存储至所述繁忙度平均值最低的所述其他节点之后,所述方法还包括:获取与所述目标流数据主键值相同的所述维表主键值对应的所述维表;将所述维表存储至所述繁忙度平均值最低的所述其他节点。
可选地,在所述目标节点上对所述目标流数据与所述维表进行流式计算,包括:通过维表读取数据客户端根据所述维表主键读取所述目标流数据对应的所述维表,对所述目标流数据与所述维表进行流式计算。
根据本申请的另一方面,提供了一种流数据的计算装置,包括:确定单元,用于获取目标流数据和所述目标流数据对应的维表,并确定所述目标流数据的主键值和所述维表的主键值,得到目标流数据主键值和维表主键值,其中,所述目标流数据主键值和所述维表主键值相同;第一存储单元,用于根据所述维表主键值按照分区策略确定所述维表的第一目标分区,并获取所述第一目标分区与节点的第一映射关系,根据所述第一映射关系确定所述第一目标分区对应的目标节点,将所述维表存储至所述目标节点,其中,所述第一目标分区为所述维表对应的分区,所述分区策略是对所述主键值进行运算,以对所述主键值对应的所述目标流数据和所述维表进行分区的策略;第二存储单元,用于根据所述目标流数据主键值按照所述分区策略确定所述目标流数据的第二目标分区,并获取所述第二目标分区与节点的第二映射关系,根据所述第二映射关系确定所述第二目标分区对应的所述目标节点,将所述目标流数据存储至所述目标节点,以在所述目标节点上对所述目标流数据与所述维表进行流式计算,其中,所述第二目标分区为所述目标流数据对应的分区,所述第二目标分区表示所述目标流数据对应的分区。
根据本申请的再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行任意一种所述的计算方法。
根据本申请的又一方面,提供了一种电子设备,包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的计算方法。
应用本申请的技术方案,获取待存储的目标流数据及其对应的维表,之后获取主键值,目标流数据与其维表的主键值相同,将主键值通过相同的分区策略进行运算,确定维表的第一目标分区和目标流数据的第二目标分区,之后再根据第一映射关系和第二映射关系确定目标节点,以将目标流数据存储至其对应的维表所在的节点中。这样通过分区策略完成了目标流数据及其维表数据的分配,避免大量流数据与维表数据存储在同一个节点造成的节点计算性能下降等问题;同时,将目标流数据与维表分配至同一个节点中进行流数据的计算,这样避免了从不同节点传输数据等不必要的数据传输,使节点具有高效的计算性能。与现有技术中,大量流数据对应的维表存储至同一个节点,以及在流数据的计算过程中需要额外从维表数据的存储端调取数据造成计算性能下降的方法相比,本申请实现了数据的分散存储与精准调度,避免网络拥堵以及计算性能下降的问题,因此,能够解决现有技术中流数据计算性能降低的问题,达到了数据的精准调度与计算的效果。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请的实施例提供的一种现有技术中流数据的计算方法的流程图;
图2示出了本申请的实施例提供的一种流数据的计算方法的移动终端的硬件结构框图;
图3示出了本申请的实施例提供的一种流数据的计算方法的流程示意图;
图4示出了本申请的实施例提供的一种具体的流数据的计算方法中维表的存储方法示意图;
图5示出了本申请的实施例提供的一种具体的流数据的计算方法中目标流数据的存储方法示意图;
图6示出了本申请的实施例提供的一种具体的流数据的计算方法中考虑繁忙度的目标流数据存储方法示意图;
图7示出了本申请的实施例提供的一种流数据的计算装置的结构框图。
其中,上述附图包括以下附图标记:
102、处理器;104、存储器;106、传输设备;108、输入输出设备。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
FLINK:一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。
JVM:Java虚拟机。
HBase:分布式的、面向列的开源数据库。
Shuffle:一种用来重新分发数据的机制。
流数据:流数据是一组顺序、大量、快速、连续到达的数据序列。
维表:每一维数据对应的一个表。
分布式存储:一般情况下,可以分为两类:一种是基于磁盘的分布式存储,例如HDFS、ELASTICSEARCH等,一种是基于内存的分布式存储,例如REDIS、AEROSPIKE等,具有分布式、高可用、海量存储、通用等优点。
分布式内存数据库:REDIS、AEROSPIKE等内存组件,具有分布式、高可用、性能较高、支持类SQL的语言等优点。
流式计算:SPARK STREAMING、FLINK等组件,具备分布式、可扩展、性能较高等优点。
分布式任务调度:以YARN为例,具备多种资源调度模式、高可用、可扩展等优点。
正如背景技术中所介绍的,现有技术中流数据计算过程中大量维表数据存储在同一节点造成性能降低,为解决流数据存储在同一节点造成性能降低的问题,本申请的实施例提供了一种流数据的计算方法、计算装置、计算机可读存储介质和电子设备。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图2是本发明实施例的一种流数据的计算方法的移动终端的硬件结构框图。如图2所示,移动终端可以包括一个或多个(图2中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的流数据的计算方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于移动终端、计算机终端或者类似的运算装置的流数据的计算方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图3是根据本申请实施例的流数据的计算方法的流程图。如图3所示,该方法包括以下步骤:
步骤S201,获取目标流数据和上述目标流数据对应的维表,并获取上述目标流数据对应的主键值和上述维表对应的主键值,得到目标流数据主键值和维表主键值,其中,上述目标流数据主键值和上述维表主键值相同;
具体地,流数据计算过程中对应的维表一般存储至特定的维表数据存储表中,如基于REDIS的存储维表数据,在维表的存储过程中,通过REDIS写入客户端获取维表和主键KEY值即维表主键值,维表数据需要预先设计好REDIS KEY,保证后续的流数据能以合适的方式匹配。之后采用路由策略根据维表主键值计算对应的分区。目标流数据中也有对应的KEY值,KEY值可以为客户ID等,需要说明的是,上述目标流数据与对应的维表实则代表同一组数据,因此,具有相同的主键值。下文中的“REDIS”与“redis”为不同的写法但是表达的含义相同,“KEY”与“key”也为不同的写法但表达的含义相同。
步骤S202,根据上述维表主键值按照分区策略确定上述维表的第一目标分区,并获取上述第一目标分区与节点的第一映射关系,根据上述第一映射关系确定上述第一目标分区对应的目标节点,将上述维表存储至上述目标节点,其中,上述第一目标分区为上述维表对应的分区,上述分区策略是对上述主键值进行运算,以对上述主键值对应的上述目标流数据和上述维表进行分区的策略;
具体地,根据维表主键值KEY采用CRC16(KEY)%16384计算第一目标分区,CRC即循环冗余校验,16384表示第一目标分区的个数,可以根据实际情况调整,第一目标分区有多个,slot0、slot1、…、slot16383,每个目标分区都有对应的节点,第一目标分区与节点具有第一映射关系,例如:节点1存储的维表分区即第一目标分区为slot0…sloti,在节点1执行REDIS实例1,节点2可以存储的维表分区为sloti+1…slot2i,在节点2执行REDIS实例2,节点n可以存储的维表分区为slotx…slot16383,在节点n执行REDIS实例n。
步骤S203,根据上述目标流数据主键值按照上述分区策略确定上述目标流数据的第二目标分区,并获取上述第二目标分区与节点的第二映射关系,根据上述第二映射关系确定上述第二目标分区对应的上述目标节点,将上述目标流数据存储至上述目标节点,以在上述目标节点上对上述目标流数据与上述维表进行流式计算,其中,上述第二目标分区为上述目标流数据对应的分区,上述第二目标分区表示上述目标流数据对应的分区。
具体地,在将维表按照第一目标分区进行分区之后,为了更加方便地在节点中执行任务,将目标节点中的维表数据对应的目标流数据也存储至该目标节点,由于目标流数据与维表具有相同的主键值,因此,目标流数据也按照主键值进行分区,同样采用上述CRC16(KEY)%16384计算目标流数据的分区即第二目标分区,第二目标分区与节点的第一映射关系和第一目标分区与节点的第二映射关系相同,即一个流数据与其对应的维表在一个节点上,这样在流数据进行计算的时候就无需从别的节点调取其对应的维表数据,消除了不必要的网络传输。上述方法有以下两点要求:第一,任务执行单元需要提前启动常驻,随时为收到的任务进行计算;第二,要求任务执行单元和维表存储单元(REDIS实例)一一对应且同节点部署,解决跨网络拉取数据。
通过本实施例,获取待存储的目标流数据及其对应的维表,之后获取主键值,目标流数据与其维表的主键值相同,将主键值通过相同的分区策略进行运算,确定维表的第一目标分区和目标流数据的第二目标分区,之后再根据第一映射关系和第二映射关系确定目标节点,以将目标流数据存储至其对应的维表所在的节点中。这样通过分区策略完成了目标流数据及其维表数据的分配,避免大量流数据与维表数据存储在同一个节点造成的节点计算性能下降等问题;同时,将目标流数据与维表分配至同一个节点中进行流数据的计算,这样避免了从不同节点传输数据等不必要的数据传输,使节点具有高效的计算性能。与现有技术中,大量流数据对应的维表存储至同一个节点,以及在流数据的计算过程中需要额外从维表数据的存储端调取数据造成计算性能下降的方法相比,本申请实现了数据的分散存储与精准调度,避免网络拥堵以及计算性能下降的问题,因此,能够解决现有技术中流数据计算性能降低的问题,达到了数据的精准调度与计算的效果。
具体实现过程中,上述步骤S202可以通过以下步骤实现:将上述维表主键值进行循环冗余校验,得到第一校验值,并获取上述第一目标分区的个数,将上述第一校验值与上述第一目标分区的个数进行取余运算,得到第一余数,确定与上述第一余数相同的序号对应的分区为上述第一目标分区,其中,每个上述第一目标分区对应一个序号;根据上述目标流数据主键值按照上述分区策略确定上述目标流数据的第二目标分区,包括:将上述目标流数据主键值进行循环冗余校验,得到第二校验值,并获取上述第二目标分区的个数,将上述第二校验值与上述第二目标分区的个数进行取余运算,得到第二余数,确定与上述第二余数相同的序号对应的分区为上述第二目标分区,其中,每个上述第二目标分区对应一个序号。该方法将维表主键值与目标流数据主键值按照分区策略即循环冗余校验并与分区个数取余的方式确定第一目标分区与第二目标分区,这样可以按照分区策略对维表和流数据进行分区,实现分布式任务调度。
具体地,基于REDIS存储维表数据,REDIS写入端可复用JEDIS的功能,采用CRC16(KEY)%16384的方式分区即分配slot(位置),如上文所说,维表数据需要设计好REDISKEY,保证后续的流数据能以合适的方式匹配,第一目标分区可以为16384个,也可以根据实际应用场景设定,CRC16(KEY)即第一校验值,CRC16(KEY)%16384得到第一余数,例如:2,则该维表数据就存储至slot2分区中。同理,目标流数据在进入流处理装置后,会根据CRC16(KEY)%16384(这里的KEY存在于目标流数据中,与维表中的KEY是相同的,例如客户ID)计算得到目标流数据对应的维表数据所在的slot即上述slot2分区,再根据REDIS客户端拥有的slot和节点映射表找到对应的节点,即意味着本次数据应发往找到的节点。
为了避免一个计算节点中有多个任务同时在执行,造成节点负荷过大等问题,在一些可选的实施方式中,上述目标节点包括目标主节点和多个目标从节点,上述步骤S203可以通过以下步骤实现:步骤S2031:计算上述目标主节点和多个上述目标从节点的繁忙度,其中,上述繁忙度的高低表示上述节点的CPU使用率和内存使用率的高低,上述CPU使用率和上述内存使用率越高,上述繁忙度越高;步骤S2032:在上述目标主节点和多个上述目标从节点的上述繁忙度都小于预设阈值的情况下,将上述目标流数据存储至上述繁忙度最低的上述目标主节点或上述目标从节点;步骤S2033:在任意一个上述目标主节点或上述目标从节点的上述繁忙度大于或者等于上述预设阈值的情况下,将上述目标流数据存储至除上述目标节点之外的其他节点。该方法在将目标流数据存储至目标节点之前,计算目标节点的繁忙度,并根据繁忙度的大小确定存储的节点,这样可以避免同一节点的任务过多,资源利用不均等问题,避免计算性能降低。
具体实现过程中,每个目标节点包括主节点和多个从节点,为了降低极端情况下某一时间段数据归属到单个节点,即任务分配到单个节点,造成节点资源压力问题,我们还需要结合节点繁忙度(资源)决定最终任务(数据)应发往哪个计算节点,即计算每个目标节点中多个主节点和从节点的繁忙度,以掌握每个节点的使用率。通过CPU和内存的使用率来评估繁忙度,在目标节点中的主节点和多个从节点的繁忙度都未超过预设阈值的情况下,将目标流数据存储至繁忙度最低的一个节点(可以是主节点也可以是从节点)中进行计算。而当任意一个节点(可以是主节点也可以是从节点)的繁忙度大于或者等于预设阈值,表明该节点繁忙,此时将目标流数据存储至其他节点。
在一些可选的实施方式中,上述步骤S2031可以通过以下步骤实现:通过公式计算上述繁忙度,其中,z表示上述繁忙度,a表示上述CPU使用率的权重,x表示上述CPU使用率,b表示上述内存使用率的权重,y表示上述内存使用率,m表示上述CPU使用率的阈值,n表示上述内存使用率的阈值。该方法通过CPU和内存的使用率根据上述公式计算繁忙度,这样可以准确地确定目标节点当前的状态,以确定是否将目标流数据存储至目标节点。
具体地,上述m代表CPU使用率的阈值,比如表达CPU使用率大于80%时,m取值为80%,n代表内存使用率的阈值,比如表达内存使用率大于60%时,m取值为60%,e代表自然数。
为了平衡各节点的计算负荷,上述步骤S2033可以通过以下步骤实现:计算上述其他节点的主节点和多个从节点的繁忙度,并计算上述其他节点的主节点和多个从节点的繁忙度的平均值,得到每个上述其他节点对应的繁忙度平均值;比较多个上述繁忙度平均值的大小,将上述目标流数据存储至上述繁忙度平均值最低的上述其他节点。该方法计算其他节点的繁忙度,将目标流数据存储至繁忙度最低的节点,这样可以更好地利用节点资源,避免某一节点负荷过大而其他节点空闲的情况。
具体实现过程中,计算其他节点的繁忙度包括计算其他节点中每个节点的主节点和从节点的繁忙度,为了更好地比较节点之间的繁忙度,通过每个节点的繁忙度平均值,将主节点和多个从节点的繁忙度进行平均,得到该节点的繁忙度平均值,并将目标流数据存储至繁忙度平均值最低的节点,以平衡各个节点的计算负荷。
在一些可选的实施方式中,在上述步骤S2033之后,上述方法还包括以下步骤:获取与上述目标流数据主键值相同的上述维表主键值对应的上述维表;将上述维表存储至上述繁忙度平均值最低的上述其他节点。该方法将目标流数据存储至其他节点之后,将目标流数据对应的维表数据也存储至同一节点,这样可以在繁忙度平均值最低的节点进行流数据的计算,避免维表数据的传输,提高计算效率与性能。
具体地,由于流数据计算过程中需要调取其对应的维表数据,同上文所说,将流数据与维表数据存储至同一目标节点进行运算,这样就能避免维表数据的传输等步骤,直接在同一节点中计算,提高节点的计算效率与性能,因此,将目标流数据存储至其他节点之后,将维表数据一同存储至该节点。
为了方便地进行流数据的计算,上述步骤S203中在上述目标节点上对上述目标流数据与上述维表进行流式计算,可以通过以下步骤实现:通过维表读取数据客户端根据上述维表主键读取上述目标流数据对应的上述维表,对上述目标流数据与上述维表进行流式计算。该方法在目标节点中通过维表读取客户端读取目标流数据对应的维表数据,之后就可以进行计算,这样可以方便地进行流数据的计算。
具体实现过程中,在目标节点中进行流数据的计算时,只需通过维表读取客户端例如REDIS读取客户端读取对应的维表,就可以使维表参与其对应的流数据的计算。
为了使得本领域技术人员能够更加清楚地了解本申请的技术方案,以下将结合具体的实施例对本申请的流数据的计算方法的实现过程进行详细说明。
本实施例涉及一种具体的流数据的计算方法,包括如下步骤:
步骤S1:图4为维表的存储方法示意图,从redis写入客户端获取主键key(主键值);
步骤S2:通过路由策略(分区策略)确定分区维表的分区,即通过计算slotNum=CRC16(key)%16384的值确定slot(第一目标分区);
步骤S3:之后通过第一目标分区与节点的第一映射关系确定目标节点,并将维表存储至目标节点,例如:在节点1上执行redis实例1,节点1对应的分区为slot0、…、sloti,在节点2上执行redis实例2,节点2对应的分区为sloti+1、…、slot2i,在节点n上执行redis实例n,节点n对应的分区为slotx、…、slot16383;之后redis读取客户端用于从上述节点中读取维表数据,连接节点的选取策略为优先localhost(本地数据);
步骤S4:图5为目标流数据的存储方法示意图,源数据(流数据)按照主键key(目标流数据主键)分区,分区算法(分区策略)同维表数据的分区即partitionNum=CRC(key)%16384,从而确定目标流数据的分区(第二目标分区);
步骤S5:根据slotNum查找slots映射表(第二映射关系),找到分区数据要发往的节点,redis slots映射表(包含slotNum和节点的映射关系),redis slots映射表partitionNum等同于slotNum;
步骤S6:通过计算节点繁忙度(资源)判断最后任务应该落在哪个节点上执行(即流数据发送的方向),将目标流数据发送至目标节点,例如:流数据分片1存储至节点1,在节点1中的任务执行单元从redis实例1中通过redis读取数据客户端在通过主键key获取数据(目标流数据对应的维表),将维表join(结合)流数据分片1进行流计算;同理,流数据分片m存储至节点n,在节点n中的任务执行单元从redis实例n中通过redis读取数据客户端在通过主键key获取数据(目标流数据对应的维表),将维表join(结合)流数据分片m进行流计算,最后redis1、…、redisn组成redis集群,合并输出;
步骤S7:图6为考虑繁忙度的目标流数据存储方法示意图,计算CRC(key)%16384,从而获取到slotNum,查找slot和节点映射表,获取到对应master slot所在节点(主节点)以及slave节点(从节点)计算master和slave节点的繁忙度,判断繁忙度是否超过阈值threshold,在是的情况下,随机选取其他节点作为最终的任务节点,在否的情况下选取繁忙度最低的节点作为任务节点。
本申请实施例还提供了一种流数据的计算装置,需要说明的是,本申请实施例的流数据的计算装置可以用于执行本申请实施例所提供的用于流数据的计算方法。该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
以下对本申请实施例提供的流数据的计算装置进行介绍。
图7是根据本申请实施例的流数据的计算装置的示意图。如图7所示,该装置包括:
确定单元10,用于获取目标流数据和上述目标流数据对应的维表,并确定上述目标流数据的主键值和上述维表的主键值,得到目标流数据主键值和维表主键值,其中,上述目标流数据主键值和上述维表主键值相同;
具体地,流数据计算过程中对应的维表一般存储至特定的维表数据存储表中,如基于REDIS的存储维表数据,在维表的存储过程中,通过REDIS写入客户端获取维表和主键KEY值即维表主键值,维表数据需要预先设计好REDIS KEY,保证后续的流数据能以合适的方式匹配。之后采用路由策略根据维表主键值计算对应的分区。目标流数据中也有对应的KEY值,KEY值可以为客户ID等,需要说明的是,上述目标流数据与对应的维表实则代表同一组数据,因此,具有相同的主键值。
第一存储单元20,用于根据上述维表主键值按照分区策略确定上述维表的第一目标分区,并获取上述第一目标分区与节点的第一映射关系,根据上述第一映射关系确定上述第一目标分区对应的目标节点,将上述维表存储至上述目标节点,其中,上述第一目标分区为上述维表对应的分区,上述分区策略是对上述主键值进行运算,以对上述主键值对应的上述目标流数据和上述维表进行分区的策略;
具体地,根据维表主键值KEY采用CRC16(KEY)%16384计算第一目标分区,CRC即循环冗余校验,16384表示第一目标分区的个数,可以根据实际情况调整,第一目标分区有多个,slot0、slot1、…、slot16383,每个目标分区都有对应的节点,第一目标分区与节点具有第一映射关系,例如:节点1存储的维表分区即第一目标分区为slot0…sloti,在节点1执行REDIS实例1,节点2可以存储的维表分区为sloti+1…slot2i,在节点2执行REDIS实例2,节点n可以存储的维表分区为slotx…slot16383,在节点n执行REDIS实例n。
第二存储单元30,用于根据上述目标流数据主键值按照上述分区策略确定上述目标流数据的第二目标分区,并获取上述第二目标分区与节点的第二映射关系,根据上述第二映射关系确定上述第二目标分区对应的上述目标节点,将上述目标流数据存储至上述目标节点,以在上述目标节点上对上述目标流数据与上述维表进行流式计算,其中,上述第二目标分区为上述目标流数据对应的分区,上述第二目标分区表示上述目标流数据对应的分区。
具体地,在将维表按照第一目标分区进行分区之后,为了更加方便地在节点中执行任务,将目标节点中的维表数据对应的目标流数据也存储至该目标节点,由于目标流数据与维表具有相同的主键值,因此,目标流数据也按照主键值进行分区,同样采用上述CRC16(KEY)%16384计算目标流数据的分区即第二目标分区,第二目标分区与节点的第一映射关系和第一目标分区与节点的第二映射关系相同,即一个流数据与其对应的维表在一个节点上,这样在流数据进行计算的时候就无需从别的节点调取其对应的维表数据,消除了不必要的网络传输。上述装置有以下两点要求:第一,任务执行单元需要提前启动常驻,随时为收到的任务进行计算;第二,要求任务执行单元和维表存储单元(REDIS实例)一一对应且同节点部署,解决跨网络拉取数据。
通过本实施例,获取待存储的目标流数据及其对应的维表,之后获取主键值,目标流数据与其维表的主键值相同,将主键值通过相同的分区策略进行运算,确定维表的第一目标分区和目标流数据的第二目标分区,之后再根据第一映射关系和第二映射关系确定目标节点,以将目标流数据存储至其对应的维表所在的节点中。这样通过分区策略完成了目标流数据及其维表数据的分配,避免大量流数据与维表数据存储在同一个节点造成的节点计算性能下降等问题;同时,将目标流数据与维表分配至同一个节点中进行流数据的计算,这样避免了从不同节点传输数据等不必要的数据传输,使节点具有高效的计算性能。与现有技术中,大量流数据对应的维表存储至同一个节点,以及在流数据的计算过程中需要额外从维表数据的存储端调取数据造成计算性能下降的装置相比,本申请实现了数据的分散存储与精准调度,避免网络拥堵以及计算性能下降的问题,因此,能够解决现有技术中流数据计算性能降低的问题,达到了数据的精准调度与计算的效果。
具体实现过程中,第一存储单元包括第一确定模块,用于将上述维表主键值进行循环冗余校验,得到第一校验值,并获取上述第一目标分区的个数,将上述第一校验值与上述第一目标分区的个数进行取余运算,得到第一余数,确定与上述第一余数相同的序号对应的分区为上述第一目标分区,其中,每个上述第一目标分区对应一个序号;第二存储单元包括第二确定模块,用于将上述目标流数据主键值进行循环冗余校验,得到第二校验值,并获取上述第二目标分区的个数,将上述第二校验值与上述第二目标分区的个数进行取余运算,得到第二余数,确定与上述第二余数相同的序号对应的分区为上述第二目标分区,其中,每个上述第二目标分区对应一个序号。该装置将维表主键值与目标流数据主键值按照分区策略即循环冗余校验并与分区个数取余的方式确定第一目标分区与第二目标分区,这样可以按照分区策略对维表和流数据进行分区,实现分布式任务调度。
具体地,基于REDIS存储维表数据,REDIS写入端可复用JEDIS的功能,采用CRC16(KEY)%16384的方式分区即分配slot(位置),如上文所说,维表数据需要设计好REDISKEY,保证后续的流数据能以合适的方式匹配,第一目标分区可以为16384个,也可以根据实际应用场景设定,CRC16(KEY)即第一校验值,CRC16(KEY)%16384得到第一余数,例如:2,则该维表数据就存储至slot2分区中。同理,目标流数据在进入流处理装置后,会根据CRC16(KEY)%16384(这里的KEY存在于目标流数据中,与维表中的KEY是相同的,例如客户ID)计算得到目标流数据对应的维表数据所在的slot即上述slot2分区,再根据REDIS客户端拥有的slot和节点映射表找到对应的节点,即意味着本次数据应发往找到的节点。
为了避免一个计算节点中有多个任务同时在执行,造成节点负荷过大等问题,在一些可选的实施方式中,上述目标节点包括目标主节点和多个目标从节点,上述第二存储单元包括第一计算模块、第一存储模块和第二存储模块,其中,第一计算模块用于计算上述目标主节点和多个上述目标从节点的繁忙度,其中,上述繁忙度的高低表示上述节点的CPU使用率和内存使用率的高低,上述CPU使用率和上述内存使用率越高,上述繁忙度越高;第一存储模块用于在上述目标主节点和多个上述目标从节点的上述繁忙度都小于预设阈值的情况下,将上述目标流数据存储至上述繁忙度最低的上述目标主节点或上述目标从节点;第二存储模块用于在任意一个上述目标主节点或上述目标从节点的上述繁忙度大于或者等于上述预设阈值的情况下,将上述目标流数据存储至除上述目标节点之外的其他节点。该装置在将目标流数据存储至目标节点之前,计算目标节点的繁忙度,并根据繁忙度的大小确定存储的节点,这样可以避免同一节点的任务过多,资源利用不均等问题,避免计算性能降低。
具体实现过程中,每个目标节点包括主节点和多个从节点,为了降低极端情况下某一时间段数据归属到单个节点,即任务分配到单个节点,造成节点资源压力问题,我们还需要结合节点繁忙度(资源)决定最终任务(数据)应发往哪个计算节点,即计算每个目标节点中多个主节点和从节点的繁忙度,以掌握每个节点的使用率。通过CPU和内存的使用率来评估繁忙度,在目标节点中的主节点和多个从节点的繁忙度都未超过预设阈值的情况下,将目标流数据存储至繁忙度最低的一个节点(可以是主节点也可以是从节点)中进行计算。而当任意一个节点(可以是主节点也可以是从节点)的繁忙度大于或者等于预设阈值,表明该节点繁忙,此时将目标流数据存储至其他节点。
在一些可选的实施方式中,上述第一计算模块包括第一计算子模块,用于通过公式计算上述繁忙度,其中,z表示上述繁忙度,a表示上述CPU使用率的权重,x表示上述CPU使用率,b表示上述内存使用率的权重,y表示上述内存使用率,m表示上述CPU使用率的阈值,n表示上述内存使用率的阈值。该装置通过CPU和内存的使用率根据上述公式计算繁忙度,这样可以准确地确定目标节点当前的状态,以确定是否将目标流数据存储至目标节点。
具体地,上述m代表CPU使用率的阈值,比如表达CPU使用率大于80%时,m取值为80%,n代表内存使用率的阈值,比如表达内存使用率大于60%时,m取值为60%,e代表自然数。
为了平衡各节点的计算负荷,第二存储模块包括第二计算子模块和第三存储子模块,其中,第二计算子模块用于计算上述其他节点的主节点和多个从节点的繁忙度,并计算上述其他节点的主节点和多个从节点的繁忙度的平均值,得到每个上述其他节点对应的繁忙度平均值;第三存储子模块用于比较多个上述繁忙度平均值的大小,将上述目标流数据存储至上述繁忙度平均值最低的上述其他节点。该装置计算其他节点的繁忙度,将目标流数据存储至繁忙度最低的节点,这样可以更好地利用节点资源,避免某一节点负荷过大而其他节点空闲的情况。
具体实现过程中,计算其他节点的繁忙度包括计算其他节点中每个节点的主节点和从节点的繁忙度,为了更好地比较节点之间的繁忙度,通过每个节点的繁忙度平均值,将主节点和多个从节点的繁忙度进行平均,得到该节点的繁忙度平均值,并将目标流数据存储至繁忙度平均值最低的节点,以平衡各个节点的计算负荷。
在一些可选的实施方式中,上述装置还包括获取单元和第三存储单元,其中,获取单元用于获取与上述目标流数据主键值相同的上述维表主键值对应的上述维表;第三存储单元用于将上述维表存储至上述繁忙度平均值最低的上述其他节点。该装置将目标流数据存储至其他节点之后,将目标流数据对应的维表数据也存储至同一节点,这样可以在繁忙度平均值最低的节点进行流数据的计算,避免维表数据的传输,提高计算效率与性能。
具体地,由于流数据计算过程中需要调取其对应的维表数据,同上文所说,将流数据与维表数据存储至同一目标节点进行运算,这样就能避免维表数据的传输等步骤,直接在同一节点中计算,提高节点的计算效率与性能,因此,将目标流数据存储至其他节点之后,将维表数据一同存储至该节点。
为了方便地进行流数据的计算,第二存储单元还包括第二计算模块,用于通过维表读取数据客户端根据上述维表主键读取上述目标流数据对应的上述维表,对上述目标流数据与上述维表进行流式计算。该装置在目标节点中通过维表读取客户端读取目标流数据对应的维表数据,之后就可以进行计算,这样可以方便地进行流数据的计算。
具体实现过程中,在目标节点中进行流数据的计算时,只需通过维表读取客户端例如REDIS读取客户端读取对应的维表,就可以使维表参与其对应的流数据的计算。
上述流数据的计算装置包括处理器和存储器,上述确定单元、第一存储单元和第二存储单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现流数据和维表数据的精准调度。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述流数据的计算方法。
具体地,流数据的计算方法包括:
步骤S201,获取目标流数据和上述目标流数据对应的维表,并获取上述目标流数据对应的主键值和上述维表对应的主键值,得到目标流数据主键值和维表主键值,其中,上述目标流数据主键值和上述维表主键值相同;
具体地,流数据计算过程中对应的维表一般存储至特定的维表数据存储表中,如基于REDIS的存储维表数据,在维表的存储过程中,通过REDIS写入客户端获取维表和主键KEY值即维表主键值,维表数据需要预先设计好REDIS KEY,保证后续的流数据能以合适的方式匹配。之后采用路由策略根据维表主键值计算对应的分区。目标流数据中也有对应的KEY值,KEY值可以为客户ID等,需要说明的是,上述目标流数据与对应的维表实则代表同一组数据,因此,具有相同的主键值。
步骤S202,根据上述维表主键值按照分区策略确定上述维表的第一目标分区,并获取上述第一目标分区与节点的第一映射关系,根据上述第一映射关系确定上述第一目标分区对应的目标节点,将上述维表存储至上述目标节点,其中,上述第一目标分区为上述维表对应的分区,上述分区策略是对上述主键值进行运算,以对上述主键值对应的上述目标流数据和上述维表进行分区的策略;
具体地,根据维表主键值KEY采用CRC16(KEY)%16384计算第一目标分区,CRC即循环冗余校验,16384表示第一目标分区的个数,可以根据实际情况调整,第一目标分区有多个,slot0、slot1、…、slot16383,每个目标分区都有对应的节点,第一目标分区与节点具有第一映射关系,例如:节点1存储的维表分区即第一目标分区为slot0…sloti,在节点1执行REDIS实例1,节点2可以存储的维表分区为sloti+1…slot2i,在节点2执行REDIS实例2,节点n可以存储的维表分区为slotx…slot16383,在节点n执行REDIS实例n。
步骤S203,根据上述目标流数据主键值按照上述分区策略确定上述目标流数据的第二目标分区,并获取上述第二目标分区与节点的第二映射关系,根据上述第二映射关系确定上述第二目标分区对应的上述目标节点,将上述目标流数据存储至上述目标节点,以在上述目标节点上对上述目标流数据与上述维表进行流式计算,其中,上述第二目标分区为上述目标流数据对应的分区,上述第二目标分区表示上述目标流数据对应的分区。
具体地,在将维表按照第一目标分区进行分区之后,为了更加方便地在节点中执行任务,将目标节点中的维表数据对应的目标流数据也存储至该目标节点,由于目标流数据与维表具有相同的主键值,因此,目标流数据也按照主键值进行分区,同样采用上述CRC16(KEY)%16384计算目标流数据的分区即第二目标分区,第二目标分区与节点的第一映射关系和第一目标分区与节点的第二映射关系相同,即一个流数据与其对应的维表在一个节点上,这样在流数据进行计算的时候就无需从别的节点调取其对应的维表数据,消除了不必要的网络传输。上述方法有以下两点要求:第一,任务执行单元需要提前启动常驻,随时为收到的任务进行计算;第二,要求任务执行单元和维表存储单元(REDIS实例)一一对应且同节点部署,解决跨网络拉取数据。
可选地,根据上述维表主键值按照分区策略确定上述维表的第一目标分区,包括:将上述维表主键值进行循环冗余校验,得到第一校验值,并获取上述第一目标分区的个数,将上述第一校验值与上述第一目标分区的个数进行取余运算,得到第一余数,确定与上述第一余数相同的序号对应的分区为上述第一目标分区,其中,每个上述第一目标分区对应一个序号;根据上述目标流数据主键值按照上述分区策略确定上述目标流数据的第二目标分区,包括:将上述目标流数据主键值进行循环冗余校验,得到第二校验值,并获取上述第二目标分区的个数,将上述第二校验值与上述第二目标分区的个数进行取余运算,得到第二余数,确定与上述第二余数相同的序号对应的分区为上述第二目标分区,其中,每个上述第二目标分区对应一个序号。
可选地,上述目标节点包括目标主节点和多个目标从节点,将上述目标流数据存储至上述目标节点,包括:计算上述目标主节点和多个上述目标从节点的繁忙度,其中,上述繁忙度的高低表示上述节点的CPU使用率和内存使用率的高低,上述CPU使用率和上述内存使用率越高,上述繁忙度越高;在上述目标主节点和多个上述目标从节点的上述繁忙度都小于预设阈值的情况下,将上述目标流数据存储至上述繁忙度最低的上述目标主节点或上述目标从节点;在任意一个上述目标主节点或上述目标从节点的上述繁忙度大于或者等于上述预设阈值的情况下,将上述目标流数据存储至除上述目标节点之外的其他节点。
可选地,计算上述目标主节点和多个上述目标从节点的繁忙度,包括:通过公式计算上述繁忙度,其中,z表示上述繁忙度,a表示上述CPU使用率的权重,x表示上述CPU使用率,b表示上述内存使用率的权重,y表示上述内存使用率,m表示上述CPU使用率的阈值,n表示上述内存使用率的阈值。
可选地,在任意一个上述目标主节点或上述目标从节点的上述繁忙度大于或者等于上述预设阈值的情况下,将上述目标流数据存储至除上述目标节点之外的其他节点,包括:计算上述其他节点的主节点和多个从节点的繁忙度,并计算上述其他节点的主节点和多个从节点的繁忙度的平均值,得到每个上述其他节点对应的繁忙度平均值;比较多个上述繁忙度平均值的大小,将上述目标流数据存储至上述繁忙度平均值最低的上述其他节点。
可选地,在将上述目标流数据存储至上述繁忙度平均值最低的上述其他节点之后,上述方法还包括:获取与上述目标流数据主键值相同的上述维表主键值对应的上述维表;将上述维表存储至上述繁忙度平均值最低的上述其他节点。
可选地,在上述目标节点上对上述目标流数据与上述维表进行流式计算,包括:通过维表读取数据客户端根据上述维表主键读取上述目标流数据对应的上述维表,对上述目标流数据与上述维表进行流式计算。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
步骤S201,获取目标流数据和上述目标流数据对应的维表,并获取上述目标流数据对应的主键值和上述维表对应的主键值,得到目标流数据主键值和维表主键值,其中,上述目标流数据主键值和上述维表主键值相同;
步骤S202,根据上述维表主键值按照分区策略确定上述维表的第一目标分区,并获取上述第一目标分区与节点的第一映射关系,根据上述第一映射关系确定上述第一目标分区对应的目标节点,将上述维表存储至上述目标节点,其中,上述第一目标分区为上述维表对应的分区,上述分区策略是对上述主键值进行运算,以对上述主键值对应的上述目标流数据和上述维表进行分区的策略;
步骤S203,根据上述目标流数据主键值按照上述分区策略确定上述目标流数据的第二目标分区,并获取上述第二目标分区与节点的第二映射关系,根据上述第二映射关系确定上述第二目标分区对应的上述目标节点,将上述目标流数据存储至上述目标节点,以在上述目标节点上对上述目标流数据与上述维表进行流式计算,其中,上述第二目标分区为上述目标流数据对应的分区,上述第二目标分区表示上述目标流数据对应的分区。
本文中的设备可以是服务器、PC、PAD、手机等。
可选地,根据上述维表主键值按照分区策略确定上述维表的第一目标分区,包括:将上述维表主键值进行循环冗余校验,得到第一校验值,并获取上述第一目标分区的个数,将上述第一校验值与上述第一目标分区的个数进行取余运算,得到第一余数,确定与上述第一余数相同的序号对应的分区为上述第一目标分区,其中,每个上述第一目标分区对应一个序号;根据上述目标流数据主键值按照上述分区策略确定上述目标流数据的第二目标分区,包括:将上述目标流数据主键值进行循环冗余校验,得到第二校验值,并获取上述第二目标分区的个数,将上述第二校验值与上述第二目标分区的个数进行取余运算,得到第二余数,确定与上述第二余数相同的序号对应的分区为上述第二目标分区,其中,每个上述第二目标分区对应一个序号。
可选地,上述目标节点包括目标主节点和多个目标从节点,将上述目标流数据存储至上述目标节点,包括:计算上述目标主节点和多个上述目标从节点的繁忙度,其中,上述繁忙度的高低表示上述节点的CPU使用率和内存使用率的高低,上述CPU使用率和上述内存使用率越高,上述繁忙度越高;在上述目标主节点和多个上述目标从节点的上述繁忙度都小于预设阈值的情况下,将上述目标流数据存储至上述繁忙度最低的上述目标主节点或上述目标从节点;在任意一个上述目标主节点或上述目标从节点的上述繁忙度大于或者等于上述预设阈值的情况下,将上述目标流数据存储至除上述目标节点之外的其他节点。
可选地,计算上述目标主节点和多个上述目标从节点的繁忙度,包括:通过公式计算上述繁忙度,其中,z表示上述繁忙度,a表示上述CPU使用率的权重,x表示上述CPU使用率,b表示上述内存使用率的权重,y表示上述内存使用率,m表示上述CPU使用率的阈值,n表示上述内存使用率的阈值。
可选地,在任意一个上述目标主节点或上述目标从节点的上述繁忙度大于或者等于上述预设阈值的情况下,将上述目标流数据存储至除上述目标节点之外的其他节点,包括:计算上述其他节点的主节点和多个从节点的繁忙度,并计算上述其他节点的主节点和多个从节点的繁忙度的平均值,得到每个上述其他节点对应的繁忙度平均值;比较多个上述繁忙度平均值的大小,将上述目标流数据存储至上述繁忙度平均值最低的上述其他节点。
可选地,在将上述目标流数据存储至上述繁忙度平均值最低的上述其他节点之后,上述方法还包括:获取与上述目标流数据主键值相同的上述维表主键值对应的上述维表;将上述维表存储至上述繁忙度平均值最低的上述其他节点。
可选地,在上述目标节点上对上述目标流数据与上述维表进行流式计算,包括:通过维表读取数据客户端根据上述维表主键读取上述目标流数据对应的上述维表,对上述目标流数据与上述维表进行流式计算。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
步骤S201,获取目标流数据和上述目标流数据对应的维表,并获取上述目标流数据对应的主键值和上述维表对应的主键值,得到目标流数据主键值和维表主键值,其中,上述目标流数据主键值和上述维表主键值相同;
步骤S202,根据上述维表主键值按照分区策略确定上述维表的第一目标分区,并获取上述第一目标分区与节点的第一映射关系,根据上述第一映射关系确定上述第一目标分区对应的目标节点,将上述维表存储至上述目标节点,其中,上述第一目标分区为上述维表对应的分区,上述分区策略是对上述主键值进行运算,以对上述主键值对应的上述目标流数据和上述维表进行分区的策略;
步骤S203,根据上述目标流数据主键值按照上述分区策略确定上述目标流数据的第二目标分区,并获取上述第二目标分区与节点的第二映射关系,根据上述第二映射关系确定上述第二目标分区对应的上述目标节点,将上述目标流数据存储至上述目标节点,以在上述目标节点上对上述目标流数据与上述维表进行流式计算,其中,上述第二目标分区为上述目标流数据对应的分区,上述第二目标分区表示上述目标流数据对应的分区。
可选地,根据上述维表主键值按照分区策略确定上述维表的第一目标分区,包括:将上述维表主键值进行循环冗余校验,得到第一校验值,并获取上述第一目标分区的个数,将上述第一校验值与上述第一目标分区的个数进行取余运算,得到第一余数,确定与上述第一余数相同的序号对应的分区为上述第一目标分区,其中,每个上述第一目标分区对应一个序号;根据上述目标流数据主键值按照上述分区策略确定上述目标流数据的第二目标分区,包括:将上述目标流数据主键值进行循环冗余校验,得到第二校验值,并获取上述第二目标分区的个数,将上述第二校验值与上述第二目标分区的个数进行取余运算,得到第二余数,确定与上述第二余数相同的序号对应的分区为上述第二目标分区,其中,每个上述第二目标分区对应一个序号。
可选地,上述目标节点包括目标主节点和多个目标从节点,将上述目标流数据存储至上述目标节点,包括:计算上述目标主节点和多个上述目标从节点的繁忙度,其中,上述繁忙度的高低表示上述节点的CPU使用率和内存使用率的高低,上述CPU使用率和上述内存使用率越高,上述繁忙度越高;在上述目标主节点和多个上述目标从节点的上述繁忙度都小于预设阈值的情况下,将上述目标流数据存储至上述繁忙度最低的上述目标主节点或上述目标从节点;在任意一个上述目标主节点或上述目标从节点的上述繁忙度大于或者等于上述预设阈值的情况下,将上述目标流数据存储至除上述目标节点之外的其他节点。
可选地,计算上述目标主节点和多个上述目标从节点的繁忙度,包括:通过公式计算上述繁忙度,其中,z表示上述繁忙度,a表示上述CPU使用率的权重,x表示上述CPU使用率,b表示上述内存使用率的权重,y表示上述内存使用率,m表示上述CPU使用率的阈值,n表示上述内存使用率的阈值。
可选地,在任意一个上述目标主节点或上述目标从节点的上述繁忙度大于或者等于上述预设阈值的情况下,将上述目标流数据存储至除上述目标节点之外的其他节点,包括:计算上述其他节点的主节点和多个从节点的繁忙度,并计算上述其他节点的主节点和多个从节点的繁忙度的平均值,得到每个上述其他节点对应的繁忙度平均值;比较多个上述繁忙度平均值的大小,将上述目标流数据存储至上述繁忙度平均值最低的上述其他节点。
可选地,在将上述目标流数据存储至上述繁忙度平均值最低的上述其他节点之后,上述方法还包括:获取与上述目标流数据主键值相同的上述维表主键值对应的上述维表;将上述维表存储至上述繁忙度平均值最低的上述其他节点。
可选地,在上述目标节点上对上述目标流数据与上述维表进行流式计算,包括:通过维表读取数据客户端根据上述维表主键读取上述目标流数据对应的上述维表,对上述目标流数据与上述维表进行流式计算。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
1)、本申请的流数据的计算方法中,获取待存储的目标流数据及其对应的维表,之后获取主键值,目标流数据与其维表的主键值相同,将主键值通过相同的分区策略进行运算,确定维表的第一目标分区和目标流数据的第二目标分区,之后再根据第一映射关系和第二映射关系确定目标节点,以将目标流数据存储至其对应的维表所在的节点中。这样通过分区策略完成了目标流数据及其维表数据的分配,避免大量流数据与维表数据存储在同一个节点造成的节点计算性能下降等问题;同时,将目标流数据与维表分配至同一个节点中进行流数据的计算,这样避免了从不同节点传输数据等不必要的数据传输,使节点具有高效的计算性能。与现有技术中,大量流数据对应的维表存储至同一个节点,以及在流数据的计算过程中需要额外从维表数据的存储端调取数据造成计算性能下降的方法相比,本申请实现了数据的分散存储与精准调度,避免网络拥堵以及计算性能下降的问题,因此,能够解决现有技术中流数据计算性能降低的问题,达到了数据的精准调度与计算的效果。
2)、本申请的流数据的计算装置中,获取待存储的目标流数据及其对应的维表,之后获取主键值,目标流数据与其维表的主键值相同,将主键值通过相同的分区策略进行运算,确定维表的第一目标分区和目标流数据的第二目标分区,之后再根据第一映射关系和第二映射关系确定目标节点,以将目标流数据存储至其对应的维表所在的节点中。这样通过分区策略完成了目标流数据及其维表数据的分配,避免大量流数据与维表数据存储在同一个节点造成的节点计算性能下降等问题;同时,将目标流数据与维表分配至同一个节点中进行流数据的计算,这样避免了从不同节点传输数据等不必要的数据传输,使节点具有高效的计算性能。与现有技术中,大量流数据对应的维表存储至同一个节点,以及在流数据的计算过程中需要额外从维表数据的存储端调取数据造成计算性能下降的装置相比,本申请实现了数据的分散存储与精准调度,避免网络拥堵以及计算性能下降的问题,因此,能够解决现有技术中流数据计算性能降低的问题,达到了数据的精准调度与计算的效果。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种流数据的计算方法,其特征在于,包括:
获取目标流数据和所述目标流数据对应的维表,并获取所述目标流数据对应的主键值和所述维表对应的主键值,得到目标流数据主键值和维表主键值,其中,所述目标流数据主键值和所述维表主键值相同;
根据所述维表主键值按照分区策略确定所述维表的第一目标分区,并获取所述第一目标分区与节点的第一映射关系,根据所述第一映射关系确定所述第一目标分区对应的目标节点,将所述维表存储至所述目标节点,其中,所述第一目标分区为所述维表对应的分区,所述分区策略是对所述主键值进行运算,以对所述主键值对应的所述目标流数据和所述维表进行分区的策略;
根据所述目标流数据主键值按照所述分区策略确定所述目标流数据的第二目标分区,并获取所述第二目标分区与节点的第二映射关系,根据所述第二映射关系确定所述第二目标分区对应的所述目标节点,将所述目标流数据存储至所述目标节点,以在所述目标节点上对所述目标流数据与所述维表进行流式计算,其中,所述第二目标分区为所述目标流数据对应的分区,所述第二目标分区表示所述目标流数据对应的分区。
2.根据权利要求1所述的计算方法,其特征在于,根据所述维表主键值按照分区策略确定所述维表的第一目标分区,包括:
将所述维表主键值进行循环冗余校验,得到第一校验值,并获取所述第一目标分区的个数,将所述第一校验值与所述第一目标分区的个数进行取余运算,得到第一余数,确定与所述第一余数相同的序号对应的分区为所述第一目标分区,其中,每个所述第一目标分区对应一个序号;
根据所述目标流数据主键值按照所述分区策略确定所述目标流数据的第二目标分区,包括:
将所述目标流数据主键值进行循环冗余校验,得到第二校验值,并获取所述第二目标分区的个数,将所述第二校验值与所述第二目标分区的个数进行取余运算,得到第二余数,确定与所述第二余数相同的序号对应的分区为所述第二目标分区,其中,每个所述第二目标分区对应一个序号。
3.根据权利要求1所述的计算方法,其特征在于,所述目标节点包括目标主节点和多个目标从节点,将所述目标流数据存储至所述目标节点,包括:
计算所述目标主节点和多个所述目标从节点的繁忙度,其中,所述繁忙度的高低表示所述节点的CPU使用率和内存使用率的高低,所述CPU使用率和所述内存使用率越高,所述繁忙度越高;
在所述目标主节点和多个所述目标从节点的所述繁忙度都小于预设阈值的情况下,将所述目标流数据存储至所述繁忙度最低的所述目标主节点或所述目标从节点;
在任意一个所述目标主节点或所述目标从节点的所述繁忙度大于或者等于所述预设阈值的情况下,将所述目标流数据存储至除所述目标节点之外的其他节点。
4.根据权利要求3所述的计算方法,其特征在于,计算所述目标主节点和多个所述目标从节点的繁忙度,包括:
通过公式计算所述繁忙度,其中,z表示所述繁忙度,a表示所述CPU使用率的权重,x表示所述CPU使用率,b表示所述内存使用率的权重,y表示所述内存使用率,m表示所述CPU使用率的阈值,n表示所述内存使用率的阈值。
5.根据权利要求3所述的计算方法,其特征在于,在任意一个所述目标主节点或所述目标从节点的所述繁忙度大于或者等于所述预设阈值的情况下,将所述目标流数据存储至除所述目标节点之外的其他节点,包括:
计算所述其他节点的主节点和多个从节点的繁忙度,并计算所述其他节点的主节点和多个从节点的繁忙度的平均值,得到每个所述其他节点对应的繁忙度平均值;
比较多个所述繁忙度平均值的大小,将所述目标流数据存储至所述繁忙度平均值最低的所述其他节点。
6.根据权利要求5所述的计算方法,其特征在于,在将所述目标流数据存储至所述繁忙度平均值最低的所述其他节点之后,所述方法还包括:
获取与所述目标流数据主键值相同的所述维表主键值对应的所述维表;
将所述维表存储至所述繁忙度平均值最低的所述其他节点。
7.根据权利要求1所述的计算方法,其特征在于,在所述目标节点上对所述目标流数据与所述维表进行流式计算,包括:
通过维表读取数据客户端根据所述维表主键读取所述目标流数据对应的所述维表,对所述目标流数据与所述维表进行流式计算。
8.一种流数据的计算装置,其特征在于,包括:
确定单元,用于获取目标流数据和所述目标流数据对应的维表,并确定所述目标流数据的主键值和所述维表的主键值,得到目标流数据主键值和维表主键值,其中,所述目标流数据主键值和所述维表主键值相同;
第一存储单元,用于根据所述维表主键值按照分区策略确定所述维表的第一目标分区,并获取所述第一目标分区与节点的第一映射关系,根据所述第一映射关系确定所述第一目标分区对应的目标节点,将所述维表存储至所述目标节点,其中,所述第一目标分区为所述维表对应的分区,所述分区策略是对所述主键值进行运算,以对所述主键值对应的所述目标流数据和所述维表进行分区的策略;
第二存储单元,用于根据所述目标流数据主键值按照所述分区策略确定所述目标流数据的第二目标分区,并获取所述第二目标分区与节点的第二映射关系,根据所述第二映射关系确定所述第二目标分区对应的所述目标节点,将所述目标流数据存储至所述目标节点,以在所述目标节点上对所述目标流数据与所述维表进行流式计算,其中,所述第二目标分区为所述目标流数据对应的分区,所述第二目标分区表示所述目标流数据对应的分区。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的计算方法。
10.一种电子设备,其特征在于,包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至7中任意一项所述的计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311252692.4A CN117271661A (zh) | 2023-09-26 | 2023-09-26 | 流数据的计算方法、计算装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311252692.4A CN117271661A (zh) | 2023-09-26 | 2023-09-26 | 流数据的计算方法、计算装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117271661A true CN117271661A (zh) | 2023-12-22 |
Family
ID=89221050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311252692.4A Pending CN117271661A (zh) | 2023-09-26 | 2023-09-26 | 流数据的计算方法、计算装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117271661A (zh) |
-
2023
- 2023-09-26 CN CN202311252692.4A patent/CN117271661A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
CN108667748B (zh) | 一种控制带宽的方法、装置、设备和存储介质 | |
CN108268317B (zh) | 一种资源分配方法及装置 | |
CN108681484B (zh) | 一种任务的分配方法、装置及设备 | |
US10129101B2 (en) | Application driven and adaptive unified resource management for data centers with Multi-Resource Schedulable Unit (MRSU) | |
US20130263151A1 (en) | Consistent Hashing Table for Workload Distribution | |
US20160378570A1 (en) | Techniques for Offloading Computational Tasks between Nodes | |
US20150295970A1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
CN110351375B (zh) | 一种数据处理方法、装置及计算机装置、可读存储介质 | |
CN107645520B (zh) | 一种负载均衡方法、装置以及系统 | |
CN107105013B (zh) | 文件的处理方法、服务器、终端和系统 | |
CN110347515B (zh) | 一种适合边缘计算环境的资源优化分配方法 | |
KR20200017589A (ko) | 무선 통신 시스템에서 모바일 노드의 태스크를 오프로딩하기 위한 클라우드 서버 및 그의 동작 방법 | |
CN111666131A (zh) | 负载均衡分配方法、装置、计算机设备和存储介质 | |
US11825248B2 (en) | Spectrum allocation method and apparatus | |
CN108667864B (zh) | 一种进行资源调度的方法和装置 | |
US11979335B2 (en) | Network controller | |
CN111338750A (zh) | 执行节点的压力调节方法、装置、服务器及存储介质 | |
CN116737345A (zh) | 分布式任务处理系统及方法、装置、存储介质以及设备 | |
CN115361332B (zh) | 容错路由的处理方法及装置、处理器和电子设备 | |
CN117271661A (zh) | 流数据的计算方法、计算装置和电子设备 | |
CN106844037B (zh) | 一种基于knl的测试方法及系统 | |
CN115941622A (zh) | 一种带宽调节方法、系统、设备及存储介质 | |
US9203733B2 (en) | Method of pseudo-dynamic routing in a cluster comprising static communication links and computer program implementing that method | |
CN115878309A (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 |