CN112204543A - 用于分布式系统的频繁模式分析 - Google Patents
用于分布式系统的频繁模式分析 Download PDFInfo
- Publication number
- CN112204543A CN112204543A CN201980035331.XA CN201980035331A CN112204543A CN 112204543 A CN112204543 A CN 112204543A CN 201980035331 A CN201980035331 A CN 201980035331A CN 112204543 A CN112204543 A CN 112204543A
- Authority
- CN
- China
- Prior art keywords
- data
- data processing
- processing machines
- analysis
- database system
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 144
- 238000012545 processing Methods 0.000 claims abstract description 386
- 238000000034 method Methods 0.000 claims abstract description 162
- 230000008569 process Effects 0.000 claims abstract description 87
- 238000005065 mining Methods 0.000 claims abstract description 37
- 230000000694 effects Effects 0.000 claims description 24
- 238000003860 storage Methods 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 5
- 238000003340 combinatorial analysis Methods 0.000 abstract description 5
- 238000004880 explosion Methods 0.000 abstract description 5
- 230000003993 interaction Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000013500 data storage Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 239000002184 metal Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012546 transfer Methods 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2216/00—Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
- G06F2216/03—Data mining
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
描述了支持用于分布式系统的频繁模式(FP)分析的方法、系统和设备。一些数据库系统可以分析数据集以确定数据内的FP。然而,因为FP挖掘依赖于组合分析,所以非常大的数据集引起应对FP分析所需的存储器和处理资源的组合激增。为了获得对于大数据集的FP分析所需的资源,所述数据库系统可以加速多个数据处理机器并且可以跨这些机器分发FP挖掘过程。所述数据库系统可以根据共性与数据属性列表长度之间的权衡来分发数据集,从而高效地利用在每个数据处理机器处的资源。这可能导致数据子集具有大数量的数据对象、或者数据对象的大数量的数据属性,但并非具有这两者,从而限制组合激增并且对应地限制所需的资源。
Description
相关申请的交叉引用
本申请要求由Xie等人于2018年8月31日提交的题为“分布式系统的频繁模式分析(Frequent Pattern Analysis For Distributed Systems)”的美国专利申请第16/119,955号、以及由Xie等人于2018年5月25日提交的题为“分布式系统的频繁模式分析(Frequent Pattern Analysis for Distributed Systems)”的美国临时专利申请第62/676,526号的专利优先权,其被转让给本受让人并通过引用明确地并入本文。
技术领域
本公开总体上涉及数据库系统和数据处理,并且更具体地涉及用于分布式系统的频繁模式(FP)分析。
背景技术
云平台(即,用于云计算的计算平台)可以由许多用户采用,从而使用远程服务器的共享网络来存储、管理和处理数据。用户可以在云平台上开发应用以应对数据的存储、管理和处理。在一些情况下,云平台可以利用多租户数据库系统。用户可以使用各种用户设备(例如,台式计算机、膝上型计算机、智能电话、平板计算机或其他计算系统等)来访问云平台。
在一个示例中,云平台可以支持客户关系管理(CRM)解决方案。这可以包括对销售、服务、营销、社区、分析、应用和物联网的支持。用户可以利用云平台来帮助管理用户的联系方(contact)。例如,管理用户的联系方可以包括分析数据、存储和准备通信、以及跟踪机会和销售。
在一些情况下,云平台可以支持用于数据集的频繁模式(FP)分析。例如,数据处理机器可以基于数据库中的数据或由用户设备指示的数据来确定FP。然而,对非常大的数据集进行FP分析可能在存储器资源、处理资源、处理延迟、或这些的某些组合方面代价极高。在跟踪系统的用户或用户设备的活动数据时,这个问题可能尤其普遍。例如,基于这种数据生成的数据集可能包括数千个用户或用户设备,其中每个用户或用户设备可能与对应于不同活动或活动参数的数千个数据属性相关联。因为FP分析涉及数据对象(例如,用户)与数据属性(例如,活动)之间的组合分析(combinatorics),所以数据集的这种大的长度和广度导致在数据处理机器处的巨大存储器和处理开销。
附图说明
图1展示了根据本公开的方面的在支持用于分布式系统的FP分析的数据库系统处的用于频繁模式(FP)分析的系统的示例。
图2展示了根据本公开的方面的实现支持用于分布式系统的FP分析的FP分析过程的数据库系统的示例。
图3展示了根据本公开的方面的实现分布式FP分析过程的数据库系统的示例。
图4展示了根据本公开的方面的支持用于分布式系统的FP分析的处理流程的示例。
图5示出了根据本公开的方面的支持用于分布式系统的FP分析的装置的方框图。
图6示出了根据本公开的方面的支持用于分布式系统的FP分析的分发模块的方框图。
图7示出了根据本公开的方面的系统的示图,该系统包括支持用于分布式系统的FP分析的设备。
图8示出了根据本公开的方面的表示支持用于分布式系统的FP分析的方法的流程图。
具体实施方式
一些数据库系统可以对数据集进行频繁模式(FP)分析以确定数据内的共同且感兴趣的模式。这些感兴趣的模式对用户对于许多客户关系管理(CRM)操作(诸如市场分析或销售跟踪)可能是有用的。在一些情况下,数据库系统可以基于数据库系统的配置自动地确定一个或多个数据集的FP。在其他情况下,数据库系统可以从用户设备接收命令(例如,基于用户设备处的用户输入)以确定数据集的FP。数据库系统可以使用一种或多种FP挖掘技术来确定数据集内的FP。例如,为了在确定模式时提高系统效率并缩短延迟,数据库系统可以将数据集转变成包括FP树和链表的简缩数据结构(condensed data structure),并且可以使用FP增长(FP-growth)模型来导出FP。这种简缩数据结构可以支持比原始数据集(例如,存储为关系数据库表的数据集)可以支持的FP挖掘更快的FP挖掘,以及对所确定的模式的更快的查询。例如,因为数据库系统(或更具体地,在数据库系统处的数据处理机器(例如,裸金属机器、虚拟机或容器))可以生成具有仅两次通过数据集的简缩数据结构,并且因为从简缩数据结构确定FP可以比从原始数据确定FP快约一到两个数量级的尺度,数据库系统可以显著地改善在导出FP和对应的感兴趣模式中涉及的延迟。此外,如果在数据处理机器处本地对这些FP进行存储和处理,那么可以大大减少在查询模式(例如,通过用于处理或显示的用户设备)中涉及的延迟,因为数据处理机器可以在本地处理查询而不必命中(hit)数据库系统的数据库。
然而,生成并本地存储全部的FP树以及从FP树挖掘的完整一组FP可能使用在数据处理机器处的大量存储器和处理资源。在一些情况下,数据处理机器可能不包含足够的可用存储器或处理资源来应对这种FP分析过程,尤其是对于非常大的数据集(例如,包含与web浏览器活动或由用户或用户设备进行的其他活动有关的信息的数据集)。为了应对大的数据集,数据库系统可以跨一定数量的数据处理机器分发FP分析过程。每个数据处理机器可以接收数据的子集,并且可以将这些子集单独地转变成用于FP分析的高效数据结构(例如,本地FP树和链表)。然后,这些机器可以对这些本地存储的数据结构单独地进行FP挖掘。发送至每个数据处理机器的数据的量可以基于针对该特定数据处理机器识别的可用资源。
为了高效地利用数据处理机器处的资源,数据库系统可以分发数据集以限制数据子集的数据属性与数据对象之间的组合。例如,如果数据对象的数量和这些数据对象的数据属性的数量都很大(例如,大于某个或某些阈值),则FP分析可能经历组合激增(combinatorial explosion),从而大大增加应对数据的FP分析所需的存储器和处理资源。替代地,数据库系统可以根据数据的分发将数据分组成数据子集,使得每个数据子集可以超过数据对象的某一动态或预定的阈值数量、或者超过数据属性的某个动态或预定的阈值数量,但不能超过这两者。以此方式,数据库系统可以通过限制每个数据子集内的组合分析的方式将数据集划分为数据子集。此技术可以允许高效地使用每个数据处理机器处的资源,从而改善延迟并且减少FP挖掘过程的开销。
首先,在支持按需数据库服务的环境的背景下描述本公开的各方面。参考数据库系统和处理流程来描述本公开的其他方面。本公开的各方面进一步通过与用于参考分布式系统的FP分析有关的装置示图、系统示图和流程图来展示,并对其进行描述。
图1展示了根据本公开的各方面的用于云计算的系统100的示例,该系统支持用于分布式系统的FP分析。系统100包括云客户端105、联系方110、云平台115和数据中心120。云平台115可以是公共或私人云网络的示例。云客户端105可以通过网络连接135访问云平台115。网络可以实现传输控制协议和互联网协议(TCP/IP),诸如互联网,或者可以实现其他网络协议。云客户端105可以是用户设备的示例,诸如,服务器(例如,云客户端105-a)、智能电话(例如,云客户端105-b)或膝上型计算机(例如,云客户端105-c)。在其他示例中,云客户端105可以是台式计算机、平板计算机、传感器或能够生成、分析、传送或接收通信的其他计算设备或系统。在一些示例中,云客户端105可以由作为商业、企业、非盈利、创业或任何其他组织类型的一部分的用户来操作。
云客户端105可以与多个联系方110交互。交互130可以包括在云客户端105与联系方110之间的通信、机会、购买、销售或任何其他交互。数据可以与交互130相关联。云客户端105可以访问云平台115以存储、管理和处理与交互130相关联的数据。在一些情况下,云客户端105可以具有相关联的安全或许可级别。云客户端105可以基于相关联的安全或许可级别来访问云平台115内的某些应用、数据和数据库信息,并且可能不能访问其他应用、数据和数据库信息。
联系方110可以当面或经由电话、电子邮件、web、文本消息、邮件或任何其他适当形式的交互(例如,交互130-a、130-b、130-c和130-d)来与云客户端105交互。交互130可以是企业对企业(B2B)交互或企业对客户(B2C)交互。联系方110还可以被称为客户、潜在客户、领导、顾客、或一些其他合适的术语。在一些情况下,联系方110可以是用户设备的示例,诸如,服务器(例如,联系方110-a)、膝上型计算机(例如,联系方110-b)、智能电话(例如,联系方110-c)或传感器(例如,联系方110-d)。在其他情况下,联系方110可以是另一计算系统。在一些情况下,联系方110可以由用户或用户组操作。用户或用户组可以与企业、制造商或任何其他适当的组织相关联。
云平台115可以向云客户端105提供按需数据库服务。在一些情况下,云平台115可以是多租户数据库系统的示例。在这种情况下,云平台115可以利用单个软件实例为多个云客户端105服务。然而,可以实现其他类型的系统,包括但不限于客户端-服务器系统、移动设备系统和移动网络系统。在一些情况下,云平台115可以支持CRM解决方案。这可以包括对销售、服务、营销、社区、分析、应用和物联网的支持。云平台115可以通过网络连接135从云客户端105接收与联系方交互130相关联的数据,并且可以存储和分析该数据。在一些情况下,云平台115可以直接从联系方110与云客户端105之间的交互130接收数据。在一些情况下,云客户端105可以开发在云平台115上运行的应用。云平台115可以使用远程服务器来实现。在一些情况下,远程服务器可以位于一个或多个数据中心120处。
数据中心120可以包括多个服务器。该多个服务器可以用于数据存储、管理和处理。数据中心120可以经由连接140从云平台115接收数据,或者直接从云客户端105、或联系方110与云客户端105之间的交互130接收数据。出于安全目的,数据中心120可以利用多个冗余。在一些情况下,存储在数据中心120处的数据可以由不同的数据中心(未示出)处的数据的副本所备份。
子系统125可以包括云客户端105、云平台115和数据中心120。在一些情况下,数据处理可以发生在子系统125的任何组件处或这些组件的组合处。在一些情况下,服务器可以进行数据处理。服务器可以是云客户端105、或位于数据中心120处。
一些数据中心120可以对数据集进行FP分析以确定数据内的共同且感兴趣的模式。在一些情况下,数据中心120可以基于数据中心120的配置自动地确定一个或多个数据集的FP。在其他情况下,数据中心120可以从云客户端105(例如,基于到云客户端105的用户输入)接收命令以确定数据集的FP。数据中心120可以使用一种或多种FP挖掘技术来确定数据集内的FP。例如,为了在确定模式时提高系统效率并缩短延迟,数据中心120可以将数据集转变成包括FP树和链表的简缩数据结构,并且可以使用FP增长模型来导出FP。这种简缩数据结构可以支持比原始数据集(例如,存储为关系数据库表的数据集)支持的FP挖掘更快的FP挖掘,并且还可以支持对所确定的模式的更快的查询。例如,因为数据中心120(或更具体地,在数据中心120处的数据处理机器(例如,裸金属机器、虚拟机或容器))可以生成具有仅两次通过数据集的简缩数据结构,并且因为从简缩数据结构确定FP比从原始数据确定FP快约一到两个数量级的尺度,数据中心120可以显著地改善在导出FP和感兴趣模式中涉及的延迟。此外,如果在数据处理机器处本地对这些FP进行存储和处理,那么可以大大减少用于检索模式的查询延迟(例如,通过用于处理或显示的云客户端105),因为数据处理机器可以在本地应对查询而不必命中数据库。
然而,生成并本地存储全部的FP树以及从FP树挖掘的完整一组FP可能使用在数据处理机器处的大量存储器和处理资源。在一些情况下,数据处理机器可能不包含足够的可用存储器或处理资源来应对这种FP分析过程,尤其是对于非常大的数据集。例如,包含与由系统中的用户或用户设备或对于租户进行的活动有关的信息的数据集可以包括数千或数百万数据对象(例如,用户设备)和那些数据对象中的每个数据对象的数千或数百万数据属性(例如,web活动),从而导致有非常大的数据集用于FP挖掘。为了应对这么大的数据集,数据中心120可以跨一定数量的数据处理机器分发FP分析过程。每个数据处理机器可以接收数据的子集。并且可以将这些子集单独地转变成用于FP分析的高效数据结构。然后,这些机器可以对这些本地存储的数据结构单独地进行FP挖掘。发送至每个数据处理机器的数据的量可以基于由该特定数据处理机器支持的可用资源。
为了高效地利用数据处理机器处的资源,数据中心120可以分发数据集以限制数据对象与数据子集的数据属性之间的组合。例如,如果数据对象的数量和这些数据对象中的一个或多个数据对象的数据属性的数量都很大,则FP分析可能经历组合激增,从而大大地增加与应对此数据的FP分析相关联的存储器和处理开销。替代地,数据中心120可以根据数据的分发将数据分组成数据子集,使得每个数据子集可以超过数据对象的阈值数量或数据属性的阈值数量,但不能超过这两者。以此方式,数据中心120可以将数据集划分为限制每个数据子集内的组合分析的数据子集。此技术可以允许高效地使用每个数据处理机器处的资源,从而改善延迟并且减少FP挖掘过程的开销。通过限制用于在数据处理机器处应对FP分析过程的处理和存储器资源,数据中心120可以最小化或减少分析大的数据集所需的数据处理机器的数量。
在一些常规系统中,FP挖掘可以在单个数据处理机器处进行,这可能限制数据库系统可对模式分析的数据集的大小。在其他常规系统中,用于FP挖掘的经转变数据或FP挖掘过程的结果可以存储在数据处理机器外部以支持更大的存储器容量。然而,在查询数据时,将数据存储在数据处理机器外部引起延迟命中,这是因为每次数据处理机器加载用于分析的FP信息时,数据处理机器用检索请求命中外部数据存储。
与此相对,系统100支持可以跨多个数据处理机器分发FP挖掘的数据库系统(例如,数据中心120)。在数据集的大小继续增长的情况下(例如,由于系统100中的正在进行的用户或用户设备活动),这种分发过程可以支持应对非常大的数据集以及水平缩放技术。此外,将FP分析结果本地存储在数据处理机器处可以显著地减少在本地导出和检索模式所涉及的延迟(例如,与从机器外部的数据源导出或检索模式相反),从而使得对于非常大的数据集的FP分析可行。此外,数据库系统利用高效分发技术来限制每个数据处理机器处的存储器和处理开销。例如,通过利用共性与属性列表长度之间的权衡将数据分发在数据子集中,数据库系统可以限制每个单独的数据处理机器处的组合激增。这可减少数据处理机器的数量,并且减少导出、存储和服务数据模式所需的每个数据处理机器处的资源量。
本领域技术人员应理解,可以在系统100中实现本公开的一个或多个方面以另外或替代性地解决除上文所描述的问题之外的其他问题。此外,本公开的各方面可以提供对如本文中所描述的“常规”系统或处理的技术改进。然而,说明和附图仅包括通过实现本公开的各方面而产生的示例技术改进,并因此不代表在权利要求的范围内提供的所有技术改进。
图2示出了根据本公开的各方面的实现支持用于分布式系统的FP分析的FP分析过程的数据库系统200的示例。数据库系统200可以是如参考图1所描述的数据中心120的示例,并且可以包括数据库210和数据处理机器205。在一些情况下,数据库210可以是事务数据库、时间序列数据库、多租户数据库或这些或其他类型的数据库的某些组合的示例。数据处理机器205可以是数据库服务器、应用服务器、服务器群集、虚拟机、容器或者支持数据库系统200的数据处理的这些或其他硬件或软件组件的某些组合的示例。数据处理机器205可以包括处理组件和本地数据存储组件,其中,本地数据存储组件支持数据处理机器205的存储器资源并且可以是磁带、磁盘、光盘、闪存、主存储器(例如,随机存取存储器(RAM))、存储器缓存、云存储系统或其组合的示例。数据处理机器205可以对数据集215进行FP分析(例如,基于用户输入命令或者自动地基于数据库系统200或所支持的基于FP的应用的配置)。
如本文中所描述的,数据库系统200可以实现用于利用简缩数据结构230的模式挖掘的FP增长模型。简缩数据结构230可以包括FP树235和经由链路250链接至FP树235的节点245的链表240。然而,应当理解,数据库系统200可以替代性地使用除所描述的那些之外的其他FP分析技术和数据结构。例如,数据库系统200可以使用候选集生成及测试技术、树投影技术、或这些或其他FP分析技术的任何组合。在其他情况下,数据库系统200可以进行与在此描述的处理类似的FP分析处理,但是包含比描述的那些处理更少的、附加的或替代的处理。所描述的分发处理可以利用FP增长技术和简缩数据结构230、或利用任何其他的FP分析技术或数据结构来实现。
数据处理机器205可以接收数据集215以用于处理。例如,数据库210可以向数据处理机器205传送数据集215以用于FP分析。数据集215可以包括多个数据对象,其中每个数据对象包括标识符(ID)220和数据属性的集。数据集215可以包括数据库210中的所有数据对象,或者可以包括与某个租户(例如,如果数据库210是多租户数据库)、与某个时间段(例如,如果这些属性与具有对应时间戳的事件或活动相关联)、或与基于用户输入值的数据对象的一些其他子集相关联的数据对象。例如,在一些情况下,操作用户设备的用户可以为数据集215选择一个或多个参数,并且用户设备可以将参数传送到数据库210(例如,经由数据库或应用服务器)。数据库210可以基于所接收的用户输入向数据处理机器205传送数据集215。
数据集215中的每个数据对象可以基于ID 220来进行识别并且可以与一个或多个数据属性相关联。这些数据属性可以对该数据对象是唯一的、或者可以跨多个数据对象是共同的。在一些情况下,ID 220可以是对该数据对象唯一的文本串的示例。例如,如果数据对象对应于数据库系统200中的用户,则ID 220可以是用户识别号、用户名、社会保障号或其中每个值对用户唯一的某个其他类似形式的ID。数据属性可以是由数据对象(例如,用户)进行的活动或数据对象的特性的示例。例如,数据属性可以包括与由用户操作的用户设备有关的信息(例如,互联网协议(IP)地址、操作的设备的总数量等)、与用户在操作用户设备之一时进行的活动有关的信息(例如,web搜索历史、软件应用信息、电子邮件通信等)、与用户具体有关的信息(例如,来自用户配置文件的信息、与用户相关联的值或分数等)、或它们的组合。如图2所示,这些不同的数据属性可以由不同的字母(例如,属性{a}、{b}、{c}、{d}和{e})表示。
在所展示的示例性情况下,数据集215可以包括五个数据对象。具有ID 220-a的第一数据对象可以包括数据属性{b,c,a,e},具有ID 220-b的第二数据对象可以包括数据属性{c,e},具有ID 220-c的第三数据对象可以包括数据属性{d,a,b},具有ID 220-d的第四数据对象可以包括数据属性{a,c,b},并且具有ID 220-e的第五数据对象可以包括数据属性{a}。在一个示例中,每个数据对象可以对应于不同的用户或用户设备,并且每个数据属性可以对应于由用户或用户设备所进行的活动或活动参数。例如,属性{a}可以对应于用户在线进行特定购买,而属性{b}可以对应于用户访问用户设备的web浏览器中的特定网站。这些数据属性可以是与用户的特性有关的二进制值(例如,布尔值)。
数据处理机器205可以接收数据集215,并且可以基于数据集215来构造简缩数据结构230。构造处理可以涉及两次通过数据集215,其中数据处理机器205在每次通过期间处理数据集215中的每个数据对象的数据属性。在第一次通过数据集215时,数据处理机器205可以生成属性列表225。属性列表225可以包括数据集215中包含的数据属性以及它们对应的支持(即,数据集215内的出现频率)。在一些情况下,在此第一次通过期间,数据处理机器205可以基于对属性的支持和最小支持阈值ξ来滤除一个或多个属性。在这些情况下,在属性列表225中包括的结果数据属性可以被称为频繁项或频繁属性。数据处理机器205可以按照支持的降序对属性列表225中的数据属性进行排序。例如,如所示的,数据处理机器205可以识别属性{a}在数据集215中出现四次,属性{c}和{b}出现三次,属性{e}出现两次,并且属性{d}出现一次。如果最小支持阈值ξ等于二,则数据处理机器205可以从属性列表225中移除{d}(或相反地在属性列表225中不包括{d}),这是因为对属性{d}的支持小于最小支持阈值。在一些情况下,用户可以使用用户界面的输入特征来指定最小支持阈值ξ。数据处理机器205可以将属性列表225存储在存储器(例如,临时存储器或持久存储器)中。
在第二次通过数据集215中,数据处理机器205可以生成用于高效FP挖掘的简缩数据结构230,其中简缩数据结构230包括FP树235和链表240。数据处理机器205可以生成FP树235的根节点245-a,并且可以用“空(null)”值标记根节点245-a。然后,对于数据集215中的每个数据对象,数据处理机器205可以根据属性列表225的顺序(例如,按照支持的降序)对属性字段进行排序,并且可以添加或更新FP树235的分支。例如,数据处理机器205可以按照递减支持{a,c,b,e}的顺序对具有ID 220-a的第一数据对象的数据属性进行排序。由于FP树235中不存在子节点245,所以数据处理机器205可以创建表示此数据属性的排序集的新子节点245。该排序集中的第一属性的节点被创建为根节点245-a的子节点245-b,第二属性的节点被创建为从此子节点245-b分离的另外的子节点245-c,以此类推。例如,数据处理机器可以基于递减支持的顺序创建属性{a}的节点245-b、属性{c}的节点245-c、属性{b}的节点245-d和属性{e}的节点245-e。当在FP树235中创建新节点245时,数据处理机器205可以另外地将节点245的计数设置为一(例如,指示由节点245表示的数据属性的一个实例)。
然后,数据处理机器205可以处理具有ID 220-b的第二数据对象。数据处理机器205可以将数据属性排序为{c,e}(例如,基于如在属性列表225中确定的支持的降序),并且可以检查源自根节点245-a的对应于此模式的任何节点245的FP树235。由于此排序集的第一数据属性是{c},并且根节点245-a不具有{c}的子节点245,所以数据处理机器205可以从根节点245-a创建属性为{c}并且计数为一的新子节点245-f。进一步地,数据处理机器205可以创建从此{c}节点245-f分离的子节点245-g,其中节点245-g表示属性{e}并且被设置为计数为一。
作为处理中的下一步骤,数据处理机器205可以将具有ID 220-c的数据对象的属性排序为{a,b,d},并且可以将此排序集添加到FP树235。在一些情况下,如果数据属性{d}不具有相当大的支持值(例如,与最小支持阈值ξ相比),则数据处理机器205可以忽略数据对象的属性列表中的{d}数据属性(和未被分类为“频繁”属性的任何其他数据属性)。在任一情况下,数据处理机器205可以检查源自根节点245-a的对应于此排序集的任何节点245的FP树235。因为属性{a}的子节点245-b源自根节点245-a,并且具有ID 220-c的数据对象的排序集中的第一属性是{a},所以数据处理机器205可以确定递增节点245-b的计数,而不是创建新节点245。例如,数据处理机器205可以改变节点245-b以指示具有计数为二的属性{a}。由于从节点245-b分离的仅有子节点245是属性{c}的子节点245-c,并且具有ID 220-c的数据对象的排序集中的下一属性为属性{b},所以数据处理机器205可以生成从节点245-b分离的对应于属性{b}的新的子节点245-h,并且可以为节点245-h分配计数为一。如果属性{d}被包括在属性列表225中,则数据处理机器205可以另外创建{d}的子节点245-i。
此处理可以对数据集215中的每个数据对象继续。例如,在所示出的情况下,具有ID 220-d的数据对象可以递增节点245-b、245-c和245-d的计数,并且具有ID 220-e的数据对象可以递增节点245-b的计数。一旦来自数据集215中的每个数据对象的属性(或频繁属性)在实现最小支持阈值时被表示在FP树235中,FP树235就可以在数据处理机器205的存储器中完成(例如,存储在本地存储器中以用于高效处理和FP挖掘、或者存储在外部以用于改进的存储器容量)。通过在第一次通过数据集215中生成排序属性列表225,数据处理机器205可以最小化表示数据所需的分支的数量,因为最频繁的数据属性被包括为最靠近根节点245-a。这可以支持FP树235在存储器中的高效存储。另外,生成属性列表225允许数据处理机器205在基于数据集215创建FP树235时识别不频繁属性并移除这些不频繁属性。
除了FP树235之外,简缩数据结构230可以包括链表240。链表240可以包括来自属性列表225的所有属性(例如,数据集215中的所有属性或数据集215中的所有频繁属性),并且每个属性可以对应于链路250。在表内,这些链路250可以是节点链路的头部的示例,其中节点链路顺序地或并行地指向FP树235的一个或多个节点245。例如,链表240中的属性{a}的条目可以经由链路250-a被链接至FP树235中的属性{a}的每个节点245(例如,在这种情况下,属性{a}链接至节点245-b)。如果在FP树235中存在特定属性的多个节点245,则这些节点245可以顺序地被链接。例如,链表240的属性{c}可以经由链路250-b顺序地被链接至节点245-c和245-f。类似地,链路250-c可以将链表240的属性{b}链接至节点245-d和245-h,链路250-d可以将属性{e}链接至节点245-e和245-g,并且如果足够频繁到被包括在属性列表225中,则链路250-e可以将属性{d}链接至节点245-i。
在一些情况下,数据处理机器205可以在FP树235完成之后构造链表240。在其他情况下,数据处理机器205可以同时构造链表240和FP树235,或者可以在将来自数据集215的每个数据对象表示添加到FP树235之后更新链表240。数据处理机器205还可以将链表240连同FP树235一起存储在存储器中。在一些情况下,链表240可以被称为报头表(例如,节点链路的“头部”位于这个表中)。这两个结构一起形成简缩数据结构230,以用于在数据处理机器205处进行高效的FP挖掘。简缩数据结构230可以包含与来自数据集215的FP挖掘相关的所有信息(例如,针对最小支持阈值ξ)。以此方式,将数据集215转变成FP树235和对应的链表240可以支持完整且紧凑的FP挖掘。
数据处理机器205可以进行模式增长方法(FP增长)以从简缩数据结构230中压缩的信息中高效地挖掘FP。在一些情况下,数据处理机器205可以确定数据集215的完整一组FP。在其他情况下,数据处理机器205可以接收感兴趣的数据属性(例如,基于用户界面中的用户输入),并且可以确定该数据属性的所有模式。在另外的其他的情况下,数据处理机器205可以确定数据属性或数据集215的单个“最感兴趣的”模式。“最感兴趣的”模式可以对应于具有最高出现率、数据属性的最长列表、或高出现率和数据属性的长列表的某种组合的FP。例如,“最感兴趣的”模式可以对应于数据属性数量大于具有最高出现率的属性阈值的FP,或者“最感兴趣的”模式可以基于指示出现率与属性列表的长度之间的权衡的公式或表来确定。
为了确定数据属性的所有模式,数据处理机器205可以从链路250的头部开始并且跟随节点链路250到达该属性的每个节点245。FP可以基于最小支持阈值ξ来定义,该最小支持阈值可以是与用于构造简缩数据结构230的最小支持阈值相同的最小支持阈值。例如,如果ξ=2,那么仅当模式在数据集215中出现两次或更多次,才被视为“频繁”。为了识别数据集215的完整一组FP集,数据处理机器205可以按升序对链表240中的属性进行挖掘过程。由于属性{d}没有超过最小支持阈值ξ=2,数据处理机器205可以发起具有数据属性{e}的FP增长方法。
为了确定数据属性{e}的FP,数据处理机器205可以跟随属性{e}的链路250-d,并且可以识别均对应于属性{e}的节点245-e和节点245-g。数据处理机器205可以识别数据属性{e}在FP树235中出现两次(例如,基于对所识别的节点245-e和245-g的计数值求和),并且因此至少具有(e:2)的最简单FP(即,包括属性{e}的模式在数据集215中出现两次)。数据处理机器205可以确定到所识别的节点245的路径{a,c,b,e}和{c,e}。这些路径中的每一个路径在FP树235中出现一次。例如,即使属性{a}的节点245-b具有为四的计数,此属性{a}也与属性{e}一起仅出现一次(例如,如由节点245-e的计数为一所指示的)。这些所识别的模式可以指示属性{e}的路径前缀,即{a:1,c:1,b:1}和{c:1}。这些路径前缀可以一起被称为数据属性{e}的子模式库或条件模式库。使用所确定的条件模式库,数据处理机器205可以构造属性{e}的条件FP树。即,数据处理机器205可以使用与上文描述的技术类似的技术来构造FP树,其中FP树仅包括包含属性{e}的属性组合。基于最小支持阈值ξ和所识别的路径前缀{a:1,c:1,b:1}和{c:1},只有数据属性{c}可以通过支持检查。因此,数据属性{e}的条件FP树可以包含单个分支,其中根节点245具有属性{c}的具有为二的计数的单个子节点245(例如,两个路径前缀均包括属性{c})。基于此条件树,数据处理机器205可以导出FP(ce:2)。即,属性{c}和{e}在数据集215中一起出现两次,而属性{e}不与任何其他数据属性在数据集215中出现至少两次。对于具有多于一个子节点245的条件FP树,数据处理机器205可以实现递归挖掘处理以确定包含被查验的属性的所有符合条件的FP。数据处理机器205可以返回数据属性{e}的FP(e:2)和(ce:2)。在一些情况下,数据处理机器205可以不对简单地包含被查验为FP的数据属性的模式进行计数,并且在这些情况下,可以仅返回(ce:2)。
这个FP增长过程可以对属性{b}继续进行,然后属性{c},并以属性{a}结束。对于每个数据属性,数据处理机器205可以构造条件FP树。此外,因为FP增长过程是通过链表240按升序进行的,所以数据处理机器205在确定FP时可以忽略链接节点245的子节点245。例如,对于属性{b},链路250-c可以指示节点245-d和245-h。在识别{b}的路径时,数据处理机器205可以不使FP树235遍历经过链接节点245-d或245-h,因为在树上低于此的节点245的任何模式已经在先前步骤中被确定。例如,数据处理机器205可以在确定节点245-d的模式时忽略节点245-e,因为包括节点245-e的模式先前被导出。基于FP增长过程和这些条件FP树,数据处理机器205可以识别链表240中的其余数据属性的附加FP。例如,使用递归挖掘处理并且基于最小支持阈值ξ=2,数据处理机器205可以确定完整一组FP:(e:2)、(ce:2)、(b:3)、(cb:2)、(ab:3)、(acb:2)、(c:3)、(ac:2)和(a:4)。
在一些情况下,数据处理机器205可以将结果模式本地存储在本地数据存储组件中。另外或替代性地,数据处理机器205可以将由FP分析产生的模式传送到数据库210以用于存储、或传送到用户设备(例如,以供进一步处理或在用户界面中显示)。在一些情况下,数据处理机器205可以确定“最感兴趣的”FP(例如,基于在模式中包括的数据属性的数量的(acb:2)),并且可以向用户设备传送对“最感兴趣的”FP的指示。在其他情况下,用户设备可以传送对用于查验的属性(例如,数据属性{c})的指示,并且作为响应,数据处理机器205可以返回包括数据属性{c}的FP中的一个或多个。
通过将数据集215转变成简缩数据结构230,数据处理机器205可以避免对生成和测试大量候选模式的需要,其在处理和存储器资源方面以及在时间方面可能是非常昂贵的。对于非常大的数据库系统200、数据库210或数据集215,与数据集215的大小相比,FP树235可以小得多,并且条件FP树可以甚至更小。例如,将大的数据集215转变成FP树235可以将数据缩小约一百倍,并且将FP树235转变成条件FP树可以再次将数据缩小约一百倍,从而产生用于FP挖掘的非常简缩的数据结构230。
在一些情况下,FP分析过程可以支持用于改进的FP分析或数据处理的附加技术。例如,数据库系统200可以支持用于分布式系统、差分支持(differential support)、epsilon(ε)-闭合或其组合的技术。在一些情况下,数据集215对于单个数据处理机器205可能太大。例如,由数据集215产生的简缩数据结构230可能不适合在数据处理机器205的存储器中,或者由FP分析过程在简缩数据结构230上返回的FP集对于在数据处理机器205处的处理而言可能太大。因而,数据库系统200可以加速(spin up)多个数据处理机器205并且跨不同的数据处理机器205分发数据集215。分发的粒度可以允许每个数据处理机器205应对分配给它的数据量。在一些情况下,分发可以基于每个数据对象的数据属性的数量、数据处理机器205的可用存储器资源能力、或这两者。每个数据处理机器205可以从所接收的数据子集创建本地简缩数据结构230,并且一旦简缩数据结构230被成功地存储就可以从存储器中移除数据子集。移除数据子集可以增加数据处理机器205处的用于其他特征或处理的可用存储器。
图3示出了根据本公开的各方面的实现分布式FP分析过程的数据库系统300的示例。数据库系统300可以是如参考图1和图2描述的数据库系统200或数据中心120的示例。数据库系统300可以包括多个数据处理机器305(例如,数据处理机器305-a、数据处理机器305-b和数据处理机器305-c),这些数据处理机器可以是参考图2描述的数据处理机器205的示例。另外,数据库系统300可以包括数据库310,该数据库可以是数据库210的示例,并且可以由数据处理机器305服务。数据库系统300中的每个数据处理机器305可以独立地运转并且可以包括单独的数据存储组件。如果数据库系统300接收或检索对于单个数据处理机器305处的处理或存储器存储而言过大的用于FP分析的数据集315,则数据库310可以跨多个数据处理机器305分发数据集315以用于FP分析。为了高效地利用每个数据处理机器305的处理和存储器资源,数据库系统300可以实现用于分发数据集315的特定技术。
例如,数据库系统300可以从数据库310接收数据集315。数据集315可以包含一定数量的数据对象320,其中每个数据对象包括ID325和数据属性列表330。在一个示例中,数据对象可以是具有对应的用户ID的用户设备或用户的示例,并且数据属性可以是由用户进行的具有某些性质的活动或与用户相关联的特性的示例。在一些情况下,数据属性可以被称为“项”。
数据库系统300可以确定数据集315的近似大小。例如,数据库系统300可以存储算法或查找表以评估存储与数据集315相关联的简缩数据结构并且对这些简缩数据结构进行FP挖掘所需的存储器和/或处理资源。实际大小可以基于数据集315内(例如,在数据对象320与来自数据属性列表330的属性之间)的组合分析。这些组合分析所需的资源可以基于数据集315的长度(例如,属性列表330的长度)和广度(例如,数据对象320的数量)而大大增加。然而,为了限制相对于数据量所涉及的组合分析,数据库系统300可以限制数据集315的这些参数中的一个参数。例如,具有相对较大长度但不具有相对较大广度的数据集或具有相对较大广度但不具有相对较大长度的数据集可以高效地利用存储器和处理资源。
数据库系统300可以基于数据处理机器305中的可用资源将数据集315分发到一定数量的数据子集335中。例如,数据库系统300可以加速一定数量的数据处理机器305以应对它们之间的数据集315的近似或精确大小。例如,数据库系统300可以加速三个数据处理机器305(例如,数据处理机器305-a、305-b和305-c)以用于FP分析处理,并且可以相应地将数据集315的数据对象320分组成三个数据子集335-a、335-b和335-c。在一些情况下,数据库系统300可以确定数据处理机器305的可用存储器和/或处理能力。数据库系统300可以评估机器的能力,或者可以从数据处理机器305接收对能力的指示。在一些情况下,不同的数据处理机器305可以具有不同量的可用资源(例如,基于机器的类型、在机器上运行的其他处理、在机器处已存储了何种数据等)。数据库系统300可以根据每个数据处理机器305的特定存储器和/或处理阈值来形成数据子集335。
数据库系统300可以基于数据对象320的分发来进行数据对象320的分组。例如,一般而言,更常见的数据属性通常可以是较短属性列表330的部分,而更罕见的数据属性通常可以是较长属性列表330的部分。数据库系统300可以根据这个原理对数据对象320进行分组。例如,数据库系统300可以迭代地形成具有越来越常见的数据属性的数据对象组。以此方式,数据库系统300可以生成具有较罕见的数据属性的数据子集335-a、具有相对较常见的数据属性的数据子集335-b和具有最常见的数据属性的数据子集335-c。这些数据子集335可以被传送到对应的数据处理机器305以用于处理。另外或替代性地,数据库系统300可以基于其他分发技术来进行数据对象320的分组。例如,数据库系统300可以基于属性列表330的长度将数据对象320分类到不同的数据子集335中。在其他示例中,数据库系统300可以基于数据对象320的特定分类参数或基于数据对象ID 325将数据对象320分类到不同的数据子集335中。
每个数据处理机器305可以进行其自身的数据紧缩和FP分析。例如,数据处理机器305-a可以基于独立于其他数据处理机器305和数据子集335的数据子集335-a来生成FP树340-a(和对应的链表)。类似地,数据处理机器305-b可以基于数据子集335-b生成FP树340-b,并且数据处理机器305-c可以基于数据子集335-c生成FP树340-c。以此方式,数据库系统300可以跨一定数量的数据处理机器305分发工作,使得FP树340和FP分析结果可以适合在存储器中并支持处理,而不是生成用于FP增长处理的全部的FP树。通过属性列表的共性或长度将数据对象320分组,并且通过改变每个数据子集335中的数据对象的数量,数据处理机器305可以在不超过数据处理机器305的存储器或处理能力的情况下高效地对数据子集335进行组合分析。此外,如果基于每个数据对象320中的一个或多个数据属性的共性将数据对象320分类到数据子集335中和对应地数据处理机器305中,则具有类似数据属性的数据对象320很可能被分组到相同的数据子集335中。因而,分布式FP挖掘可以识别初始数据集315中的大百分比的FP(例如,高于某个可接受阈值),同时高效地使用多个数据处理机器305的资源。
用户设备可以向数据库系统300查询与FP分析有关的信息。例如,用户设备可以请求“最感兴趣的”FP或与特定数据属性或数据对象有关的一组FP。在一些情况下,数据处理机器305可以在本地存储FP挖掘结果。在这些情况下,数据库系统300可以向用于FP分析的数据处理机器305中的每个数据处理机器查询所请求的一个或多个模式。替代性地,数据库系统300可以确定在其数据子集335中接收感兴趣的数据属性的数据库处理机器305,并且可以向所确定的数据库处理机器305查询该一个或多个模式。在其他情况下,数据处理机器305可以将所识别的FP传送到数据库310以用于存储。在这些情况下,用户查询可以在数据库310处集中被处理,并且数据库可以响应于从用户设备接收的查询消息来传送所请求的一个或多个FP。用户设备可以在用户界面中显示查询结果,可以在用户界面中显示与检索到的一个或多个FP有关的特定信息,可以对检索到的FP进行数据处理或分析,或者可以进行这些动作的某种组合。
图4展示了根据本公开的各方面的支持用于分布式系统的FP分析的处理流程400的示例。处理流程400可以包括数据库系统405和多个数据处理机器410(例如,数据处理机器410-a和数据处理机器410-b),该数据处理机器可以是虚拟机、容器或裸金属机器的示例。这些可以是参考图1至图3描述的对应设备的示例。在一些情况下,数据处理机器410可以是数据库系统405的组件。在FP分析期间,数据库系统405可以在数据处理机器410-a与410-b之间分发数据以高效地利用可用存储器和处理资源。在一些情况下,取决于数据处理机器处的可用存储器资源和用于处理的数据量,数据库系统405可以将数据分发到附加数据处理机器410。在一些实施方式中,本文中所描述的处理可以按不同的顺序被进行,或者可以包括由设备进行的一个或多个附加或替代性的处理。
在415处,数据库系统405可以接收用于FP分析的数据集。在一些情况下,数据库系统405可以从数据库检索数据集(例如,基于用户输入、在数据处理机器410上运行的应用或数据库系统405的配置)。这个数据集可以包含多个数据对象,其中每个数据对象包括一些数据属性。每个数据对象可以另外包括ID。在一些情况下,数据对象可以对应于用户或用户设备,并且数据属性可以对应于由用户或用户设备进行的活动、由用户或用户设备进行的活动的参数、或用户或用户设备的特性。在一个特定示例中,数据库系统405可以进行伪实时FP分析过程。在这个示例中,数据库系统405可以周期性地或非周期性地接收用于FP分析的更新的数据集(例如,一天一次、一周一次等)。这些更新的数据集可以包括新数据对象、新数据属性或这两者。例如,新数据属性可以对应于从在伪实时FP分析过程中接收到最后一个数据集以来由用户在时间间隔中进行的活动。
在420处,数据库系统405可以识别在数据库系统405中或与该数据库系统相关联的一组数据处理机器410(例如,数据处理机器410-a和410-b)的可用存储器资源能力。在一些情况下,数据库系统405可以另外识别该一组数据处理机器410的处理能力。数据库系统405可以通过向数据处理机器410传送资源能力请求或通过评估数据处理机器410的资源能力来识别数据处理机器410的存储器和/或处理能力。在一些示例中,识别可用存储器资源可以涉及识别数据处理机器410中的每个数据处理机器的机器特定存储器资源。在一些情况下,基于对可用存储器资源的初始确定,数据库系统405可以使一个或多个附加数据处理机器410加速以应对用于FP分析的数据集的大小。
在425处,数据库系统405可以将数据集的数据对象分组成多个数据子集,其中分组是基于每个数据对象的数据属性的数量和所识别的可用存储器资源能力。数据库系统405可以形成等于数据处理机器410的数量的一定数量的数据子集,其中每个数据子集的大小被设置成使得它可以适合在存储器中并且由该一组数据处理机器410的特定数据处理机器410来处理。数据库系统405可以构造数据子集,该数据子集在数据对象的属性的数量或子集中的数据对象的数量方面可能很大,但非这两者均大。以此方式,数据库系统405可以限制每个数据子集内的组合分析,从而减少与对每个数据子集进行FP分析相关联的处理和存储器成本。在一个示例中,数据库系统405可以将数据对象分组,使得每个数据子集包括小于数据对象阈值的一定数量的数据对象或该子集的每个数据对象的小于数据属性阈值的一定数量的数据属性。通过使用这两个阈值之一(但不必使用这两者)来形成数据子集,数据库系统405可以限制与每个子集相关联的属性和对象之间的组合分析。在另一示例中,数据库系统405可以实现一系列属性共性阈值、一系列属性列表长度阈值、一系列数据子集大小阈值或这些的某种组合以确定多个数据处理机器410的数据子集。
在430处,数据库系统405可以根据数据子集将数据集的数据对象分发到多个数据处理机器410。例如,数据库系统405可以向数据处理机器410-a传送第一数据子集并且向数据处理机器410-b传送第二数据子集。这些数据子集可以具体地分发给数据处理机器410,从而不超过机器的存储器或处理限制。
在435处,数据处理机器410可以对所接收的数据子集单独地进行FP分析过程。例如,数据处理机器410-a可以对第一数据子集进行FP分析过程,并且数据处理机器410-b可以对第二数据子集进行FP分析过程。这种FP分析过程可以涉及每个数据处理机器410为对应于该特定数据处理机器410的数据子集生成包括FP树和链表的简缩数据结构,并且将简缩数据结构本地存储在与该数据处理机器410相关联的外部存储装置或存储器中。这些简缩数据结构可以由数据处理机器410用于FP分析。以此方式,数据库系统405可以高效地利用多个数据处理机器410的存储器和处理资源,同时将FP分析工作跨多个不同的机器分发。
图5示出了根据本公开的各方面的支持用于分布式系统的FP分析的装置505的方框图500。装置505可以包括输入模块510、分发模块515和输出模块545。装置505还可以包括处理器。这些组件中的每个组件可以彼此通信(例如,经由一根或多根总线)。在一些情况下,装置505可以是用户终端、数据库服务器或包含多个计算设备的系统(诸如具有分布式数据处理机器的数据库系统)的示例。
输入模块510可以管理装置505的输入信号。例如,输入模块510可以基于与调制解调器、键盘、鼠标、触摸屏或类似设备的交互来识别输入信号。这些输入信号可以与其他组件或设备处的用户输入或处理相关联。在一些情况下,输入模块510可以利用诸如 或其他已知操作系统等操作系统来应对输入信号。输入模块510可以将这些输入信号的各方面发送到装置505的其他组件以用于处理。例如,输入模块510可以向分发模块515传送输入信号以支持分布式系统的FP分析。在一些情况下,输入模块510可以是如参考图7所描述的输入/输出(I/O)控制器715的组件。
分发模块515可以包括接收组件520、存储器资源识别符525、数据分组组件530、分发组件535和FP分析组件540。分发模块515可以是参考图6和图7描述的分发模块605或710的各方面的示例。
分发模块515和/或其各种子组件中的至少一些子组件可以在硬件、由处理器执行的软件、固件或其任何组合中实现。如果在由处理器执行的软件中实现,则分发模块515和/或其各种子组件中的至少一些子组件的功能可以由被设计为进行本公开中所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、离散栅极或晶体管逻辑、离散硬件组件或其任何组合执行。分发模块515和/或其各种子组件中的至少一些子组件在物理上可以位于各种位置处,包括被分发成使得功能的部分由一个或多个物理设备在不同的物理位置处实现。在一些示例中,分发模块515和/或其各种子组件中的至少一些子组件可以是根据本公开的各个方面的单独且不同的组件。在其他示例中,分发模块515和/或其各种子组件中的至少一些子组件可以与一个或多个其他硬件组件组合,包括但不限于I/O组件、收发器、网络服务器、其他计算设备、在本公开中描述的一个或多个其他组件、或根据本公开的各个方面的其组合。
接收组件520可以在数据库系统(例如,装置505)处接收用于FP分析的数据集,该数据集包括一组数据对象,其中,该一组数据对象中的每个数据对象包括一定数量的数据属性。在一些情况下,接收组件520可以是输入模块510的一方面或组件。
存储器资源识别符525可以识别数据库系统中的一组数据处理机器的可用存储器资源能力。在一些情况下,存储器资源识别符525可以另外识别该一组数据处理机器的可用处理资源能力。
数据分组组件530可以将该一组数据对象分组成一组数据子集,其中,该分组是基于该一组数据对象中的每个数据对象的数据属性的数量和所识别的可用存储器资源能力。
分发组件535可以将该一组数据对象分发到该一组数据处理机器,其中,该一组数据处理机器中的每个数据处理机器接收该一组数据子集中的一个数据子集。FP分析组件540可以在该一组数据处理机器中的每个数据处理机器处单独地对数据子集中的所接收的一个数据子集进行FP分析过程。
输出模块545可以管理装置505的输出信号。例如,输出模块545可以从装置505的其他组件(诸如分发模块515)接收信号,并且可以将这些信号传送到其他组件或设备。在一些特定示例中,输出模块545可以传送输出信号以用于在用户界面中显示、用于存储在数据库或数据储存器中、用于在服务器或服务器群集处的进一步处理或用于在任何数量的设备或系统处的任何其他处理。在一些情况下,输出模块545可以是参考图7描述的I/O控制器715的组件。
图6示出了根据本公开的各方面的支持用于分布式系统的FP分析的分发模块605的方框图600。分发模块605可以是本文中所描述的分发模块515或分发模块710的各方面的示例。分发模块605可以包括接收组件610、存储器资源识别符615、数据分组组件620、分发组件625、FP分析组件630、数据结构生成器635和本地存储组件640。这些模块中的每个模块可以直接或间接地彼此通信(例如,经由一根或多根总线)。
接收组件610可以在数据库系统处接收用于FP分析的数据集,该数据集包括一组数据对象,其中,该一组数据对象中的每个数据对象包括一定数量的数据属性。在一些情况下,基于伪实时FP分析过程,接收组件610可以另外在数据库系统处接收用于FP分析的更新的数据集。在一些示例中,该一组数据对象可以包括用户、用户集、用户设备、用户设备集或其组合。另外或替代性地,数据属性可以对应于由数据对象进行的活动、由数据对象进行的活动的参数、数据对象的特性,或其组合。在一些示例中,数据属性包括二进制值。
存储器资源识别符615可以识别数据库系统中的一组数据处理机器的可用存储器资源能力。在一些情况下,该一组数据处理机器可以包括虚拟机、容器、数据库服务器、服务器集群或其组合。存储器资源识别符615可以基于所识别的可用存储器资源能力来加速该一组数据处理机器以用于FP分析。在一些情况下,如果分发模块605支持伪实时FP分析过程,则存储器资源识别符615可以识别该数据库系统中的该一组数据处理机器的更新的可用存储器资源能力,并且可以基于所识别的更新的可用存储器资源能力和所接收的更新的数据集的大小来确定是否加速数据库系统的一个或多个附加数据处理机器以用于伪实时FP分析过程。伪实时过程可以对应于“实况(live)”过程(例如,其中更新低于某个时间间隔阈值发生,使得该过程可以表现得像不断更新)或周期性地、半周期性地或非周期性地更新的任何过程。
在一些情况下,识别该一组数据处理机器的可用存储器资源能力涉及存储器资源识别符615向该一组数据处理机器传送一组存储器资源能力请求,并且从该一组数据处理机器中的每个数据处理机器接收对每个数据处理机器的可用存储器资源的各自的指示。在一些示例中,存储器资源识别符615可以向数据处理机器的超集(superset)传送存储器资源能力请求的超集,从数据处理机器的超集中的每个数据处理机器接收对数据处理机器的超集中的每个数据处理机器的可用存储器资源的各自的指示,以及基于对该一组数据处理机器的可用存储器资源的指示来选择用于FP分析的该一组数据处理机器。
在其他情况下,存储器资源识别符615可以通过基于该一组数据处理机器中的每个数据处理机器的类型、在该一组数据处理机器中的每个数据处理机器上运行的其他处理、存储在该一组数据处理机器中的每个数据处理机器上的其他数据、或其组合评估该一组数据处理机器处的可用存储器资源,从而识别该一组数据处理机器的可用存储器资源能力。
数据分组组件620可以将该一组数据对象分组成一组数据子集,其中,该分组是基于该一组数据对象中的每个数据对象的数据属性的数量和所识别的可用存储器资源能力。在一些情况下,分组涉及数据分组组件620确定每个数据属性的出现频率,其中分组基于针对每个数据属性的所确定的出现频率。另外或替代性地,该一组数据子集中的每个数据子集可以包括小于数据对象阈值的一定数量的数据对象、或数据子集中的每个数据对象的小于数据属性阈值的一定数量的数据属性。
分发组件625可以将该一组数据对象分发到该一组数据处理机器,其中,该一组数据处理机器中的每个数据处理机器接收该一组数据子集中的一个数据子集。
FP分析组件630可以在该一组数据处理机器中的每个数据处理机器处单独地对该一组数据子集中的所接收的一个数据子集进行FP分析过程。
数据结构生成器635可以在该一组数据处理机器中的每个数据处理机器处生成(例如,作为FP分析过程的一部分)与该一组数据子集中的所接收的一个数据子集对应的包括FP树和链表的简缩数据结构。
本地存储组件640可以在该一组数据处理机器中的每个数据处理机器的本地存储器中存储简缩数据结构。在一些情况下,FP分析组件630可以在该一组数据处理机器中的每个数据处理机器处本地对由本地存储组件640存储的简缩数据结构进行FP挖掘过程。FP分析组件630可以在该一组数据处理机器中的每个数据处理机器处识别作为FP挖掘过程的结果的一组FP。
在一些情况下,接收组件610可以在数据库系统处从用户设备接收指示用于分析的数据属性的用户请求,其中,FP挖掘过程是基于用户请求来进行的。FP分析组件630可以基于FP挖掘过程,响应于用户请求向用户设备传送与所指示的用于分析的数据属性相关联的FP。另外或替代性地,FP分析组件630可以从该一组数据处理机器中的每个数据处理机器传送FP集以用于存储在数据库处。
图7示出了根据本公开的各方面的系统700的示图,该系统包括支持用于分布式系统的FP分析的设备705。设备705可以是如本文所描述的数据库系统或装置505的组件的示例,或包括如本文所描述的数据库系统或装置505的组件。设备705可以包括用于双向数据通信的组件,其包括用于传送和接收通信的组件,包括分发模块710、I/O控制器715、数据库控制器720、存储器725、处理器730和数据库735。这些组件可以经由一根或多根总线(例如,总线740)进行电子通信。
分发模块710可以是如本文中所描述的分发模块515或605的示例。例如,分发模块710可以进行本文中参考图5和图6所描述的任何方法或处理。在一些情况下,分发模块710可以在硬件、由处理器执行的软件、固件或其任何组合中实现。
I/O控制器715可以管理设备705的输入信号745和输出信号750。I/O控制器715还可以管理没有集成到设备705中的外围设备。在一些情况下,I/O控制器715可以表示到外部外围设备的物理连接或端口。在一些情况下,I/O控制器715可以利用操作系统,诸如,或其他已知的操作系统。在其他情况下,I/O控制器715可以表示调制解调器、键盘、鼠标、触摸屏或类似设备或与之交互。在一些情况下,I/O控制器715可以被实现为处理器的一部分。在一些情况下,用户可以经由I/O控制器715或经由通过I/O控制器715控制的硬件组件来与设备705交互。
数据库控制器720可以管理数据库735中的数据存储和处理。在一些情况下,用户可以与数据库控制器720交互。在其他情况下,数据库控制器720可以在没有用户交互的情况下自动运转。数据库735可以是单个数据库、分布式数据库、多个分布式数据库、数据储存器、数据湖或紧急备份数据库的示例。
存储器725可以包括RAM和只读存储器(ROM)。存储器725可以存储包括指令的计算机可读,计算机可执行软件,其中该指令在被执行时致使处理器进行本文中所描述的各种功能。在一些情况下,除其他之外,存储器725可以包含基本输入/输出系统(BIOS),其中该系统可以控制基本硬件或软件操作(诸如,与外围组件或设备的交互)。
处理器730可以包括智能硬件设备(例如,通用处理器、DSP、中央处理单元(CPU)、微控制器、ASIC、FPGA、可编程逻辑器件、离散栅极或晶体管逻辑组件、离散硬件组件、或其任何组合)。在一些情况下,处理器730可以被配置成使用存储器控制器来操作存储器阵列。在其他情况下,存储器控制器可以集成到处理器730中。处理器730可以被配置成执行存储在存储器725中的计算机可读指令以进行各种功能(例如,支持用于分布式系统的FP分析的功能或任务)。
图8示出了根据本公开的各方面的支持用于分布式系统的FP分析的方法800的流程图。方法800的操作可以由如本文中所描述的数据库系统或其组件来实现。例如,方法800的操作可以由如参考图5至图7所描述的分发模块来进行。在一些示例中,数据库系统可以执行一组指令以控制数据库系统的功能元件进行本文中所描述的功能。另外或替代性地,数据库系统可以使用专用硬件来进行本文中所描述的功能的各方面。
在805处,数据库系统可以接收用于FP分析的数据集,该数据集包括一组数据对象,其中,该一组数据对象中的每个数据对象包括一定数量的数据属性。805的操作可以根据本文中所描述的方法来进行。在一些示例中,805的操作的各方面可以由如参考图5至图7所描述的接收组件来进行。
在810处,数据库系统可以识别数据库系统中的一组数据处理机器的可用存储器资源能力。810的操作可以根据本文中所描述的方法来进行。在一些示例中,810的操作的各方面可以由如参考图5至图7所描述的存储器资源识别符来进行。
在815处,数据库系统可以将该一组数据对象分组成一组数据子集,其中,分组是基于该一组数据对象中的每个数据对象的数据属性的数量和所识别的可用存储器资源能力。815的操作可以根据本文中所描述的方法来进行。在一些示例中,815的操作的各方面可以由如参考图5至图7所描述的数据分组组件来进行。
在820处,数据库系统可以将该一组数据对象分发到该一组数据处理机器,其中,该一组数据处理机器中的每个数据处理机器接收该一组数据子集中的一个数据子集。820的操作可以根据本文中所描述的方法来进行。在一些示例中,820的操作的各方面可以由如参考图5至图7所描述的分发组件来进行。
在825处,数据库系统可以在该一组数据处理机器中的每个数据处理机器处单独地对该一组数据子集中的所接收的一个数据子集进行FP分析过程。825的操作可以根据本文中所描述的方法来进行。在一些示例中,825的操作的各方面可以由如参考图5至图7所描述的FP分析组件来进行。
描述了一种用于在数据库系统处进行FP分析的方法。该方法可以包括:在该数据库系统处接收用于FP分析的数据集,该数据集包括一组数据对象,其中,该一组数据对象中的每个数据对象包括一定数量的数据属性;识别在该数据库系统中的一组数据处理机器的可用存储器资源能力;并且将该一组数据对象分组成一组数据子集,其中,该分组是基于该一组数据对象中的每个数据对象的数据属性的数量和所识别的可用存储器资源能力。该方法可以进一步包括:将该一组数据对象分发到该一组数据处理机器,其中,该一组数据处理机器中的每个数据处理机器接收该一组数据子集中的一个数据子集;并且在该一组数据处理机器中的每个数据处理机器处单独地对该一组数据子集中的所接收的一个数据子集进行FP分析过程。
描述了一种用于在数据库系统处进行FP分析的装置。该装置可以包括处理器、与该处理器处于电子通信的存储器、以及存储在该存储器中的指令。该指令可以由该处理器执行以致使该装置:在该数据库系统处接收用于FP分析的数据集,该数据集包括一组数据对象,其中,该一组数据对象中的每个数据对象包括一定数量的数据属性;识别在该数据库系统中的一组数据处理机器的可用存储器资源能力;并且将该一组数据对象分组成一组数据子集,其中,该分组是基于该一组数据对象中的每个数据对象的数据属性的数量和所识别的可用存储器资源能力。该指令可以进一步由该处理器执行以致使该装置:将该一组数据对象分发到该一组数据处理机器,其中,该一组数据处理机器中的每个数据处理机器接收该一组数据子集中的一个数据子集;并且在该一组数据处理机器中的每个数据处理机器处单独地对该一组数据子集中的所接收的一个数据子集进行FP分析过程。
描述了另一种用于在数据库系统处进行FP分析的装置。该装置可以包括:在该数据库系统处接收用于FP分析的数据集的单元,该数据集包括一组数据对象,其中,该一组数据对象中的每个数据对象包括一定数量的数据属性;用于识别在该数据库系统中的一组数据处理机器的可用存储器资源能力的单元;以及将该一组数据对象分组成一组数据子集,其中,该分组是基于该一组数据对象中的每个数据对象的数据属性的数量和所识别的可用存储器资源能力。该装置可以进一步包括:用于将该一组数据对象分发到该一组数据处理机器的单元,其中,该一组数据处理机器中的每个数据处理机器接收该一组数据子集中的一个数据子集;以及用于在该一组数据处理机器中的每个数据处理机器处单独地对该一组数据子集中的所接收的一个数据子集进行FP分析过程的单元。
描述了一种存储用于在数据库系统处的FP分析的代码的非暂时性计算机可读介质。该代码可以包括指令,该指令可由处理器执行以:在该数据库系统处接收用于FP分析的数据集,该数据集包括一组数据对象,其中,该一组数据对象中的每个数据对象包括一定数量的数据属性;识别在该数据库系统中的一组数据处理机器的可用存储器资源能力;并且将该一组数据对象分组成一组数据子集,其中,该分组是基于该一组数据对象中的每个数据对象的数据属性的数量和所识别的可用存储器资源能力。该代码可以进一步包括指令,该指令可由该处理器执行以:将该一组数据对象分发到该一组数据处理机器,其中,该一组数据处理机器中的每个数据处理机器接收该一组数据子集中的一个数据子集;并且在该一组数据处理机器中的每个数据处理机器处单独地对该一组数据子集中的所接收的一个数据子集进行FP分析过程。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例中,在该一组数据处理机器中的每个数据处理机器处单独地进行该FP分析过程可以包括用于以下的操作、特征、单元或指令:在该一组数据处理机器中的每个数据处理机器处生成与该一组数据子集中的所接收的一个数据子集对应的包括FP树和链表的简缩数据结构;并且在该一组数据处理机器中的每个数据处理机器的本地存储器中存储该简缩数据结构。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例中,在该一组数据处理机器中的每个数据处理机器处单独地进行该FP分析过程可以包括用于以下的操作、特征、单元或指令:在该一组数据处理机器中的每个数据处理机器处本地对该简缩数据结构进行FP挖掘过程;并且在该一组数据处理机器中的每个数据处理机器处识别作为该FP挖掘过程的结果的一组FP。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例可以进一步包含用于以下的操作、特征、单元或指令:在该数据库系统处从用户设备接收指示用于分析的数据属性的用户请求,其中,该FP挖掘过程是基于该用户请求来进行的。在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例可以进一步包含用于以下的操作、特征、单元或指令:基于该FP挖掘过程,响应于该用户请求向该用户设备传送与所指示的用于分析的数据属性相关联的FP。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例可以进一步包含用于以下的操作、特征、单元或指令:从该一组数据处理机器中的每个数据处理机器传送该一组FP以用于存储在数据库处。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例中,将该一组数据对象分组成该一组数据子集可以包括用于以下的操作、特征、单元或指令:确定每个数据属性的出现频率,其中,该分组基于针对每个数据属性的所确定的出现频率。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例中,该一组数据子集中的每个数据子集包括可以小于数据对象阈值的一定数量的数据对象、或该数据子集中的每个数据对象的可以小于数据属性阈值的一定数量的数据属性。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例中,识别该一组数据处理机器的该可用存储器资源能力可以包括用于以下的操作、特征、单元或指令:将一组存储器资源能力请求传送至该一组数据处理机器;并且从该一组数据处理机器中的每个数据处理机器接收该一组数据处理机器中的每个数据处理机器的可用存储器资源的相应指示。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例中,将该一组存储器资源能力请求传送至该一组数据处理机器可以包括用于以下的操作、特征、单元或指令:将存储器资源能力请求的超集传送至数据处理机器的超集;并且从该数据处理机器的超集中的每个数据处理机器接收该数据处理机器的超集中的每个数据处理机器的可用存储器资源的各自的指示。在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例可以进一步包含用于以下的操作、特征、单元或指令:基于该一组数据处理机器的可用存储器资源的指示来选择用于该FP分析的该一组数据处理机器。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例中,识别该一组数据处理机器的该可用存储器资源能力可以包括用于以下的操作、特征、单元或指令:基于该一组数据处理机器中的每个数据处理机器的类型、在该一组数据处理机器中的每个数据处理机器上运行的其他处理、存储在该一组数据处理机器中的每个数据处理机器上的其他数据、或其组合来评估在该一组数据处理机器处的可用存储器资源。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例可以进一步包含用于以下的操作、特征、单元或指令:基于所识别的可用存储器资源能力来加速用于该FP分析的该一组数据处理机器。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例可以进一步包含用于以下的操作、特征、单元或指令:基于伪实时FP分析过程,在该数据库系统处接收用于该FP分析的更新的数据集;并且识别在该数据库系统中的该一组数据处理机器的更新的可用存储器资源能力。在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例可以进一步包含用于以下的操作、特征、单元或指令:基于所识别的更新的可用存储器资源能力和该更新的数据集的大小来确定是否加速该数据库系统的一个或多个附加数据处理机器。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例中,该一组数据处理机器包括虚拟机、容器、数据库服务器、服务器集群或其组合。
在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例中,该一组数据对象包括用户、用户集、用户设备、用户设备集或其组合。在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例中,该数据属性对应于由数据对象进行的活动、由该数据对象进行的活动的参数、该数据对象的特性或其组合。在本文中所描述的方法、装置和非暂时性计算机可读介质的一些示例中,该数据属性是二进制值的示例。
应注意,本文中所描述的方法描述可能的实现方式,并且操作和步骤可以重新布置或以其他方式修改,并且其他实现方式是可能的。此外,可以结合来自该方法中的两种或更多种方法的方面。
在本文中结合附图阐述的说明描述了示例配置,并且不表示可被实现或在权利要求的范围内的所有示例。在本文中使用的术语“示例性的”是指“用作示例、实例、或说明”,而不是“优选的”或“优于其他示例的”。详细说明包括为了提供对所描述的技术的理解的具体细节。然而,这些技术可以在没有这些具体细节的情况下实践。在一些实例中,以方框图形式示出了众所周知的结构和设备,以便避免模糊所描述的示例的概念。
在附图中,类似的组件或特征可以具有相同的参考标记。进一步地,相同类型的各种组件可以通过参考标记后接短横线和与类似组件之间进行区分的第二标记来进行区分。如果在说明书中仅使用第一参考标记,则说明可应用于具有相同第一参考标记的类似组件中的任一个,而与第二参考标记无关。
在本文中所描述的信息和信号可以使用各种不同的技艺和技术中的任一种来表示。例如,可以通过电压、电流、电磁波、磁场或磁粒子、光场或粒子或其任何组合来表示可以贯穿上述说明引用的数据、指令、命令、信息、信号、位、符号和芯片。
结合本文中的公开文本所描述的各种说明方框和模块可以利用被设计成进行本文中所描述的功能的通用处理器、DSP、ASIC、FPGA或其他可编程逻辑器件、离散栅极或晶体管逻辑、离散硬件组件、或其任何组合来实现或进行。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合(例如,DSP与微处理器的组合、多个微处理器、与DSP核心结合的一个或多个微处理器、或任何其他此类配置)。
在本文中所描述的功能可以在硬件、由处理器执行的软件、固件或其任何组合中实现。如果在由处理器执行的软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或经由计算机可读介质被传送。其他示例和实现方式落入本公开和所附权利要求的范围内。例如,由于软件的性质,在本文中所描述的功能可以使用由处理器执行的软件、硬件、固件、硬接线、或任何这些的组合来实现。实现功能的特征还可以在物理上位于不同位置处,包括被分发成使得功能的部分在不同物理位置处实现。而且,如本文中所使用的,包括在权利要求中,如在项列表(例如,以“中的至少一个”或“中的一个或多个”为开头的项列表)中所使用的“或”指示包含性列表,使得例如A、B或C中的至少一个的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。而且,如在本文中所使用的,短语“基于”不应被领会为对一组封闭条件的引用。例如,在不脱离本公开文本的范围的情况下,被描述为“基于条件A”的示例性步骤可以基于条件A和条件B这两者。换言之,如在本文中所使用的,短语“基于”应以与短语“至少部分地基于”相同的方式来领会。
计算机可读介质包括非暂时性计算机存储介质和通信介质两者,该通信介质包括有助于计算机程序从一处传送到另一处的任何介质。非暂时性存储介质可以是可以由通用或专用计算机存取的任何可用介质。通过举例的方式而非限制性的,非暂时性计算机可读介质可以包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、致密磁盘(CD)ROM或其他光盘存储装置、磁盘存储装置或其他磁性存储设备、或可以用于载运或存储呈指令或数据结构形式的期望程序代码单元并且可以由通用或专用计算机、或通用或专用处理器存取的任何其他非暂时性介质。而且,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)、或诸如红外线、无线电和微波等无线技术从网站、服务器或其他远程源传送软件,则同轴电缆、光纤电缆、双绞线、DSL、或诸如红外线、无线电和微波等无线技术被包括在介质的定义中。如在本文中所使用的,磁盘和光盘包括CD、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。以上的组合也被包括在计算机可读介质的范围内。
提供本文中的说明以使本领域技术人员能够制作或使用本公开。对本公开的各种修改对于本领域技术人员将是显而易见的,并且在不脱离本公开的范围的情况下,本文中所定义的一般原理可以应用于其他变体。因此,本公开不限于本文中所描述的示例和设计,而是应被赋予与本文中所公开的原理和新颖特征一致的最广范围。
Claims (22)
1.一种用于在数据库系统处进行频繁模式(FP)分析的方法,所述方法包括:
在所述数据库系统处接收用于FP分析的数据集,所述数据集包括多个数据对象,其中,所述多个数据对象中的每个数据对象包括一定数量的数据属性;
识别在所述数据库系统中的多个数据处理机器的可用存储器资源能力;
将所述多个数据对象分组成多个数据子集,其中,所述分组是至少部分地基于所述多个数据对象中的每个数据对象的数据属性的数量和所识别的可用存储器资源能力;
将所述多个数据对象分发到所述多个数据处理机器,其中,所述多个数据处理机器中的每个数据处理机器接收所述多个数据子集中的一个数据子集;并且
在所述多个数据处理机器中的每个数据处理机器处单独地对所述多个数据子集中的所接收的一个数据子集进行FP分析过程。
2.根据权利要求1所述的方法,其中,在所述多个数据处理机器中的每个数据处理机器处单独地进行所述FP分析过程包括:
在所述多个数据处理机器中的每个数据处理机器处生成与所述多个数据子集中的所接收的一个数据子集对应的包括FP树和链表的简缩数据结构;并且
在所述多个数据处理机器中的每个数据处理机器的本地存储器中存储所述简缩数据结构。
3.根据权利要求2所述的方法,其中,在所述多个数据处理机器中的每个数据处理机器处单独地进行所述FP分析过程进一步包括:
在所述多个数据处理机器中的每个数据处理机器处本地对所述简缩数据结构进行FP挖掘过程;并且
在所述多个数据处理机器中的每个数据处理机器处识别作为所述FP挖掘过程的结果的一组FP。
4.根据权利要求3所述的方法,其进一步包括:
在所述数据库系统处从用户设备接收指示用于分析的数据属性的用户请求,其中,所述FP挖掘过程至少部分地基于所述用户请求来进行;并且
至少部分地基于所述FP挖掘过程,响应于所述用户请求向所述用户设备传送与所指示的用于分析的数据属性相关联的FP。
5.根据权利要求3所述的方法,其进一步包括:
从所述多个数据处理机器中的每个数据处理机器传送所述一组FP以用于存储在数据库处。
6.根据权利要求1至5中任一项所述的方法,其中,将所述多个数据对象分组成所述多个数据子集进一步包括:
确定每个数据属性的出现频率,其中,所述分组是至少部分地基于针对每个数据属性所确定的出现频率。
7.根据权利要求1至6中任一项所述的方法,其中,所述多个数据子集中的每个数据子集包括小于数据对象阈值的一定数量的数据对象、或所述数据子集中的每个数据对象的小于数据属性阈值的一定数量的数据属性。
8.根据权利要求1至7中任一项所述的方法,其中,识别所述多个数据处理机器的所述可用存储器资源能力包括:
将多个存储器资源能力请求传送至所述多个数据处理机器;并且
从所述多个数据处理机器中的每个数据处理机器接收所述多个数据处理机器中的每个数据处理机器的可用存储器资源的各自的指示。
9.根据权利要求8所述的方法,其中,将所述多个存储器资源能力请求传送至所述多个数据处理机器进一步包括:
将存储器资源能力请求的超集传送至数据处理机器的超集;
从所述数据处理机器的超集中的每个数据处理机器接收所述数据处理机器的超集中的每个数据处理机器的可用存储器资源的各自的指示;并且
至少部分地基于所述多个数据处理机器的可用存储器资源的指示来选择用于所述FP分析的所述多个数据处理机器。
10.根据权利要求1至7中任一项所述的方法,其中,识别所述多个数据处理机器的所述可用存储器资源能力包括:
至少部分地基于所述多个数据处理机器中的每个数据处理机器的类型、在所述多个数据处理机器中的每个数据处理机器上运行的其他处理、存储在所述多个数据处理机器中的每个数据处理机器上的其他数据、或其组合来评估在所述多个数据处理机器处的可用存储器资源。
11.根据权利要求1至10中任一项所述的方法,其进一步包括:
至少部分地基于所识别的可用存储器资源能力来加速用于所述FP分析的所述多个数据处理机器。
12.根据权利要求1至11中任一项所述的方法,其进一步包括:
至少部分地基于伪实时FP分析过程,在所述数据库系统处接收用于所述FP分析的更新的数据集;
识别在所述数据库系统中的所述多个数据处理机器的更新的可用存储器资源能力;并且
至少部分地基于所识别的更新的可用存储器资源能力和所述更新的数据集的大小来确定是否加速所述数据库系统的一个或多个附加数据处理机器。
13.根据权利要求1至12中任一项所述的方法,其中,所述多个数据处理机器包括虚拟机、容器、数据库服务器、服务器集群,或其组合。
14.根据权利要求1至13中任一项所述的方法,其中,所述多个数据对象包括用户、用户集、用户设备、用户设备集,或其组合。
15.根据权利要求1至14中任一项所述的方法,其中,所述数据属性对应于由数据对象进行的活动、由所述数据对象进行的活动的参数、所述数据对象的特性,或其组合。
16.根据权利要求15所述的方法,其中,所述数据属性包括二进制值。
17.一种用于在数据库系统处进行频繁模式(FP)分析的装置,其包括:
用于在所述数据库系统处接收用于FP分析的数据集的单元,所述数据集包括多个数据对象,其中,所述多个数据对象中的每个数据对象包括一定数量的数据属性;
用于识别在所述数据库系统中的多个数据处理机器的可用存储器资源能力的单元;
用于将所述多个数据对象分组成多个数据子集的单元,其中,所述分组是至少部分地基于所述多个数据对象中的每个数据对象的数据属性的数量和所识别的可用存储器资源能力;
用于将所述多个数据对象分发到所述多个数据处理机器的单元,其中,所述多个数据处理机器中的每个数据处理机器接收所述多个数据子集中的一个数据子集;以及
用于在所述多个数据处理机器中的每个数据处理机器处单独地对所述多个数据子集中的所接收的一个数据子集进行FP分析过程的单元。
18.根据权利要求17所述的装置,其进一步包括:
用于在所述多个数据处理机器中的每个数据处理机器处生成与所述多个数据子集中的所接收的一个数据子集对应的包括FP树和链表的简缩数据结构的单元;以及
用于在所述多个数据处理机器中的每个数据处理机器的本地存储器中存储所述简缩数据结构的单元。
19.根据权利要求17所述的装置,其中,所述多个数据子集中的每个数据子集包括小于数据对象阈值的一定数量的数据对象、或所述数据子集中的每个数据对象的小于数据属性阈值的一定数量的数据属性。
20.根据权利要求17至19之一所述的装置,其包括处理器、与所述处理器处于电子通信的存储器、以及存储在所述存储器中并且能由所述处理器执行以致使所述装置进行根据权利要求1至16之一所述的方法的步骤的指令。
21.一种或多种计算机可读介质,其上存储有一个或多个程序,其中,所述一个或多个程序的执行致使一个或多个计算机实施根据权利要求1至16之一所述的方法。
22.一种或多种程序,其适用于在一个或多个计算机上执行,其中,所述一个或多个程序的执行致使一个或多个计算机实施根据权利要求1至16之一所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862676526P | 2018-05-25 | 2018-05-25 | |
US62/676,526 | 2018-05-25 | ||
US16/119,955 US20190362016A1 (en) | 2018-05-25 | 2018-08-31 | Frequent pattern analysis for distributed systems |
US16/119,955 | 2018-08-31 | ||
PCT/US2019/029584 WO2019226279A1 (en) | 2018-05-25 | 2019-04-29 | Frequent pattern analysis for distributed systems |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112204543A true CN112204543A (zh) | 2021-01-08 |
Family
ID=68614634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980035331.XA Pending CN112204543A (zh) | 2018-05-25 | 2019-04-29 | 用于分布式系统的频繁模式分析 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20190362016A1 (zh) |
EP (1) | EP3803625A1 (zh) |
JP (1) | JP7313382B2 (zh) |
CN (1) | CN112204543A (zh) |
WO (1) | WO2019226279A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11036741B2 (en) * | 2019-03-01 | 2021-06-15 | International Business Machines Corporation | Association rule mining system |
US11431663B2 (en) | 2019-10-24 | 2022-08-30 | Salesforce, Inc. | Technologies for predicting personalized message send times |
US11630826B2 (en) * | 2020-05-29 | 2023-04-18 | Rn Technologies, Llc | Real-time processing of a data stream using a graph-based data model |
JP2023000904A (ja) * | 2021-06-18 | 2023-01-04 | トヨタ自動車株式会社 | パターン更新装置、パターン更新方法、及びパターン更新プログラム |
US11593410B1 (en) * | 2021-09-30 | 2023-02-28 | Lucid Software, Inc. | User-defined groups of graphical objects |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030028531A1 (en) * | 2000-01-03 | 2003-02-06 | Jiawei Han | Methods and system for mining frequent patterns |
US20120278346A1 (en) * | 2011-04-27 | 2012-11-01 | Microsoft Corporation | Frequent Pattern Mining |
CN103946831A (zh) * | 2011-11-25 | 2014-07-23 | 国际商业机器公司 | 用于模板的成本感知的选择以供应共享资源的系统、方法和程序产品 |
CN106570128A (zh) * | 2016-11-03 | 2017-04-19 | 南京邮电大学 | 一种基于关联规则分析的挖掘算法 |
CN107229751A (zh) * | 2017-06-28 | 2017-10-03 | 济南大学 | 一种面向流式数据的并行增量式关联规则挖掘方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09185590A (ja) * | 1995-12-28 | 1997-07-15 | Hitachi Ltd | データ分割方法 |
US7010521B2 (en) * | 2002-05-13 | 2006-03-07 | Netezza Corporation | Optimized database appliance |
US9607073B2 (en) | 2014-04-17 | 2017-03-28 | Ab Initio Technology Llc | Processing data from multiple sources |
JP6613763B2 (ja) | 2015-09-29 | 2019-12-04 | 日本電気株式会社 | 情報処理装置、情報処理方法、及び、プログラム |
US10200390B2 (en) * | 2016-02-29 | 2019-02-05 | Palo Alto Networks, Inc. | Automatically determining whether malware samples are similar |
-
2018
- 2018-08-31 US US16/119,955 patent/US20190362016A1/en not_active Abandoned
-
2019
- 2019-04-29 EP EP19723944.5A patent/EP3803625A1/en not_active Ceased
- 2019-04-29 JP JP2020565737A patent/JP7313382B2/ja active Active
- 2019-04-29 CN CN201980035331.XA patent/CN112204543A/zh active Pending
- 2019-04-29 WO PCT/US2019/029584 patent/WO2019226279A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030028531A1 (en) * | 2000-01-03 | 2003-02-06 | Jiawei Han | Methods and system for mining frequent patterns |
US20120278346A1 (en) * | 2011-04-27 | 2012-11-01 | Microsoft Corporation | Frequent Pattern Mining |
CN103946831A (zh) * | 2011-11-25 | 2014-07-23 | 国际商业机器公司 | 用于模板的成本感知的选择以供应共享资源的系统、方法和程序产品 |
CN106570128A (zh) * | 2016-11-03 | 2017-04-19 | 南京邮电大学 | 一种基于关联规则分析的挖掘算法 |
CN107229751A (zh) * | 2017-06-28 | 2017-10-03 | 济南大学 | 一种面向流式数据的并行增量式关联规则挖掘方法 |
Non-Patent Citations (2)
Title |
---|
J. CORBALAN, X. MARTORELL AND J. LABARTA: "Performance-driven processor allocation", IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, vol. 16, no. 7, 31 July 2005 (2005-07-31), pages 599 - 611, XP011133204, DOI: 10.1109/TPDS.2005.85 * |
刘浩,等: "物流信息技术", 30 April 2007, 中国商业出版社, pages: 233 - 234 * |
Also Published As
Publication number | Publication date |
---|---|
JP7313382B2 (ja) | 2023-07-24 |
WO2019226279A1 (en) | 2019-11-28 |
US20190362016A1 (en) | 2019-11-28 |
EP3803625A1 (en) | 2021-04-14 |
JP2021525907A (ja) | 2021-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230041672A1 (en) | Enterprise data processing | |
US11275768B2 (en) | Differential support for frequent pattern analysis | |
CN112204543A (zh) | 用于分布式系统的频繁模式分析 | |
US11921750B2 (en) | Database systems and applications for assigning records to chunks of a partition in a non-relational database system with auto-balancing | |
US20130191523A1 (en) | Real-time analytics for large data sets | |
US10496645B1 (en) | System and method for analysis of a database proxy | |
US11366821B2 (en) | Epsilon-closure for frequent pattern analysis | |
US11556595B2 (en) | Attribute diversity for frequent pattern analysis | |
CN107016115B (zh) | 数据导出方法、装置、计算机可读存储介质及电子设备 | |
CN101916281B (zh) | 并行计算系统及去重计数方法 | |
US11108717B1 (en) | Trends in a messaging platform | |
US20240296162A1 (en) | Generating overlap queries on a database system | |
CN109947736B (zh) | 实时计算的方法和系统 | |
CN112182138A (zh) | 一种目录编制方法和装置 | |
US11294917B2 (en) | Data attribution using frequent pattern analysis | |
CN107665241B (zh) | 一种实时数据多维度去重方法和装置 | |
CN108345699A (zh) | 获取多媒体数据的方法、装置及存储介质 | |
Arora et al. | Big data technologies: brief overview | |
Hashem et al. | A review of modeling toolbox for BigData | |
CN113760521B (zh) | 一种虚拟资源的分配方法和装置 | |
CN112925859B (zh) | 数据存储方法和装置 | |
US11500908B1 (en) | Trends in a messaging platform | |
Velinov et al. | Analysis of Apache Logs Using Hadoop and Hive | |
CN117667935A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN115827635A (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 | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Shuo Power Co. Address before: California, USA Applicant before: SALESFORCE.COM, Inc. |
|
CB02 | Change of applicant information |