CN108780466A - 用于计算近实时数据聚集的搜索和检索数据处理系统 - Google Patents
用于计算近实时数据聚集的搜索和检索数据处理系统 Download PDFInfo
- Publication number
- CN108780466A CN108780466A CN201680075432.6A CN201680075432A CN108780466A CN 108780466 A CN108780466 A CN 108780466A CN 201680075432 A CN201680075432 A CN 201680075432A CN 108780466 A CN108780466 A CN 108780466A
- Authority
- CN
- China
- Prior art keywords
- data
- record
- data record
- event
- aggregation
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
- G06F11/3082—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- 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/21—Design, administration or maintenance of 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/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Abstract
一种用于处理数据的数据处理系统所进行的方法,所述方法包括:间歇地接收来自一个或多个数据流的数据,其中所接收到的数据包括数据记录;检测所接收到的数据记录中的两个或多个特定数据记录,其中所检测到的两个或多个特定数据记录各自包括特定标识符;针对该特定标识符,创建数据记录的集合;针对数据记录的集合中所包括的至少一个特定数据记录,搜索数据记录以获得数据的历史聚集;以及计算组合数据;通过将所述组合数据插入数据记录的字段中、并且通过将来自所述集合中的数据记录至少之一的数据插入到数据记录的另一字段中来修改数据记录;基于应用规则,向存储器写入用于发起一个或多个动作的一个或多个指令。
Description
技术领域
本说明书涉及特别适于提供从分布在网络中的数据源的数据检索的方法和数据结构。
背景技术
在一个示例中,执行应用的系统通过检索数据仓库(例如,与物流中心、分布式机械、移动通信或零售商店相关的数据仓库)中所储存的数据并分批聚集该数据,来聚集数据。这些应用通常称为批应用,这是因为它们将所接收到的数据(分批)储存在数据仓库中、然后将该数据从数据仓库检索出来以计算聚集,从而在聚集数据时导致延迟。另外,由于涉及大量数据,因此这些应用难以聚集实时数据(和/或仓储数据)。
参考图1A,环境2包括不同的应用(例如,引擎),以实现针对批数据的不同类型的应用。在该示例中,将来自数据源3的数据储存在企业数据仓库(EDW)4中。物流应用5a、5b、5c、5d(各自实现不同的操作、规则或应用)各自分别从EDW 4中检索适合该应用的数据。这些不同应用5a、5b、5c、5d各自作用于不同的数据类型和数据流,因此从EDW 4中检索合适数据。这些不同应用5a、5b、5c、5d各自可以执行许多操作、规则和应用。各应用使用相同的通用工作流。
在另一示例中,例如如美国专利9,002,770中所描述的规则的用户界面使得用户(例如,使用者)能够定义应用中所使用的规则(例如,SMS使用>40),而无需写入用以访问数据库中的合适数据记录的计算机代码以检索规则的相关数据。一般地,当用户定义应用时,他/她(例如,在电子表格中)写出规则,然后将电子表格发送至计算机程序员以写入用以实现该规则的代码。利用规则的用户界面,用户可以在该用户界面中仅选择规则(例如,或者表示规则的图标)并指定针对该规则的值或条件。系统被配置为生成所需的指令以检索由事件指定的合适数据。通过规则的用户界面,用户可以编辑规则,而无需雇用程序员来编辑规则。
发明内容
在一些示例中,一种用于处理数据的数据处理系统所进行的方法,所述方法包括:间歇地接收来自一个或多个数据流的数据,其中所接收到的数据包括数据记录;随着继续接收来自所述一个或多个数据流的数据,检测所接收到的数据记录中的两个或多个特定数据记录,其中所检测到的两个或多个特定数据记录各自包括特定标识符,针对该特定标识符,创建包括所检测到的两个或多个特定数据记录的数据记录的集合;针对数据记录的所述集合中所包括的至少一个特定数据记录,搜索数据记录以获得与所述特定标识符相关联的数据的历史聚集,其中所述历史聚集是从先前时间段预计算出的数据聚集,以及基于所述至少一个特定数据记录和所述历史聚集来计算组合数据,通过将所述组合数据插入数据记录的字段中、并且通过将来自所述集合中的数据记录至少之一的数据插入到该数据记录的另一字段中,来修改该数据记录;通过对修改后的数据记录应用一个或多个规则,来处理所述修改后的数据记录;基于应用所述规则,向存储器写入用于发起一个或多个动作的一个或多个指令;以及将所述一个或多个指令发布至队列以发起所述一个或多个动作。一个或多个计算机的系统可以被配置为通过在系统上安装在操作中使系统进行特定动作的软件、固件、硬件或它们的组合,来进行这些特定操作或动作。一个或多个计算机程序可被配置为通过包括在由数据处理设备执行时使该设备执行特定操作或动作的指令来执行该操作或动作。
在这方面,将来自所述集合中的数据记录至少之一的数据插入到该数据记录的另一字段中包括:将来自所述集合中所包括的所述至少一个特定数据记录的数据插入到通过插入而修改的数据记录的另一字段中。数据记录的所述集合是包括来自数据记录的数据的第一数据记录,以及所述方法还包括:收集多个数据记录;将所述数据记录发布至单个队列;从所述队列中检测所述两个或多个特定数据记录;将所述两个或多个特定数据记录一起联接到所述第一数据记录中,其中所述两个或多个特定数据记录包括表示为不同类型的事件的数据;以及利用针对所述至少一个特定数据记录的组合数据来增强所述第一数据记录。所述先前时间段是进行检测之前的时间。所述动作还包括:向所述第一数据记录附加与所述第一数据记录中所包括的特定事件相关联的客户的客户简档数据;以及向所述第一数据记录附加具有针对所述特定事件的历史聚集的可附加查找文件即ALF。
在这方面,计算组合数据包括:向所述历史聚集添加增量数据,其中所述增量数据包括从计算出所述历史聚集的时间到近当前时间的数据,所述近当前时间距当前时间在一分钟内;以及基于所述增量数据的添加,产生数据的近实时聚集。根据权利要求1所述的方法,还包括:从用户的客户端装置接收表示用于定义应用的一个或多个规则的数据;基于所接收到的数据生成用于定义应用的一个或多个规则;以及基于执行所述一个或多个规则,针对间歇地接收到的一个或多个数据流实现该应用。接收所述一个或多个数据流包括:接收具有表示第一类型的事件的数据的第一数据流;以及接收具有表示第二类型的事件的数据的第二数据流。
在这方面,还包括:针对所述一个或多个指令中所包括的发布动作触发器执行一个或多个应用。数据记录包括事件。搜索包括在数据存储库中进行搜索或者在存储器中进行搜索。
上述的全部或部分可以被实现为计算机程序产品,所述计算机程序产品包括储存在一个或多个非暂时性机器可读存储介质和/或一个或多个计算机可读硬件存储装置上、并且能够在一个或多个处理装置上执行的指令,其中所述一个或多个非暂时性机器可读存储介质和/或一个或多个计算机可读硬件存储装置是硬盘驱动器、诸如动态随机存取存储器等的随机存取存储器存储装置、机器可读硬件存储装置、以及其它类型的非暂时性机器可读存储装置。上述的全部或部分可以被实现为可包括一个或多个处理装置以及用以储存可执行指令以实现所述功能的存储器的设备、方法或电子系统。
在以下附图和说明书中详细阐述了一个或多个实施例。根据说明书和附图以及权利要求书,这里所述的技术的其它特征、目的和优点将是明显的。
附图说明
图1A是作用于不同数据流中的批数据的不同引擎的图。
图1B是实现各种应用并且作用于批数据和实时数据的一个引擎的图。
图1C是使用宽记录实时执行的图。
图2是用于计算近实时事件聚集的系统的图。
图3是示例性事件记录。
图4是数据流图的图。
图5~14是来自事件选项板的示例性图形用户界面。
图15和17各自是流程图。
图16是计算近实时事件聚集的图。
具体实施方式
符合本发明的系统间歇地(例如,定期地或连续地)从各种数据源接收数据。随着间歇地接收到数据,系统(例如,通过将所接收到的数据多次发布到队列)将数据收集到单个数据流中,并且例如通过生成包括被多次发布到队列的数据的宽记录来在单个宽记录中近实时地(例如,在一毫秒内、在两毫秒内,等等)将数据联接在一起。数据是从数据源近实时地收集到的,而非从数据仓库中(分批)检索到的。这种收集到的数据包括事件,其例如包括包含指示动作发生(例如,拨打语音电话或语音电话的长度)的数据的记录、或者指示动作发生的数据。通过将来自这些不同数据源的数据联接在一起,宽记录包括不同类型的事件(例如,短消息服务(SMS)事件、语音事件和数据事件等)。系统使该宽记录富集事件聚集、非事件数据、状态数据以及诸如客户数据(例如,客户简档)和账户数据等的各种维度。一般地,维度包括关于与事件相关联的实体(例如,客户和经销商等)的数据。一般地,事件聚集包括指示在指定时间段内的聚集中发生的事件的量的数据。一般地,非事件数据包括指示事件未发生的数据。例如,非事件数据可以指定自用户上次发送文本或SMS消息以来的时间量。一般地,状态数据包括指示特定应用(例如,活动)、实现或执行的状态(例如,进展)的数据。
系统使得能够针对单个宽记录执行在多个级别(例如,订户(客户)级别和经销商(零售商)级别等)上操作的多个不同应用,而非针对从数据存储库分批接收的数据执行正执行的级别类型的各应用。在该示例中,这些级别各自表示特定类型的实体,诸如移动装置订户和移动装置经销商等。为了建立这些“任意事件”应用,系统包括事件选项板,该事件选项板包括用户(例如使用者)访问和查看在定义一系列规则(例如,多个规则)时(例如,包括规则的用户界面的规则环境)可以使用的预定义事件的集合、事件聚集、非事件以及应用状态所用的界面。即,事件选项板指定事件和数据的特定布置,使得规则的用户界面可用于允许所包括的或者基于这些事件的适当规则被编写(author)。例如,(例如,用于定义规则的规则环境)可以使用事件选项板来定义程序的规则,其中该规则指定:当客户发送了二十条SMS消息时,向客户提供五美元信用额。在该示例中,用户可以在定义规则时使用SMS消息的事件聚集。由于事件选项板包括可用于在各个级别和不同类型的事件上操作的各种类型的应用的事件的集合以及事件聚集,因此用户可以使用事件选项板来建立各自跨越多种类型的事件的多个不同类型的应用。在该示例中,系统生成事件记录,其中该事件记录包括事件选项板中所定义的全部事件(或至少部分事件)的值。在示例中,事件选项板中所定义的事件的值包括在事件记录的子记录(例如,记录所包括的记录)中。例如,事件选项板定义订户简档事件,其中这些订户简档事件储存在事件记录的简档子记录中。在示例中,事件记录是事件选项板中所包括的全部事件的宽记录。在该示例中,事件记录包括具有数据项的数据记录。
相对于在系统必须从数据仓库或数据库检索应用执行的数据的情况下的处理时间,系统通过针对预填充(或预产生)的事件记录执行应用来提供实时的且利用实时数据的应用的快速处理。产生事件记录的这种处理导致数据的非标准化,其中相同的数据有目的性地分散在多个记录(例如,事件记录、以及用于储存数据的数据库记录等)中。数据的非标准化提供了应用执行的提高的处理速度,这是因为系统不再需要执行数据库查询来检索数据。
为了使得能够针对实时数据流实时地执行包括事件选项板中的事件的应用,系统产生事件选项板中的全部事件的宽记录,以减少与在执行应用时必须进行相关数据的数据库查询相关联的延迟、并且减少与在应用执行期间进行富集(例如,在应用执行期间计算聚集)相关联的延迟。相反,针对实时数据流中所接收到的各事件,预建立包括完整的事件选项板和富集(诸如实时聚集等)的事件记录,并且将该事件记录发布至队列以供应用执行用,从而生成具有低延迟的多事件的任意事件应用、并且使得该应用能够与数据库查询和查找无关地执行。另外,通过生成包括(与特定关键字或标识符相关联的)全部事件的这种单个记录(例如,宽记录),系统提供了增加的灵活性,这是因为记录可被应用至全部的引擎和应用,而非必须针对各应用进行数据库查询和检索。在示例中,该关键字或标识符包括用户标识符(ID)关键字。在该示例中,系统收集针对特定用户的全部事件并基于用户ID关键字对这些事件进行分组。另外,该系统提供了增加的灵活性,这是因为引擎无需被预配置为从EDW检索特定类型的数据和/或查询EDW内的记录中的特定字段。相反,系统生成宽记录(其包括与特定关键字(举例而言,诸如上述的用户ID关键字等)相关联的全部事件),然后可以针对宽记录中的数据执行应用或引擎,从而使得能够基于宽记录中所包括的数据来使应用执行“动态发生(onthe fly)”。
参考图1B,系统6从数据源7(例如,分布在网络中的数据源)接收数据并实现收集处理9以例如通过将数据多次发布到队列来将数据收集到单个数据流中。根据被多次发布到队列的数据,系统6生成数据中所包括的事件的宽记录,如以下更详细所述。在该示例中,系统6在从数据源7(例如,与物流中心、分布式机械、移动通信或零售商店相关的数据源)接收到数据时,近实时地收集该数据。作为收集的一部分,系统6将数据(或数据的一部分)储存在EDW 8中。在从数据源7接收到数据时,在近实时数据中发生数据本身的收集(例如,而不是随后从数据仓库检索到数据)。由于宽记录是根据所收集到的该数据而生成的(而不是根据从数据仓库检索到的数据而生成的),因此在收集到数据时近实时地生成并更新宽记录。系统6还包括检测和动作引擎10,用于向所收集到的数据(例如,宽记录中的数据)应用规则,检测所收集到的数据中的一个或多个部分满足规则的一个或多个条件,并且执行适当的动作。在该说明性示例中,检测和动作引擎10执行针对应用11a、11b、11c、11d的规则,其中这些应用是不同类型的应用。应用11a、11b、11c、11d各自可以被实现为使用用于定义规则的环境进行配置的数据流图。由于检测和动作引擎10针对单个宽记录而执行,因此该检测和动作引擎10能够针对一个数据流(例如,宽记录)实现各种不同的应用11a、11b、11c、11d,而非针对适合不同应用中的各应用的不同数据流执行不同的引擎。
参考图1C,基于事件的应用12在其执行时使用宽记录,其中该宽记录是使用上述技术而生成的。在该示例中,应用12基于针对一个或多个特定订户的事件记录中所包括的事件来指定各种事件触发器和动作。应用12包括各种决策点(例如,“订户消费了50条SMS消息?”)。对于应用正期望的特定订户,检测和动作引擎10基于针对该订户的事件记录中所包括的事件(或事件的缺失)、并基于应用中的订户状态(例如,“应用状态”),来决定要遍历应用12的哪个分支。一般地,应用状态是指订户在应用的执行期间已转变至的特定组件(例如,特定事件触发器或特定动作)。例如,应用状态指定针对特定订户当前正在执行应用中的哪个事件触发器或动作。在一些示例中,检测和动作引擎10在选择应用12中的分支之前等待指定的时间段。通过等待这些指定的时间段,检测和动作引擎10分析被插入到事件记录中的新事件。
在该示例中,应用12包括事件触发器19,其中该事件触发器19指定:在激活针对特定订户的服务时,检测和动作引擎10进行用于监视特定订户在两天内所消费的SMS消息的量的发起动作20。在该示例中,事件触发器19是应用12正执行的规则的先决条件。在满足事件触发器19时,检测和动作引擎10执行发起动作20。检测和动作引擎10通过检测宽记录中的激活事件来确定特定订户何时满足事件触发器19,并(经由订户ID)确定与激活事件相关联的订户。
在该示例中,当(例如,如事件记录中的SMS使用事件聚集所指定的)订户在过去两天内消费了至少50条SMS消息时,执行事件触发器13。事件触发器13执行所提出的再加载动作14,这致使检测和动作引擎10提示特定订户进行再加载。当订户进行再加载时,利用表示再加载的事件来更新针对该特定订户的事件记录中的条目。事件记录的这种更新使应用12执行事件触发器15,其中事件触发器15指定:在成功再加载时,执行动作16以将分组提议SMS发送至订户。一般地,分组提议是购买分组或捆绑式服务的提议。
当用户发送针对分组提议SMS的响应时,利用表示该响应并且表示在不到三小时内接收到的响应的事件来更新事件记录。检测和动作引擎10检测事件记录的更新,并且使事件触发器17执行。事件触发器17指定:在不到十小时内接收到响应的情况下,执行(针对该特定订户)结束应用的动作18,因为特定订户完成了分组购买。在事件记录中的针对特定订户的条目指定该特定订户没有发送针对动作16的响应的情况下,应用12还指定针对该特定订户结束应用的动作25。
在示例中,事件记录中的针对特定订户的条目例如通过再加载事件的不存在或者通过指定再加载的不存在的派生事件,来指定订户未进行再加载。在该示例中,应用12指定等待三小时的事件触发器23,以例如监视用户在未来三小时内是否进行再加载。在三小时后,事件触发器23使得进行用于将针对再加载的提醒SMS发送至订户的提醒动作24。如果订户不对提醒SMS进行响应,则应用12指定针对该特定订户结束应用的动作26。
响应于动作20,针对特定订户的条目可以指定该订户在过去两天内没有消费至少50条SMS。该条目可以通过如下事件来进行这样的指定:用于指定没有消费50条SMS的派生事件、或者用于指定消费不到50条SMS的SMS使用聚集事件。在该示例中,应用12包括等待5天、然后实现发送提醒SMS的动作22的事件触发器21。如果(例如,如事件记录中的针对该订户的事件所指定的)在发送提醒之后、订户在另外5天内仍未消费50条SMS,则应用12指定进行如下动作28的事件触发器27:向客户补救团队发送警告(例如,以向该团队通知消费者没有使用服务)并且针对该特定订户结束应用。
参考图2,环境30在接收到事件时近实时地生成不同类型的事件的宽记录。在该示例中,环境30包括收集检测动作(CDA)系统32,用于收集事件、检测事件中的(如规则所指定的)一个或多个预定义条件的满足,并且对所检测到的事件执行适当的动作。在该示例中,CDA系统32还是用于在数据仓库38(和/或CDA系统32的存储器)中搜索数据记录以检索批数据40并且还检索(例如用于增强所接收到的实时数据的)简档数据的搜索和检索系统。在示例中,CDA系统32处理每天为五千万个订户处理超过二十亿个事件,并计算各事件类型的聚集。在该示例中,CDA系统32从数据源36接收实时数据流34。如这里所使用的,实时包括但不限于近实时和大致实时,对此,在接收或访问数据时与实际发生该数据的处理时之间可能存在时间滞后,但是仍然在接收到数据时实时地处理该数据。CDA系统32从实时数据流34间歇地接收包括事件的数据。所接收到的数据还包括不同类型的事件。在示例中,实时数据流中的第一个数据流包括表示为第一种类型的事件的数据,并且实时数据流中的第二个数据流包括表示为第二种类型的事件的数据。CDA系统32包括用于收集实时数据流34中所接收到的不同类型的事件的收集引擎42。由于收集引擎42作用于实时事件而非从EDW提取出的数据,因此CDA系统32能够提供针对事件(在事件被接收到时)的即时响应以及针对事件的近实时聚集,从而还提供应用结果的即时可见性。收集引擎42将事件收集到单个数据流中,并将这些事件多次发布到队列。在示例中,收集引擎42通过如美国专利6,654,907中所述的使用连续流收集事件以连续地处理所接收到的事件,上述文献的全部内容通过引用而并入于此。
随着来自实时数据流34的事件继续被收集引擎42间歇地接收到,收集引擎42(例如,在队列中)检测共享通用特性(诸如包括在事件选项板中或者与特定用户属性(例如,用户标识符(ID)和用户关键字等)相关联)的两个或多个特定事件。在示例中,通用特性是针对两个或多个特定事件的特定字段(例如,用户ID字段)的相应值,其中这两个或多个特定事件具有指定事件类型、以及/或者这两个或多个特定事件通过事件选项板来指定。
收集引擎42创建包括所检测到的两个或多个特定事件的事件集合。在该示例中,收集引擎42生成包括所检测到的事件的集合的事件记录46。收集引擎42还将富集和聚集44插入到事件记录46(例如,宽记录)中。一般地,富集是储存在数据仓库中(先前已经接收到或预计算出)的、与事件相关的数据。例如,事件可以指定用户已发送的SMS消息的数量,并且还可以包括该用户的用户ID。在该示例中,数据仓库38储存包括相同用户ID(或者与相同用户ID相关联)的数据。储存的该数据包括用户简档数据,后者例如包括用户的最新手机类型。收集引擎42将与事件记录46中所包括的特定事件相关联的客户的客户简档数据附加至或插入至事件记录46中。
收集引擎42还计算事件记录46中所包括的一个或多个事件的一个或多个聚集(即,事件聚集)。对于(如事件中包括的用户ID所指定的)特定用户的特定事件,收集引擎42从数据仓库38中检索针对该特定用户的特定事件的批数据40。批数据40包括与特定事件相关的历史聚集,其中该历史聚集是从先前时间段(例如,从开始时间到进行检测事件之前的特定时间的时间段)预计算出的事件数据的聚集。一般地,事件数据包括指示事件的特定特性、属性或特征(例如,数据使用事件的数据使用量)的数据。例如,事件的特性包括(事件中所包括的)特定字段、事件中所包括的字段的特定值、事件中所包括的或者与事件相关联的特定用户ID关键字、特定字段的不存在、或者针对事件的特定字段的值等。基于针对特定用户的特定事件的实时数据流34中所包括的数据、且基于历史聚集,收集引擎42计算组合事件数据,例如事件的近实时聚集。收集引擎42使事件记录46富集针对至少一个特定事件的组合事件数据。
在示例中,事件记录46中的一个事件是与用户ID 5454hdrm相关联的John Doe的数据使用。在该示例中,收集引擎42从数据仓库38中检索与用户ID 5454hdrm相关联的“数据使用”事件的批数据40。为了计算针对该特定用户的该事件的近实时聚集,收集引擎42将批数据40与增量数据41聚集以计算该事件的近实时聚集43。
在该示例中,增量数据41包括从实时数据系统34接收到的数据的一部分,其中该部分与针对该特定用户所聚集的事件类型有关。从最后计算出历史聚集的时间到近当前时间(例如,接收到近实时数据流时),存在增量数据41。例如,批数据40指定用户John Doe在过去一个月内使用了65兆字节的数据,并且增量数据41指定用户John Doe在过去五分钟内使用了1兆字节的数据。通过使批数据40与增量数据41聚集,收集引擎42计算针对客户JohnDoe的该特定数据使用事件的近实时聚集43。收集引擎42将近实时聚集43(例如,作为针对该特定用户的该特定事件的记录的一部分)插入事件记录46中。例如,收集引擎42还将具有针对(例如,如批数据40所指定的)特定事件的历史聚集的可附加查找文件(ALF)附加至事件记录46。收集引擎42还附加了具有历史聚集的ALF,以促使在计算新的近实时聚集时(例如,在接收到新事件时)使用该历史聚集。
在该示例中,收集引擎42将事件记录46发送至检测引擎48。检测引擎48包括规则50,例如包括用于针对不同类型的实体实现各种不同应用的规则。检测引擎48包括用于实现各种应用的单个引擎、以及应用。在该示例中,CDA系统32从用户的客户端装置接收表示定义应用的一个或多个规则的数据。例如,用户可以使用事件选项板来定义规则。CDA系统32基于所接收的数据来生成用于定义应用的一个或多个规则。CDA系统32将这些一个或多个规则传递至被配置为实现一个或多个规则的处理(例如,检测引擎48)。检测引擎48基于针对事件记录46的规则50的执行来实现应用。检测引擎48还包括状态转变53,例如包括用于指定用户已转变或前进至的应用的状态的数据。基于状态转变53,检测引擎48识别应用中的哪些动作被执行、以及/或者要执行应用中的哪些决策分支。例如,基于(如状态转变53针对特定订户所指定的)该订户的应用状态,检测引擎48根据订户的应用状态来识别已经执行了应用中的哪个组件、以及接下来要执行应用中的哪个组件。
事件记录46包括不同类型的事件,诸如SMS事件、语音事件和数据事件等。因此,规则50包括具有针对各种不同类型的事件的条件的规则。一般地,规则包括条件,其中条件的满足导致动作的执行。在该示例中,一个规则(“规则1”)可以具有用户在过去六个月内发送了30条SMS消息的条件。在满足该条件时,规则1指定用于向用户发放$5信用额的动作。另一规则(“规则2”)可以具有用户在上个月内使用了不到50兆字节数据的条件。在满足该条件时,规则2指定用于向用户提供使用折扣以例如激励增加的数据使用的动作。在该示例中,规则1和规则2都使用不同类型的事件(即,分别为SMS事件和数据事件)。检测引擎48能够执行包括取决于不同类型事件的规则的程序,这是因为事件记录46是包括不同事件类型的单个宽记录。另外,检测引擎48是针对多个不同应用执行应用的单个引擎,这是因为检测引擎48接收包括所有不同操作级别的所有事件类型的事件记录46。也就是说,检测引擎48被配置为针对单个宽记录(即,事件记录46)执行多个不同的应用,而非使不同的引擎针对不同的事件记录(其各自包括适合各应用的数据类型)执行不同的应用。
一旦在事件记录46中检测到满足规则50中的至少一个条件的事件(或事件的聚集),则检测引擎48将动作触发器51发布至队列52以发起(例如,具有满足的条件的规则所指定的)一个或多个动作。在示例中,该动作触发器包括用于指定要执行哪些动作、正针对哪个应用执行这些动作、以及用户(例如,执行的动作所针对的订户或经销商)的数据。检测引擎48将队列52发送至动作引擎54以执行动作触发器51中所指定的动作。在该示例中,动作引擎54被配置为执行各种动作,诸如向用户账户发放信用额、发送消息、以及发送折扣消息等。
通常,从数据流收集到的数据不包括CDA系统进行处理所需的所有信息,诸如用户名和简档信息等。在这种情况下,通过将简档数据与实时数据流中所接收到的数据相组合、并且通过计算近实时聚集,来增强数据(即,从数据流收集到的数据)。通过将简档数据与来自实时数据流的数据相组合、并且通过计算近实时聚集,搜索和检索系统生成适合搜索和检索系统的处理要求的有意义的数据记录(例如,包括所接收到的与关键字相关联的近实时数据、该关键字所用的简档数据、以及该关键字所用的近实时聚集)。一般地,该处理要求包括系统所要进行的各种操作(和/或所要执行的规则)、以及进行这些操作所需的各种数据。另外,包括预填充有与事件记录中的各事件相对应的数据的“所有事件”或字段(以及/或者预定义字段集)的数据记录的预计算或生成有助于避免并减少网络瓶颈时(例如,处理实时数据流时)的拥塞。这是因为处理所需的所有数据都包括在单个记录(例如,多个记录中的一个记录)中,因此例如消除或减少了处理数据集合或记录集合的各阶段或步骤的数据检索、计算和数据库查询。另外,通过将大部分增强数据(例如,简档数据)保存在CDA系统的存储器或高速缓存索引中,系统能够更快地访问该数据,这是因为该系统生成预计算出的(多个记录中的)一个记录。
例如,这里所述的系统被配置为在系统(例如相对于其它时间的负载)处于减少的负载时将富集和增强数据加载到存储器中(或者加载到索引高速缓存中)。由于系统具有在该系统处于减少的负载等时预加载增强数据的灵活性,因此该系统能够通过如下的方式来实现负载分配:在负载减少时将增加数据加载到存储器中,例如而不是必须在发生数据记录的处理时(这将是负载增加的时间段)实时地这样做。
参考图3,事件记录60包括字段62a、62b和子记录62c~62i。在变形例中,各子记录62c~62i是用于插入记录(或其一部分)的字段。在该示例中,事件记录60包括增强数据记录(例如,其包括所接收到的与关键字相关联的近实时数据、针对该关键字的简档数据、以及针对该关键字的近实时聚集)。一般地,子记录是记录中的记录。如此,子记录本身包括多个字段。在该示例中,事件记录60包括系统例如在进行事件检测时所处理并分析的所有字段和/或子记录。
在该示例中,事件记录60包括用于唯一地识别与该事件记录所表示的事件相关联的订户的订户ID的ID字段62a。事件记录60还包括用以指定在产生该事件记录所针对的近实时数据流中检测到的事件的类型的事件类型字段62b。存在各种不同类型的事件,例如数据事件、语音事件和SMS事件等。在该示例中,事件类型是订户的语音事件,例如,如最近接收到的数据中所指定的语音事件。在该示例中,CDA系统32接收实时数据流34并在该实时数据流34中检测与特定订户ID相关联的订户的语音事件。作为响应,CDA系统32生成事件记录60,并插入所检测到的订户ID(例如,将订户ID“1Q7QF”插入到ID字段62a中),并将用于指定所检测到的事件类型(例如,语音事件)的数据插入到事件类型字段62b中。在该示例中,语音事件包括指示订户的当前语音使用的数据。在该示例中,指示订户语音使用的数据是增量数据,因为它表示针对该特定事件的增量使用量(例如,针对该特定实体的特定事件在从当前时间到针对该事件的数据先前分批储存在数据仓库38中的时间内的语音使用量)。
事件记录60包括语音事件子记录62c,其中该语音事件子记录62c具有用于储存指定语音事件本身的特性或特征(诸如发生语音事件的地理位置(例如,地理位置:伊斯坦布尔)、接收到语音事件的时间(例如,接收时间:12:00:01)、以及语音事件的持续时间(例如,持续时间:42分:07秒))的数据的字段。
即使在未检测到其它类型的事件(例如,SMS和数据事件)的情况下,事件记录60还包括针对这些其它类型的事件的事件子记录。在该示例中,事件记录60包括SMS事件子记录62d和数据事件子记录62e,其各自具有用以指定这些类型的事件不包括在所检测到的且已针对其生成了事件记录60的事件中的“空”值。然而,事件记录60包括用以在生成事件记录60的特定时间点建立所有事件类型的状态的完整记录的SMS事件子记录62d和数据事件子记录62e。
事件记录60还包括用于插入订户简档的订户简档子记录62f。在该示例中,CDA系统32从数据仓库38中检索由ID字段62a中所包括的订户ID表示的订户的订户简档。CDA系统32将所检索到的订户简档(例如,事件的维度)插入订户简档子记录62f中的字段。在该示例中,如图3的说明性示例中所示,订户简档子记录62f包括计划字段、地址字段、以及起始日期字段。
事件记录60还包括用于插入各种富集和事件聚集的富集子记录62g。在该示例中,富集子记录62g包括近实时语音、数据和SMS聚集。在该示例中,语音聚集基于该特定用户的语音使用的历史(例如,批)聚集、以及例如如语音事件子记录62c的持续时间字段中所指定的增量语音使用。数据聚集基于如CDA系统32的存储器中所储存的而非被提交至EDW的、用于指定历史数据使用的批数据和当天的增量数据使用。SMS聚集基于如CDA系统32的存储器中所储存的、用于指定历史SMS使用的批数据和当天的增量SMS使用。在示例中,将实时数据流中所接收到的数据储存在(例如,CDA系统32的)存储器中、然后以指定时间间隔(例如,在一天结束时)提交至EDW存储。在确定针对事件记录60的富集子记录62g的数据聚集时,CDA系统32使批数据与存储器中的(用于指定特定订户的数据使用的)增量数据聚集。尽管针对语音事件产生了事件记录60,但富集子记录62g仍填充有数据和SMS聚集,这是因为这些聚集对于应用的执行(例如,在应用的某些组件具有基于数据和/或SMS聚集的执行所用的条件的情况下)可能是必需的。
事件记录60还包括用于指定订户已转变至的应用状态的应用状态子记录62i。在该示例中,应用状态子记录62i包括用于指定正在执行多个不同应用中的哪个应用(即,应用29a)、以及正在执行该应用中的哪个组件(即,组件23b)的状态字段。在示例中,经由子记录62i来跟踪应用状态。该应用状态对逻辑有意义;需要状态来实现某些种类的应用。
参考图4,数据流图70执行针对实时数据流中所包括的数据项的处理。在该示例中,CDA系统32执行数据流图70以生成诸如事件记录60等的事件记录、并使该事件记录富集简档数据和聚集。数据流图70具有表示多个数据处理实体(例如,一个或多个CPU)的多个图组件,其中这多个图组件通过表示数据处理实体之间的数据流的一个或多个链接而连接。数据流图70包括订阅组件72,其中该订阅组件72订阅一个源数据读取器或多个源数据读取器(例如,从源数据读取器接收数据)。通过订阅组件72,数据流图70实时地访问实时数据流中所包括的数据项。在该示例中,订阅组件72从数据队列(例如,其可以对数据流执行一些初始处理以确保其可读性)接收实时数据流(例如,包括数千个记录)。数据从订阅组件72流动至划分组件74,其中该划分组件74按事件类型对数据流中所接收的数据项(包括事件)进行划分或分割。在该示例中,划分组件74被配置为检测事件选项板中所定义的不同类型的事件,并将各种类型的事件划分至被配置为处理特定类型的事件的其它组件。
在该示例中,数据流图70包括使用事件组件76、事件组件78、系统事件组件80和事件组件82。数据从划分组件74流动至使用事件组件76、事件组件78、系统事件组件80和事件组件82中的一个或多个。
使用事件组件76包括用于处理使用事件(例如包括用于指定SMS使用量、语音使用量和数据使用量等的事件)的操作。这些操作识别包括事件的记录中的哪个部分包括用于指定使用量的数据以及记录中的哪个(哪些)部分包括其它类型的数据,诸如用于指定用户ID的数据或者用于唯一地识别用户的其它类型的数据等。
在该示例中,订户事件组件78包括用于处理订户事件(例如包括与客户或订户有关的事件)的操作。存在各种类型的订户事件,例如包括激活事件(即,用户什么时候激活移动装置)、位置事件(即,用户使用移动装置的地理位置)等。订户事件组件78中所包括的这些操作分析包括这些订户事件的记录,以识别记录的哪个部分包括这些订户事件以及记录的哪个部分包括识别用户数据。
系统事件组件80包括用于处理系统事件(例如,与用户和系统之间的交互有关的事件)的操作。存在各种类型的系统事件,例如包括用于指定订户沉默日和订户满足响应的事件。系统事件组件80中所包括的这些操作分析包括系统事件的记录,以识别记录的哪个部分包括这些系统事件以及记录的哪个部分包括识别用户数据,从而为将该数据插入宽记录中作准备。
事件组件82包括用于处理特定类型的事件(例如,与推销员或零售商有关的事件)的操作。存在各种类型的经销商事件,例如包括用于指定经销商销售额和售出产品等的事件。事件组件82中所包括的这些操作分析包括这些事件的记录,以识别记录的哪个部分包括事件以及记录的哪个部分包括识别数据,从而为将该数据插入宽记录中作准备。
数据流图70还包括派生事件组件84,其中该派生事件组件84包括用于识别派生事件的操作。一般地,派生事件包括从其它数据派生的、以及/或者从发生或没有发生所派生的事件。存在各种类型的派生事件,例如包括用于指定订户语音沉默天数、订户SMS沉默天数和订户数据沉默天数的事件。在该示例中,派生事件组件84包括用以确定这些派生事件的操作。在示例中,CDA系统32通过检测实时数据流中所接收到的事件中不存在针对特定用户的特定类型的事件(例如,SMS使用),来确定这些派生事件。一旦检测到,CDA系统32判断是否在阈值时间段内不存在该特定事件以检测派生事件的存在。为了判断是否在阈值时间段内不存在特定事件,CDA系统32从数据存储库中检索该特定用户的数据(例如包括用于指定先前发生的事件的数据)。在阈值时间段内不存在该特定事件的情况下,CDA系统32检测出派生事件。在该示例中,CDA系统32基于传入的实时数据流中的数据(或数据的缺失)并且基于数据存储库中所储存的其它数据(事件),来检测针对一个或多个用户(例如,订户、经销商等)的派生事件。
在该示例中,数据流图70包括用于实现联接操作的联接组件86。“联接”操作对各种类型的数据(例如,来自事件组件76、78、80、82、84的事件)进行组合。在该示例中,数据从事件组件76、78、80、82、84流动至联接组件86,该联接组件86在宽记录中将这些事件联接在一起。在该示例中,事件组件76、78、80、82、84各自将事件与用于唯一地标识与该事件相关联的实体的数据(诸如该实体的用户ID等)相关联地发送至联接组件86。
在该示例中,数据从联接组件86流动至订户富集组件87,其中订户富集组件87包括用于使宽记录富集特定类型的实体(即,订户)的简档数据的操作。在该示例中,从联接组件86流动至订户富集组件87的数据是用于指定宽记录中的哪些事件是订户事件、并且指定与这些订户事件相关联的用户ID以例如使得能够查找这些订户的订户简档的数据。对于宽记录中所包括的特定事件,订户富集组件87中所包括的操作使用该事件的用户ID来(从数据存储库中)检索用户ID所指定的用户的简档数据。订户富集组件87将所检索到的简档数据例如与事件相关联地插入宽记录中。
数据从富集组件87流动至富集组件88,其中富集组件88包括用于使宽记录富集另一特定类型的实体(即,订户)的简档数据的操作。在该示例中,从富集组件87流动至富集组件88的数据是用于指定宽记录中的哪些事件是特定类型的事件、并且指定与(关联于这些特定类型的事件的)特定实体相关联的用户ID(即,经销商ID)以例如使得能够查找与该实体相关联的简档的数据。简档中包括各种类型的数据,例如包括用于指定实体是否是优选供应商、实体是否是链条的一部分、以及在实体是链条的一部分的情况下指定是哪一部分等的数据。对于宽记录中所包括的特定事件,富集组件88中所包括的操作使用该事件的用户ID来(从数据存储库中)检索用户ID所指定的经销商的简档数据。富集组件88将所检索到的简档数据例如与针对该实体的事件相关联地插入宽记录中。
数据从富集组件88流动至使用聚集组件90,其中该使用聚集组件90包括用于计算针对各种类型的事件(例如包括使用事件)的近实时聚集的操作。对于特定用户(例如,订户或经销商)的特定事件,使用聚集组件90检索针对该用户的批数据(例如,用于指定预计算出的分批储存的聚集的数据),并向批数据添加增量数据(例如,实时数据流中所接收到的一个或多个事件)以计算近实时聚集。使用聚集组件90将所计算出的(例如,针对特定用户的特定事件的)近实时事件聚集插入宽记录中。在示例中,使用聚集组件90还以各种时间间隔(例如,每天、每周、以及每月等)向宽记录附加具有聚集(例如,语音聚集、数据聚集和再加载聚集等)的ALF文件。一般地,再加载是向预付费电话或移动服务计划添加额外的金额、分钟和/或数据。
在该示例中,存在以微小批样式(例如,每N分钟)进行计算并被添加至宽记录的各种不同类型的聚集,例如包括日历聚集(例如,一天、一周、一月等的事件聚集)。一般地,微小批包括预计算出的、以指定时间间隔(例如,每N分钟)出现并(分批)储存在数据仓库中的事件数据的聚集。数据仓库中的日历聚集连续地和/或定期地更新以包括针对该特定日历聚集的最新微小批聚集。一般地,微小批聚集比批聚集更频繁地发生,其中批聚集可以每三天发生一次,而非微小批聚集中的每三分钟一次。由于微小批聚集发生得更为频繁,因此这些类型的聚集会聚集更小批的数据。还存在窗口聚集(例如,过去一分钟、过去N小时、过去N天等的事件聚集),并且这些窗口聚集是在随着事件到来的富集期间计算出的、并且还被添加至宽记录。这些窗口聚集储存在CDA系统32的存储器中而不是提交至EDW,因此随着事件到达而被实时计算出。
数据从使用聚集组件90流动至发布组件92,其中该发布组件92将宽记录例如发布至队列以使得能够针对该宽记录执行多个不同的应用。通过将宽记录发布至队列,(宽记录中的)子记录各自作为条目而包括在队列中,这是因为各种应用针对队列条目而执行。
在变形例中,(例如,在来自收集操作的各种格式被转换为通用载荷的情况下)数据流图可以不包括联接组件。在该示例中,由于不需要识别特定事件格式,因此不存在联接组件。在示例中,数据流图70还进行窗口聚集计算,并且分别从富集(例如,组件87、88)的外部运行日历(例如,批)聚集。
在该示例中,数据流图70包括顶点(表示数据处理组件或数据集),这些顶点通过顶点之间的定向链接(表示工作元素、即数据的流动)来连接。在标题为“ExecutingComputations Expressed as Graphs”的美国专利5,966,072中说明了用于执行这种数据流图的系统,其全部内容通过引用而并入于此。根据本系统制作的数据流图提供了用于将数据输入至图组件所表示的各个处理中并从中输出数据、用于使数据在处理之间移动以及用于定义处理的运行顺序的方法。该系统包括从任何可用方法中选择处理间通信方法(例如,根据图的链接的通信路径可以使用TCP/IP或UNIX域套接字或者使用共享内存来在处理间传递数据)的算法。
本说明书中所述的处理和方法可以通过计算系统来执行,所述计算系统包括:开发环境,其连接至数据存储,其中该开发环境被配置为建立与用于实现针对从一个或多个输入数据集通过图组件的图流动至一个或多个输出数据集的数据进行的基于图的计算的数据流图相关联的数据处理应用,其中数据流图由数据存储中的数据结构指定,所述数据流图具有由数据结构指定并且表示通过一个或多个链接而连接的图组件的多个节点,这些链接由数据结构指定并且表示图组件之间的数据流;以及/或者运行时环境,其连接至数据存储并且安装在一个或多个计算机上,该运行时环境包括被配置为读取所储存的用于指定数据流图的数据结构、并将计算资源分配和配置用于进行图组件的计算的预执行模块,该运行时环境包括用以调度和控制被分配至数据流图的计算的执行的执行模块。
现参考图5~14,示出用于显示事件选项板中的各种事件的各种图形用户界面。(通过事件选项板示出的)这些事件各自可以包括在事件记录中(包括在适当的字段或子记录中)。包括事件记录中的所有事件使得用户能够基于各种事件来定义应用、并针对事件记录运行所定义的应用(而非必须查询数据库以获得适当的数据),这是因为事件记录包括定义应用时可以使用的事件选项板中的全部(或部分)事件。
参考图5,事件选项板中包括图形用户界面100。在该示例中,事件选项板是包括用于显示定义一个或多个规则时可以使用的可用预定义事件的一系列图形用户界面的应用。在该示例中,规则包括用于定义先决条件的表达式,其中先决条件满足导致动作的执行。通过事件选项板,用户可以定义基于事件的表达式。例如,表达式通过特定事件来达到阈值或预定义值。对于该表达式,用户还可以定义满足表达式时所要执行的一个或多个动作。
在该示例中,图形用户界面100显示定义规则的表达式时可以使用的各种输入、以及指示所检测到的事件的属性的数据。事件时间属性102a显示指示当前或当前时间的数据。事件时间属性102b显示指示最近检测到事件的时间的数据。在选择事件时间属性102b时,用户可以查看最近检测到的事件。事件类型数据102c显示指示可用于定义规则的各种类型的事件的数据。这些事件在各种级别(例如,包括订户级别和经销商级别)被检测到。在选择事件类型数据102c时,显示各种不同类型的事件的列表107。在该示例中,存在用于指定何时激活装置的激活事件、用于指定实体何时改变移动装置计划的计划改变事件、用于指定用户未使用移动装置的天数的沉默日事件、以及用于指定用户何时更换移动装置的手机更换事件等。
图形用户界面100还包括用于显示实体的关键字(诸如经销商ID或订户ID等)的关键字数据102d。也就是说,在使用图形用户界面100来查看实际事件的情况下,关键字数据102d显示指示图形用户界面100中正被查看事件的特定实体的关键字或用户ID的数据。在该示例中,用户可以滚动(或选择)各种不同的关键字,以查看与这些关键字相关联的各种不同事件。在选择特定关键字时,更新数据或数据字段102a~102m各自以显示该特定关键字的值。
在该示例中,图形用户界面100使得用户能够例如经由未示出的控制来查看所检测到的事件。当用户查看所检测到的特定事件时,更新关键字数据102d(例如,更新标识符)以显示正查看的事件的ID。在用户选择另一不同事件时,更新关键字数据102以显示针对该另一不同事件的ID。图形用户界面100包括应用状态数据102e,例如包括用于指定应用的开始和结束时间的数据、以及针对特定应用已执行的动作的数量等。
图形用户界面100还包括订户简档数据102f,其中该订户简档数据102f的选择显示被插入到宽记录中、并且可用于定义规则的各种种类的订户简档数据。图形用户界面100还包括订户事件102g,其中该订户事件102g的选择显示被插入到宽记录中、并且可用于定义规则的各种种类的订户事件。图形用户界面100还包括订户合成事件102h,其中该订户合成事件102h的选择显示被插入到宽记录中、并且可用于定义规则的各种种类的订户合成事件。一般地,合成事件是派生事件。图形用户界面100还包括订户聚集102i,其中该订户聚集102i的选择显示各种订户事件的近实时聚集。
图形用户界面100还包括简档数据102j,其中该简档数据102j的选择显示被插入到宽记录中、并且可用于定义规则的各种种类的简档数据。图形用户界面100还包括事件102k,其中该事件102k的选择显示被插入到宽记录中、并且可用于定义规则的各种种类的事件。图形用户界面100还包括合成事件102m,其中该合成事件102m的选择显示被插入到宽记录中、并且可用于定义规则的各种种类的合成事件。图形用户界面100还包括聚集102l,其中该聚集102l的选择显示各种事件的近实时聚集。在该示例中,宽记录包括事件102g。对于特定订户事件,宽记录还包括该订户的简档、以及合成事件和聚集。宽记录包括事件102k。对于与实体相关联的特定事件,宽记录还包括针对该实体的简档、以及针对该实体的合成事件和聚集。
参考图6,图形用户界面110显示事件选项板中所包括的事件112。在该示例中,订户简档数据114包括简档数据114a、手机数据114b、增值服务(VAS)数据114c(例如,来电铃声)、余额数据114d、保险数据114e、以及附加报价数据114f。这些类型的数据各自包括各种类型的子数据,例如,在数据114a~114f所表示的类别之一下进行分类的更多粒度数据或详细数据。
在该示例中,手机数据114b包括粒度数据116,即订户号、移动台国际订户目录号(MSISDN)、品牌、型号、国际移动台设备标识(IMEI)、国际移动订户标识(IMSI)、目标段、以及通用分组无线业务(GPRS)。在该示例中,各种类型的粒度数据116显示针对各种类型的用户数据的特定用户记录的实际值。在该示例中,订户号数据显示值116a,其中该值116a是正经由图形用户界面110查看其事件和数据的特定订户的订户号的值。图形用户界面110还显示简档数据114a的粒度数据118,以提供粒度的特定简档数据,诸如发起实体和激活日期等。该粒度数据116、118作为订户事件的富集与订户事件相关联地被包括在宽记录中。
参考图7,图形用户界面120被包括在事件选项板中,并且包括事件122。在该示例中,简档数据124包括诸如名称、MSISDN和地址等的粒度数据126。该粒度数据126与事件相关联地被包括在宽记录中。
参考图8,图形用户界面130包括在事件选项板中,并且显示可用于定义规则且包括在宽记录中的不同类型的订户事件132。订户事件132包括激活事件132a(指定用户是否已激活电话)、附加报价事件132b(指定用户是否已对附加报价进行了响应)、数据使用事件132c(指定用户的数据使用量)、手机更换事件132d(指定用户是否已升级或更换手机)、购买事件132e(指定用户是否已进行购买)、计划改变事件132f(指定用户是否已改变装置计划)、抽奖登记事件132g(指定用户是否已进入抽奖登记)、再加载事件132h(指定用户是否已再加载移动卡或移动装置)、剩余余额事件132i(指定账户余额上的剩余金额)、SMS回复事件132j(指定用户是否已回复SMS消息)、SMS使用事件132k(指定SMS使用量)、语音使用事件132l(指定语音使用量)、VAS事件132n、以及凭证事件132o。这些订户事件各自与被检测到这些事件的订户的订户简档和订户ID相关联地、且还与这些事件的事件聚集相关联地被包括在事件记录中。
参考图9,图形用户界面136显示激活事件132a的各种类型138。例如,一种类型的激活事件是激活处理日期,其指定处理订户激活的日期。在该示例中,紧挨着激活处理日期事件示出来自特定订户记录的实时值(即,2014-06-26 10:55:28),这是因为当用户定义规则时、该用户正在查看(例如,宽记录中的)记录的实际事件值。如前所述,用户可以滚动各种记录的实际事件值。
参考图10,图形用户界面140显示剩余余额事件132i的类型142。在该示例中,例如,当针对各订户进行检测时,这些剩余余额事件132i包括在宽记录中。参考图11,图形用户界面150显示用于包括在宽记录中的附加报价事件132b的各种类型152。参考图12,图形用户界面160显示包括在宽记录中的手机更换事件132d的类型162。
参考图13,图形用户界面170包括事件171。在该示例中,示出各种类型的合成事件172,包括沉默日事件174(用于指定用户未使用移动装置的天数)、满足响应事件176(用于指定用户是否满足或接受报价)、宽限日事件178(用于指定在采取提醒或一些其它动作之前允许用户推迟进行支付或所需的一些其它动作的天数)、无事件180(用于指定在指定时间段内不存在任何事件——例如,如果订户在三十天内未指定任何事件或动作,则发送消息)、以及定时器事件182(用于指定已经到达特定时间)。在该示例中,图形用户界面170还显示沉默日事件(即,不存在活动或装置使用的时间段)的各种类型179。存在各种类型的沉默日事件,诸如再加载沉默日、SMS沉默日、语音沉默日、日期沉默日、以及总沉默日等。在该示例中,图形用户界面170还显示定时器事件182的时间戳182a。在该示例中,合成事件172例如通过被包括在富集子记录而被包括在订户的事件记录中、被包括在专用于订户合成事件的子记录(例如,订户合成事件子记录)中、或者被包括在富集子记录中。
参考图14,图形用户界面190被包括在事件选项板中,并且使得用户能够在定义规则时选择各种事件聚集。在该示例中,图形用户界面190包括事件192,其中事件192包括订户聚集194。如前所述,订户聚集是针对特定订户事件的近实时聚集,其中该近实时聚集是针对特定订户事件的批数据的聚集以及在实时数据流中接收到的针对特定订户事件的增量数据。在该示例中,订户聚集194包括数据汇总聚集194a(例如,各个时间段内的数据使用的聚集)、再加载汇总聚集194b(例如,各个时间段内的移动装置再加载的聚集)、SMS汇总聚集194c(例如,各个时间段内的SMS使用的聚集)、语音汇总聚集194d(例如,各个时间段内的语音使用的汇总)、以及每月活动聚集194e(例如,在每月时间段内发生的聚集)。
图形用户界面190显示语音汇总聚集194d中所包括的各种类型的事件。这些类型的事件包括每日语音事件聚集196(例如,针对特定订户的各种类型的每日语音使用的聚集)、每周语音事件聚集198(例如,针对特定订户的每周语音使用的聚集)、以及每月语音事件聚集200(例如,针对特定订户的每月语音使用的聚集)。在每日语音事件聚集196内,存在各种不同的聚集,例如包括每日总语音聚集196a、每日上网(例如,在网络中或者在网络上)语音聚集196b、每日离网(例如,漫游)语音聚集196c、以及每日国际直拨(IDD)语音聚集196d(例如,海外电话)。对于每日总语音聚集196a,CDA系统32还确定不同类型的每日总语音聚集,诸如每日语音电话204(例如,用于指定针对特定订户的每日语音电话量的数据)、每日语音花销206(例如,用于指定特定订户每日在语音电话上所花费的金额的数据)、以及每日语音持续时间208(例如,用于指定特定订户的每日电话持续时间的数据)。这些各种类型的语音汇总聚集194d被添加至正在生成的记录中以包括事件选项板中的各种事件。
图形用户界面190还显示各种类型的再加载汇总聚集194b,诸如每日再加载汇总聚集210(例如,一天内聚集的针对特定订户的再加载量)、每周再加载汇总聚集212和每月再加载汇总聚集214等。在该示例中,存在各种类型的每日再加载汇总聚集210,包括每日再加载216(例如,特定订户在特定的一天中进行再加载的次数)和每日再加载量218(例如,特定订户在一天内进行的再加载量)。在该示例中,这些各种类型的再加载汇总聚集194b被添加至CDA系统32正在生成的宽记录。
参考图15,CDA系统执行基于事件的营销时执行处理220,其中随着接收到数据,针对实时数据流执行多个不同的应用(举例而言,诸如应用或程序等)。在操作中,CDA系统32间歇地接收(220)来自一个或多个数据流的数据,诸如包括事件的数据等。随着继续间歇地接收到来自一个或多个数据流的事件,CDA系统32检测(222)所接收到的事件中的两个或多个特定事件,其中所检测到的两个或多个特定事件共享通用特性,诸如被定义在事件选项板中等。在另一示例中,由于CDA系统32检测到针对特定实体的事件,因此通用特性可以是通用用户ID或用户关键字。CDA系统32创建(或更新)(224)包括所检测到的两个或多个特定事件的事件集合。在已经创建集合的示例中(例如,在处理220的先前迭代期间),CDA系统32例如利用新检测到的事件来更新集合。例如,CDA系统32创建所检测到的事件的记录(例如,宽记录)。在该记录中,各事件与实体ID(举例而言,诸如订户ID或实体ID等)相关联。在该示例中,实体ID已与实时数据流中的事件相关联,并且CDA系统32将实体ID和事件插入到该宽记录中。
CDA系统32通过向记录添加(或附加)与各事件相关联的实体的简档数据、并且添加事件聚集,来使事件富集在宽记录中。在示例中,对于事件集合中所包括的至少一个特定事件,CDA系统32从数据存储库中检索(226)与至少一个特定事件相关的历史聚集,其中该历史聚集是从先前时间段预计算出的事件数据的聚集。在该示例中,历史聚集是预计算出的、从开始时间到结束时间的聚集。这种预计算出的聚集是(根据从开始时间到结束时间内发生的各事件)分批计算出的,并被称为批数据。CDA系统32还基于所述至少一个特定事件和历史聚集来计算(228)组合事件数据。在该示例中,组合事件数据是针对特定订户的特定事件的近实时聚集。
近实时聚集基于(针对该特定订户的该特定事件类型的)历史聚集、以及自上次批计算事件聚集以来在实时数据流中接收到的(针对该特定订户的该特定事件类型的)增量事件。在组合事件数据是在近实时数据流中接收到增量事件之后但是在该增量事件被储存在EDW中之前计算出的情况下,在计算出组合事件数据时,可以在当时在近实时数据流中接收到增量事件、或者可以将增量事件储存在CDA系统32的存储器中。该近实时聚集连同上述的其它富集一起被插入到适当事件的宽记录中。例如通过将宽记录中所包括的子记录传递通过用于实现规则的规则引擎,来针对宽记录(包括事件和聚集)执行(用于定义多个应用和/或应用的)规则。CDA系统32判断(229)宽记录的内容(例如,宽记录中的子记录之一的内容)是否满足所执行的一个或多个规则。在检测到满足规则的先决条件的子记录(包括针对特定实体的特定事件以及相关的富集和聚集)时,CDA系统32识别针对该规则的动作、并生成包括用于指定要执行哪个动作以及针对哪个实体的数据的动作触发器。基于组合事件数据,CDA系统32将动作触发器发布(230)至队列以发起一个或多个动作。在该示例中,动作触发器是队列的入口。CDA系统32(例如,以先进先出的顺序)分析队列中的条目,并且进行或发起动作触发器所指定的动作的执行(举例而言,诸如发送用于向实体提醒报价的SMS消息等)。
在发布动作触发器之后、或者在CDA系统32判断为宽记录的内容(例如,宽记录中的子记录之一的内容)不满足所执行的规则的情况下,CDA系统判断(232)一个或多个应用是否仍正在执行。如果一个或多个应用仍正在执行,则CDA系统32重复动作222、224、226、228、230、232,例如直到应用停止执行为止。如果应用已停止执行,则CDA系统32停止(234)处理220。
参考图16,环境240示出基于事件的营销的示例性实现。在该示例中,CDA系统32(例如,对收集引擎42)执行监听处理241,以间歇地(例如,连续地)监听、接收并处理一个或多个实时数据流。监听处理241接收并处理针对特定订户的特定事件类型的增量数据242(例如,当前使用了1条SMS消息)。为了计算近实时聚集,CDA系统32(例如,从数据存储库)检索针对增量数据242中所表示的事件类型(例如,SMS事件)的批数据248。在该示例中,批数据248包括与增量数据242相关联的实体的SMS使用的历史聚集。在该示例中,CDA系统32通过使增量数据242与批数据248聚集,来计算(针对与数据242、248相关联的特定实体的)聚集SMS使用254。在变形例中,例如,在先前已接收到新的增量数据、但CDA系统32尚未执行用于将该新接收到的数据储存到EDW中的批处理的情况下,CDA系统32还可以从CDA系统32的存储器访问SMS使用的附加增量数据。在该变形例中,CDA系统32通过聚集增量数据242、批数据248、以及存储器中所储存的附加增量数据,来生成近实时聚集的SMS使用数据254。
CDA系统32还通过使(如CDA系统32的存储器中所储存的)增量语音使用数据与(从EDW接收到的)批语音使用数据聚集,来计算(针对与数据242相关联的特定实体的)聚集语音使用258。CDA系统32还通过使(如CDA系统32的存储器中所储存的)增量数据使用与(从EDW接收到的)批数据使用聚集,来计算(针对与数据242相关联的特定实体的)聚集数据使用数据259。CDA系统计算事件记录260中所包括的聚集语音使用258和聚集数据使用数据259,以供某些动作取决于针对所聚集的数据和/或语音使用的阈值的应用使用。
CDA系统32通过向事件记录260中插入订户ID字段242、事件类型字段244、语音事件子记录246、SMS事件子记录250(包括当前SMS使用事件242)、数据事件子记录251、订户简档子记录252、富集子记录253、以及应用状态子记录261来产生事件记录260,其中各类子记录先前关于图3都进行了说明。在该示例中,富集子记录253包括聚集SMS使用数据254、聚集语音使用数据258、以及聚集数据使用数据259。在该示例中,当前SMS使用事件242储存在SMS事件子记录250中。
在该示例中,CDA系统32执行269检测引擎以针对事件记录260运行一个或多个应用,从而确定事件记录260满足一个或多个应用的规则的哪些先决条件。在该示例中,CDA系统32检测到SMS事件子记录250中的当前SMS使用事件242满足用以升级客户的应用中的规则的一个先决条件。基于该检测,CDA系统32生成动作触发器268以执行指定动作。在该示例中,动作触发器268指定用于向客户发送电子邮件并向客户通知用于更新服务的升级的动作。CDA系统32执行动作触发器以使电子邮件270被发送至用户。
参考图17,利用用于处理数据的搜索和检索数据处理系统来执行处理300。在操作中,系统间歇地接收(320)来自一个或多个数据流的数据,其中所接收到的数据包括数据记录。随着继续接收来自一个或多个数据流的数据,系统检测(304)所接收到的数据记录中的两个或多个特定数据记录,其中所检测到的两个或多个特定数据记录各自包括特定标识符。在该示例中,系统检测关键字记录,例如,与特定标识符或关键字相关联的数据记录。对于该特定标识符,系统创建(306)包括所检测到的两个或多个特定数据记录的数据记录的集合。对于数据记录的集合中所包括的至少一个特定数据记录,系统搜索(308)数据存储库中的数据记录(以及/或者存储器中高速缓存或储存的数据)以获得与特定标识符相关联的数据的历史聚集,其中该历史聚集从先前时间段预计算出的数据聚集。系统基于至少一个特定数据记录和历史聚集来计算(310)组合数据。在该示例中,组合数据包括增强,这是因为从实时数据流接收到的数据不包括该组合数据。
系统还通过将组合数据插入数据记录的字段中、并且通过将来自集合中的数据记录至少之一的数据插入到数据记录的另一字段中,来修改(312)数据字段。例如,修改后的数据记录可以包括所有事件的记录,例如,事件记录60(图3)。在该示例中,组合数据可以是语音聚集数据并且可以插入到富集子记录62g中。在该示例中,富集子记录是事件记录60中的字段。在另一示例中,修改后的数据记录可以包括字段被填充有所接收到或所计算出的其它记录或其它数据的数据记录。系统还将来自集合中的数据记录至少之一的数据插入数据记录的另一字段中。例如,在集合中所包括的数据记录之一是指示语音电话的位置、持续时间和接收时间的语音记录的情况下,系统将来自语音记录的该数据插入记录60的字段62c中。在该示例中,系统还将其他富集例如作为简档数据而添加至记录或增强记录,该简档数据被插入记录60的字段62f中。
系统还通过对修改后的数据记录应用一个或多个规则,来处理该修改后的数据记录。基于应用这些规则,系统向系统的存储器写入(314)用于发起一个或多个动作的一个或多个指令。在一些示例中,指令包括动作触发器。系统将一个或多个指令发布(316)至队列以发起一个或多个动作。
使用这里所述的技术,时间选项板定义在不同级别(例如,经销商级别和订户级别等)上操作的不同类型的事件(例如,SMS、语音和数据等)。使用这些预定义事件,用户(例如,分析师)可以定义如下的规则,其中这些规则指定在满足事件选项板中所定义的一个或多个事件时所要执行的各种动作。为了使得单个系统能够执行包括针对这些各种类型的事件和操作级别的规则的多个应用,系统生成事件选项板中所包括的事件的宽记录,并使这些事件富集简档数据和聚集以提供可以实现近实时聚集的近实时应用。与其实现批应用,使用这里所述的技术执行的实时应用可以是针对大量数据实时地产生聚集历史、且产生低延迟的多事件应用。通过经由连续流的数据的近实时处理、(分批且增量式的)宽记录的生成以及聚集的建立,这里所述的系统能够更高效且快速地聚集数据,并且在执行具有近实时聚集的多事件应用时以减少的延迟量来执行应用。在示例中,系统例如生成并计算针对特定关键字的事件、富集(例如,简档信息)和聚集的记录(例如,宽记录),之后例如将该记录发布至应用。通过这样做,当应用正被执行且应用于所生成的记录时,系统在运行时更具有计算效率,例如这是因为系统已经预计算出了聚集并查询了简档信息、并且已将预计算出的信息包括到记录中以供处理,因此无需在应用执行时将由此导致的延迟引入处理。特别地,聚集的预计算、子记录的预生成和编译、包括所有字段(包括聚集所用的字段)以及系统被配置为为事件检测而解析的数据和事件的子记录的单个记录的生成、以及这些字段中的至少一些字段的利用预计算出的聚集或实时聚集的预填充(基于使增量数据富集预计算出的聚集)使得系统能够产生用于数据处理的单个全面记录,而非使系统必须在正进行记录的处理时以及在正接收记录时访问和检索数据并计算聚集。相对于在运行时从数据仓库访问数据以及在运行时计算聚集的效率,具有所有字段和子记录的单个记录的生成使得系统能够更高效地访问和处理数据。使用这里所述的技术,系统将该生成的记录(即,单个记录)发布至队列以供系统处理,这样做减少了记录处理中的运行时延迟。
上述的技术可以使用供在计算机上执行的软件来实现。例如,该软件形成在一个或多个编程或可编程计算机系统(可以具有诸如分布式、客户端/服务器或网格式等的各种架构)上执行的一个或多个计算机程序中的过程,其中该一个或多个编程或可编程计算系统各自包括至少一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入装置或端口、以及至少一个输出装置或端口。该软件可以形成例如提供与数据流图的设计和配置相关的其它服务的较大程序的一个或多个模块。可以将图的节点和元件实现为计算机可读介质中所储存的数据结构或者符合数据存储库中所储存的数据模型的其它有组织数据。
可以将软件设置在诸如利用通用或专用可编程计算机可读取的CD-ROM等的存储介质和/或硬件存储装置上,或者经由网络的通信介质(以编码在传播信号中的形式)传递至执行该软件的计算机的存储介质。可以在专用计算机上、或者使用诸如协处理器等的专用硬件进行全部功能。可以以利用不同计算机来进行软件所指定的计算的不同部分的分布式方式来实现该软件。优选将每一个这种计算机程序存储在通用或专用可编程计算机可读取的存储介质或装置(例如,固态存储器或介质、或磁性介质、或光学介质)上或者下载至该存储介质或装置,以在利用计算机系统读取存储介质或装置以进行这里所述的过程的情况下配置计算机并使该计算机进行工作。本发明的系统还可被视为作为配置有计算机程序的计算机可读存储介质来实现,其中如此配置成的介质使计算机系统以特定且预定义的方式进行工作,以进行这里所述的功能。
已经描述了本发明的许多实施例。然而,应当理解,可以在不偏离本发明的精神和范围的情况下作出各种修改。例如,上述步骤中的一些可以是与顺序无关的,因此可以按照与所描述的顺序不同的顺序执行。另外,以上的示例和技术广泛地适用于各种不同的应用。
应当理解,前述说明旨在示出而不是限制本发明的范围,该范围由所附权利要求书的范围限定。例如,上述的多个功能步骤可以在基本上不影响整个处理的情况下以不同的顺序进行。其它实施例在所附权利要求书的范围内。
Claims (20)
1.一种用于处理数据的数据处理系统所进行的方法,所述方法包括:
间歇地接收来自一个或多个数据流的数据,其中所接收到的数据包括数据记录;
随着继续接收来自所述一个或多个数据流的数据,
检测所接收到的数据记录中的两个或多个特定数据记录,其中所检测到的两个或多个特定数据记录各自包括特定标识符,
针对该特定标识符,
创建包括所检测到的两个或多个特定数据记录的数据记录的集合;
针对数据记录的所述集合中所包括的至少一个特定数据记录,
搜索数据记录以获得与所述特定标识符相关联的数据的历史聚集,其中所述历史聚集是从先前时间段预计算出的数据聚集,以及
基于所述至少一个特定数据记录和所述历史聚集来计算组合数据,
通过将所述组合数据插入数据记录的字段中、并且通过将来自所述集合中的数据记录至少之一的数据插入到该数据记录的另一字段中,来修改该数据记录;
通过对修改后的数据记录应用一个或多个规则,来处理所述修改后的数据记录;
基于应用所述规则,向存储器写入用于发起一个或多个动作的一个或多个指令;以及
将所述一个或多个指令发布至队列以发起所述一个或多个动作。
2.根据权利要求1所述的方法,其中,将来自所述集合中的数据记录至少之一的数据插入到该数据记录的另一字段中包括:
将来自所述集合中所包括的所述至少一个特定数据记录的数据插入到通过插入而修改的数据记录的另一字段中。
3.根据权利要求1所述的方法,其中,数据记录的所述集合是包括来自数据记录的数据的第一数据记录,以及所述方法还包括:
收集多个数据记录;
将所述数据记录发布至单个队列;
从所述队列中检测所述两个或多个特定数据记录;
将所述两个或多个特定数据记录一起联接到所述第一数据记录中,其中所述两个或多个特定数据记录包括表示为不同类型的事件的数据;以及
利用针对所述至少一个特定数据记录的组合数据来增强所述第一数据记录。
4.根据权利要求1所述的方法,其中,所述先前时间段是进行检测之前的时间。
5.根据权利要求1所述的方法,其中,还包括:
向所述第一数据记录附加与所述第一数据记录中所包括的特定事件相关联的客户的客户简档数据;以及
向所述第一数据记录附加具有针对所述特定事件的历史聚集的可附加查找文件即ALF。
6.根据权利要求1所述的方法,其中,计算组合数据包括:
向所述历史聚集添加增量数据,其中所述增量数据包括从计算出所述历史聚集的时间到近当前时间的数据,所述近当前时间距当前时间在一分钟内;以及
基于所述增量数据的添加,产生数据的近实时聚集。
7.根据权利要求1所述的方法,其中,还包括:
从用户的客户端装置接收表示用于定义应用的一个或多个规则的数据;
基于所接收到的数据生成用于定义应用的一个或多个规则;以及
基于执行所述一个或多个规则,针对间歇地接收到的一个或多个数据流实现该应用。
8.根据权利要求1所述的方法,其中,接收所述一个或多个数据流包括:
接收具有表示第一类型的事件的数据的第一数据流;以及
接收具有表示第二类型的事件的数据的第二数据流。
9.根据权利要求1所述的方法,其中,还包括:针对所述一个或多个指令中所包括的发布动作触发器执行一个或多个应用。
10.根据权利要求1所述的方法,其中,数据记录包括事件。
11.根据权利要求1所述的方法,其中,搜索包括在数据存储库中进行搜索或者在存储器中进行搜索。
12.一种用于处理数据的数据处理系统,包括:
一个或多个处理器;以及
一个或多个机器可读硬件存储装置,其储存能够执行以使所述一个或多个处理器进行操作的指令,所述操作包括:
间歇地接收来自一个或多个数据流的数据,其中所接收到的数据包括数据记录;
随着继续接收来自所述一个或多个数据流的数据,
检测所接收到的数据记录中的两个或多个特定数据记录,其中所检测到的两个或多个特定数据记录各自包括特定标识符;
针对该特定标识符,
创建包括所检测到的两个或多个特定数据记录的数据记录的集合;
针对数据记录的所述集合中所包括的至少一个特定数据记录,
搜索数据记录以获得与所述特定标识符相关联的数据的历史聚集,其中所述历史聚集是从先前时间段预计算出的数据聚集;以及
基于所述至少一个特定数据记录和所述历史聚集来计算组合数据;
通过将所述组合数据插入数据记录的字段中、并且通过将来自所述集合中的数据记录至少之一的数据插入到该数据记录的另一字段中,来修改该数据记录;
通过对修改后的数据记录应用一个或多个规则,来处理所述修改后的数据记录;
基于应用所述规则,向存储器写入用于发起一个或多个动作的一个或多个指令;以及
将所述一个或多个指令发布至队列以发起所述一个或多个动作。
13.根据权利要求12所述的数据处理系统,其中,将来自所述集合中的数据记录至少之一的数据插入到该数据记录的另一字段中包括:
将来自所述集合中所包括的所述至少一个特定数据记录的数据插入到通过插入而修改的数据记录的另一字段中。
14.根据权利要求12所述的数据处理系统,其中,数据记录的所述集合是包括来自数据记录的数据的第一数据记录,以及所述操作还包括:
收集多个数据记录;
将所述数据记录发布至单个队列;
从所述队列中检测所述两个或多个特定数据记录;
将所述两个或多个特定数据记录一起联接到所述第一数据记录中,其中所述两个或多个特定数据记录包括表示为不同类型的事件的数据;以及
利用针对所述至少一个特定数据记录的组合数据来增强所述第一数据记录。
15.根据权利要求12所述的数据处理系统,其中,所述先前时间段是进行检测之前的时间。
16.根据权利要求12所述的数据处理系统,其中,所述操作还包括:
向所述第一数据记录附加与所述第一数据记录中所包括的特定事件相关联的客户的客户简档数据;以及
向所述第一数据记录附加具有针对所述特定事件的历史聚集的可附加查找文件即ALF。
17.根据权利要求12所述的数据处理系统,其中,计算组合数据包括:
向所述历史聚集添加增量数据,其中所述增量数据包括从计算出所述历史聚集的时间到近当前时间的数据,所述近当前时间距当前时间在一分钟内;以及
基于所述增量数据的添加,产生数据的近实时聚集。
18.一种机器可读硬件存储装置,其储存能够执行以使一个或多个处理器进行操作的指令,所述操作包括:
间歇地接收来自一个或多个数据流的数据,其中所接收到的数据包括数据记录;
随着继续接收来自所述一个或多个数据流的数据,
检测所接收到的数据记录中的两个或多个特定数据记录,其中所检测到的两个或多个特定数据记录各自包括特定标识符,
针对该特定标识符,
创建包括所检测到的两个或多个特定数据记录的数据记录的集合;
针对数据记录的所述集合中所包括的至少一个特定数据记录,
搜索数据记录以获得与所述特定标识符相关联的数据的历史聚集,其中所述历史聚集是从先前时间段预计算出的数据聚集,以及
基于所述至少一个特定数据记录和所述历史聚集来计算组合数据,
通过将所述组合数据插入数据记录的字段中、并且通过将来自所述集合中的数据记录至少之一的数据插入到该数据记录的另一字段中,来修改该数据记录;
通过对修改后的数据记录应用一个或多个规则,来处理所述修改后的数据记录;
基于应用所述规则,向存储器写入用于发起一个或多个动作的一个或多个指令;以及
将所述一个或多个指令发布至队列以发起所述一个或多个动作。
19.根据权利要求18所述的机器可读硬件存储装置,其中,将来自所述集合中的数据记录至少之一的数据插入到该数据记录的另一字段中包括:
将来自所述集合中所包括的所述至少一个特定数据记录的数据插入到通过插入而修改的数据记录的另一字段中。
20.根据权利要求18所述的机器可读硬件存储装置,其中,数据记录的所述集合是包括来自数据记录的数据的第一数据记录,以及所述操作还包括:
收集多个数据记录;
将所述数据记录发布至单个队列;
从所述队列中检测所述两个或多个特定数据记录;
将所述两个或多个特定数据记录一起联接到所述第一数据记录中,其中所述两个或多个特定数据记录包括表示为不同类型的事件的数据;以及
利用针对所述至少一个特定数据记录的组合数据来增强所述第一数据记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311005041.5A CN117194492A (zh) | 2015-12-21 | 2016-12-20 | 数据处理系统及其进行的方法和存储装置 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562270257P | 2015-12-21 | 2015-12-21 | |
US62/270,257 | 2015-12-21 | ||
US15/360,449 | 2016-11-23 | ||
US15/360,449 US20170177446A1 (en) | 2015-12-21 | 2016-11-23 | Search and retrieval data processing system for computing near real-time data aggregations |
PCT/US2016/067840 WO2017112697A1 (en) | 2015-12-21 | 2016-12-20 | Search and retrieval data processing system for computing near real-time data aggregations |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311005041.5A Division CN117194492A (zh) | 2015-12-21 | 2016-12-20 | 数据处理系统及其进行的方法和存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108780466A true CN108780466A (zh) | 2018-11-09 |
CN108780466B CN108780466B (zh) | 2023-08-11 |
Family
ID=59065098
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680075432.6A Active CN108780466B (zh) | 2015-12-21 | 2016-12-20 | 用于计算近实时数据聚集的搜索和检索数据处理系统 |
CN202311005041.5A Pending CN117194492A (zh) | 2015-12-21 | 2016-12-20 | 数据处理系统及其进行的方法和存储装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311005041.5A Pending CN117194492A (zh) | 2015-12-21 | 2016-12-20 | 数据处理系统及其进行的方法和存储装置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US20170177446A1 (zh) |
EP (2) | EP3394772B1 (zh) |
JP (2) | JP6609052B2 (zh) |
CN (2) | CN108780466B (zh) |
AU (1) | AU2016378560B2 (zh) |
CA (1) | CA3009062C (zh) |
DE (1) | DE112016005870T5 (zh) |
SG (2) | SG10202000071TA (zh) |
WO (1) | WO2017112697A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078996A (zh) * | 2019-11-12 | 2020-04-28 | 北京币世界网络科技有限公司 | 一种区块链数字货币实时热度监控方法、装置及系统 |
CN112579638A (zh) * | 2019-09-29 | 2021-03-30 | 北京国双科技有限公司 | 行为标签信息的处理方法、装置、计算机设备及存储介质 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11625437B2 (en) | 2017-02-02 | 2023-04-11 | Kensho Technologies, Llc | Graphical user interface for displaying search engine results |
US10963517B2 (en) | 2017-02-02 | 2021-03-30 | Kensho Technologies, Llc | Graphical user interface for displaying search engine results |
US10726071B2 (en) * | 2017-02-02 | 2020-07-28 | Kensho Technologies, Llc | Content search engine |
US11947978B2 (en) | 2017-02-23 | 2024-04-02 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
US10831509B2 (en) | 2017-02-23 | 2020-11-10 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
US11016824B1 (en) * | 2017-06-12 | 2021-05-25 | Pure Storage, Inc. | Event identification with out-of-order reporting in a cloud-based environment |
WO2020068927A2 (en) | 2018-09-25 | 2020-04-02 | Ab Initio Technology Llc | A dedicated audit port for implementing recoverability in outputting audit data |
CN111291082B (zh) * | 2020-01-20 | 2023-10-31 | 北京百度网讯科技有限公司 | 数据聚合处理方法、装置、设备及存储介质 |
US11233640B2 (en) * | 2020-05-13 | 2022-01-25 | Ridgeline, Inc. | Mutation processing for events |
US11949784B2 (en) | 2020-05-13 | 2024-04-02 | Ridgeline, Inc. | Auditing for events |
DE102021200190A1 (de) | 2021-01-11 | 2022-07-14 | Geze Gmbh | Verfahren zum Bereitstellen eines Konfigurations-Datensatzes einer Entität |
WO2022177904A1 (en) * | 2021-02-16 | 2022-08-25 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
US20230300112A1 (en) * | 2022-03-21 | 2023-09-21 | Sophos Limited | Aggregating security events |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090287628A1 (en) * | 2008-05-15 | 2009-11-19 | Exegy Incorporated | Method and System for Accelerated Stream Processing |
CN103080932A (zh) * | 2010-06-22 | 2013-05-01 | 起元技术有限责任公司 | 处理相关数据集 |
US20140324530A1 (en) * | 2013-04-30 | 2014-10-30 | Liveops, Inc. | Method and system for detecting patters in data streams |
CN105051729A (zh) * | 2013-02-01 | 2015-11-11 | 起元技术有限责任公司 | 数据记录的选择 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966072A (en) | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
US6584581B1 (en) | 1999-12-06 | 2003-06-24 | Ab Initio Software Corporation | Continuous flow checkpointing data processing |
US6965886B2 (en) * | 2001-11-01 | 2005-11-15 | Actimize Ltd. | System and method for analyzing and utilizing data, by executing complex analytical models in real time |
US7689616B2 (en) * | 2005-04-15 | 2010-03-30 | Microsoft Corporation | Techniques for specifying and collecting data aggregations |
US8069129B2 (en) | 2007-04-10 | 2011-11-29 | Ab Initio Technology Llc | Editing and compiling business rules |
US9183270B2 (en) * | 2010-05-17 | 2015-11-10 | Wal-Mart Stores, Inc. | Social genome |
US8856807B1 (en) * | 2011-01-04 | 2014-10-07 | The Pnc Financial Services Group, Inc. | Alert event platform |
US8589375B2 (en) * | 2011-01-31 | 2013-11-19 | Splunk Inc. | Real time searching and reporting |
AU2013214801B2 (en) * | 2012-02-02 | 2018-06-21 | Visa International Service Association | Multi-source, multi-dimensional, cross-entity, multimedia database platform apparatuses, methods and systems |
US9185235B2 (en) * | 2012-08-02 | 2015-11-10 | Ab Initio Technology Llc | Aggregating data in a mediation system |
US20150120607A1 (en) * | 2013-10-24 | 2015-04-30 | Vonage Network Llc | System and method for customer event email consolidation and delivery |
US9934279B2 (en) * | 2013-12-05 | 2018-04-03 | Oracle International Corporation | Pattern matching across multiple input data streams |
WO2016118979A2 (en) * | 2015-01-23 | 2016-07-28 | C3, Inc. | Systems, methods, and devices for an enterprise internet-of-things application development platform |
US10657134B2 (en) * | 2015-08-05 | 2020-05-19 | Ab Initio Technology Llc | Selecting queries for execution on a stream of real-time data |
US20170061315A1 (en) * | 2015-08-27 | 2017-03-02 | Sas Institute Inc. | Dynamic prediction aggregation |
US10756991B2 (en) * | 2015-09-17 | 2020-08-25 | Salesforce.Com, Inc. | Simplified entity engagement automation |
-
2016
- 2016-11-23 US US15/360,449 patent/US20170177446A1/en active Pending
- 2016-12-20 EP EP16823482.1A patent/EP3394772B1/en active Active
- 2016-12-20 EP EP20191384.5A patent/EP3798870B1/en active Active
- 2016-12-20 SG SG10202000071TA patent/SG10202000071TA/en unknown
- 2016-12-20 JP JP2018530555A patent/JP6609052B2/ja active Active
- 2016-12-20 SG SG11201804482UA patent/SG11201804482UA/en unknown
- 2016-12-20 AU AU2016378560A patent/AU2016378560B2/en active Active
- 2016-12-20 WO PCT/US2016/067840 patent/WO2017112697A1/en active Application Filing
- 2016-12-20 CN CN201680075432.6A patent/CN108780466B/zh active Active
- 2016-12-20 CA CA3009062A patent/CA3009062C/en active Active
- 2016-12-20 DE DE112016005870.5T patent/DE112016005870T5/de active Pending
- 2016-12-20 CN CN202311005041.5A patent/CN117194492A/zh active Pending
-
2019
- 2019-10-24 JP JP2019193640A patent/JP7082961B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090287628A1 (en) * | 2008-05-15 | 2009-11-19 | Exegy Incorporated | Method and System for Accelerated Stream Processing |
CN103080932A (zh) * | 2010-06-22 | 2013-05-01 | 起元技术有限责任公司 | 处理相关数据集 |
CN105051729A (zh) * | 2013-02-01 | 2015-11-11 | 起元技术有限责任公司 | 数据记录的选择 |
US20140324530A1 (en) * | 2013-04-30 | 2014-10-30 | Liveops, Inc. | Method and system for detecting patters in data streams |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579638A (zh) * | 2019-09-29 | 2021-03-30 | 北京国双科技有限公司 | 行为标签信息的处理方法、装置、计算机设备及存储介质 |
CN112579638B (zh) * | 2019-09-29 | 2024-02-13 | 北京国双科技有限公司 | 行为标签信息的处理方法、装置、计算机设备及存储介质 |
CN111078996A (zh) * | 2019-11-12 | 2020-04-28 | 北京币世界网络科技有限公司 | 一种区块链数字货币实时热度监控方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3798870B1 (en) | 2023-05-03 |
JP6609052B2 (ja) | 2019-11-20 |
EP3798870A1 (en) | 2021-03-31 |
EP3394772A1 (en) | 2018-10-31 |
CA3009062A1 (en) | 2017-06-29 |
CN108780466B (zh) | 2023-08-11 |
JP7082961B2 (ja) | 2022-06-09 |
JP2020030842A (ja) | 2020-02-27 |
SG11201804482UA (en) | 2018-06-28 |
SG10202000071TA (en) | 2020-03-30 |
EP3394772B1 (en) | 2020-08-19 |
AU2016378560B2 (en) | 2020-03-05 |
CA3009062C (en) | 2021-10-26 |
CN117194492A (zh) | 2023-12-08 |
DE112016005870T5 (de) | 2018-09-06 |
US20170177446A1 (en) | 2017-06-22 |
AU2016378560A1 (en) | 2018-06-21 |
JP2019507403A (ja) | 2019-03-14 |
WO2017112697A1 (en) | 2017-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108780466A (zh) | 用于计算近实时数据聚集的搜索和检索数据处理系统 | |
US7657453B2 (en) | System, computer-readable medium and method for filtering exceptions generated by forecasting and replenishment engine | |
US20170249650A1 (en) | Visual representations of recurring revenue management system data and predictions | |
US8447664B1 (en) | Method and system for managing inventory by expected profitability | |
US8463665B1 (en) | System and method for event-driven inventory disposition | |
US8219457B2 (en) | Custom user definable keyword bidding system and method | |
US7457807B2 (en) | Data migration and analysis | |
US20120102053A1 (en) | Digital analytics system | |
US20060271446A1 (en) | Product common object | |
US20130346329A1 (en) | System and methods for social data sharing capabilities for enterprise information systems | |
US20140122176A1 (en) | Predictive model of recurring revenue opportunities | |
US20020128910A1 (en) | Business supporting system and business supporting method | |
WO2003038682A1 (en) | Real time business process analysis method and apparatus | |
US20130212158A1 (en) | Processing event instance data in a client-server architecture | |
US11947978B2 (en) | Dynamic execution of parameterized applications for the processing of keyed network data streams | |
CN112380187B (zh) | 库存数据监控方法、装置、计算机设备和存储介质 | |
US20150120355A1 (en) | Mobile terminal management server and mobile terminal management program | |
CN113377604A (zh) | 一种数据处理方法、装置、设备和存储介质 | |
EP2811436A1 (en) | Mobile terminal management server, and mobile terminal management program | |
US11438426B1 (en) | Systems and methods for intelligent session recording | |
US20230177423A1 (en) | Electronic catalog publishing | |
JP2004145421A (ja) | 営業活動支援方法、サーバ及びプログラム | |
CN117217732A (zh) | 对象运维方法以及对象运维平台 | |
WO2023076888A1 (en) | Predictive and customizable round up platform | |
CN115456534A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |