CN115563097A - 数据处理方法、装置、存储介质及程序产品 - Google Patents
数据处理方法、装置、存储介质及程序产品 Download PDFInfo
- Publication number
- CN115563097A CN115563097A CN202110749898.2A CN202110749898A CN115563097A CN 115563097 A CN115563097 A CN 115563097A CN 202110749898 A CN202110749898 A CN 202110749898A CN 115563097 A CN115563097 A CN 115563097A
- Authority
- CN
- China
- Prior art keywords
- partition
- data
- dynamic index
- partitions
- updating
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 81
- 238000003672 processing method Methods 0.000 title claims abstract description 43
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 238000005192 partition Methods 0.000 claims abstract description 735
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000009826 distribution Methods 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 230000036961 partial effect Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 22
- 230000002411 adverse Effects 0.000 abstract description 8
- 230000000875 corresponding effect Effects 0.000 description 42
- 238000010586 diagram Methods 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 18
- 230000002776 aggregation Effects 0.000 description 15
- 238000004220 aggregation Methods 0.000 description 15
- 230000002829 reductive effect Effects 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000005259 measurement Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007621 cluster analysis Methods 0.000 description 2
- 238000007596 consolidation process Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed 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/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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据处理方法、装置、存储介质及程序产品,所述方法应用于分布式***中,所述分布式***包括分流指引节点和多个处理节点,所述方法包括:所述分流指引节点接收数据,根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区;所述分流指引节点将所述数据输出至选择出的分区对应的处理节点,其中,归属于同一分区的数据在所述处理节点上用于聚类;所述分流指引节点根据归属于所述选择出的分区的数据更新所述动态索引。本申请实施例的数据处理方法能够实现提高属于同一社团的数据流入同一节点的概率,减小“聚类割裂问题”带来的不良影响,提高流式聚类效果。
Description
技术领域
本申请涉及数据分析领域,尤其涉及一种数据处理方法、装置、存储介质及程序产品。
背景技术
聚类(clustering)是对于数据进行统计分析的一门技术,传统的聚类算法,一般应用于对静态的离线数据进行处理,通过对数据进行离线聚类分析,将静态数据划分为不同社团,使得同一社团的数据具有相似属性。在现今电子商务、金融等领域,离线分析耗时较久,在时效性上已不足以支撑业务目标,往往需要在短时间内对数据进行社团划分,以便及时对不同社团采取相应的业务措施进一步处理。即,面对源源不断到来的流式数据,需要实时地,例如在秒级或分钟级时效内,完成聚类分析,这就是流式聚类(real timeclustering/streaming clustering)。
为了应对海量数据,同时保证计算性能(高并发、低时延,可扩展),在电子商务、风险控制等领域常采用分布式***承载业务,分布式***可高性能支持接收海量实时数据、针对海量数据进行实时业务计算等。因此,为保证性能达标,在对海量数据进行流式聚类的场景,可以依托于分布式***。在分布式***中,可能存在多个具有计算能力的节点。将所有数据聚集在单个节点进行聚类分析,一是违背了分布式架构理念,二是单节点计算资源(中央处理器、内存、磁盘等)不足以支撑海量数据进行实时聚类分析。那么,在分布式***上,流式聚类将面临“聚类切割问题”:原本聚集在同一社团(具有相似属性)的数据,因分布式***架构,流向分布式***内的不同节点,天然的物理隔离导致无法聚集在同一社团内,且被分成不同的社团,流式聚类效果不理想。
因此,如何提高属于同一社团的数据流入同一节点的概率,减小“聚类割裂问题”带来的不良影响,提高流式聚类效果,成为本领域的研究热点。
发明内容
有鉴于此,提出了一种数据处理方法、装置、存储介质及程序产品,本申请实施例的数据处理方法能够实现提高属于同一社团的数据流入同一节点的概率,减小“聚类割裂问题”带来的不良影响,提高流式聚类效果。
第一方面,本申请的实施例提供了一种数据处理方法,所述方法应用于分布式***中,所述分布式***包括分流指引节点和多个处理节点,其中,所述分流指引节点存储有动态索引,所述动态索引包括多个分区,每个分区对应一个处理节点,所述方法包括:所述分流指引节点接收数据,根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区;所述分流指引节点将所述数据输出至选择出的分区对应的处理节点,其中,归属于同一分区的数据在所述处理节点上用于聚类;所述分流指引节点根据归属于所述选择出的分区的数据更新所述动态索引。
根据本申请实施例的数据处理方法,通过动态索引中分区的参数,可以从动态索引的多个分区中选择所述数据归属的分区,使得根据分区与处理节点的对应关系将数据输出至选择出的分区对应的处理节点时,在该处理节点上是存在已经归属于选择出的分区的数据的,从而能将归属于同一分区的数据分流至相同的节点;选择出数据归属的分区后,根据归属于选择出的分区的数据,动态索引能够进行更新,使得根据更新的动态索引,将后续接收到的数据输出至处理节点时,数据分流准确度能够进一步提高,避免了固定的分区机制存在的错误无法纠正的问题,提高属于同一社团的数据流入同一节点的概率,减小“聚类割裂问题”带来的不良影响,提高流式聚类效果和针对不同应用场景的适应性。
根据第一方面,在所述数据处理方法的第一种可能的实现方式中,每个分区的参数包括核心和紧密度,所述核心指示分区的中心位置,所述紧密度指示归属于分区的数据之间的紧密程度。
通过这种方式,使得分区参数可以用于体现分区的数据的相关信息,可以保证根据分区参数选择数据归属的分区的准确度。
根据第一方面的第一种可能的实现方式,在所述数据处理方法的第二种可能的实现方式中,所述根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区,包括:确定所述数据与所述多个分区中的每个分区的核心的接近程度;选择核心与所述数据最接近的一个分区作为所述数据归属的分区。
通过这种方式,可以确定接收的数据的分区归属情况。数据与分区的核心更接近,使得数据归属于该分区的准确度更高,且确定分区核心与数据的接近程度的方式较为简单,可以降低选择所述数据归属的分区的复杂度。
根据第一方面,以及以上第一方面的任意一种可能的实现方式,在所述数据处理方法的第三种可能的实现方式中,所述根据归属于所述选择出的分区的数据更新所述动态索引,包括:根据归属于所述选择出的分区的数据,更新所述选择出的分区的核心和紧密度。
通过这种方式,可以在不改变分区方式的前提下,更新分区的参数,使得动态索引的更新方式更为简单便捷。在选择数据归属的分区后,归属于所述选择出的分区的数据发生了改变,根据改变后的数据更新所述选择出的分区的核心和紧密度,使得在后续接收到新的数据时,能够根据更新后的核心和紧密度来选择新的数据归属的分区,即通过更新后的核心和紧密度来判断新的数据是否与所述选择出的分区具有较强的接近程度,提高了数据分区的准确度。
根据第一方面,以及第一方面的第一种和第二种可能的实现方式中的任意一种可能的实现方式,在所述数据处理方法的第四种可能的实现方式中,所述根据归属于所述选择出的分区的数据更新所述动态索引,包括:根据归属于所述选择出的分区的数据,更新所述选择出的分区的紧密度;确定更新后的紧密度大于第一阈值,在所述动态索引中将所述选择出的分区***为多个分区;根据归属于动态索引中各分区的数据,更新所述各分区的核心和紧密度。
通过分区***改变分区方式,使得分区参数也随之改变,从而能完成动态索引的更新。由于分区***是在紧密度不满足阈值条件时进行的,使得通过***方式更新动态索引后,得到的动态索引的分区的紧密度更优,使得根据更新后的动态索引选择数据归属的分区的准确度更高。
根据第一方面的第四种可能的实现方式,在所述数据处理方法的第五种可能的实现方式中,所述根据归属于所述选择出的分区的数据更新所述动态索引,还包括:确定所述动态索引中分区总个数大于第二阈值,选择所述动态索引中的多个分区进行合并;根据归属于合并后的分区的数据,更新所述合并后的分区的核心和紧密度。
通过这种方式,使得分区方式与分区参数都产生变化,可以完成动态索引的更新。由于分区合并是在分区总个数不满足阈值条件时进行的,使得通过合并方式更新动态索引后,得到的动态索引的分区的个数更优,而分区总个数与动态索引中的分区参数的数量有关,分区的个数更优时,根据所述动态索引中的分区的参数,选择所述数据归属的分区的时间成本以及运算成本也更优,使得根据更新后的动态索引选择数据归属的分区时,在保证准确度足够高的前提下,能够有较高的计算效率。
根据第一方面的第五种可能的实现方式,在所述数据处理方法的第六种可能的实现方式中,选择所述动态索引中的多个分区进行合并,包括:确定所述动态索引中每两个分区的接近程度;选择最接近的两个分区合并为一个分区。
通过这种方式,可以完成分区合并,使得合并后的分区总个数得以降低,以更接近于阈值条件的要求。
根据第一方面,以及以上第一方面的任意一种可能的实现方式,在所述数据处理方法的第七种可能的实现方式中,所述方法还包括:确定归属于所述动态索引的分区的数据是否具有时效性;在部分或全部数据失去时效性时,删除所述动态索引,或者根据具有时效性的数据,更新所述动态索引。
通过这种方式,可以去除老旧数据对动态索引带来的不良影响,进一步提高根据动态索引选择数据归属的分区的准确度。
第二方面,本申请的实施例提供了一种数据处理装置,所述装置应用于分布式***中,所述分布式***包括分流指引节点和多个处理节点,其中,所述分流指引节点存储有动态索引,所述动态索引包括多个分区,每个分区对应一个处理节点,所述装置包括:
分区确定模块,设置在所述分流指引节点上,用于接收数据,根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区;
数据输出模块,设置在所述分流指引节点上,用于将所述数据输出至选择出的分区对应的处理节点,其中,归属于同一分区的数据在所述处理节点上用于聚类;
索引更新模块,设置在所述分流指引节点上,用于根据归属于所述选择出的分区的数据更新所述动态索引。
根据第二方面,在所述数据处理装置的第一种可能的实现方式中,每个分区的参数包括核心和紧密度,所述核心指示分区的中心位置,所述紧密度指示归属于分区的数据之间的紧密程度。
根据第二方面的第一种可能的实现方式,在所述数据处理装置的第二种可能的实现方式中,所述根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区,包括:确定所述数据与所述多个分区中的每个分区的核心的接近程度;选择核心与所述数据最接近的一个分区作为所述数据归属的分区。
根据第二方面,以及以上第二方面的任意一种可能的实现方式,在所述数据处理装置的第三种可能的实现方式中,所述根据归属于所述选择出的分区的数据更新所述动态索引,包括:根据归属于所述选择出的分区的数据,更新所述选择出的分区的核心和紧密度。
根据第二方面,以及第二方面的第一种和第二种可能的实现方式中的任意一种可能的实现方式,在所述数据处理装置的第四种可能的实现方式中,所述根据归属于所述选择出的分区的数据更新所述动态索引,包括:根据归属于所述选择出的分区的数据,更新所述选择出的分区的紧密度;确定更新后的紧密度大于第一阈值,在所述动态索引中将所述选择出的分区***为多个分区;根据归属于动态索引中各分区的数据,更新所述各分区的核心和紧密度。
根据第二方面的第四种可能的实现方式,在所述数据处理装置的第五种可能的实现方式中,所述根据归属于所述选择出的分区的数据更新所述动态索引,还包括:确定所述动态索引中分区总个数大于第二阈值,选择所述动态索引中的多个分区进行合并;根据归属于合并后的分区的数据,更新所述合并后的分区的核心和紧密度。
根据第二方面的第五种可能的实现方式,在所述数据处理装置的第六种可能的实现方式中,选择所述动态索引中的多个分区进行合并,包括:确定所述动态索引中每两个分区的接近程度;选择最接近的两个分区合并为一个分区。
根据第二方面,以及以上第二方面的任意一种可能的实现方式,在所述数据处理装置的第七种可能的实现方式中,所述装置还包括:
时效确定模块,设置在所述分流指引节点上,用于确定归属于所述动态索引的分区的数据是否具有时效性;
索引处理模块,设置在所述分流指引节点上,用于在部分或全部数据失去时效性时,删除所述动态索引,或者根据具有时效性的数据,更新所述动态索引。
第三方面,本申请的实施例提供了一种数据处理装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为可以执行上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的数据处理方法。
第四方面,本申请实施例提供一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的数据处理方法。
第五方面,本申请的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的数据处理方法。
本申请的这些和其他方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。
图1示出现有技术一的聚类方法的示意图。
图2示出现有技术二的聚类方法的示意图。
图3示出现有技术三的聚类方法的示意图。
图4示出根据本申请实施例的一个示例性的应用场景。
图5示出根据本申请实施例的数据处理方法的一个示例。
图6示出根据本申请实施例的动态索引的一个示例。
图7示出根据本申请实施例的数据与动态索引中的各个分区的关联程度的一个示例。
图8示出根据本申请实施例更新选择出的分区的核心和紧密度的一个示例。
图9示出根据本申请实施例的分区***方式的一个示例。
图10示出根据本申请实施例的分区***后每两个分区的核心之间的欧式距离的一个示例。
图11示出根据本申请实施例的分区合并的一个示例。
图12示出根据本申请实施例的数据处理方法的一个示例。
图13示出根据本申请实施例的时间窗口的一个示例。
图14示出了根据本申请实施例的数据处理方法的示例性流程图。
图15示出根据本申请实施例的一种数据处理装置的示例性结构示意图。
图16示出根据本申请实施例的一种数据处理装置的示例性结构示意图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
下面给出本文中出现的术语的定义。
聚类:亦称为群集分析,是对于统计数据分析的一门技术,在机器学习、数据挖掘、模式识别、图像分析以及生物信息等领域受到广泛应用。聚类是把具有相似属性的对象通过静态分类的方法分成不同的组别或者子集(subset),这样让在同一个组别/子集中的成员对象都有相似的一些属性,常见的包括在坐标系中更加短的空间距离等,该一个组别或一个子集可作为一个社团。一般把聚类归纳为一种非监督式学习,数据没有标签,工程上一般呈现为离线数据的批量统计分析过程。
流式聚类:为了提升从数据中提取和挖掘知识的效率,保证数据知识的时效性,聚类方法应用于实时流式数据,面对源源不断到来的数据,即时地,在秒级或分钟级时效内,完成聚类分析。
下面介绍现有技术中解决“聚类割裂问题”的几个方案。
图1示出现有技术一的聚类方法的示意图。如图1所示,流式数据可包括一个用户群体,该用户群体的用户具有相似的属性,现有技术一提出,流式数据随机流向分布式***的不同节点,在不同节点上分别进行本地聚类,所有的节点聚类完成后,每一个节点上的数据(一个或多个用户)可认为对应一个或多个社团,在此基础上,进行“二次全局聚合”,即对节点间相似社团进行聚类,得到包括该用户群体的一个社团,避免该用户群体被不同节点物理隔离。
现有技术一的缺点在于,“二次全局聚合”需等待最后一个分布式节点完成本地聚类,其等待时间取决于最晚完成本地聚类的一个节点的聚类耗时,使得现有技术一在时间性能上存在木桶短板效应,降低了流式聚类的实时性,且“二次全局聚合”要进行处理的数据量非常大,计算耗时大大增加,降低了流式聚类的计算效率。此外,“二次全局聚合”需要复杂的应用技巧,需基于节点本地聚类后的社团特征进行二次聚类,因此提高了流式聚类的应用复杂度。
图2示出现有技术二的聚类方法的示意图。如图2所示,流式数据可包括一个用户群体,该用户群体的用户具有相似的属性,现有技术二提出,流式数据流向分布式***的不同节点前,先进行“前置数据分区”,采用局部敏感度哈希算法(locality sensitivehashing,LSH)、哈希算法(Hash)等分区策略,使得该用户群体尽可能归属于同一分区,归属于同一分区的数据流向同一节点,不同节点的数据分别进行本地聚类,减少同一社团的数据被不同节点物理隔离的概率。
现有技术二的缺点在于,局部敏感度哈希算法、哈希算法等策略,其分区机制是固定不变的,即如果使用该机制对某个用户的分区结果存在错误,使得该用户无法与用户群体内的其他用户归属于相同的分区,进而无法与其他用户流向相同的节点,那么下一次再次对具有相同属性的另一用户进行分区时,其分区结果仍然存在错误,因此聚类的效果完全取决于固定不变的分区机制,使得该用户群体被不同节点物理隔离的概率仍然较高。
图3示出现有技术三的聚类方法的示意图。如图3所示,现有技术三将现有技术一和现有技术二的方案结合起来,但仍然未能弥补上述现有技术一和现有技术二的缺点。
为了解决上述技术问题,本申请提供了一种数据处理方法、装置、存储介质及程序产品,本申请实施例的数据处理方法能够实现提高属于同一社团的数据流入同一节点的概率,减小“聚类割裂问题”带来的不良影响,提高流式聚类效果。
本申请实施例的数据处理方法可应用于分布式***,图4示出根据本申请实施例的一个示例性的应用场景。其中,接收设备和多个集群节点(第1-N集群节点)设置在分布式***中,接收设备可作为分布式***的主设备,多个集群节点可作为分布式***的多个子设备。接收设备、发送设备、集群节点可以是任意类型的设备,包括但不限于智能手机、个人计算机、平板电脑等。其中,接收设备上可以存储有动态索引,动态索引可包括若干索引分区,动态索引可指示不同的索引分区及与各索引分区相对应的属性信息。动态索引可用于确定接收到的数据所归属的索引分区,并使归属于同一索引分区的数据进入同一子设备进行聚类,其中动态索引可随着接收到的数据进行更新,以提高属于同一社团的数据流入同一节点的概率。动态索引的创建和更新方式可参见后文。
表1示出根据本申请实施例的动态索引的数据结构的一个示例。
表1
属性 | M1;D1 | M2;D2 | … | MQ;DQ |
分区 | 1 | 2 | … | Q |
如表1所示,动态索引包括索引分区和属性,一个索引分区仅对应一个集群节点,一个集群节点可对应多个分区。例如,在集群节点有N个(N≥1且为整数)、索引分区最大个数为W个(W≥N且为整数)时,分区1可表示第一索引分区,可例如设置为对应第1集群节点;分区2可表示第二索引分区,可例如设置为对应第2集群节点;分区Q可表示第Q索引分区,其中N≤Q≤W且为整数,可例如设置为对应第N集群节点。
其中,属性可例如包括核心M和紧密度D,其中核心M,描述该索引分区的“中心位置”,紧密度D,描述索引分区内所有数据的聚集程度或紧密程度。例如,归属于某一分区的数据,在坐标系中的形状近似于一个二维的圆时,圆的圆心可例如指示核心M,圆的半径可例如指示紧密度D,在此定义下,紧密度的数值与紧密程度负相关,例如,在数据数量不变时,半径越小(紧密度数值越小),索引分区内所有数据的聚集程度越大,则索引分区内的数据紧密程度更高,表示数据彼此之间的关联性更紧密,例如彼此距离更近;半径越大(紧密度数值越大),索引分区内所有数据的聚集程度越小,则索引分区内的数据紧密程度更低,表示数据彼此之间的关联性更不紧密,例如彼此距离更远。每一个索引分区都包括一组核心和紧密度的组合,例如表1中示出的M1、D1的组合,M2、D2的组合以及MQ、DQ的组合。
在图4的应用场景中,对于由若干条数据构成的一个索引分区,核心M的一种可能的定义的方式是,每条数据各维度求平均得到的数值,紧密度D的一种可能的定义是,每条数据到核心M的距离的平均值。
具体的,假设分区1包括两条数据,每条数据包括两个维度a和b,在以维度a和b为坐标轴的二维坐标系中,第1条数据的位置可例如为(a1,b1),第2条数据的位置可例如为(a2,b2),则每条数据的维度a的平均值A=(a1+a2)/2,每条数据的维度b的平均值B=(b1+b2)/2,分区1的核心M1可例如是M1=(A,B)。第1条数据到核心M1的距离可例如是第2条数据到核心M1的距离可例如是分区1的紧密度D1可例如是(d1+d2)/2。在此定义下,分区的紧密度数值与归属于分区的全部数据的距离之和正相关,并且与分区的紧密程度负相关,即紧密度的数值越小,表示分区内的数据之间越紧密。
本领域技术人员应理解,上述核心和紧密度仅为动态索引中的分区属性的一个示例,核心M、紧密度D、数据与索引分区的距离等,均可通过其他方式来具体量化表达,例如,核心M也可以根据每条数据的位置的加权平均值确定,等等,本申请对此不作限制。
如图4所示,在一个示例性的应用场景下,发送设备可以发送流式数据到接收设备。接收设备可用于接收流式数据,在接收到每条数据时,可以计算该数据与动态索引的不同分区的关联程度,并将数据输出至关联程度最强的一个分区对应的集群节点,关联程度的计算方式可参照下文图7及相关描述。
确定与数据关联程度最强的分区后,该条数据可归属于该关联程度最强的分区。由于分区的数据变化,动态索引随之更新。动态索引的更新方式可参照下文图8、9、11及相关描述。接收设备可以基于最新的动态索引继续确定与下一条数据关联程度最强的分区。从而能将下一条数据输出至对应集群节点。以此类推,流式数据中的每条数据,都可以输出至与其关联程度最强的分区对应的一个集群节点。
在各集群节点上,流式数据进行本地聚类。其中,如果某一集群节点对应多个分区,则该集群节点上,归属于不同分区的数据分别进行本地聚类。其中,各个节点进行本地聚类所使用的聚类算法,可例如与产生动态索引中的索引分区时,使用的聚集度测算对应的聚类算法相同。
其中,接收设备、集群节点可以是设置在同一计算机上的不同计算单元,即,一台计算机可以包括接收设备和/或至少一个集群节点。在接收设备本身计算能力充足时,接收设备也可以实现一个集群节点的功能。本申请对于接收设备、集群节点的设置方式不作限制。
下面结合上述示例性的应用场景来说明本申请实施例的数据处理方法的示例性工作流程。其中,根据接收设备上是否存在动态索引,数据处理方法的工作流程可不相同。下面结合图5-图11,介绍接收设备上存在动态索引时,根据本申请实施例的数据处理方法的一个示例。
图5示出根据本申请实施例的数据处理方法的一个示例。如图5所示,在一种可能的实现方式中,本申请实施例的数据处理方法由接收设备执行,包括:
S21,接收来自发送设备的数据。
举例来说,数据可例如是流式数据中的某条数据,流式数据可例如是视频、音频或图像、文字等数据,接收的一条数据,可以是一个或多个视频,一个或多个音频帧、一张或一组图像等。发送设备可例如传输流式数据到接收设备。
S22,确定接收设备上是否已经存在动态索引。
S23,在存在动态索引的情况下,根据动态索引,选择出数据归属的分区。
举例来说,步骤S21接收到的数据可例如是开始接收到流式数据后接收的第X条数据,在此之前,根据第1条数据至第X-1条数据,接收设备已经得到动态索引(根据第1条数据至第X-1条数据得到动态索引的示例性方式可以参见图12、图5及其相关说明),该动态索引可例如包括4个分区。图6示出根据本申请实施例的动态索引的一个示例。
举例来说,数据归属的分区,可以是与数据关联程度最强的分区,数据与分区的关联程度可以通过聚集测算确定。其中,聚集测算的算法可例如与各个集群节点上进行本地聚类时使用的算法相同。通过这种方式,使得应聚类为同一社团的数据,大概率地能够被归属于同一分区,从而进入同一集群节点,避免出现应聚类为同一社团的数据进入不同集群节点,造成“聚类割裂问题”。
在一种可能的实现方式中,动态索引的各个分区的属性例如包括核心和紧密度,聚集测算可以确定步骤S21接收的数据(第X条数据)与每个分区的核心的接近程度。接近程度,可以作为“关联程度”的一种量化表达方式。例如,确定二维坐标系中第X条数据的位置与核心的欧式距离,或者确定第X条数据与核心的多普勒距离等。聚集测算可例如得到多个距离测算结果,其结果个数等于动态索引的分区数。其结果数值指示第X条数据和动态索引中的各个分区的关联程度。即,数值越大,表示第X条数据的位置与当前分区核心的距离越大,第X条数据与当前分区的关联程度越弱;数值越小,表示第X条数据的位置与当前分区核心的距离越小,第X条数据与当前分区的关联程度越强。
图7示出根据本申请实施例的数据与动态索引中的各个分区的关联程度的一个示例。在图7的示例中,多个距离测算结果中,数值最小的测算结果是对第X条数据的位置与分区1的核心M1进行聚集测算时得到的,表示第X条数据的位置与分区1的核心M1的距离最小,则第X条数据与分区1的关联程度最强。在此情况下,分区1可以是选择出的数据归属的分区。如果数值最小的测算结果有多个,则可以从得到该多个测算结果时,进行聚集测算的核心对应的多个分区中任选一个,作为选择出的第X条数据的归属的分区。
S24,根据选择出的分区与集群节点的对应关系,将所述数据输出到与该选择出的分区对应的集群节点。
举例来说,分区1可例如对应第1集群节点,分区2可例如对应第2集群节点,分区3可例如对应第3集群节点,分区4可例如也对应第3集群节点。在选择出的数据归属的分区是分区1时,接收设备可以将步骤S21中接收的数据输出到第1集群节点。
S25,根据所述数据更新动态索引中的分区属性,或者更新动态索引中的分区方式和分区属性。
在一种可能的实现方式中,选择出数据归属的分区后,在步骤S25中,可以更新动态索引中的该选择出的分区的核心和紧密度。
图8示出根据本申请实施例更新选择出的分区的核心和紧密度的一个示例。以图8的应用场景为例,其中,归属于动态索引的多个分区的数据可例如是维度为a和b的二维数据,在第X条数据到来之前,可能已经有若干条数据(例如F条)归属于分区1,该分区的核心M1和紧密度D1是根据F条数据确定的。选择出第X条数据归属的分区(分区1)后,使得归属于分区1的数据增多为F+1条,在此情况下,分区1的核心M1和紧密度D1可能会产生变化。基于F+1条数据,可以重新计算分区1的核心M1’和紧密度D1’。其具体计算方式可以参照上文图4对应的描述。
核心M1’和紧密度D1’计算完成后,可以基于核心M1’和紧密度D1’更新动态索引。更新后的动态索引与原动态索引中的分区个数相同。更新后的动态索引中,分区1对应的核心和紧密度为将第X条数据归属于分区1后,计算得到的核心M1’和紧密度D1’,除分区1外,归属于其他分区(分区2、3、4)的数据不变,因此,其他分区的核心和紧密度与原动态索引中对应分区的核心和紧密度相同。
其中,选择出的数据归属的分区,已经是现有的分区中最适合于数据归属的一个分区,然而,如果该数据和选择出的分区中的其他数据差别较大,例如,在二维坐标系中,与其他数据距离较远,可能导致该分区的数据紧密程度下降,使得选择出数据归属的分区后,该选择出的分区的紧密度数值变大,紧密程度变小,在分区的紧密度较大时,借助动态索引完成数据的分流准确度可能受到影响。
本申请实施例进一步提出设置属性的阈值条件,并对选择数据归属的分区后,该分区的属性进行判断,并在属性不满足阈值条件要求时,对动态索引进一步处理,以保证借助动态索引完成数据的分流的准确度。
在一种可能的实现方式中,选择出数据归属的分区后,在步骤S25中,可以更新动态索引中的该选择出的分区的紧密度。
更新选择出的分区的紧密度的方式可以参考图8的示例,其中,归属于动态索引的多个分区的数据可例如是维度为a和b的二维数据,在第X条数据到来之前,可能已经有若干条数据(例如F条)归属于分区1,该分区的核心M1和紧密度D1是根据F条数据确定的。选择出第X条数据归属的分区(分区1)后,使得归属于分区1的数据增多为F+1条,在此情况下,分区1的核心M1和紧密度D1可能会产生变化。基于F+1条数据,可以重新计算分区1的紧密度D1’。其具体计算方式可以参照上文图4对应的描述。
在一种可能的实现方式中,紧密度D1’计算完成后,在步骤S25中,还包括对紧密度的数值进行判断,根据图4的相关描述中紧密度的定义,紧密度数值越小表示分区中的数据越紧密,在计算得到的紧密度小于或等于第一阈值时,认为根据当前动态索引完成数据的分流是准确度较高的,不需再改变动态索引的分区方式。在此情况下,可进一步更新选择出的数据归属的分区的核心,以完成动态索引的更新。
举例来说,第一阈值U可以是预先设置的,在紧密度满足小于或等于第一阈值U时,可认为将第X条数据归属于分区1后,归属于该分区的全部数据足够紧密,数据之间的关联程度足够强。在此情况下,认为将第X条数据归属于分区1是可行的,当前动态索引是准确度较高的。选择出数据归属的分区后,可以根据归属于所述选择出的分区的数据计算该分区的核心M1’,计算方式可以参考图8的示例以及图4的相关描述。所述选择出的分区的紧密度D1’已经计算得到,因此,核心M1’计算完成后,可以基于核心M1’和紧密度D1’更新动态索引。更新后的动态索引与原动态索引中的分区个数相同。更新后的动态索引中,分区1对应的核心和紧密度为将第X条数据归属于分区1后,计算得到的核心M1’和紧密度D1’,除分区1外,归属于其他分区(分区2、3、4)的数据不变,因此,其他分区的核心和紧密度与原动态索引中对应分区的核心和紧密度相同。
在一种可能的实现方式中,完成对紧密度的数值的判断、且确定紧密度大于第一阈值U后,认为当前动态索引是准确度较低的。在步骤S25中,还包括下文的步骤S31-S32,以对动态索引进行处理,更新动态索引中的分区方式和分区属性。
S31,将动态索引中,所述选择出的分区***为多个分区。
以***为两个分区为例,图9示出根据本申请实施例的分区***方式的一个示例。如图9所示,选择出的分区是分区1时,可以根据所述选择出的分区(分区1)内的F条数据以及第X条数据,任选其中的两条数据分别作为可能的分区核心。将两个分区核心先分别分配到两个分区(例如分区1-1和分区1-2),再将剩余的数据分别分配到两个分区,随着两个分区中的数据数量的增多,分区核心也随之变化。直到F条数据以及第X条数据全部分配完成。分区的***可以根据现有技术来实现,本申请对分区的***方式不作限制,例如采用其他分区***方式***为两个分区,或者***为两个以上的多个分区等。
S32,分别计算***后各分区的核心和紧密度,并更新动态索引。
核心和紧密度的计算方式可以参照上文图4的相关描述。核心和紧密度计算完成后,可以基于核心和紧密度更新动态索引。以选择出的分区(分区1)***为2个分区(分区1-1和分区1-2)为例,更新后的动态索引的分区个数比原动态索引中的分区个数增多一个。在此情况下,原动态索引的分区1***后得到的分区1-1,可以作为更新后的动态索引中的分区1;原动态索引的分区2、3、4可以分别作为更新后的动态索引中的分区2、3、4;原动态索引的分区1***后得到的分区1-2可以作为更新后的动态索引中的分区5。分区1对应的核心和紧密度为计算得到的分区1-1的核心和紧密度,分区5对应的核心和紧密度为计算得到的分区1-2的核心和紧密度,除分区1和分区5外,归属于其他分区(分区2、3、4)的数据不变,因此,其他分区的核心和紧密度与原动态索引中对应分区的核心和紧密度相同。
分区5是动态索引的一个新分区,分区5与集群节点的对应方式可以预先设置,例如预先设置为动态索引中按时间顺序出现的第5个分区(即分区5)对应某一特定的集群节点,例如第3集群节点。分区5与集群节点的对应方式也可以设置为优先选择对应分区个数较少的集群节点,例如第3集群节点还没有分区与之对应,则可以优先选择第3集群节点作为对应于分区5的集群节点。本领域人员应理解,分区与集群节点的对应方式有多种设置方式,本申请对此不作限制。
接收设备根据某条数据选择出数据归属的分区后,该数据将分流至与分区对应的集群节点,在集群节点上,相同分区的数据进行一次本地聚类,也就是说,本地聚类的计算次数与分区总个数相关联。如果分区个数过多,集群节点上进行聚类的次数将大大增加,可能会超出集群节点的计算能力,影响聚类效果。
本申请实施例进一步提出设置分区个数的阈值条件,并对分区***后,分区总个数进行判断,并在分区总个数不满足阈值条件要求时,对动态索引进一步处理,以降低分区数量,保证聚类效果。
在一种可能的实现方式中,在执行步骤S31-32完成分区的***以及动态索引的更新之后,在步骤S25中,还包括对分区***后的分区个数进行判断,在***后分区总个数未超出分区个数阈值时,认为根据当前动态索引的分区方式完成数据的分流后,集群节点是能够完成效果较好的聚类的,不需对动态索引再做处理。
举例来说,分区个数阈值W可以是根据集群节点的计算能力预先设置的,例如设置W=5,在步骤S31完成分区***前,分区个数可例如是4个,分区***后,分区总个数增加一个(5个),在此情况下,分区个数小于或等于分区个数阈值W,可认为***后的分区方式是可行的,当前动态索引的分区方式满足要求。并且,当前动态索引的分区方式下,动态索引已经完成更新(步骤S32),因此,在接收到下一条数据之前,不需对当前动态索引再做处理。
在一种可能的实现方式中,完成对分区***后分区总个数的判断、且确定分区总个数大于分区个数阈值W后,例如,分区个数阈值W设置为4时,在步骤S31完成分区***前,分区总个数可例如是4个,分区***后,分区总个数增加一个(5个),在此情况下,动态索引中分区总个数大于分区个数阈值W,可认为当前的分区方式是不可行的,当前动态索引是效率较低的。在步骤S25中,还包括下文的步骤S33-S35,以对动态索引进行处理,更新动态索引中的分区方式和分区属性。
S33,根据***后动态索引的全部分区的核心,确定分区***后每两个分区的接近程度。
接近程度可例如是核心之间的欧式距离、多普勒距离等。接近程度也可例如是两个分区之间的相似性,例如相同维度上的差值大小,或者两个分区共有的特性。接近程度的计算可以基于现有技术来实现,图10示出根据本申请实施例的分区***后每两个分区的核心之间的欧式距离的一个示例。
本领域技术人员应理解,接近程度的计算方式不限于此,只要能够通过两个分区的相关信息,包括但不限于核心等属性,以及归属于两个分区的数据,确定两个分区的接近程度即可,本申请对接近程度的确定方式不作限制。
S34,将最接近的两个分区合并为一个分区。
举例来说,分区之间最接近可以是各个分区的核心的欧式距离最接近。图11示出根据本申请实施例的分区合并的一个示例。如图11所示,以***为两个分区为例,***前动态索引包括分区1、2、3、4,***后动态索引包括分区1、2、3、4、5,计算后发现,分区2与分区3的核心的欧式距离最小,即分区2与分区3之间最接近,在此情况下,可以将分区2与分区3合并。原分区2与原分区3合并后例如作为分区2。原分区1和分区4仍作为分区1和分区4,原分区5成为分区3,在此情况下,分区总个数等于分区个数阈值,可认为合并后的分区方式可行。
S35,计算合并后的一个分区的核心和紧密度,并更新动态索引。
举例来说,完成合并之后,可以计算合并后的分区的核心和紧密度,计算好的核心和紧密度可以用于更新动态索引中对应分区(分区2)的属性。动态索引中分区3和分区1(即***得到的分区5和分区1)的属性在步骤S32中已经更新过,归属于分区4的数据并无变动使得分区4的属性并无变化,从而完成动态索引的更新。在此情况下,动态索引中包括4个分区(分区1、2、3、4)及该4个分区的对应属性(核心和紧密度)。动态索引的数据结构可参照上文中表1及相关描述。
在上文所述的示例中,在已有动态索引的情况下,对于接收到的每条数据,都可以选择将数据归属于已有的分区,再经历对分区是否***的判断、***后的分区是否合并的判断。也就是说,如果步骤S31将与数据关联程度最强的分区***为两个分区,则接收到某条数据并进行分区***后,分区总个数可能恰好等于分区个数阈值,在此情况下,如果接收到下一条数据时,根据本申请实施例的数据处理方法判断分区可进行***,则***后分区总个数可超出分区个数阈值,且分区总个数比分区个数阈值多一个。因此,执行步骤S34将关联程度最强的两个分区合并为一个分区后,分区总个数可等于分区个数阈值,而不必对合并后的分区总个数与分区个数阈值的大小进行比较。
在一种可能的实现方式中,步骤S31将动态索引中所述与数据关联程度最强的分区***为多个分区后,也可以先不计算当前分区方式下的各分区核心和紧密度,而是先计算***后的分区总个数,并根据分区总个数与预设的分区个数阈值的大小关系判断动态索引中的分区是否需要合并。在不需合并的情况下,例如分区总个数小于或等于分区个数阈值,再计算***后的分区核心和分区紧密度,从而完成动态索引的更新。在需要合并的情况下,例如分区总个数大于分区个数阈值,可先计算***后的分区的核心,继续执行步骤S33-S34,完成确定分区***后每两个分区的接近程度、分区合并,再计算合并后的分区的核心和紧密度,从而完成动态索引的更新。
本领域技术人员应理解,一方面,分区的核心和紧密度可以随分区方式变化实时计算,另一方面,在接收到新数据并确定与数据关联程度最强的分区后,可能存在分区***以及分区合并等分区方式的变化,在未确定变化后的分区方式是否为适合的分区方式(可例如是分区紧密度小于或等于第一阈值和/或分区总个数小于或等于分区个数阈值)的情况下,变化后的分区参数中核心或紧密度可以不立刻计算,只要能够满足根据变化后的分区参数中核心或紧密度可以确定适合的分区方式、并且在确定适合的分区方式之后可以计算得到分区参数中的核心和紧密度即可,本申请对分区的核心和紧密度是否随分区方式变化实时计算、以及分区的核心和紧密度是否同时计算均不作限制。
在一种可能的实现方式中,如果步骤S31将选择出的数据归属的分区***为多个分区,在步骤S35之后,可以对合并后的分区总个数进行判断,如果分区总个数仍然超出分区个数阈值,可以重复上述接近程度测算以及分区合并的操作,直到判断合并后的分区个数小于或等于分区个数阈值。分区合并方式可以根据分区***方式进行对应设置,本申请对分区合并的具体方式不作限制。
本领域技术人员应理解,除根据集群节点的计算能力进行设置外,分区个数阈值也可以根据其他参数进行设置,例如接收设备的计算能力等,只要能够在接收设备接收到流式数据前预先设置好即可,本申请对于分区个数阈值的设置方式不作限制。
通过这种方式,可以在接收设备上存在动态索引时,结合动态索引完成数据分流以及动态索引的更新。使得动态索引可以参与后续的数据的分流。
下面结合图12,介绍接收设备上未存在动态索引时,根据本申请实施例的数据处理方法的一个示例。
图12示出根据本申请实施例的数据处理方法的一个示例。如图12所示,在一种可能的实现方式中,本申请实施例的数据处理方法由接收设备执行,接收设备可以是终端设备,也可以是服务器。所述方法可包括:
S11,接收来自发送设备的数据。其具体实现方式可参照上文步骤S21。
S12,确定接收设备上是否已经存在动态索引。
S13,在未存在动态索引的情况下,创建动态索引。
举例来说,步骤S11接收到的数据可例如是开始接收到流式数据后接收的第1条数据,此时接收设备上可能没有动态索引存在。在此情况下,可以创建动态索引,此时动态索引中只包括一个分区。设置分区1与集群节点的对应方式可以参照上文分区5与集群节点的对应方式的设置方式,即可预先指定分区1与某特定集群节点对应,也可以使分区1与对应分区数量最少的集群节点对应,如果多个集群节点都没有对应的分区,可任取其中之一与分区1对应。
S14,根据分区与集群节点的对应关系,将所述数据输出到与分区对应的集群节点。
举例来说,分区1可例如对应第1集群节点。由于动态索引只包括一个分区,因此,接收设备可以将步骤S11中接收的数据输出到分区1对应的第1集群节点。
S15,根据所述数据更新动态索引中的分区属性。
举例来说,由于动态索引只包括一个分区,因此可以选择该一个分区直接作为所述数据归属的分区,例如分区1。在此情况下,有且只有一条数据(第1条数据)归属于分区1,可以根据该一条数据(第1条数据)确定分区1的属性。以流式数据的每条数据均包括两个维度a和b,第1条数据为(a1,b1)为例,在此情况下,第1条数据在以维度a和b为坐标轴的二维坐标系中的位置也为(a1,b1),此时由于分区1中有且仅有一条数据,因此分区1的核心M1可例如为第1条数据的位置(a1,b1),分区1的紧密度D1可例如为0。在确定核心M1、紧密度D1之后,可以将核心M1、紧密度D1与分区1对应存储,完成动态索引的更新。在此情况下,动态索引中包括一个分区(分区1)及该一个分区的对应属性(核心M1、紧密度D1)。动态索引的数据结构可参照上文中表1及相关描述。
通过这种方式,可以在接收设备上不存在动态索引时,完成数据分流以及动态索引的创建与更新。使得动态索引可以参与后续的数据的分流。
在一种可能的实现方式中,在步骤S24和S14之后,在各个集群节点上,数据可以进行本地聚类。这一过程可以基于K-MEANS聚类算法等现有技术来实现。其中,各集群节点采用的聚类算法可以预先设置,并可基于预先设置的聚类算法,确定接收设备进行聚集测算确定分区属性,使得接收设备的聚集测算与集群节点的本地聚类使用相同的算法。
本地聚类通常是对一批数据进行聚类,该一批数据可以是一个时间窗口内集群节点接收到的、来自接收设备的数据。也就是说,对于某一条流入集群节点的数据,该集群节点对该一条数据进行聚类时,可以结合该一条数据的流入时刻之前的历史流入数据,以及该条数据的流入时刻之后的未来流入数据,共同完成数据的本地聚类。本地聚类所针对的数据可例如包括一个时间窗口的起点到终点之间,流入该集群节点的全部数据。本地聚类可例如在到达时间窗口终点时进行。其聚类结果一经获得可以上报给管理节点(未示出)、或者接收设备等分布式***中的其他设备。
图13示出根据本申请实施例的时间窗口的一个示例。常见的可选择的窗口形式有滚动窗口(图13中“滚动窗口”右侧的窗口1-窗口4)和滑动窗口(图13中“滑动窗口”右侧的窗口1-窗口3)。其中,采用滚动窗口时,每个时间窗口内流入集群节点的数据(事件流),与其他时间窗口内流入同一集群节点的数据,其数据流入时间是不相同的;采用滑动时间窗口时,每个时间窗口内流入集群节点的数据,与该时间窗口的前一个时间窗口和后一个时间窗口内流入同一集群节点的数据,分别有部分数据的流入时间相同。使用滚动窗口时,在某一个时间窗口的数据聚类完成后,该时间窗口的数据可以清空,以减小集群节点的数据存储成本;使用滑动窗口时,任意一条数据进行聚类时,都是与该数据前后两条数据共同聚类,减小了同一社团的数据分别在两个时间窗口进行聚类,导致同一社团的数据未能归属于同一分区、并未能流向同一集群节点的概率,可以提高聚类结果的准确度。
在一种可能的实现方式中,流式数据不断进入接收设备,可以使得接收设备的动态索引不断更新,并基于更新的动态索引对新进入接收设备的数据进行分流,这一过程使得,先进入接收设备的数据,会一直影响后进入接收设备的数据的分流情况。如果相较于后进入接收设备的数据,先进入接收设备的数据仍具有时效性,例如二者的时间差较小时,可认为基于先进入的数据确定的动态索引,引导后进入的数据进行分流的准确度较高;如果相较于后进入接收设备的数据,先进入接收设备的数据不具有时效性,例如二者的时间差较大时,可认为基于先进入的数据确定的动态索引,引导后进入的数据进行分流的准确度较低,可以对动态索引进行处理,提高使用动态索引引导数据分流的准确度。
举例来说,如果动态索引的创建或更新过程中使用的部分或全部数据,对于当前时刻、接收设备接收的数据来说过于老旧,则这一部分过于老旧的数据不该影响当前的数据分流。可以通过对动态索引进行处理,得到处理后的、去除老旧数据影响的动态索引。
其中,除上表1所述的分区及属性之外,动态索引还可例如指示归属于各个分区的数据的接收时间。对动态索引的处理可以由用户指令触发,也可以由接收设备主动发起。由用户触发时,用户的指令可例如指示接收设备进行索引重建和更新,根据用户指令的指示,接收设备可以根据最近一次接收到数据的时间,以及预设的时间阈值,确定与最近一次接收到数据的时间的间隔为预设的时间阈值、且早于最近一次接收到数据的时间的一个时间点,作为时间起点,并将最近一次接收到数据的时间作为时间终点,根据该时间起点后接收到的第一条数据重新创建动态索引,并根据该时间起点到时间终点内接收设备接收到的数据更新动态索引,每条数据都进行一次更新,具体的创建和更新方式可以参见图12和图5。或者,也可以对根据该时间起点到时间终点内接收设备接收到的数据进行聚类,以聚类结果作为分区,并参照上文所述的示例性方式确定分区的参数。在此情况下,重建和更新后的动态索引是消除了老旧数据的影响的动态索引,使用该索引进行分流时,使得数据的分流不会受到过于老旧的数据的影响。
对动态索引的处理由接收设备主动发起时,接收设备可以以一定的频率触发对动态索引的处理。其具体的处理方式可以与由用户指令触发时相同。
本领域技术人员应理解,消除动态索引中老旧数据的影响的方式可以有多种选择,本申请对此不作限制。
在一种可能的实现方式中,在已知将要接收的流式数据的类型、且接收设备曾经接收过相同类型的流式数据并完成过数据分流、或者能够获得相同类型的非流式数据时,也可以在接收流式数据之前,先根据曾经接收过的相同类型的流式或非流式数据,创建动态索引。例如,将要接收的流式数据是2021年入学的学生的信息,且接收设备曾经接收并针对2020年入学的学生的信息创建过动态索引,在此情况下,可以以2020年入学的学生的信息创建的动态索引,作为接收到2021年入学的学生的信息时使用的初始的动态索引,并根据新接收的数据,完成新接收的数据的分流,并更新动态索引。或者,也可以利用针对2020年入学的学生的信息的聚类结果,创建初始的动态索引。其中,旧的动态索引或者旧的数据是否能够用于新数据的分流过程中,可根据数据的时效性确定,在旧的动态索引或者旧的数据仍具有时效性的前提下,可用于新数据的分流过程。通过这种方式,可以提升接收设备使用动态索引对数据进行分流的准确度。
在一种可能的实现方式中,旧的动态索引或者旧的数据是否具有时效性,可以由接收设备主动判断,也可以由用户指令触发接收设备进行判断。判断时效性的具体实现方式可参照上文描述,在此不再赘述。
根据本申请实施例的数据处理方法,通过判定数据归属的分区,决定了数据流向哪一个分布式节点,使得可以在在分布式节点上聚集在同一社团的数据流向同一节点,解决了分布式***下聚类切割的问题,提高了同一社团的数据流入同一节点的概率,可以优化聚类效果。本申请实施例的数据处理方法,判定数据归属的分区的计算量远小于对数据进行聚类的计算量,降低了数据运算成本。同时方案简洁,无需进行额外的特征设计和规则设计,降低了对数据进行分流的复杂度。本申请实施例的数据归属分区的判定机制(动态索引)是随着数据实时更新,因此对不同应用场景的适应性强,并且,通过动态更新动态索引,能够提高分区的准确度,避免了固定的分区机制存在的错误无法纠正的问题。
图14示出了根据本申请实施例的数据处理方法的示例性流程图。所述方法应用于分布式***中,所述分布式***包括分流指引节点和多个处理节点,其中,所述分流指引节点存储有动态索引,所述动态索引包括多个分区,每个分区对应一个处理节点,所述方法包括:
S1401,所述分流指引节点接收数据,根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区;
S1402,所述分流指引节点将所述数据输出至选择出的分区对应的处理节点;
S1403,所述分流指引节点根据归属于所述选择出的分区的数据更新所述动态索引。
其中,本申请实施例的数据处理方法可以参照上文图5及相关描述,该执行数据处理方法的分流指引节点可对应于上文相关描述中的接收设备,处理节点可对应于上文相关描述中的集群节点。可选地,该执行数据处理方法的分流指引节点也可以是集群节点中的一个。
步骤S1401的示例可参见上文以及图5中的步骤S21、S22、S23,步骤S1402的示例可参见上文以及图5中的步骤S24,其中动态索引可参见图6的示例,选择出的分区可例如是图7中的分区1,动态索引中的分区的参数可例如包括上文步骤S23的相关描述中的分区属性,也即图6中的核心和紧密度。步骤S1403的示例可参见上文以及图5中的步骤S25。
根据本申请实施例的数据处理方法,通过动态索引中分区的参数,可以从动态索引的多个分区中选择所述数据归属的分区,使得根据分区与处理节点的对应关系将数据输出至选择出的分区对应的处理节点时,在该处理节点上是存在已经归属于选择出的分区的数据的,从而能将归属于同一分区的数据分流至相同的节点;选择出数据归属的分区后,根据归属于选择出的分区的数据,动态索引能够进行更新,使得根据更新的动态索引,将后续接收到的数据输出至处理节点时,数据分流准确度能够进一步提高,避免了固定的分区机制存在的错误无法纠正的问题,提高属于同一社团的数据流入同一节点的概率,减小“聚类割裂问题”带来的不良影响,提高流式聚类效果和针对不同应用场景的适应性。
在一种可能的实现方式中,每个分区的参数包括核心和紧密度,所述核心指示分区的中心位置,所述紧密度指示归属于分区的数据之间的紧密程度。其中,核心和紧密度的示例可以参见上文图4的相关描述中的核心M和紧密度D。
通过这种方式,使得分区参数可以用于体现分区的数据的相关信息,可以保证根据分区参数选择数据归属的分区的准确度。
在一种可能的实现方式中,所述根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区,包括:确定所述数据与所述多个分区中的每个分区的核心的接近程度;选择核心与所述数据最接近的一个分区作为所述数据归属的分区。
其中,确定接近程度的一个示例可以参照上文图7及相关描述。
通过这种方式,可以确定接收的数据的分区归属情况。数据与分区的核心更接近,使得数据归属于该分区的准确度更高,且确定分区核心与数据的接近程度的方式较为简单,可以降低选择所述数据归属的分区的复杂度。
在一种可能的实现方式中,所述根据归属于所述选择出的分区的数据更新所述动态索引,包括:根据归属于所述选择出的分区的数据,更新所述选择出的分区的核心和紧密度。
其示例性的实现方式可以参照上文以及图8的相关描述。
通过这种方式,可以在不改变分区方式的前提下,更新分区的参数,使得动态索引的更新方式更为简单便捷。在选择数据归属的分区后,归属于所述选择出的分区的数据发生了改变,根据改变后的数据更新所述选择出的分区的核心和紧密度,使得在后续接收到新的数据时,能够根据更新后的核心和紧密度来选择新的数据归属的分区,即通过更新后的核心和紧密度来判断新的数据是否与所述选择出的分区具有较强的接近程度,提高了数据分区的准确度。
在一种可能的实现方式中,所述根据归属于所述选择出的分区的数据更新所述动态索引,包括:根据归属于所述选择出的分区的数据,更新所述选择出的分区的紧密度;确定更新后的紧密度大于第一阈值,在所述动态索引中将所述选择出的分区***为多个分区;根据归属于动态索引中各分区的数据,更新所述各分区的核心和紧密度。
其中,更新后的紧密度的示例可参见上文中的紧密度D’,第一阈值的示例可参见上文中的第一阈值U,确定更新后的紧密度大于第一阈值,在所述动态索引中将所述选择出的分区***为多个分区,可参见上文以及图9中的步骤S31,所述选择出的分区例如可以是图9中的分区1,***为多个分区例如可以是图9中的分区1-1和分区1-2,根据归属于动态索引中各分区的数据,更新所述各分区的核心和紧密度的示例,参见上文以及图9中的步骤S32。
通过分区***改变分区方式,使得分区参数也随之改变,从而能完成动态索引的更新。由于分区***是在紧密度不满足阈值条件时进行的,使得通过***方式更新动态索引后,得到的动态索引的分区的紧密度更优,使得根据更新后的动态索引选择数据归属的分区的准确度更高。
在一种可能的实现方式中,所述根据归属于所述选择出的分区的数据更新所述动态索引,还包括:确定所述动态索引中分区总个数大于第二阈值,选择所述动态索引中的多个分区进行合并;根据归属于合并后的分区的数据,更新所述合并后的分区的核心和紧密度。
其中,第二阈值的示例可参见上文中的分区个数阈值W,确定所述动态索引中分区总个数大于第二阈值,选择所述动态索引中的多个分区进行合并的示例,可参见上文以及图11中的步骤S34;根据归属于合并后的分区的数据,更新所述合并后的分区的核心和紧密度的示例,可参见上文以及图11中的步骤S35。
通过这种方式,使得分区方式与分区参数都产生变化,可以完成动态索引的更新。由于分区合并是在分区总个数不满足阈值条件时进行的,使得通过合并方式更新动态索引后,得到的动态索引的分区的个数更优,而分区总个数与动态索引中的分区参数的数量有关,分区的个数更优时,根据所述动态索引中的分区的参数,选择所述数据归属的分区的时间成本以及运算成本也更优,使得根据更新后的动态索引选择数据归属的分区时,在保证准确度足够高的前提下,能够有较高的计算效率。
在一种可能的实现方式中,选择所述动态索引中的多个分区进行合并,包括:确定所述动态索引中每两个分区的接近程度;选择最接近的两个分区合并为一个分区。
其中,确定所述动态索引中每两个分区的接近程度的示例,可以参见上文以及图10中的步骤S33。选择最接近的两个分区合并为一个分区的分区合并方式,可以在所述选择出的分区***为两个分区时进行。
通过这种方式,可以完成分区合并,使得合并后的分区总个数得以降低,以更接近于阈值条件的要求。
在一种可能的实现方式中,所述方法还包括:
确定归属于所述动态索引的分区的数据是否具有时效性;在部分或全部数据失去时效性时,删除所述动态索引,或者根据具有时效性的数据,更新所述动态索引。
其中,数据的时效性、以及根据具有时效性的数据更新动态索引的示例,可以参照上文中图13之后的相关描述。
通过这种方式,可以去除老旧数据对动态索引带来的不良影响,进一步提高根据动态索引选择数据归属的分区的准确度。
图15示出根据本申请实施例的一种数据处理装置的示例性结构示意图。
本申请的实施例提供了一种数据处理装置,所述装置应用于分布式***中,所述分布式***包括分流指引节点和多个处理节点,其中,所述分流指引节点存储有动态索引,所述动态索引包括多个分区,每个分区对应一个处理节点,如图15所示,所述装置包括:
分区确定模块101,设置在所述分流指引节点上,用于接收数据,根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区;
数据输出模块102,设置在所述分流指引节点上,用于将所述数据输出至选择出的分区对应的处理节点;
索引更新模块103,设置在所述分流指引节点上,用于根据归属于所述选择出的分区的数据更新所述动态索引。
在一种可能的实现方式中,每个分区的参数包括核心和紧密度,所述核心指示分区的中心位置,所述紧密度指示归属于分区的数据之间的紧密程度。
在一种可能的实现方式中,所述根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区,包括:确定所述数据与所述多个分区中的每个分区的核心的接近程度;选择核心与所述数据最接近的一个分区作为所述数据归属的分区。
在一种可能的实现方式中,所述根据归属于所述选择出的分区的数据更新所述动态索引,包括:根据归属于所述选择出的分区的数据,更新所述选择出的分区的核心和紧密度。
在一种可能的实现方式中,所述根据归属于所述选择出的分区的数据更新所述动态索引,包括:根据归属于所述选择出的分区的数据,更新所述选择出的分区的紧密度;确定更新后的紧密度大于第一阈值,在所述动态索引中将所述选择出的分区***为多个分区;根据归属于动态索引中各分区的数据,更新所述各分区的核心和紧密度。
在一种可能的实现方式中,所述根据归属于所述选择出的分区的数据更新所述动态索引,还包括:确定所述动态索引中分区总个数大于第二阈值,选择所述动态索引中的多个分区进行合并;根据归属于合并后的分区的数据,更新所述合并后的分区的核心和紧密度。
在一种可能的实现方式中,选择所述动态索引中的多个分区进行合并,包括:确定所述动态索引中每两个分区的接近程度;选择最接近的两个分区合并为一个分区。
在一种可能的实现方式中,所述装置还包括:
时效确定模块,设置在所述分流指引节点上,用于确定归属于所述动态索引的分区的数据是否具有时效性;
索引处理模块,设置在所述分流指引节点上,用于在部分或全部数据失去时效性时,删除所述动态索引,或者根据具有时效性的数据,更新所述动态索引。
本申请的实施例提供了一种数据处理装置,包括:处理器以及用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令时实现上述方法。
本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
本申请的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
图16示出根据本申请实施例的一种数据处理装置的示例性结构示意图。
数据处理装置可以包括手机、可折叠电子设备、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本、蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备、或智慧城市设备、服务器设备中的至少一种。本申请实施例对该数据处理装置的具体类型不作特殊限制。
数据处理装置可以包括处理器110,存储器121,通信模块160。可以理解的是,本申请实施例示意的结构并不构成对数据处理装置的具体限定。在本申请另一些实施例中,数据处理装置可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器可以为高速缓冲存储器。该存储器可以保存处理器110用过或使用频率较高的指令或数据。如果处理器110需要使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
存储器121可以用于存储计算机可执行程序代码,该可执行程序代码包括指令。存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如数据获取功能,数据传输功能)等。存储数据区可存储数据处理装置使用过程中所创建的数据(比如动态索引等)等。此外,存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行数据处理装置的各种功能方法或上述数据处理方法。
通信模块160可以用于通过无线通信/有线通信的方式从其他装置或设备接收流式数据(例如本申请实施例中的发送设备),以及向其他装置或设备(例如本申请实施例中的集群节点)输出流式数据。例如可以提供包括WLAN(如Wi-Fi网络)、蓝牙(Bluetooth,BT)、全球导航卫星***(global navigation satellite system,GNSS)、调频(frequencymodulation,FM)、近距离无线通信技术(near field communication,NFC)、红外技术(infrared,IR)等无线通信的解决方案。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RandomAccess Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(Electrically Programmable Read-Only-Memory,EPROM或闪存)、静态随机存取存储器(Static Random-Access Memory,SRAM)、便携式压缩盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能盘(DigitalVideoDisc,DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(Local Area Network,LAN)或广域网(WideArea Network,WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)或可编程逻辑阵列(Programmable Logic Array,PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的装置、***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或ASIC(Application SpecificIntegrated Circuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (19)
1.一种数据处理方法,所述方法应用于分布式***中,所述分布式***包括分流指引节点和多个处理节点,其中,所述分流指引节点存储有动态索引,所述动态索引包括多个分区,每个分区对应一个处理节点,其特征在于,所述方法包括:
所述分流指引节点接收数据,根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区;
所述分流指引节点将所述数据输出至选择出的分区对应的处理节点;
所述分流指引节点根据归属于所述选择出的分区的数据更新所述动态索引。
2.根据权利要求1所述的方法,其特征在于,每个分区的参数包括核心和紧密度,所述核心指示分区的中心位置,所述紧密度指示归属于分区的数据之间的紧密程度。
3.根据权利要求2所述的方法,其特征在于,所述根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区,包括:
确定所述数据与所述多个分区中的每个分区的核心的接近程度;
选择核心与所述数据最接近的一个分区作为所述数据归属的分区。
4.根据权利要求1-3任一所述的方法,其特征在于,所述根据归属于所述选择出的分区的数据更新所述动态索引,包括:
根据归属于所述选择出的分区的数据,更新所述选择出的分区的核心和紧密度。
5.根据权利要求1-3任一所述的方法,其特征在于,所述根据归属于所述选择出的分区的数据更新所述动态索引,包括:
根据归属于所述选择出的分区的数据,更新所述选择出的分区的紧密度;
确定更新后的紧密度大于第一阈值,在所述动态索引中将所述选择出的分区***为多个分区;
根据归属于动态索引中各分区的数据,更新所述各分区的核心和紧密度。
6.根据权利要求5所述的方法,其特征在于,所述根据归属于所述选择出的分区的数据更新所述动态索引,还包括:
确定所述动态索引中分区总个数大于第二阈值,选择所述动态索引中的多个分区进行合并;
根据归属于合并后的分区的数据,更新所述合并后的分区的核心和紧密度。
7.根据权利要求6所述的方法,其特征在于,选择所述动态索引中的多个分区进行合并,包括:
确定所述动态索引中每两个分区的接近程度;
选择最接近的两个分区合并为一个分区。
8.根据权利要求1-7中任一所述的方法,其特征在于,所述方法还包括:
确定归属于所述动态索引的分区的数据是否具有时效性;
在部分或全部数据失去时效性时,删除所述动态索引,或者根据具有时效性的数据,更新所述动态索引。
9.一种数据处理装置,所述装置应用于分布式***中,所述分布式***包括分流指引节点和多个处理节点,其中,所述分流指引节点存储有动态索引,所述动态索引包括多个分区,每个分区对应一个处理节点,其特征在于,所述装置包括:
分区确定模块,设置在所述分流指引节点上,用于接收数据,根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区;
数据输出模块,设置在所述分流指引节点上,用于将所述数据输出至选择出的分区对应的处理节点;
索引更新模块,设置在所述分流指引节点上,用于根据归属于所述选择出的分区的数据更新所述动态索引。
10.根据权利要求9所述的装置,其特征在于,每个分区的参数包括核心和紧密度,所述核心指示分区的中心位置,所述紧密度指示归属于分区的数据之间的紧密程度。
11.根据权利要求10所述的装置,其特征在于,所述根据所述动态索引中的各分区的参数,从所述多个分区中选择所述数据归属的分区,包括:
确定所述数据与所述多个分区中的每个分区的核心的接近程度;
选择核心与所述数据最接近的一个分区作为所述数据归属的分区。
12.根据权利要求9-11任一所述的装置,其特征在于,所述根据归属于所述选择出的分区的数据更新所述动态索引,包括:
根据归属于所述选择出的分区的数据,更新所述选择出的分区的核心和紧密度。
13.根据权利要求9-11任一所述的装置,其特征在于,所述根据归属于所述选择出的分区的数据更新所述动态索引,包括:
根据归属于所述选择出的分区的数据,更新所述选择出的分区的紧密度;
确定更新后的紧密度大于第一阈值,在所述动态索引中将所述选择出的分区***为多个分区;
根据归属于动态索引中各分区的数据,更新所述各分区的核心和紧密度。
14.根据权利要求13所述的装置,其特征在于,所述根据归属于所述选择出的分区的数据更新所述动态索引,还包括:
确定所述动态索引中分区总个数大于第二阈值,选择所述动态索引中的多个分区进行合并;
根据归属于合并后的分区的数据,更新所述合并后的分区的核心和紧密度。
15.根据权利要求14所述的装置,其特征在于,选择所述动态索引中的多个分区进行合并,包括:
确定所述动态索引中每两个分区的接近程度;
选择最接近的两个分区合并为一个分区。
16.根据权利要求9-15中任一所述的装置,其特征在于,所述装置还包括:
时效确定模块,设置在所述分流指引节点上,用于确定归属于所述动态索引的分区的数据是否具有时效性;
索引处理模块,设置在所述分流指引节点上,用于在部分或全部数据失去时效性时,删除所述动态索引,或者根据具有时效性的数据,更新所述动态索引。
17.一种数据处理装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令时实现权利要求1-8任意一项所述的方法。
18.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1-8中任意一项所述的方法。
19.一种计算机程序产品,其特征在于,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行权利要求1-8中任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110749898.2A CN115563097A (zh) | 2021-07-02 | 2021-07-02 | 数据处理方法、装置、存储介质及程序产品 |
PCT/CN2022/095268 WO2023273727A1 (zh) | 2021-07-02 | 2022-05-26 | 数据处理方法、装置、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110749898.2A CN115563097A (zh) | 2021-07-02 | 2021-07-02 | 数据处理方法、装置、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115563097A true CN115563097A (zh) | 2023-01-03 |
Family
ID=84692499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110749898.2A Pending CN115563097A (zh) | 2021-07-02 | 2021-07-02 | 数据处理方法、装置、存储介质及程序产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115563097A (zh) |
WO (1) | WO2023273727A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8886649B2 (en) * | 2012-03-19 | 2014-11-11 | Microsoft Corporation | Multi-center canopy clustering |
WO2018053320A1 (en) * | 2016-09-15 | 2018-03-22 | Oracle International Corporation | Automatic partitioning of stream data for shapes |
CN106570104B (zh) * | 2016-11-01 | 2020-04-07 | 南京理工大学 | 一种流数据的多分区聚类预处理方法 |
CN108804556B (zh) * | 2018-05-22 | 2020-10-20 | 上海交通大学 | 基于时间旅行和时态聚合查询的分布式处理框架*** |
US10983954B2 (en) * | 2019-05-24 | 2021-04-20 | Hydrolix Inc. | High density time-series data indexing and compression |
-
2021
- 2021-07-02 CN CN202110749898.2A patent/CN115563097A/zh active Pending
-
2022
- 2022-05-26 WO PCT/CN2022/095268 patent/WO2023273727A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023273727A1 (zh) | 2023-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11514063B2 (en) | Method and apparatus of recommending information based on fused relationship network, and device and medium | |
CN107305637B (zh) | 基于K-Means算法的数据聚类方法和装置 | |
US11997098B2 (en) | Using one or more networks to assess one or more metrics about an entity | |
US9286312B2 (en) | Data coreset compression | |
US10956976B2 (en) | Recommending shared products | |
US11200501B2 (en) | Accurate and interpretable rules for user segmentation | |
CN112819157B (zh) | 神经网络训练的方法及装置、智能行驶控制的方法及装置 | |
CN110633717A (zh) | 一种目标检测模型的训练方法和装置 | |
CN110427574B (zh) | 路线相似度确定方法、装置、设备和介质 | |
CN111221827B (zh) | 基于图形处理器的数据库表连接方法、装置、计算机设备和存储介质 | |
CN117454416A (zh) | 具有隐私保护激励的空中计算网络用联邦学习方法及*** | |
US11599583B2 (en) | Deep pagination system | |
CN113033194A (zh) | 语义表示图模型的训练方法、装置、设备和存储介质 | |
CN112989170A (zh) | 应用于信息搜索的关键词匹配方法、信息搜索方法及装置 | |
CN115563097A (zh) | 数据处理方法、装置、存储介质及程序产品 | |
CN111291092A (zh) | 一种数据处理方法、装置、服务器及存储介质 | |
Xu et al. | Dm-KDE: dynamical kernel density estimation by sequences of KDE estimators with fixed number of components over data streams | |
CN114565105A (zh) | 处理数据的方法和深度学习模型的训练方法、装置 | |
CN112967044B (zh) | 一种支付业务的处理方法及装置 | |
CN115293252A (zh) | 信息分类的方法、装置、设备和介质 | |
US11593014B2 (en) | System and method for approximating replication completion time | |
CN114662607A (zh) | 基于人工智能的数据标注方法、装置、设备以及存储介质 | |
CN113111133A (zh) | 用户分类的方法和装置 | |
CN112364258A (zh) | 基于图谱的推荐方法、***、存储介质及电子设备 | |
CN113609378B (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 |