CN1575464A - 利用事务语义法分段和处理连续数据流 - Google Patents

利用事务语义法分段和处理连续数据流 Download PDF

Info

Publication number
CN1575464A
CN1575464A CNA008105707A CN00810570A CN1575464A CN 1575464 A CN1575464 A CN 1575464A CN A008105707 A CNA008105707 A CN A008105707A CN 00810570 A CN00810570 A CN 00810570A CN 1575464 A CN1575464 A CN 1575464A
Authority
CN
China
Prior art keywords
section
data
data stream
continuous data
affairs
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
Application number
CNA008105707A
Other languages
English (en)
Other versions
CN100375088C (zh
Inventor
劳伦斯·A·布克曼
戴维·阿尔伯特·布莱尔
史蒂文·M·罗森撒尔
罗伯特·路易斯·克威泽
迈克尔·J·贝克利
杰瑞·李·考伦
阿伦·拉泽道
莎亚姆·R·默达穆比
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
Torrent Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Torrent Systems Inc filed Critical Torrent Systems Inc
Publication of CN1575464A publication Critical patent/CN1575464A/zh
Application granted granted Critical
Publication of CN100375088C publication Critical patent/CN100375088C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/149Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

对于和事务相关的连续数据源而言,可以把数据分段并且以数据流程排列的方式处理数据,可选择的是以并行方式处理数据,可以不需要把数据存储在临时数据库就可以对数据进行处理。可以以并行方式处理来自多个数据源的数据。分段也可以定义一些点,在这些点可以提供聚合输出,进而在此处设立检查点。

Description

利用事务语义法分段和处理连续数据流
相关申请
本申请要求共同待审的美国临时申请序号60/140,005的依据35U.S.C119(e)的权益,该申请1998年6月18日提交,标题为“利用事务语义法分段和处理连续数据流”,作者Lawrence A.Bookman等人,它的内容在此被引用。本申请也要求共同待审的美国临时申请序号60/185,665的依据35U.S.C119(e)的权益,该申请2000年2月2日提交,标题为“利用事务语义法分段和处理连续数据流”,作者Lawrence A.Bookman等人,它的内容在此被引用。
本发明的背景
基于计算机的事务系统产生与事务相关的数据,事务由这些系统执行。这些与事务相关的数据被分析以便于标示事务的特性。从这些特性中,可能暗示对这些事务和/或相关市场数据的修改,或者可能得出其它的商务决策。
为了分析与事务相关的数据,计算机系统通常访问存储在数据库里的数据。在经过一段时间的数据收集之后,这些收集到的数据以单个事务的方式写入数据库中。正如上面提到的,经过分析存储在数据库里的数据后产生相应的结果。从分析获得的结果典型地代表了数据库中的数据的变化。利用这些结果,例如,作为各种商务决策的基础;通常,这些结果也存储在数据库中。
在某些情况下,与事务相关的原始数据在经过处理之后并不保留在数据库中。这种处理与事务相关的数据的方式通常是批处理的形式。在批处理中,只有当所有的数据处理完之后结果才被输出。例如,如果与批量相关的每一个纪录以单独的事务存储在数据库中,那么该数据库的数据库管理系统将出现巨大的超负载情况。同样地,以单个事务的方式从数据库中读取大量的数据来允许对这些数据进行分析。在很多情况下,事务的发生以及利用有关该事务的数据产生结果之间的时间可能是许多天,甚至是许多周。
本发明的简述
如果事务系统连续产生与事务相关的数据,或者如果接收分析结果的期望时间少于需要执行批处理的时间,那么这样的批处理技术是不能使用的。通常不期望延迟获得分析结果,因为这些事务的用户行为可能频繁地发生变化。例如,在实时跟踪具有频繁变化的系统访问信息的数据库系统里,因为安全或性能原因,可能不能接受访问分析时有时无的情况。
给定与事务相关的连续数据源,这些事务数据可以被分段并且以数据流组织的形式被处理,可以选择并行方式,而且不需要把数据存储在临时数据库里就可以处理数据。因为数据分段而且单独操作,来自多个地方的数据可以被并行处理。分段也可以定义提供集合输出的点,在这里可以建立检查点。通过分割数据为段并且在分段之上定义检查点,在每一个定义的检查点处可以重新启动处理进程。在这种方式里,数据处理可能在特定的段上失败但不影响其它段的处理。因此,如果特定段上的数据处理失败,与此段相应的工作丢失,但是其它段上执行的工作不会丢失。这个检查点,例如,可以在关系数据库里实现。检查点使得关系数据库系统实现查询重递,由此数据库的性能得到增加。这对于依赖于系统性能获得成功的数据库开发商和用户都是有好处的。总之,如果可以分割数据流,那么就可以实行检查点处理和恢复。
下面给出这些和其它的优势。
根据一个方面,提供了一种处理连续数据流的方法。这个方法包含的步骤有接收事务语义的指示,在连续数据流上应用事务语义以标示该连续数据流的段,处理该连续数据流的每一个段上的数据以便为段产生结果,并且在该连续数据流的每一个段上的数据经过处理之后,提供为该段产生的结果。
根据一个实施方案,数据包括一组纪录,每个纪录包括一组字段,事务语义是由该数据的一个或多个纪录的一个或多个字段的函数定义的。根据另外一个实施方案,本方法进一步包含根据标示的段分割连续数据流的步骤。根据另外一个实施方案,分割的步骤包括在里连续数据流里插入指示两个段边界的纪录。根据另外一个实施方案,此纪录是仅仅指示边界的标志纪录。根据另外一个实施方案,此纪录是包括与事务语义相关信息的语义纪录。
根据另外一个实施方案,连续数据流是有关发送给服务器的请求的信息日志,应用的步骤包含从日志中读取与请求相关的信息;之后把事务语义应用到读取的信息上。根据另外一个实施方案,与每一个请求相关的信息包括一些字段,在此事务语义是由与一个或多个请求相关的信息的一个或多个字段的函数定义的。根据另外一个实施方案,此信息包括请求发送给服务器的时间,在此事务语义定义时间段。根据另外一个实施方案,本方法进一步包含过滤日志来排除与一个或多个请求相关信息的步骤。根据另外一个实施方案,过滤的步骤是在应用事务语义步骤之前执行的。根据另外一个实施方案,过滤步骤包括排除与蜘蛛关联的请求信息。根据另外一个实施方案,本方法进一步包含过滤连续数据流以排除连续数据流中的数据的步骤。
根据另外一个实施方案,本方法进一步包含额外步骤,那就是处理连续数据流中的每个段的数据为段产生结果,并且在此额外处理步骤之中处理连续数据流中的数据之后,提供为段产生的结果。根据另外一个实施方案,处理步骤包含的步骤有:把段里的数据分割成一组并行分区;并行处理每个分区以提供每个分区的临时结果。根据另外一个实施方案,本方法进一步包含结合每个分区的临时结果为段产生结果。根据另外一个实施方案,连续数据流中的数据是有序的,而且有多个连续数据流的来源;本方法进一步包括判定连续数据流中的数据是否有序;如果判定处数据是无序的,中断处理步骤,根据事务语义在段里插入该数据,重新处理该段然后继续处理步骤。根据另外一个实施方案,发明进一步包含保存正在处理的数据的段的持久性指示;当检测到处理步骤失败时,放弃此选择段的处理步骤产生的结果并且根据保存的持久性指示重新处理选择段;当处理步骤成功结束时,提供产生的输入并且选择下一个段。
根据另外一个方面,提供了一种由计算机系统的处理元素在连续数据流上执行检查点操作的进程。该进程包含的步骤有:接收事务语义的指示;在数据上应用事务语义把连续数据流分割成段供处理元素来处理;选择其中一个段;保存选择的段的持久性指示。由处理元素处理选择段产生结果;当检测到处理元素的失败时,放弃处理元素为选择段产生的任何结果,根据保存的持久性指示重新处理选择的段;当处理元素处理过程成功时,提供由处理元素作为输出产生的输出,选择处理元素要处理的下一个段。根据另外一个实施方案,应用的步骤包括在连续数据流中插入数据指示数据段之间的边界。
根据另外一个方面,提供一种计算机系统来执行计算机系统里的连续数据流上的检查点操作。该计算机系统包含接收事务语义指示的装置;在连续数据流上应用事务语义把数据分割成段的装置;选择其中一个段的装置;保存选择段的持久性指示;用来处理选择段产生结果的处理元素;在检测到处理元素失败之后放弃处理元素为选择段产生的任何输出的装置;根据保存的持久性指示指导处理元素重新处理选择段的装置;在处理元素成功结束处理之后,提供处理元素产生的结果并且选择处理元素要处理的下一个段的装置。根据另外一个实施方案,应用的装置包括在连续数据流中插入数据指示数据段之间的边界。
根据另外一个方面,提供了一种处理连续数据流的方法。这个方法包含的步骤有接收事务语义的指示;在连续数据流上应用事务语义以标示该连续数据流的段;在连续数据流里插入数据指示连续数据流的标示段之间的边界。
下面引用所附上的图表详细描述了本发明的更多特征和优势以及本发明的各种实施方案的结构和操作。在图表中,相近的引用数字指示相近或功能上相似的元素。除此之外,引用数字的最左边的一个或两个数字标示该引用数字第一次出现的图表。
本发明图表的简要描述
在图表中,
图1是数据流程图,该图是根据本发明的一个实施方案表现系统处理连续数据。
图2是描述数据如何从连续数据源引入并行应用程序框架的操作。
图3是表现系统处理多个数据流的可选数据流程图。
图4是描述数据如何被多个管道系统处理的流程图。
图5是适合于实现本发明的各种实施方案的客户-服务器系统的框架图。
图6是处理数据的处理过程结构的框架图。
图7是以并行方式通讯的具有操作符的双节点系统的框架图。
详细描述
下面的详细描述应该和所附的图表一起阅读,图表中相似的引用数字指示相似的结构。所有在这里引证的参考文献都参考并入本篇。
图1中,连续数据源101提供连续数据流102,该数据流是由数据处理应用程序107根据一些事务语义103处理后提供结果108。这些事务语义103可能是决定流102如何被分段的信息。语义103,例如,可能取决于系统操作流102的一些需求或者取决于分析数据的商务需求。在数据处理应用程序107中,节段器104根据事务语义103把数据分段提供分段数据105。数据处理操作者106处理分段数据105中的每一个段里的数据来产生每一个段的结果108。这些处理可能是,例如,读取或更新连续数据流102中的一个或多个数据部分。
连续数据源101一般从事务系统中提供与事务相关的数据。数据源是连续的,因为事务系统通常在一段时间内完成操作以便允许用户进行事务操作。例如,连续数据源可能是WEB服务器,它输出关于发送给此WEB服务器的请求的信息日志。这些请求可能被WEB服务器当作日志纪录存储在服务器日志中。连续数据流源的其它例子包括来自预定系统的有关事务的数据源,销售终端系统,自动柜员机,帐务系统,信用卡系统,搜索引擎,视频或音频分布式系统,或产生连续数据流的其它形式的系统。也可能有一个或多个连续数据源提供一个或多个连续数据流,应用程序107可能会被配置成在这些数据流之上进行操作。
与事务相关的数据一般包括对应每个事务的纪录,该纪录包括一个或多个描述该事物的信息字段。该字段可能是几种不同格式的任何一种。与事务相关的数据,例如,可能具有可变或固定长度,可能是被标签过或未被标签过,也可能被分界或未被分界。与事务相关的数据可能是,例如,以标记语言格式诸如SGML,HTML,XML,或其它标记语言的格式存在。有关数据从连续数据源101传送到数据处理引用程序107的样例构成包括字符型串,数组或其它存储在文件里的结构,数据库纪录,命名管道,网络数据包,帧,单元,或者其它格式。根据一个方面,连续数据流101是服务器日志,而且与事务相关的样例数据可能包括用户标示符,客户程序以及/或者系统标示符,时间戳,页面或广告标示符,指示页面或广告如何被存取的指示器,纪录类型,以及/或者其它涉及事务的信息。
事务语义103定义了连续数据流102的一个或多个纪录的一个或多个字段的函数。例如,事务语义可能定义一段时间,例如,一小时,这样在一小时之内的所有数据被放在一个段里。事务语义103也可能定义几个纪录的集合函数,例如,销售总额,而不是单一纪录的函数,诸如时间。这样的事务语义103也可能派生于指示从数据分析获得信息的商业规则。事务语义103也可能取决于一些系统需求。这种分析可能被执行,例如,基于每个段以便使能商业决策。
事务语义103由节段器104应用到连续数据流102上来标示连续数据流102上的段。连续数据流102可能被以许多方式根据这些标示段被分区。例如,插入到连续数据流102里纪录指示数据流中两个段的边界。该纪录可能是仅仅指示边界的标记。例如,所有纪录中都被放置了标签,结果时标志纪录有此标签的一个值,而数据纪录有此标签的另外一个值。可选的是,该纪录可能是包含与事务语义相关的信息,诸如事务语义自身或者是通过在数据上应用事务语义派生的信息,诸如指定时间段。而且,应用程序107可能允许多个数据处理操作器106根据存储在数据中的事务语义访问数据段。任何一种类型的信息都可以被用于指示数据流102里的分区。
多个分段器104也可以被用于产生不同段的连续数据流105,有关该数据流105的处理执行方式可以不同。可选的是,多个数据处理操作器106可以以并行方式在分段连续数据流105上执行不同的分析。
数据处理操作器106可以执行许多种操作,例如,为每个数据段计算数据集合诸如纪录累计,纪录中的变量之和,以及统计值诸如平均数,各种数据字段的最大值和最小值。在一个连续数据流是服务器日志的应用程序中,计算用户的唯一编号是可能的,例如,服务器提供给这些用户在每一个段或段的组合里的每个信息项目。各种数据处理操作器106可能加入到数据处理应用程序107中或被从中删除以便提供各种不同的结果108。
数据处理应用程序107可以采用来自Torrent系统公司的Orchestrate并行结构来实现,这种技术在以下专利申请中有详细描述:美国专利申请序列号08/627,801,1996年3月25日提交,标题为“可编程并行计算机的设备和方法“,作者是Michael J.Beckerle等;美国专利申请序列号08/807,040,1997年2月24日提交,标题为“监控并行计算性能的设备和方法”,作者是M.Razdow,等;美国专利申请序列号09/104,288,1998年6月24日提交,标题为“在计算机系统里通过分割数据在数据上进行检查点操作的计算机系统和处理”,作者是Michael J.Beckerle;美国专利号5,909,681,1999年6月1日发布,标题为“并行处理分割数据的计算机系统和计算机化的方法”,作者是Anthony Passera,等。
在此系统中,并行数据源在多个操作器上以数据流程安排的方式被执行。特别地,在图表1中执行的每个操作,诸如分段或数据分析,可以作为操作器在Orchestrate并行处理结构中被执行。使用并行应用结构,由数据处理操作器处理的数据被分割成许多并行分区。这些并行分区的每一个分区都由不同的数据处理操作器实以并行方式处理,每个操作器为各自的分区提供临时结果。执行集合函数的操作器可能把这些临时结果进行组合以便提供集合段的结果。
再者,使用Orchestrate并行处理结构处理并行数据流,配置各种操作器来处理这些并行数据流,并且使用多项输入操作器组合两个数据流形成单一数据流。这个单一数据流可能被各种操作器操作,存储和传输,也可能在此数据流上执行其它操作。
数据处理操作器106被实现的方式很多。特别地,数据处理操作符106通常以批处理模式或连续模式处理数据。如果数据处理操作器106执行批处理,它直到所有与批处理条目相关的数据被处理之后才输出数据。操作器106可能被执行连续循环的程序控制,该循环在单个段的基础上给操作器提供数据。此程序向操作器标示数据已经到达每个段的边界,因此,这引起操作器106为段输入结果。可选的是,包括引起操作器106在每一个段的边界上输入接口的连续操作器可能被使用。
以各种形式的分段连续数据流105也可能被存储在Orchestrate并行数据集里。并行数据集通常包括名称,指向数据实际被存储的位置,模型以及元数据(描述数据的数据),元数据是指申明信息诸如硬件、磁盘、数据处理单元等的配置信息,指示数据存储的地方。一个数据集可能被用来标示多个段,或者每一个段使用独立的数据集。
如果象Orchestrate并行应用程序结构之类的系统被用于数据处理应用,那么可以从存储方式中把连续数据流102引入到此应用程序结构的数据集合里,连续数据源101在此存储方式中产生连续数据流102。例如,连续数据源101可以是根据接收到的请求产生数据的HTTPD服务器,而且该服务器把这些数据保存在日志中。通常被称为日志管理器的单独应用程序定期创建HTTPD用于存储数据的日志文件。
例如,每日可以创建新的日志文件。有关日志管理器如何创建日志文件的信息被提供给象引入操作器之类的数据处理操作器106,这样的引入操作器把日志文件集合作为连续数据流读取Orchestrate应用程序结构的数据集合里。可能有一个或多个并行操作日志文件的引入操作器,或者有同一个操作器的一个或多个实体在并行处理。日志文件也可能有许多来源,引入操作器的多个实例在并行处理这些日志文件。例如,多个HTTPD服务器可能并行写同一个日志文件。也就是说,多个HTTPD进程产生由一个或多个输入操作器处理的并行数据流。多个输入操作器可能被用于把这些数据流结合到单个数据流中,其它的操作器可能在此之上进行操作。
现在结合图2来描述由数据处理应用程序107执行的引入进程200的操作流程。引入进程200依赖于步骤201里接收到的数据标示信息。此标示信息标示数据文件、命名管道或其它由连续数据源102使用的构造的命名规则。之后,在步骤202里根据接收到的源标示信息选择命名构造。接着,在步骤203里从这个命名构造中读取任何以后的数据纪录。如果此命名构造中包含标示信息,可能执行验证步骤来验证访问的是正确的命名构造。如果步骤203执行的操作返回数据,根据步骤204的判定,数据提供给步骤208的下一个操作器。下一个操作器可能是过滤操作器,把数据纪录变换成另外一种适合分段和处理的格式,或者可能是分段器。处理过程通过在步骤203里读取更多的数据。以这种方式,引入器不间断地从指定的连续数据源读取数据,在连续数据源和数据处理应用程序之间提供缓冲。
如果在执行读操作的时候没有可用数据,根据步骤204的判定,在步骤205首先判定服务器是否在运行。如果在步骤205里服务器没有运行,系统在步骤209里等待并且在等待之后在步骤203尝试再此读数据。等待的时间段可能是,例如,随机数,预先决定的数,或者它们的结合。如果服务器在运行并且还没有到达文件的尾部,根据步骤206的判定,事务系统可能被认为运行正常,而且还没有被用于产生与事务相关的数据。在步骤206之后,引入器进程200可能等待一段时间并且/或者可能给下一个操作器发送伪纪录,正如在步骤210里指示的那样,在步骤203里尝试再次读取数据之前。如果到达文件尾部,根据步骤206的判定,在步骤207里根据源标示信息选择下一个文件(或其它命名构造),在这之后,处理过程返回步骤203。这里的进程200可能被设计成没有中断地操作以便连续提供数据给数据处理应用程序107。
连续数据流102的分段也提供设备,通过此设备执行检查点操作。特别地,操作器106可能保存正在被处理的持久分段指示。当检测到操作器106执行处理的过程出现失败时,任何由操作器106为选择的段产生的结果可能被丢弃。此段之后可能被重新处理使用保存的正在处理的段的持久指示。如果操作器106正常地结束处理过程,操作器106产生的输出可能在下一个段被处理之前输出。这种使用分段来进行检查点操作使得在连续数据流上的操作通过使用事务语义被实施检查点,该事务语义把连续数据流分割为段。分段可以被用于定义检查点,该检查点的执行行为在“利用数据流并行法装载数据库”,Sigmod Record,第23卷,4号,72-83页,1994年12月,以及在美国专利申请序列号09/104,288,1998年6月24日提交,还有题为“计算机系统和在计算机系统内分割数据处理数据上的检查点操作”,作者是Michael J.Beckerle。也可能使用不基于事务语义的分段,而是采用不同的分割来执行检查点。
在Orchestrate应用程序结构中,在上面结合图2一起描述的引入操作和分段器可能被作为复合操作器实现,使得从连续数据流的引入到结果的输出启用对整个数据处理应用程序的检查点。引入处理的检查点也可能根据事务语义被执行。例如,如果使用了时间字段,整个步骤可以被定期进行检查点处理,诸如1小时,30分钟等。
在一些应用程序中,连续数据源可能遇到中断的情况,例如由于失败或其它原因,因而可能没有按照期望的顺序提供的数据。在一些应用程序中,无序的数据会被丢弃掉。然而,在某些分析中,无序的数据可能是有用的。在这些应用程序里,无序的数据被标示并且插入到合适的段里,这个段又被重新处理。无序数据是可以检测到的,例如,通过监控连续数据源101的状态。当数据源101在之前一直不可用之后变得可用时,就会中断对于其它段的处理,进而处理来自刚刚可用的数据源的无序数据。接着,把来自这个连续数源的数据附加到所属的数据集合的最后。在结束的时候,系统的连续操作重新启动。这种中断和数据的重新处理同样也可以应用在检查点操作上。
如上所述,可以配置数据处理应用程序107以并行方式处理多个连续数据流102。图3描述了数据处理应用程序308,在功能上和数据处理应用程序107相似,该应用并行接收来自许多不同数据源302-304的连续数据流305-307。通过配置数据应用程序308在这些单个的流305-307上进行操作并且产生一个或多个结果310。特别地,结果310可能是,例如,合并的数据流作为输入流305-307的函数。特别地,结果310可能是存储在数据库里的实时纪录流。根据一个实施方案,数据库是关系数据库,并且该关系数据库有能力执行并行访问数据库里的纪录。
在图3中描述的系统301是一个处理多个并行数据源的样例系统。特别地,这些数据源可以是产生日志文件数据流的HTTPD服务器。如果没有这样的结构301,必须从多个数据源获得日志文件信息,然后以串行方式处理,或者多个进程必须独立处理单独的数据流。前一种情况下,吞吐量递减是因为引入了顺序瓶颈。后一种情况下,程序员直接管理独立的并行进程来处理单个数据流并且合并单个数据流数据。
系统301可能支持并行的多个唯独方面。特别地,系统301可能并行操作数据流的分区。再者,系统301可能使用并行管道操作一个或多个数据流。特别地,如图1所示,分段器104接收一个或多个连续数据流102,并行操作这些数据流,也有许多数据处理操作器24对离散数据流进行操作。
图4描述了多个连续数据源各自产生多个连续数据流的数据流程。在步骤401里,进程400开始运行。在步骤402-403,系统301可能引入许多日志文件。这些引入进程可能并行发生,而且这些引入进程的结果可能避开一个或多个数据操作器106,该操作器在步骤405-407执行处理日志文件。尽管描述了三个数据流,系统301可以处理任意数量的并行数据流,包含任意数量的并行管道。这些引入进程的结果可以对数据流进行重新分区,把数据流的不同部分重新分配给不同的数据处理操作器106。
在步骤405-407,这些日志文件以并行方式被处理,典型地,是由系统301的处理器的不同线程执行的。执行的处理可能包括对输入数据流元素进行排序和合并操作。这些排序和合并进程可以把相似数据联系在一起,或者根据语义103或预定以的规则重新组织数据。在步骤408-410,每一个数据流各自地,例如,由数据处理操作器106处理。这些数据操作器可以执行包括数据删除、清洗和论证等功能。因为输入数据流可能包含坏数据,系统301有能力检测和拒绝这些数据。这种检测可能基于指示数据流里有效纪录开始的指定字节格式,或者其它业界周知的错误检测和更正方法。由于多达三分之一的流过HTTPD进程的互联网流量是由蜘蛛产生的,到来数据流的一个或多个部分可能被“清洗过”。特别地,可能存在在数据流里过滤和修改纪录的多用途组件。这些组件可能操作,例如用户通过管理系统505根据预定义的规则设置,下文结合图5解释管理系统505。
再者,数据流里的项目可能被辅助于其它信息。例如,WEB站点活动可能与来自其它事务源的实时数据相合并,诸如来自销售部门、发货部门和客户支持,以便形成一对一的市场应用。因此,系统301有能力辅助数据流基于,例如,内存表查找和数据库查找。例如,把与指定广告相关的所有广告客户信息辅助于数据流,这将允许用户对每个广告进行详细的收入分析。其它形式的数据辅助也可能出现。
在步骤411-413,多个数据流的数据可能会被聚合。特别地,系统301可以提供几个分组操作器分析和组合来自多个数据流的数据。这提供,例如,一种在几个相互独立的方面进行有效分组和分析数据的能力去分析WEB活动。更特别地是,为了提供对数据评估的准确性需要分析多个数据源的数据。在步骤414-416,聚合的流数据保存在一个或多个地址。特别地,数据可能被聚合而且保存在关系数据库中。根据一个实事方案,系统301可能以并行的方式在关系数据库里保存信息。
系统301可能被,例如,作为执行在一个或多个计算机系统之上的程序来实现。这些计算机系统可能是,例如,业界周知的多用途计算机系统。更特别地,多用途计算机包括业界周知的处理器、内存、存储设备、以及输入/输出设备。多用途计算机可以在操作系统上执行,在此操作系统之上可以利用编程语言设计一个或多个计算机系统。样例操作系统包括微软公司的Windows95,Windows98或WindowsNT操作系统,来自于太阳微系统公司、惠普公司、红帽子公司以及许多供应商的Solaris,HPUX,Linxu,或其它基于UNIX的操作系统或者其它未来熟悉的操作系统。
图5描述了一组功能上作为客户机501和服务器503的多用途计算机。在一个实施方案,数据处理应用程序107可以作为执行在服务器503上的一个或多个进程。特别地,服务器程序510在连续数据流102上执行一个或多个操作。在一个实施方案里,服务器503包括作为应用程序编程接口的对象结构509,程序员可以通过应用程序接口控制服务器程序501的处理过程。客户机501可以包含管理应用程序505,用户通过该管理程序执行输入和输出502以便执行服务器程序510的管理功能。管理应用程序505可以包括一般用户界面506,该界面被配置用于显示和接收来自决定服务器程序501如何操作的配置信息。管理应用程序505也可能包含管理用户信息和给服务器程序510提供信息的基本客户机程序507。客户机501和服务器503之间的通讯是通过客户机通讯程序508和服务器通讯程序511在网络504上执行的。客户和服务器通讯程序508、511可能报刊,例如,网络协议诸如TCP/IP,网络504可能是以太网、ISDN,ADSL,或其它形式的用于系统之间传递信息的网络。客户机-服务器和网络通讯在计算机和网络领域是众所周知的。
服务器503可能,例如,把结果108保存在和服务器503相关的一个或多个数据库512。在一个实施方案里,数据库512是并行关系数据库。服务器503也可能存储许多描述服务器程序510如何操作的用户配置文件513。
如上所述,数据处理应用程序107可以是基于客户-服务器的结构。这个结构可以使用包括Java,C++以及其它编程语言的一个或多个编程语言来设计。根据一个实施方案,数据处理应用程序107是由C++编写的,而且C++结构被定义包括处理数据流数据的组件或对象。这些对象可能是对象结构509的一部分。例如,可能有用于分割、合并、连接、过滤和拷贝数据的组件。服务器程序510根据用户配置文件513管理数据处理应用程序107的执行。这个配置文件513描述了诸如处理节点的网络名的基本计算机系统资源以及诸如磁盘空间和内存等计算机系统资源。数据库512可以被用于存储相关的信息,诸如包含描述数据设计的元数据,以及用户定义的组件和程序。
图6描述了实现数据处理应用程序107的体系结构601。体系结构601可能由多层组成。例如,体系结构601可以包括领头进程602负责创建单个程序行为。特别地,进程602建立数据处理应用程序107的实例。领头进程602可能生成区段带头进程603和604。在一个实施方案里,领头进程602产生区段带头进程603和604,使用周知的执行远程命令的Unix命令“rsh”。在一个实施方案里,在每一个物理计算机系统上产生区段带头进程。每一个区段带头进程603-604通过周知的fork()产生参与者进程,数据流程中的每个数据处理操作器106对应一个进程。领头进程,例如,可能和区段带头和/或参与者进程605-610。
领头进程602通过连接611,612发送控制信息和接收状态消息来和区段带头进程603-604进行通讯。同样,区段带头进程603-604通过发送控制信息和接收状态和错误消息来和参与者进程605-610进行通讯。通常来讲,领头进程602组合消息流量并且确保程序操作的平滑操作。在参与者进程605-610失败的情况下,区段带头进程603-604帮助程序操作、结束他们控制的参与者进程,之后通知其它区段带头进程执行同样的动作。
数据应用程序107可能和整个结构里管理数据输入/输出的管理器有关。输入/输出管理器可能,例如,和领头进程(或者操作器)通讯以便处理结构里的数据流,可能和负责保存结果数据实现信息通讯。
输入/输出管理器可能提供一个或多个以下函数:
●提供结构里的数据移动的块缓冲。
●给数据管理器提供块输入/输出服务,例如,输入/输出管理器把块传递给数据管理者。
●为结构提供持久性存储服务,例如,由数据管理器指定将块保存在文件里。
●为避免死锁提供缓冲和流程控制。
在一个实施方案,输入/输出管理器可能给数据管理器提供端口接口。端口代表逻辑连接。例如,端口可能是输入端口(“输入”)或者输出端口(“输出”),而且可能是虚拟的或物理存在的实体。输出代表单一的外出流,是为持久性数据集合的每个输出分区创建的。至于虚拟端口,进程管理器(领头进程)创建参与者进程之间的连接。根据一个实施方案,特定参与者进程的任何虚拟输出端口可以拥有到下流参与者进程的单一连接。类似地,输入代表单一的入站流,每一个入站数据流都会创建一个输入端口。输入虚拟端口的入站数据流可能不确定地被合并为单一数据块的流。数据块的排序可能被保留在特定的分区里,但是在分区之间没有暗示的排序。因为分区之间没有暗示的排序,因而死锁的现象就避免了。
图7描述了一系列建立于节点1和节点2之间的逻辑连接,每个节点具有操作器A和B的单独实体。特别地,节点1包括参与者操作器(或进程)A701和参与者操作器B702,在此操作器A以串形方式给操作器B提供处理用的数据。再者,节点2的操作器A703也可能给节点1的操作器B702以串形方式提供信息。类似地,参与者操作器A701可能给节点2的参与者操作器B704提供处理用的数据。操作器701-704之间的一个或多个连接可能使得这些数据传送更容易。在这种情形下,可能出现并行管道进程之间的通讯。
到目前为止已经介绍了一些实施方案,接下来仅仅是阐述而且不局限于通过例子来表现,对于那些本领域内的普通技术人员这一点应该是显而易见的。
例如,在连续数据流102的分段之前,可以过滤数据以排除不符合或者偏离或者影响数据分析的纪录。例如,如果连续数据流是要排除发送给服务器的请求的信息日志,那么可能有一个或多个请求被过滤。这类被排除掉的信息包括与各种诸如计算机程序“蜘蛛”、“爬行者”、“机器人”等实体相关的请求。这种程序是由搜索引擎执行的,用来在计算机网络上访问文件服务器获得文件,建立索引。这些由蜘蛛、爬行者和机器人发送的请求同样也被纪录在日志中。这些程序具有可能知晓的主机名和代理名。过滤操作可能过滤来自具有已知蜘蛛、爬行者和机器人的用户。服务器也可能具有预先定义好名称的文件,该文件指定服务器上的哪些文件可以被蜘蛛、爬行者和机器人访问。访问这些文件的信息可以用于标示蜘蛛、爬行者和机器人的主机名称或代理名称,继而可以把这些实体从访问其它文件中过滤掉。再者,排除重复的数据纪录或者其它数据清洗操作可能是合适的。这种过滤通常在应用事务语义给连续数据流分段之前被执行,但是也可能在数据分段之后执行。这些以及其它改动都被认为是属于本发明的范围之内。

Claims (23)

1.一种处理连续数据流的方法,包含:
接收事务语义的指示;
把事务语义应用到连续数据流上以标示连续数据流的段;
在连续数据流的每个段上处理数据以产生段的结果;以及在连续数据流的每个段上处理数据之后,把该段的结果提供出来。
2.根据权利要求1的方法,其中数据包括一组纪录,其中每个纪录包括一组字段,其中事务语义是由数据的一个或多个纪录的一个或多个字段的函数定义的。
3.根据权利要求1的方法,进一步包含根据标示的段分割连续数据流的步骤。
4.根据权利要求3的方法,其中分割的步骤包括在连续数据流里插入纪录指示两个段之间的边界的步骤。
5.根据权利要求4的方法,其中纪录只是一个指示边界的标记纪录。
6.根据权利要求4的方法,其中该纪录是包括与事务语义相关信息的语义纪录。
7.根据权利要求1的方法,其中连续数据流是与发送给服务器的请求相关信息的日志,而且其中应用的步骤包含:
从日志里读取和请求相关的信息;之后
把事务语义应用到读取的信息上。
8.根据权利要求7的方法,其中和每个请求相关的信息包括一组字段,其中事务语义是由与一个或多个请求相关的信息的一个或多个字段的函数定义的。
9.根据权利要求8的方法,其中信息包括请求发送给服务器的时间,而且其中事务语义定义一段时间。
10.根据权利要求7的方法,进一步包含过滤日志排除与一个或多个请求相关的信息的步骤。
11.根据权利要求10的方法,其中过滤步骤是在应用事务语义步骤之前执行的。
12.根据权利要求10的方法,其中过滤步骤包括排除与蜘蛛有关的请求信息。
13.根据权利要求1的方法,进一步包含过滤连续数据流排除来自连续数据流的数据。
14.根据权利要求1的方法,进一步包含处理连续数据流的每个段的数据产生该段的结果的额外步骤;以及
在连续数据流的每个段的数据处理之后,提供那个段的结果。
15.根据权利要求1的方法,其中处理步骤包括以下步骤:
把每个段的数据分割作为一组并行的分区;
并行处理每个分区提供每个分区的临时结果。
16.根据权利要求15的方法,进一步包含组合每个分区的临时数据产生段的结果的步骤。
17.根据权利要求1的方法,其中连续数据流里的数据具有顺序,其中有连续数据流的多个数据源,进一步包含:
判定连续数据流里的数据是否是有顺序,
如果判定出数据是无序的,中断处理步骤,根据事务语义在段里插入数据,重新处理该段并且继续处理步骤。
18.根据权利要求1的方法,进一步包含:
保存段的持久指示,在此该段的数据正在被处理;
如果检测到处理步骤失败,丢弃选择段的处理步骤产生的结果,根据保存的持久指示重新处理选择的段;
当处理步骤正常完成的时候,把产生的输出作为输出提供,再选择下一个段;
19.一种由计算机系统的处理元素在连续数据流上执行检查点操作的进程,包含:
接收事务语义的指示;
在数据上应用事务语义把连续数据流分割成段,由处理元素处理;
选择其中的一个段;
保存选择段的持久性指示;
由处理元素处理选择段,产生结果;
当检测到处理元素出现失败时,丢弃处理元素为选择段产生的结果并且根据保存的持久指示重新处理选择段;
当处理元素处理过程没有失败时,把处理元素产生的结果作为结果提供并且选择处理元素需要处理的下一个段。
20.根据权利要求19的进程,其中应用步骤包括在连续数据流里插入数据指示数据段之间的边界。
21.一种在计算机系统里的连续数据流上执行检查点操作的计算机系统,包括:
接收事务语义指示的装置;
在连续数据流上应用事务语义,把数据分割成段的装置;
选择其中的一个段的装置;
保存选择段的持久指示的装置;
处理选择段产生结果的处理元素;
在检测到处理元素失败之后,丢弃该处理元素为选择段产生的任何结果的有效装置,指导处理元素根据保存的持久指示重新处理选择段;
在处理元素正常结束处理之后,提供由处理元素产生的结果并且选择处理元素需要处理的下一个段的有效装置。
22.根据权利要求21的计算机设备,其中应用的装置包括在连续数据流里插入数据以指示数据段之间的边界;
23.一种处理连续数据流的方法,包括:
接收事务语义指示;
把事务语义应用到连续数据流上以标示连续数据流的段;
在连续数据流里插入数据指示被标示的连续数据流的段之间的边界。
CNB008105707A 1999-06-18 2000-06-19 利用事务语义法分段和处理连续数据流 Expired - Lifetime CN100375088C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14000599P 1999-06-18 1999-06-18
US60/140,005 1999-06-18
US18566500P 2000-02-29 2000-02-29
US60/185,665 2000-02-29

Publications (2)

Publication Number Publication Date
CN1575464A true CN1575464A (zh) 2005-02-02
CN100375088C CN100375088C (zh) 2008-03-12

Family

ID=26837781

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008105707A Expired - Lifetime CN100375088C (zh) 1999-06-18 2000-06-19 利用事务语义法分段和处理连续数据流

Country Status (6)

Country Link
EP (1) EP1314100A2 (zh)
JP (1) JP4600847B2 (zh)
KR (1) KR20020041337A (zh)
CN (1) CN100375088C (zh)
AU (1) AU5624700A (zh)
WO (1) WO2000079415A2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004631A (zh) * 2010-10-19 2011-04-06 北京红旗中文贰仟软件技术有限公司 信息文档的处理方法及装置
CN102306200A (zh) * 2011-09-22 2012-01-04 用友软件股份有限公司 增量数据操作语句的并发应用装置和方法
CN102388385A (zh) * 2011-09-28 2012-03-21 华为技术有限公司 数据处理的方法和装置
CN101243441B (zh) * 2005-06-21 2012-07-18 国际字符股份有限公司 用于处理字符流的方法与设备
CN103460208A (zh) * 2011-04-08 2013-12-18 波音公司 用于将数据加载到时态数据仓库的方法和系统
CN106126658A (zh) * 2016-06-28 2016-11-16 电子科技大学 一种基于虚拟存储器快照的数据库检查点构建方法
CN108140047A (zh) * 2016-01-05 2018-06-08 华为技术有限公司 数据处理装置和方法以及数据容器结构
CN109918391A (zh) * 2019-03-12 2019-06-21 威讯柏睿数据科技(北京)有限公司 一种流式事务处理方法及系统

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7136912B2 (en) 2001-02-08 2006-11-14 Solid Information Technology Oy Method and system for data management
ATE515746T1 (de) 2003-09-15 2011-07-15 Ab Initio Technology Llc Datenprofilierung
US20050097565A1 (en) * 2003-10-31 2005-05-05 Udo Klein Gathering message information
US7571153B2 (en) * 2005-03-28 2009-08-04 Microsoft Corporation Systems and methods for performing streaming checks on data format for UDTs
US7937344B2 (en) 2005-07-25 2011-05-03 Splunk Inc. Machine data web
CN102831214B (zh) 2006-10-05 2017-05-10 斯普兰克公司 时间序列搜索引擎
CN103348598B (zh) 2011-01-28 2017-07-14 起元科技有限公司 生成数据模式信息
US9323748B2 (en) 2012-10-22 2016-04-26 Ab Initio Technology Llc Profiling data with location information
US9892026B2 (en) 2013-02-01 2018-02-13 Ab Initio Technology Llc Data records selection
US11487732B2 (en) 2014-01-16 2022-11-01 Ab Initio Technology Llc Database key identification
EP3114578A1 (en) 2014-03-07 2017-01-11 AB Initio Technology LLC Managing data profiling operations related to data type
US9660930B2 (en) 2014-03-17 2017-05-23 Splunk Inc. Dynamic data server nodes
US9838346B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Alerting on dual-queue systems
US9753818B2 (en) 2014-09-19 2017-09-05 Splunk Inc. Data forwarding using multiple data pipelines
US9922037B2 (en) 2015-01-30 2018-03-20 Splunk Inc. Index time, delimiter based extractions and previewing for use in indexing
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
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3426428B2 (ja) * 1995-10-27 2003-07-14 富士通株式会社 トランザクションのトレース装置
US5721918A (en) * 1996-02-06 1998-02-24 Telefonaktiebolaget Lm Ericsson Method and system for fast recovery of a primary store database using selective recovery by data type
US5909681A (en) * 1996-03-25 1999-06-01 Torrent Systems, Inc. Computer system and computerized method for partitioning data for parallel processing
EP0840517A3 (en) * 1996-10-31 2003-09-10 Matsushita Electric Industrial Co., Ltd. Video data stream decoding method and apparatus
KR100198805B1 (ko) * 1996-11-22 1999-06-15 정선종 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101243441B (zh) * 2005-06-21 2012-07-18 国际字符股份有限公司 用于处理字符流的方法与设备
CN102004631A (zh) * 2010-10-19 2011-04-06 北京红旗中文贰仟软件技术有限公司 信息文档的处理方法及装置
CN103460208A (zh) * 2011-04-08 2013-12-18 波音公司 用于将数据加载到时态数据仓库的方法和系统
CN103460208B (zh) * 2011-04-08 2017-04-05 波音公司 用于将数据加载到时态数据仓库的方法和系统
CN102306200A (zh) * 2011-09-22 2012-01-04 用友软件股份有限公司 增量数据操作语句的并发应用装置和方法
CN102388385A (zh) * 2011-09-28 2012-03-21 华为技术有限公司 数据处理的方法和装置
CN102388385B (zh) * 2011-09-28 2013-08-28 华为技术有限公司 数据处理的方法和装置
CN108140047A (zh) * 2016-01-05 2018-06-08 华为技术有限公司 数据处理装置和方法以及数据容器结构
CN106126658A (zh) * 2016-06-28 2016-11-16 电子科技大学 一种基于虚拟存储器快照的数据库检查点构建方法
CN106126658B (zh) * 2016-06-28 2019-03-19 电子科技大学 一种基于虚拟存储器快照的数据库检查点构建方法
CN109918391A (zh) * 2019-03-12 2019-06-21 威讯柏睿数据科技(北京)有限公司 一种流式事务处理方法及系统
CN109918391B (zh) * 2019-03-12 2020-09-22 威讯柏睿数据科技(北京)有限公司 一种流式事务处理方法及系统

Also Published As

Publication number Publication date
CN100375088C (zh) 2008-03-12
WO2000079415A3 (en) 2003-02-27
KR20020041337A (ko) 2002-06-01
JP2004500620A (ja) 2004-01-08
JP4600847B2 (ja) 2010-12-22
WO2000079415A2 (en) 2000-12-28
WO2000079415A8 (en) 2001-04-05
EP1314100A2 (en) 2003-05-28
WO2000079415A9 (en) 2002-06-13
AU5624700A (en) 2001-01-09

Similar Documents

Publication Publication Date Title
CN100375088C (zh) 利用事务语义法分段和处理连续数据流
US6801938B1 (en) Segmentation and processing of continuous data streams using transactional semantics
US7752299B2 (en) Segmentation and processing of continuous data streams using transactional semantics
US11860874B2 (en) Multi-partitioning data for combination operations
US10474686B2 (en) Information theory based result merging for searching hierarchical entities across heterogeneous data sources
US8150749B2 (en) Systems and methods for general aggregation of characteristics and key figures
US6236991B1 (en) Method and system for providing access for categorized information from online internet and intranet sources
WO2019133928A1 (en) Hierarchical, parallel models for extracting in real-time high-value information from data streams and system and method for creation of same
EP0981097A1 (en) Search system and method for providing a fulltext search over web pages of world wide web servers
CN100442236C (zh) 用于使用md4校验和链接跨机器事务的方法和系统
JP2006107446A (ja) ネットワーク・ドキュメントのバッチ索引付けのためのシステムおよび方法
WO2020087082A1 (en) Trace and span sampling and analysis for instrumented software
US20120239652A1 (en) Hardware Accelerated Application-Based Pattern Matching for Real Time Classification and Recording of Network Traffic
CN101046820A (zh) 在web爬取过程期间给网站排优先级的系统和方法
KR19990064246A (ko) 월드 와이드 웹상에 페이지를 위치 설정하고 네트워크 컴퓨터로부터 문서를 위치 설정하는 시스템 및 그 방법
US7194477B1 (en) Optimized a priori techniques
US7765219B2 (en) Sort digits as number collation in server
CN1841377A (zh) 爬寻数据库以找出信息
JP3666638B2 (ja) 情報源観測装置および情報源観測方法、ならびに情報源観測プログラムを記録したコンピュータ読み取り可能な記録媒体
CA2425048C (en) Method and system for resource access
Han et al. A real-time knowledge extracting system from social big data using distributed architecture
US20110258187A1 (en) Relevance-Based Open Source Intelligence (OSINT) Collection
Rao et al. Understanding user behavior using web usage mining
CN1183464C (zh) 用于创建统一的可打印的超链接文档集的方法
Lee et al. A proactive request distribution (prord) using web log mining in a cluster-based web server

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: INTERNATIONAL BUSINESS MACHINE CORP.

Free format text: FORMER OWNER: TORRENT SYSTEMS INC.

Effective date: 20070323

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20070323

Address after: American New York

Applicant after: International Business Machines Corp.

Address before: Massachusetts, USA

Applicant before: Torrent Systems Inc.

C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20080312