CN112868000A - 大规模生成实时聚合体以便包含在生产的数据子集中的一个或多个修改字段中 - Google Patents

大规模生成实时聚合体以便包含在生产的数据子集中的一个或多个修改字段中 Download PDF

Info

Publication number
CN112868000A
CN112868000A CN201980066262.9A CN201980066262A CN112868000A CN 112868000 A CN112868000 A CN 112868000A CN 201980066262 A CN201980066262 A CN 201980066262A CN 112868000 A CN112868000 A CN 112868000A
Authority
CN
China
Prior art keywords
data
value
fields
field
key
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
CN201980066262.9A
Other languages
English (en)
Other versions
CN112868000B (zh
Inventor
T·墨菲
O·拉维德
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.)
Ab Initio Technology LLC
Original Assignee
Ab Initio Technology LLC
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 Ab Initio Technology LLC filed Critical Ab Initio Technology LLC
Publication of CN112868000A publication Critical patent/CN112868000A/zh
Application granted granted Critical
Publication of CN112868000B publication Critical patent/CN112868000B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/26Visual data mining; Browsing structured data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2423Interactive query statement specification based on a database schema
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/244Grouping and aggregation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种用于从多个数据源产生数据的子集的数据处理系统,包括:存储将要在编辑器界面中表示的多个数据源的存储器;数据结构修改模块,该数据结构修改模块选择将要在编辑器界面中表示的多个数据源并且生成包含在该多个数据源中的数据子集;存储该子集中包括的这些选择的数据结构的存储器,其中这些存储的数据结构中的至少一个包括该一个或多个相应字段的该一个或多个修改属性;渲染模块,该渲染模块在该编辑器界面中显示这些存储的数据结构的表示;以及分段模块,该分段模块对多个接收的数据记录进行分段。

Description

大规模生成实时聚合体以便包含在生产的数据子集中的一个 或多个修改字段中
技术领域
本申请涉及联网数据库环境中的数据聚合。本申请还涉及在联网数据库环境中的数据分段。
背景技术
在数据库管理系统中,主要数据源是数据库,该数据库可以位于磁盘或远程服务器中。计算机程序的数据源可以是文件、数据表、电子表格、XML文件、或甚至程序内的硬编码数据。
发明内容
在一般方面1中,描述了一种由数据处理系统实现的方法,该方法用于从多个数据源产生数据的子集,修改该子集的一个或多个相应字段的一个或多个属性,并且通过显示该一个或多个经修改字段的一个或多个表示来显示实现数据记录的分段的编辑器界面,该方法包括:选择将要在编辑器界面中表示的多个数据源;通过以下步骤生成包含在该多个数据源中的数据子集:针对这些数据源中的每一个,从该数据源中选择一个或多个数据结构,其中每个数据结构包括一个或多个字段;针对至少一个选择的数据结构,修改该数据结构中的一个或多个相应字段的一个或多个属性;将该子集中包括的选择的数据结构存储在存储器中,其中这些存储的数据结构中的至少一个包括该一个或多个相应字段的该一个或多个修改属性;在该编辑器界面中显示这些存储的数据结构的表示,其中这些表示中的至少一个具有该一个或多个相应字段的该一个或多个修改属性,其中每个表示包括一个或多个可选择的部分,其中可选择的部分表示数据结构的字段;通过该编辑器界面,接收指定对一个或多个可选择的部分的选择的选择数据;以及通过识别多个接收的数据记录中的哪些具有与在所选择的该一个或多个可选择的部分中表示的一个或多个字段相对应的一个或多个字段来对这些接收的数据记录进行分段。
在根据方面1的方面2中,该数据结构包括表示用于该数据结构的键的键字段、与该键的值相关联的记录,并且该方法进一步包括:从多个选择的数据结构中选择多个字段;将可执行指令存储在存储器中,这些可执行指令在执行时:针对该键的指定值选择用于这些相应的选择字段的值;将这些选择的值结合该键的该指定值;以及输出这些结合值。
在根据方面1至2中任一项的方面3中,这些表示为第一表示,并且该方法进一步包括:在该编辑器界面中显示这些可执行指令的第二表示。
在根据方面1至3中任一项的方面4中,该方法进一步包括:通过该编辑器界面接收附加选择数据,该附加选择数据指定该第二表示的选择并且进一步指定应用于那些输出的一个或多个标准,该一个或多个给定字段的结合值由通过该编辑器界面选择的该一个或多个可选择的部分表示。
在根据方面1至4中任一项的方面5中,该方法进一步包括:显示用户界面,该用户界面具有用于选择数据结构的一个或多个第一控件并且具有用于修改该一个或多个字段的一个或多个第二控件。
在根据方面1至5中任一项的方面6中,该方法进一步包括:通过该编辑器界面接收附加数据,该附加数据指定将应用于一个或多个给定字段的一个或多个标准,该一个或多个给定字段由通过该编辑器界面选择的该一个或多个可选择的部分表示;其中,分段包括通过识别该多个接收的数据记录中的哪些具有与在所选择的该一个或多个可选择的部分中表示的一个或多个字段相对应并且满足该一个或多个标准的一个或多个字段的一个或多个值来对这些接收的数据记录进行分段。
在根据方面1至6中任一项的方面7中,该数据结构包括一个或多个记录,其中每个记录具有用于特定字段的一个或多个值。
在根据方面1至7中任一项的方面8中,这些数据源中的至少一个包括未选择的数据结构。
在一般方面9中,描述了一种数据处理系统,该数据处理系统用于从多个数据源产生数据的子集,修改该子集的一个或多个相应字段的一个或多个属性,并且通过显示该一个或多个经修改字段的一个或多个表示来显示实现分段的编辑器界面,该数据处理系统包括:一个或多个处理设备;以及一个或多个机器可读硬件存储设备,该一个或多个机器可读硬件存储设备存储可由该一个或多个处理设备执行以执行包括以下各项的操作的指令:选择将要在编辑器界面中表示的多个数据源;通过以下步骤生成包含在该多个数据源中的数据子集:针对这些数据源中的每一个,从该数据源中选择一个或多个数据结构,其中每个数据结构包括一个或多个字段;针对至少一个选择的数据结构,修改该数据结构中的一个或多个相应字段的一个或多个属性;将该子集中包括的选择的数据结构存储在存储器中,其中这些存储的数据结构中的至少一个包括该一个或多个相应字段的该一个或多个修改属性;在该编辑器界面中显示这些存储的数据结构的表示,其中这些表示中的至少一个具有该一个或多个相应字段的该一个或多个修改属性,其中每个表示包括一个或多个可选择的部分,其中可选择的部分表示数据结构的字段;通过该编辑器界面,接收指定对一个或多个可选择的部分的选择的选择数据;以及通过识别多个接收的数据记录中的哪些具有与在所选择的该一个或多个可选择的部分中表示的一个或多个字段相对应的一个或多个字段来对这些接收的数据记录进行分段。
在根据方面9的方面10中,该数据结构包括表示用于该数据结构的键的键字段、与该键的值相关联的记录,并且该一个或多个操作进一步包括:从多个选择的数据结构中选择多个字段;将可执行指令存储在存储器中,这些可执行指令在执行时:针对该键的指定值选择用于这些相应的选择字段的值;将这些选择的值结合该键的该指定值;以及输出这些结合值。
在根据方面9至10中任一项的方面11中,这些表示为第一表示,并且其中该一个或多个操作进一步包括:在该编辑器界面中显示这些可执行指令的第二表示。
在根据方面9至11中任一项的方面12中,该一个或多个操作进一步包括:通过该编辑器界面接收附加选择数据,该附加选择数据指定该第二表示的选择并且进一步指定应用于那些输出的一个或多个标准,该一个或多个给定字段的结合值由通过该编辑器界面选择的该一个或多个可选择的部分表示。
在根据方面9至12中任一项的方面13中,该一个或多个操作进一步包括:显示用户界面,该用户界面具有用于选择数据结构的一个或多个第一控件并且具有用于修改该一个或多个字段的一个或多个第二控件。
在根据方面9至13中任一项的方面14中,该一个或多个操作进一步包括:通过该编辑器界面接收附加数据,该附加数据指定将应用于一个或多个给定字段的一个或多个标准,该一个或多个给定字段由通过该编辑器界面选择的该一个或多个可选择的部分表示;其中,分段包括通过识别该多个接收的数据记录中的哪些具有与在所选择的该一个或多个可选择的部分中表示的一个或多个字段相对应并且满足该一个或多个标准的一个或多个字段的一个或多个值来对这些接收的数据记录进行分段。
在根据方面9至14中任一项的方面15中,该数据结构包括一个或多个记录,其中每个记录具有用于特定字段的一个或多个值。
在根据方面9至15中任一项的方面16中,这些数据源中的至少一个包括未选择的数据结构。
在一般方面17中,描述了一种或多种机器可读硬件存储设备,该机器可读硬件存储设备用于从多个数据源产生数据的子集,修改该子集的一个或多个相应字段的一个或多个属性,并且通过显示该一个或多个经修改字段的一个或多个表示来显示实现分段的编辑器界面,该一个或多个机器可读硬件存储设备存储指令,这些指令可由一个或多个处理设备执行以执行包括以下各项的操作:选择将要在编辑器界面中表示的多个数据源;通过以下步骤生成包含在该多个数据源中的数据子集:针对这些数据源中的每一个,从该数据源中选择一个或多个数据结构,其中每个数据结构包括一个或多个字段;针对至少一个选择的数据结构,修改该数据结构中的一个或多个相应字段的一个或多个属性;将该子集中包括的选择的数据结构存储在存储器中,其中这些存储的数据结构中的至少一个包括该一个或多个相应字段的该一个或多个修改属性;在该编辑器界面中显示这些存储的数据结构的表示,其中这些表示中的至少一个具有该一个或多个相应字段的该一个或多个修改属性,其中每个表示包括一个或多个可选择的部分,其中可选择的部分表示数据结构的字段;通过该编辑器界面,接收指定对一个或多个可选择的部分的选择的选择数据;以及通过识别多个接收的数据记录中的哪些具有与在所选择的该一个或多个可选择的部分中表示的一个或多个字段相对应的一个或多个字段来对这些接收的数据记录进行分段。
在根据方面17的方面18中,该数据结构包括表示用于该数据结构的键的键字段、与该键的值相关联的记录,该一个或多个操作进一步包括:从多个选择的数据结构中选择多个字段;将可执行指令存储在存储器中,这些可执行指令在执行时:针对该键的指定值选择用于这些相应的选择字段的值;将这些选择的值结合该键的该指定值;以及输出这些结合值。
在根据方面17至18中任一项的方面19中,这些表示为第一表示,并且该一个或多个操作进一步包括:在该编辑器界面中显示这些可执行指令的第二表示。
在根据方面17至19中任一项的方面20中,其中该一个或多个操作进一步包括:通过该编辑器界面接收附加选择数据,该附加选择数据指定该第二表示的选择并且进一步指定应用于那些输出的一个或多个标准,该一个或多个给定字段的结合值由通过该编辑器界面选择的该一个或多个可选择的部分表示。
在根据方面17至20中任一项的方面21中,其中该一个或多个操作进一步包括:显示用户界面,该用户界面具有用于选择数据结构的一个或多个第一控件并且具有用于修改该一个或多个字段的一个或多个第二控件。
在根据方面17至21中任一项的方面22中,其中该一个或多个操作进一步包括:通过该编辑器界面接收附加数据,该附加数据指定将应用于一个或多个给定字段的一个或多个标准,该一个或多个给定字段由通过该编辑器界面选择的该一个或多个可选择的部分表示;其中,分段包括通过识别该多个接收的数据记录中的哪些具有与在所选择的该一个或多个可选择的部分中表示的一个或多个字段相对应并且满足该一个或多个标准的一个或多个字段的一个或多个值来对这些接收的数据记录进行分段。
在根据方面17至22中任一项的方面23中,该数据结构包括一个或多个记录,其中每个记录具有用于特定字段的一个或多个值。
在根据方面17至23中任一项的方面24中,其中这些数据源中的至少一个包括未选择的数据结构。
在一般方面25中,描述了一种由数据处理系统执行的用于生成近实时聚合体的方法,该方法包括:间歇地从一个或多个数据源接收数据记录;对于接收的给定数据记录,至少识别该给定数据记录中的第一字段和第二字段;检测该第一字段中的第一值和该第二字段中的第二值;以及根据该第一字段的该第一值和该第二字段的该第二值生成复合键;从存储器访问与至少该第一字段或该第二字段相关的聚合数据;通过生成数据记录来生成复合键值,该数据记录具有存储该复合键的字段和各自存储该聚合数据项的一个或多个字段,其中该复合键值表示与至少该第一字段或该第二字段相关的数据的近实时聚合体;以及通过将该复合键值存储在存储器中来记录该给定数据记录的出现。
在根据方面25的方面26中,生成该复合键包括将该第一值与该第二值连接。
在根据方面25至26中任一项的方面27中,该方法进一步包括:将该复合键散列;以及将该散列的复合键与复合值一起存储在散列表中。
在根据方面25至27中任一项的方面28中,其中该复合值是该聚合数据。
在根据方面25至28中任一项的方面29中,该方法进一步包括:针对该给定记录,检测该给定记录中包括的每个字段的值;以及生成至少两个检测值的多个唯一组合,其中每个唯一组合是复合键;针对每个复合键,识别该给定记录中的一个或多个字段,其中该复合键包括这些一个或多个字段的一个或多个相应值;从存储器访问与该一个或多个识别的字段中的至少一个相关的聚合数据;通过生成具有存储该复合键的字段和存储该聚合数据的字段的数据记录来生成复合键值;以及将该复合键值存储在存储器中。
在根据方面25至29中任一项的方面30中,其中生成多个唯一组合包括生成该给定记录中检测到的字段值的多个所有唯一组合。
在根据方面25至30中任一项的方面31中,该方法进一步包括:接收对在一段时间内的指定值的聚合体的请求;从存储器选择复合键值,该复合键值存储该指定值的出现;以及从该复合键值提取该请求的聚合体。
在根据方面25至31中任一项的方面32中,该方法进一步包括:将一个或多个该聚合数据项与该给定数据记录中的字段的值进行聚合;基于该聚合为该字段生成近实时聚合值;以及将该近实时聚合值存储在该复合键值中。
在根据方面25至32中任一项的方面33中,该方法进一步包括:接收对与一个或多个指定值相关的聚合体的请求;从该一个或多个指定值生成复合键;将该复合键散列;从存储在存储器中的该散列表请求与该散列的复合键一起存储的该复合值;以及从该复合值中提取所请求的聚合数据项。
在一般方面34中,描述了一种用于生成近实时聚合体的数据处理系统,包括:一个或多个处理设备;以及一个或多个机器可读硬件存储设备,该一个或多个机器可读硬件存储设备存储可由该一个或多个处理设备执行以执行包括以下各项的操作的指令:间歇地从一个或多个数据源接收数据记录;对于接收的给定数据记录,至少识别该给定数据记录中的第一字段和第二字段;检测该第一字段中的第一值和该第二字段中的第二值;以及根据该第一字段的该第一值和该第二键的该第二值生成复合键;从存储器访问与至少该第一字段或该第二字段相关的聚合数据;通过生成数据记录来生成复合键值,该数据记录具有存储该复合键的字段和各自存储该聚合数据项的一个或多个字段,其中该复合键值表示与至少该第一字段或该第二字段相关的数据的近实时聚合体;以及通过将该复合键值存储在存储器中来记录该给定数据记录的出现。
在根据方面34的方面35中,生成该复合键包括将该第一值与该第二值连接。
在根据方面34至35中任一项的方面36中,其中该一个或多个操作进一步包括:将该复合键散列;以及将该散列的复合键与复合值一起存储在散列表中。
在根据方面34至36中任一项的方面37中,其中该复合值是该聚合数据。
在根据方面34至37中任一项的方面38中,其中该一个或多个操作进一步包括:针对该给定记录,检测该给定记录中包括的每个字段的值;以及生成至少两个检测值的多个唯一组合,其中每个唯一组合是复合键;针对每个复合键,识别该给定记录中的一个或多个字段,其中该复合键包括这些一个或多个字段的一个或多个相应值;从存储器访问与该一个或多个识别的字段中的至少一个相关的聚合数据;通过生成具有存储该复合键的字段和存储该聚合数据的字段的数据记录来生成复合键值;以及将该复合键值存储在存储器中。
在根据方面34至38中任一项的方面39中,其中生成多个唯一组合包括生成该给定记录中检测到的字段值的多个所有唯一组合。
在根据方面34至39中任一项的方面40中,其中该一个或多个操作进一步包括:接收对在一段时间内的指定值的聚合体的请求;从存储器选择复合键值,该复合键值存储该指定值的出现;以及从该复合键值提取该请求的聚合体。
在根据方面34至40中任一项的方面41中,其中该一个或多个操作进一步包括:将一个或多个该聚合数据项与该给定数据记录中的字段的值进行聚合;基于该聚合为该字段生成近实时聚合值;以及将该近实时聚合值存储在该复合键值中。
在根据方面34至41中任一项的方面42中,其中该一个或多个操作进一步包括:接收对与一个或多个指定值相关的聚合体的请求;从该一个或多个指定值生成复合键;将该复合键散列;从存储在存储器中的该散列表请求与该散列的复合键一起存储的该复合值;以及从该复合值中提取所请求的聚合数据项。
在根据方面1到42中任一项的一般方面43中,描述了一种或多种机器可读硬件存储设备,该机器可读硬件存储设备用于生成近实时聚合体,该一个或多个机器可读硬件存储设备存储指令,这些指令可由一个或多个处理设备执行以执行包括以下各项的操作:间歇地从一个或多个数据源接收数据记录;对于接收的给定数据记录,至少识别该给定数据记录中的第一字段和第二字段;检测该第一字段中的第一值和该第二字段中的第二值;以及根据该第一字段的该第一值和该第二键的该第二值生成复合键;从存储器访问与至少该第一字段或该第二字段相关的聚合数据;通过生成数据记录来生成复合键值,该数据记录具有存储该复合键的字段和各自存储该聚合数据项的一个或多个字段,其中该复合键值表示与至少该第一字段或该第二字段相关的数据的近实时聚合体;以及通过将该复合键值存储在存储器中来记录该给定数据记录的出现。
在根据方面1至44中任一项的方面44中,生成该复合键包括将该第一值与该第二值连接。
在根据方面1至44中任一项的方面45中,该一个或多个操作进一步包括:将该复合键散列;以及将该散列的复合键与复合值一起存储在散列表中。
在根据方面1至45中任一项的方面46中,其中该复合值是该聚合数据。
在根据方面1至46中任一项的方面47中,其中该一个或多个操作进一步包括:针对该给定记录,检测该给定记录中包括的每个字段的值;以及生成至少两个检测值的多个唯一组合,其中每个唯一组合是复合键;针对每个复合键,识别该给定记录中的一个或多个字段,其中该复合键包括这些一个或多个字段的一个或多个相应值;从存储器访问与该一个或多个识别的字段中的至少一个相关的聚合数据;通过生成具有存储该复合键的字段和存储该聚合数据的字段的数据记录来生成复合键值;以及将该复合键值存储在存储器中。
在根据方面1至47中任一项的方面48中,其中生成多个唯一组合包括生成该给定记录中检测到的字段值的多个所有唯一组合。
在根据方面1至48中任一项的方面49中,其中该一个或多个操作进一步包括:接收对在一段时间内的指定值的聚合体的请求;从存储器选择复合键值,该复合键值存储该指定值的出现;以及从该复合键值提取该请求的聚合体。
在根据方面1至49中任一项的方面50中,其中该一个或多个操作进一步包括:将一个或多个该聚合数据项与该给定数据记录中的字段的值进行聚合;基于该聚合为该字段生成近实时聚合值;以及将该近实时聚合值存储在该复合键值中。
在根据方面1至50中任一项的方面51中,其中该一个或多个操作进一步包括:接收对与一个或多个指定值相关的聚合体的请求;从该一个或多个指定值生成复合键;将该复合键散列;从存储在存储器中的该散列表请求与该散列的复合键一起存储的该复合值;以及从该复合值中提取所请求的聚合数据项。
在根据方面1至50中任一项的方面52中,包括一种数据处理系统,该数据处理系统用于从多个数据源产生数据的子集,修改该子集的一个或多个相应字段的一个或多个属性,并且通过显示该一个或多个经修改字段的一个或多个表示来显示实现数据记录的分段的编辑器界面,该数据处理系统包括:存储将要在编辑器界面中表示的多个数据源的存储器;数据结构修改模块,该数据结构修改模块选择将要在编辑器界面中表示的多个数据源并且通过以下步骤生成包含在该多个数据源中的数据子集:针对这些数据源中的每一个,从该数据源中选择一个或多个数据结构,其中每个数据结构包括一个或多个字段;以及针对至少一个选择的数据结构,修改该数据结构中的一个或多个相应字段的一个或多个属性;存储该子集中包括的这些选择的数据结构的存储器,其中这些存储的数据结构中的至少一个包括该一个或多个相应字段的该一个或多个修改属性;渲染模块,该渲染模块在该编辑器界面中显示这些存储的数据结构的表示,其中这些表示中的至少一个具有该一个或多个相应字段的该一个或多个修改属性,其中每个表示包括一个或多个可选择的部分,其中可选择的部分表示数据结构的字段,并且该渲染模块通过该编辑器界面接收指定对一个或多个可选择的部分的选择的选择数据;以及分段模块,该分段模块通过识别多个接收的数据记录中的哪些具有与在所选择的该一个或多个可选择的部分中表示的一个或多个字段相对应的一个或多个字段来对这些接收的数据记录进行分段。
通过以下描述并且通过权利要求,本发明的其他特征和优点将变得显而易见。
附图说明
图1是用于产生包括在组合数据源中的修改数据的子集的联网系统的框图。
图2是用于产生包括在组合数据源中的修改数据的子集的执行系统的框图。
图3是产生具有复合键模块的复合键的执行系统的框图。
图4是描绘了复合键的生成中所涉及的表的框图。
图5A是描绘了被配置成用于生成和使用复合键的执行系统的框图。
图6是被配置成用于生成近实时聚合体的执行系统的框图。
图7是示出使用执行系统来引起用户界面的渲染的框图,通过这些用户界面来修改数据源和数据结构字段。
图8A至图8T和图5B是用于产生包括在组合数据源中的修改数据的子集的图形用户界面的描述。
图9是实现收集-检测-动作(CDA)处理的执行环境的框图。
图10是图9的执行环境中的检测处理的细节的框图。
图11是用于产生包括在组合数据源中的修改的数据结构的流程图。
图12是生成复合键值的流程图。
图13和图14各自是描绘了执行系统中包括的功能模块的功能的图。
具体实施方式
参考图1,示出了用于修改数据结构(例如,表)的联网系统10。具体地,联网系统10使得能够从多个数据源检索数据结构,并且能够从数据源修改那些数据结构的一个或多个字段(或其他属性或字段的属性)。通常,字段包括例如用于在关系数据库中存储数据和/或行的数据记录的指定部分。通常,属性包括特征,例如像数据形式。联网系统10包括数据源12a至12c。联网系统10包括执行系统14,该执行系统例如用于访问数据结构、用于指定那些数据结构中的哪些对客户端设备可用、并且用于修改那些数据结构。执行系统14包括用于接收和存储来自数据源12a至12c的数据结构的存储器16(包括例如易失性存储器、非易失性存储器等)。
在一个实例中,存储器16存储对数据源12a至12c中的每一个的引用。存储器16从数据源12a至12c中的每一个接收包括在那些数据源中的数据结构。存储器16存储与对将数据结构传输到执行系统14的数据源的引用相关联的数据结构(以及包括在数据结构中的数据,诸如表中的记录)。执行系统14还包括数据结构选择和数据结构修改模块18(在下文中称为“模块18”),例如用于选择来自它的数据可用的一个或多个数据源以及在那些选择的一个或多个数据源中的一个或多个数据结构,并且用于(例如,通过修改字段名称)修改一个或多个选择的数据源中的一个或多个数据结构。在数据结构是表的实例中,表中的列称为字段,并且表中的行称为记录。模块18还例如通过使得能够生成新的数据结构来丰富数据结构和/或数据结构中的字段,这些新的数据结构包括来自不同数据结构的两个或更多个字段的结合。执行系统14包括渲染模块20,例如用于在用户界面24(在客户端设备上显示)中渲染修改的数据结构的视觉表示。
通过用户界面24,用户选择数据结构的一个或多个字段或部分以指定用于分段的指令。通常,分段包括将数据记录的集合定义和细分为仅那些满足一个或多个指定标准的数据记录的过程。渲染用户界面24的客户端设备向渲染模块20发送指定一个或多个字段或数据结构的部分的选择的数据。渲染模块20将该数据(指定选择)发送到分段模块22,该分段模块实现对存储在存储器16或其他数据存储库中的各种数据记录的分段,并产生输出数据集26。
参考图2,联网系统10具有被配置成用于将数据结构A修改为数据结构D(例如,表)的执行系统14。在该特定实例中,数据结构A和数据结构C由数据结构修改模块18修改。从数据结构修改模块18,修改的数据结构A和B被示出填充有标题分别为“卡采购Visa”和“Cust.Eng.”的字段,并且包含字段名称“ID”、“Trx Amt”;以及分别“ID”和时间,如在图形用户界面18b中示出。数据结构修改模块18还产生经修改的字段数据18a,该字段数据被发送到渲染模块20,该渲染模块经由用户界面24(图1)渲染具有结合ID(例如,用于基于这些返回的数据记录中包含的ID字段的值将返回的数据记录结合在一起的指令)的修改的结构A和C的表示21。通常,经修改的字段数据包括指定对数据结构的字段的一个或多个修改的数据,例如像数据结构中的字段或列或行的名称的修改。
执行系统14通过分段逻辑22a将经修改的字段数据18a(结合ID(Trx Amt>$5000)&(Cust.Eng.<6mo))发送到基于用于访问数据源(例如12d)的分段逻辑22a产生查询(查询(Trx Amt>$5000)&(Cust.Eng.<6mo)的分段模块22,该分段逻辑返回两个记录13a、13b,每个记录分别包含以下内容“ID:f423543 VISA:7349.00”和“ID:f423543 Cust.Eng.:2mo.”,如图所示。返回的记录22b被发送回分段模块22并馈入逻辑模块25,以便指定结合返回记录18a(通过结合ID)“ID:f423543 VISA:$7349.00 Cust.Eng.:2mo.”。
现在参考图3,示出执行系统14,该执行系统被配置成用于经由复合键模块30产生复合键。数据结构修改模块18将经修改的字段数据发送到复合键模块30。还向复合键模块30发送结合返回记录18a“ID:f423543 VISA:$7349.00 Cust.Eng.:2mo.”并产生复合键值31,该复合键值是与复合值31b连接的复合键31a,该复合值被存储在数据存储库12e中。通常,复合键包括从数据记录中的一个或多个字段的一个或多个值生成的键。通常,复合值包括聚合体的数量或与从其生成复合键的一个或多个值相关的其他数据。在此实例中,复合值包括以下聚合体:“5550.32、345.24、12.01、23,”各自分别表示当前交易的当前量、在指定时间段(例如最近30天)内与该特定ID相关联的平均交易量、该时间段内已发生的最低交易量、以及该时间段内已发生的交易量的计数。还示出了渲染模块20、分段模块22和逻辑模块25,它们分别对来自复合键模块30的输出以及来自彼此的输出进行操作,如将在下文讨论的。
参考图4,示出了复合键的结构32和来自数据记录字段的值的相关联复合值。在该实例中,系统10接收数据记录32a,该数据记录包括四个字段,即订户ID(SubID)字段、事件类型字段、日期字段和长度字段(指定语音事件的时间长度)。在此实例中,SubID字段的值为“43054421”。事件类型字段的值为“语音”。日期字段的值为“4/3/2018”。长度字段的值为“4.34分钟”。系统10从数据记录32a中的前三个字段的值生成若干键,例如对于字段的每种可能组合一个键。在一些实例中,当数据记录具有“n”个字段时,字段的不同组合数为2n。在该实例中,如表33a所示,系统10从数据记录32中的字段生成七个不同的键。七个不同的键是:
键1:SubID
键2:SubID.事件类型
键3:SubID.日期
键4:SubID.事件类型.日期
键5:事件类型
键6:日期
键7:事件类型.日期
系统针对每个复合键生成复合值,该复合值包括一个或多个指定值。对于“SubID”键(即表33a中的键1),复合值(以表33a中的复合值1表示)是在指定的时间段(例如,五天)内由SubID表示的订户接收的事件的平均数(“平均数”)以及该订户在该指定的时间段内接收的事件数量的计数(“计数”)。也就是说,对于键“SubID”,复合值是“平均数、计数”,如表33a所示。
对于“SubID.事件类型”键(即表33a中的键2),复合值(以表33a中的复合值2表示)是在指定的时间段(例如,五天)内由SubID表示的订户接收的(在键中指定的事件类型的)事件的平均数(“平均数”)、指定事件类型的事件的最小(“最小”)时间量、指定事件类型的事件的最大(“最大”)时间量、以及该订户在指定的时间段内接收的(键中指定的事件类型的)事件数量的计数(“计数”)。也就是说,对于键“SubID.事件类型”,复合值是“平均数、最小、最大、计数”,如表33a所示。
对于“SubID.日期”键(即表33a中的键3),复合值(以表33a中的复合值3表示)是在由SubID字段指定的订户在由日期字段指定的日期接收的事件数量的计数(“计数”)。也就是说,对于键“SubID.日期”,复合值是“计数”,如表33a所示。
对于“SubID.事件类型.日期”键(即表33a中的键4),复合值(以表33a中的复合值4表示)是针对SubID字段中指定的订户并且在日期字段中的指定日期的指定事件类型的事件的最小(“最小”)时间量、针对SubID字段中指定的订户并且在日期字段中的指定日期的指定事件类型的事件的最大(“最大”)时间量、以及针对SubID字段中指定的订户并且在日期字段中的指定日期的(键中指定的事件类型的)事件数量的计数(“计数”)。也就是说,对于键“SubID.事件类型.日期”,复合值是“最小、最大、计数”,如表33a所示。
对于“事件类型”键(即表33a中的键5),复合值(以表33a中的复合值5表示)是在指定的时间段(例如,五天)内接收的(在键中指定的事件类型的)事件的平均数(“平均数”)、在指定的时间段内的指定事件类型的事件的最小(“最小”)时间量、在指定的时间段内的指定事件类型的事件的最大(“最大”)时间量、以及在指定的时间段内的(键中指定的事件类型的)事件数量的计数(“计数”)。也就是说,对于键“事件类型”,复合值是“平均数、最小、最大、计数”,如表33a所示。
对于“日期”键(即表33a中的键6),复合值(以表33a中的复合值6表示)是在由日期字段指定的日期接收的事件数量的计数(“计数”)。也就是说,对于键“日期”,复合值是“计数”,如表33a所示。
对于“事件类型.日期”键(即表33a中的键7),复合值(以表33a中的复合值7表示)是在日期字段中的指定日期的指定事件类型的事件的最小(“最小”)时间量、在日期字段中的指定日期的指定事件类型的事件的最大(“最大”)时间量、以及在日期字段中的指定日期的(键中指定的事件类型的)事件数量的计数(“计数”)。也就是说,对于键“事件类型.日期”,复合值是“最小、最大、计数”,如表33a所示。
表33b展示了键1至7的实际键以及相关联的复合值,分别是复合值1至7。在此实例中,键1至7的值是从数据记录33a中的字段的值生成的。系统通过更新先前计算的复合值和/或通过访问来自持久性存储器58(图6)的指定数据来生成复合值。例如,对于键4(即SubID.事件类型.日期键),存储器56(图6)可能已存储该键的条目。该存储的条目可以如下:键4:43054421.语音.4/3/2018,复合值4.9分钟、8.09最大、2。在此实例中,在接收到记录32a时,系统10识别它已经存储用于以下键的复合值:43054421.语音.4/3/2018。因此,系统10根据在数据记录268a中指定的语音事件的时间长度(即4.34分钟)来更新复合值。基于该更新,系统确定新的复合值“1.2分钟、8.09最大、3”,如图4所示。
在其他实例中,系统可能尚未识别键4的复合值。在该实例中,系统从存储器56(图6)和/或持久性存储器58(图6)访问在数据记录32a中引用的订户(即SubID:43054421)的那些数据记录。系统从那些访问的数据记录确定哪些数据记录引用了指定日期(即4/3/2018)的语音事件。系统从针对指定日期引用语音事件的那些数据记录来确定语音事件的最小时间量(例如,从相应记录的“长度”字段)、语音事件的最大时间量(例如,从相应记录的“长度”字段)、以及在指定日期针对指定订户发生的语音事件数量的计数。系统从这些确定的值确定复合值,并将其与键“43054421.语音.4/3/2018”(即键4)的散列值相关联地存储(即存储在散列表268d中)。
在该实例中,存储器(未示出)分别存储具有键1至7的散列键值35a至35g的散列表33c。在此实例中,系统通过将散列算法应用于复合键来生成散列键值。散列表33c还存储分别对应于表33c中的复合值1至7的复合值36a至36g。通常,对应于或对应是指匹配或具有相似阈值量。在此实例中,通过复合键和相关联复合值的存储来独立地存储每个记录。
在这些实例中,系统正在为各种键组合预先计算数据值。例如,对于键“43054421.语音.4/3/2018”,系统针对在指定订户的4/3/2018发生的语音事件预先计算出最小值、最大值和计数值。通过预先计算这些值,系统在确定实时聚合体和其他实时值方面减少(或消除)运行时的延迟。例如,在运行时,系统需要确定由SubID 43054421表示的订户在4/3/2018发生的语音事件的数量。系统可以通过查询各种数据存储库和用于数据记录的仓库来确定此实时聚合体,这些数据记录包括SubID字段,值为43054421。然后,系统可以从所有返回的数据记录解析数据记录,以确定数据记录的子集,其中事件类型字段的值为“语音”,并且日期字段的值为“4/3/2018”。系统10然后可以对子集中返回的记录的数量进行计数以确定计数。然而,当系统执行查询和解析时,此查询和处理会引入相关联的延迟。为了减少或消除此延迟,系统预先计算聚合体(或其他值,诸如最小值和最大值),并将这些聚合体与复合键的散列值相关联地存储。因此,为了查找特定订户在特定日期进行的语音呼叫的数量的计数,系统会生成适当的键SubID.语音.日期或43054421.语音.4/3/2018。系统对键的值进行散列,并使用散列的键值以在散列表33c中访问复合值。通过这样做,系统消除或减少了与必须实时计算聚合体相关联的延迟。
与复合键相关联地存储复合值的另一个优点在于,如果将新字段添加到数据记录中,则可以通过生成具有用于该新字段的值的新复合键来轻松跟踪该新字段中的值的出现,然后跟踪相关联的复合值中的计数(或另一聚合体)。例如,“新客户”字段被添加到数据记录32a。在此实例中,如果客户在最近六个月内已注册了电信服务,则该客户是新客户。在这种情况下,新客户字段的值为“是”。否则,新客户字段的值为“否”。在此实例中,系统跟踪在指定日期4/3/2018进行语音呼叫的新客户的出现,系统生成新客户.事件类型.日期的值为是.语音.4/3/2018的新键。此新键的复合值为“计数”。然后,当接收到新记录时,系统会根据在4/3/2018接收的记录的数量(新客户的参考语音事件)来生成或更新复合值。生成复合值并将其与复合键相关联地存储的优点在于,在将新字段添加到数据记录列中时,不需要将列添加到表中来跟踪那些新字段的值。相反,可以通过生成新键来跟踪字段的新值,这些新键仅需要向表中添加新行,而无需通过添加新列来改变表的结构。
现在参考5A,执行系统14访问返回两个记录18a、18b的数据源12a,每个记录包括相应的内容“ID:53054423,Trx_Amt:$5550.32,日期:4/3/2018,卡类型:Visa”以及“ID:53054423,Cust.Eng:2mo.,日期:4/3/2018”。返回的记录18a、18b被发送到复合键模块30以产生复合键25a(用于记录18a)和复合键25b(用于记录18b。复合键值25a、25b被存储在数据存储库12f中,并且复合键模块30将复合键值25a、25b发送到渲染模块20,该渲染模块渲染图5B所示的表示在此实例中,复合键值25a包括复合键“53054423.VISA”和复合值“5550.32、345.24、12.01、23”,表示当前交易的总购买量、指定的天数(例如最近30天)内的平均购买量、指定天数内的最小购买量、以及指定天数内已进行的购买次数的计数。复合键值25b包括复合键“53054423.Cust_Eng”和复合值“2、1/1/2018、9.00、1045、104”,分别表示由ID字段表示的特定用户已成为客户的时间长度、用户成为客户的日期、客户的最小购买量、客户的最大购买量、以及客户的平均购买量。复合键值25a、25b被发送到渲染模块20,以使得渲染模块能够确定哪些聚合体可以被显示为分段模板的一部分,如将在下文进一步参考图5B详细描述的。在该实例中,包括在复合键值25a、25b中的聚合体(例如,最小值、计数等)将可用于分段中的定义,这取决于选择了哪些表以及哪些复合键值与那些表相关联或以其他方式适用于那些表,如下文进一步详细描述的。
渲染模块20接收分段逻辑23c(在图5B所示的图形用户界面中指定),并将分段逻辑23c发送到分段模块22。在此实例中,分段逻辑如下:“(结合ID(计数(Visa Trx Amt>$5000)>2)并且(Cust Eng.<6mo.并且总Trx计数>100))”。作为响应,分段模块22产生复合键查询23a(53054423.VISA)和复合键查询23b(53054423.Cust_Eng),并将复合键查询23a、23b发送到数据存储库12f。作为响应,数据存储库12f(例如,在表中)查找具有与查询23a、23b中指定的复合键匹配的复合键的复合键值。在该实例中,复合键查询23a包括复合键“53054423.VISA”。基于该复合键,数据存储库12f检索复合键值25a,该复合键值具有复合键“53054423.VISA”并且因此与复合键查询23a中指定的复合键匹配。在该实例中,复合键查询23b包括复合键“53054423.Cust_Eng”。基于该复合键,数据存储库12f检索复合键值25b,该复合键值具有复合键“53054423.Cust_Eng”并且因此与复合键查询23b中指定的复合键匹配。数据存储库12f将复合键值25a、25b作为返回记录22c返回到分段模块22。作为响应,分段模块22将返回的记录22c传输到逻辑模块25以便进行进一步处理。在该实例中,逻辑模块25还已接收到分段逻辑23c(例如,来自分段模块22),并且实现了结合逻辑以将返回的记录22c结合在一起以产生聚合或结合的记录27。
参考图5B,图形用户界面40是图形用户界面21(图2)的变型。在该实例中,图形用户界面40包括部件40a至40e。在此实例中,部件40a指定“客户参与度”表用于通过仅包括已成为客户六个月以上的那些客户来对客户进行分段。在该实例中,某些聚合体(例如,计数)与客户参与度表相关联。在一些实例中,每个复合值将包括相同类型的聚合体。因此,每个表都可以与相同类型的聚合体相关联。在其他实例中,表可以仅与某些类型的聚合体相关联。在此实例中,如果将复合键查询发送到数据存储库,并且返回的复合键值不包括分段所需的聚合体,则执行系统将简单地丢弃保留的复合键值)。在该实例中,部件40e指定使用Visa卡购买表进行分段,并且进一步地,如部件40d所指定的,只有具有两次以上卡购买的那些客户才被包括在该分段中。部件40c指定将从部件40a至40b、40d和40e中指定的逻辑的执行返回的记录结合在一起。
大规模生成实时(或近实时)聚合体
在一些实例中,系统10在接收到数据时实时(或近实时)地聚合字段中的数据,并且还大规模地聚合数据,使得在由系统10接收到大容量数据时,系统10执行聚合而没有明显的延迟。在一些实例中,这些聚合体用于生成在系统执行分段时访问或检索的数据。
现在参考图6,联网系统10(图1)还包括产生实时聚合体的系统50。在一些实例中,系统50是图1中的执行系统14。在该实例中,系统50从数据源12a接收数据记录52a至52c以及从数据源12b接收记录52d至52f。数据记录52a至52f中的每一个包括一个或多个字段,诸如具有唯一地识别用户的值的键字段(即订户标识符(SubID)字段)。数据记录52a至52f中的每一个还可以包括用于存储识别通信类型的值(即语音、SMS或数据)的通信类型(“通信类型”)字段。
联网系统10也是执行系统14(图1),并且包括存储装置,该存储装置包括存储器56(例如,共享存储器、半导体存储器、低持久性存储器等)和持久性存储器58。存储器56和58可以形成图1的存储器16。通常,存储器56包括系统50可访问的存储器,具有例如相对于从持久性存储器58检索数据或数据记录中的延迟减少的延迟。存储器56具有减小的延迟,因为存储器56不是磁盘存储器(例如,当存储在存储器56中时数据记录没有被存储到磁盘)。在一些实例中,存储器56包括存储器高速缓存,有时称为高速缓存存储器或RAM高速缓存,其是由高速静态RAM(SRAM)而不是用于主存储器(例如持久性存储器58)的较慢且动态的RAM(DRAM)制成的存储器的一部分。在该实例中,存储器56仅存储最近数据(或最近数据的出现的记录),其中如果数据在小于阈值时间量(例如,小于十四天)中被接收,则数据是“最近的”。在数据早于阈值时间量之后,系统50或存储器56将数据发送到持久性存储器58以便进行更持久的存储。存储器56上的存储器高速缓存是有效的,因为系统50最频繁地访问最近的数据。也就是说,存储在存储器56中的数据是系统50主动使用的数据。通过将尽可能多的此信息保留在SRAM或存储器56中,系统50避免访问较慢的DRAM或持久性存储器58。
在该实例中,系统50存储事件的记录,而不是接收的数据或数据记录本身。通常,事件包括针对特定字段的特定值的出现。在该实例中,系统50指定“通信类型”字段的每个可能的值(即语音、SMS或数据)是事件。存储器56存储数据记录60,该数据记录保存了各个检测事件的记录(以及用于该事件的订户ID)。具体地,数据记录60包括列60a至60c。列60a存储指示“语音事件”的发生的数据,用于“通信类型”字段的“语音”值的检测。列60b存储指示“数据事件”的发生的数据,用于“通信类型”字段的“数据”值的检测。列60c存储指示“SMS事件”的发生的数据,用于“通信类型”字段的“SMS”值的检测。
具体地,系统50接收数据记录52a并在数据记录52a中检测语音事件的发生。因此,系统50将订户ID的值插入数据记录60的列60a中。系统50接收数据记录52b并在数据记录52b中检测SMS事件的发生。因此,系统50将在数据记录52b中的SubID字段中指定的订户ID插入列60c中。
系统50接收数据记录52c并在数据记录52c中检测语音事件的发生。因此,系统50将在数据记录52c中的SubID字段中指定的订户ID插入列60a中。系统50接收数据记录52d并在数据记录52d中检测语音事件的发生。因此,系统50将在数据记录52d中的SubID字段中指定的订户ID的值插入列60a中。系统50接收数据记录52e并在数据记录52e中检测语音事件的发生。因此,系统50将在数据记录52e中的SubID字段中指定的订户ID的值插入列60a中。系统50接收数据记录52f并在数据记录52f中检测数据事件的发生。因此,系统50将在数据记录52f中的SubID字段中指定的订户ID的值插入列60b中。
在该实例中,数据记录60是具有增加量的灵活性的数据记录,因为可以通过向数据记录60添加另一列来修改数据记录60以还跟踪其他类型的事件(例如,视频会议事件)的发生。因此,可以即时修改数据记录60,以跟踪新事件的聚合体。这提供了比保存接收的数据记录本身改进的灵活性,因为可以通过为该事件生成新的复合键来跟踪新的事件,如下文进一步详细描述的。另外,相对于对单个数据记录执行查询时的延迟量,数据记录60的搜索提供了执行查询时的减少的延迟。例如,系统50可以向数据记录60查询参与语音通信的那些订户。在该实例中,系统50生成针对“通信类型=语音”的查询。基于该查询,存储器56返回列60a中的值,仅查找列60a中包括的订户ID的值。系统50以增加的速度(相对于搜索单个数据记录52a至52f以识别满足查询的数据记录所需的速度)返回该查询的结果,因为系统50(或存储器56)仅必须识别匹配或满足该查询的列,而不是搜索数据记录以识别存储满足该查询的值的那些记录。在一些实例中,在阈值时间量之后,数据记录60中的数据被传送到持久性存储器58,并存储在数据记录62a...62n之一中。
在一些实例中,列60a至60c中包括的数据每个都称为存储器中聚合体,因为这些列中的每一个都表示特定类型事件的聚合体。通常,存储器中的聚合体(例如,计数、平均值等)包括存储在存储器56中的数据的聚合体。在其他实例中,系统50可以对记录60中包括的数据执行操作以生成存储器中的聚合体。例如,系统50可以向存储器56查询其中“通信类型=语音”并且“SubID=53054423”的记录的计数。在该实例中,存储器56将返回值“2”,因为列60a指示具有“SubID=53054423”的订户已进行两次语音通信。在该实例中,存储器56为查询生成存储器中的聚合体,并且该存储器中的聚合体具有的值为2。存储器56(或系统50)将存储器中的聚合体的值存储在共享变量中。在该实例中,在接收到查询“通信类型的计数=语音并且SubID=53054423”时,存储器56生成名称为“通信类型的计数=语音并且SubID=53054423”的共享变量,并将该共享变量的值设置为“2”。在此实例中,共享变量存储存储器中的聚合体的值。如前所述,以增加的速度(相对于从持久性存储器58中检索这些存储器中的聚合体的速度或者通过搜索各个数据记录52a至52f来构建这些存储器中的聚合体的速度)从存储器56中检索这些存储器中的聚合体。
一旦将数据记录60中的数据移动到磁盘(即移动到持久性存储器58),列60a至60c中的值就是磁盘上的聚合体,包括例如存储在磁盘上而不是存储在存储器上的发生的记录。在一些实例中,在阈值时间量之后,共享变量的值也被移动到持久性存储器58。
通过记录事件的发生而不是自己存储数据记录,系统50大规模确定聚合体,例如随着数据记录60中表示的记录的数量的增加,在确定聚合体中没有增加的延迟(或仅存在最小的增加延迟),因为系统50仅需识别数据记录60中的相关字段(或列中的相关单元),而不是解析并识别各个记录52a至52f的内容。数据记录中相关字段的识别是可扩展的过程,因为字段的数量不会随着记录中的发生次数的增加而增加。因此,这些实时聚合体的识别是可扩展的,并且即使处理的数据记录数量增加,也不会引入延迟。
在变型中,存储器56存储散列表,其中与复合值相关联地存储复合键的散列值,如下文进一步详细描述的。通常,复合键包括从(或包括)多个不同的值组合的键。通常,复合值包括多个不同值的并置或组合。
参考图7,示出了由系统10(例如,由图1中的模块18)执行的选择和修改功能。在该实例中,系统引起渲染各种用户界面,通过这些用户界面选择一个或多个数据源、选择一个或多个数据结构、并且修改那些数据结构的一个或多个字段。在该实例中,数据源72a至72d(其中数据源72a至72c分别对应于数据源12a至12c)是候选数据源,可通过渲染模块(例如,图1中的渲染模块20)从中获得数据。渲染模块20(图1)提供各种图形用户界面,通过这些图形用户界面,最终用户(例如,商业用户)查看和访问策划的数据子集。系统从策划的子集生成指令,以例如基于通过图形用户界面接收的数据来执行各种操作和动作。数据子集从跨数据源(例如,数据源72a至72d)的数据的超集策划到用于指定操作(诸如分段操作)的子集中。渲染模块还提供图形用户界面,以接收有关如何策划数据的指令。在该实例中,数据源72a至72d是数据的超集,从该超集生成(例如策划)子集。系统选择数据源72b、72d作为修改各种数据结构(例如表)的数据源。在一些实例中,基于对数据源14、18的选择,系统识别对数据源72a、72d的引用,并在存储器16(图1)中查找哪些表与那些识别的引用相关联。然后,当存储器16存储表本身时,系统从数据源72b、72d或从存储器16中检索那些表。
在该实例中,数据源72a包括表73、74、75。数据源72d包括表78、79、80、81。通过经由渲染模块20(图1)渲染表26的视觉表示,系统从表73、74、75选择表26作为将要修改(例如,策划)的数据结构。通过经由渲染模块20(图1)渲染表32的视觉表示,系统从表78、79、80、81选择表32作为将要修改(例如,策划)的数据结构。这些选择是根据例如通过用户界面接收的用户指令进行的,以选择表26、32。也就是说,并非所有表73、74、75、78、79、80和81都被修改和策划。通过渲染模块20,仅修改来自那些选择的数据源的那些选择的表,并使其在用户界面24(图1)中可用。
表75的视图75a展示了表75的内容。视图75a和表75在本文中可以被统称为“表75”,而没有限制并且出于方便的目的。表75包括标题部分75g,该标题部分指定“计划sts.”的标题。在该实例中,表75包括列75b、75c、75d(在本文中也分别称为“字段75b、75c、75d”)。字段75b、75c、75d的名称分别为“sub_id”、“min_usd”、“prc_pln_id”。表75还包括行75e、75f。在一个实例中,在用户界面中渲染表75(或表75的视觉表示),以使得能够对标题和/或字段进行修改和/或重命名,并且还使得能够指定字段之一作为键,该键例如将要在结合各种表的字段时使用。表76是表75的修改版本。基于来自执行系统14的图形用户界面数据的接收,在客户端设备85a上渲染表76,其中图形用户界面数据指定表75的内容。在表75的此修改版本中,部分75g中指定的原始标题已被修改为标题“计划统计”,如部分76a中指定的。此外,字段75b、75c、75d中的每个字段都已重命名为更具描述性的名称(例如,对商业用户更有意义的名称)。在该实例中,字段75b的名称被重命名为“订户ID”,如字段76b所示。通常,订户包括系统的用户,并且由键(也称为订户ID)识别。在该实例中,如图标76c所示,字段76b被选择为键。字段75c的名称被重命名为“使用的分钟数”,如字段76e所指定的。字段75d的名称被重命名为“价格计划名称”,如字段76f中所指定的。表76还包括行76g、76h,每行的内容分别对应于行75e、75f。在该实例中,表76通过系统被呈现给最终用户。在该实例中,仅表76(并且表73、74、75中没有表)被呈现给最终用户,以使得能够查看和/或选择可从数据源14获得的数据。表76(或表76的视觉表示(未示出))表示来自数据源14的数据的策划版本或安排。在一些实例中,表75的策划版本(例如,表76)可以仅包括表75中的字段的子集。例如,可以移除字段75c或75d,并且不包含在表76中。在另一实例中,例如,当它们是特定订户ID的多个行时,用户可以选择表75(或表76)中的行作为枢轴行。
表81的视图83展示了表81的内容。视图83和表81在本文中可以被统称为“表81”,而没有限制并且出于方便的目的。表81包括标题部分83a,该标题部分指定标题“Bndld_vc_data”。在该实例中,表81包括列81b、81c(在本文中也分别称为“字段81b、81c”)。字段81b、81c的名称分别是“sub_id”和“sub_bndledvd”。表81还包括行81d、81e。在一个实例中,在用户界面中渲染表81,以使得能够对标题和/或字段进行修改和/或重命名,并且还使得能够指定字段之一作为键,该键例如将要在结合各种表的字段时使用。表83是表81的修改版本。基于来自执行系统14的图形用户界面数据的接收,在客户端设备85b上渲染表83,其中图形用户界面数据指定表81的内容。在该修改版本中,已将部分81a中指定的原始标题修改为标题“绑定语音和数据”,如部分83g中指定的。另外,字段81b、81c中的每一个都已被重命名为更具描述性的名称(例如,对商业用户更有意义的名称)。在该实例中,字段81b的名称被重命名为“订户ID”,如字段83a中所示。在该实例中,如图标83b所示,字段83a被选择为键。
如由字段83c指定的,字段81c的名称被重命名为“绑定语音和数据”。表83还包括行83d、83e,每个行的内容分别对应于行81d、81e。在该实例中,表83通过系统被呈现给最终用户。在该实例中,仅表83(并且表78、79、80、81中没有表)被呈现给最终用户,以使得能够查看和/或选择可从数据源72d获得的数据。表83表示来自数据源72d的数据的策划版本或安排。
参考图8A,图形用户界面90由系统渲染,以使得能够选择例如从其修改数据的一个或多个数据源。在该实例中,图形用户界面90是由渲染模块20(图1)渲染的图形用户界面之一。图形用户界面90包括具有控件92a的菜单部分92,该控件的选择使图形用户界面90在图形用户界面90的部分94中显示可用数据源的视觉表示93a至93d。在该实例中,视觉表示93a至93d分别表示数据源72a至72d(图7)。通过图形用户界面90,用户选择数据源72a、72d(图7)或12、14(图2)作为数据源,从这些数据源选择数据结构来进行修改,如由分别与视觉表示93a和93d并置的视觉表示95a、95d所示。在该实例中,列96包括可选控件(未示出),这些可选控件的选择导致显示视觉表示,诸如视觉表示93a和93d之一。
参考图8B,显示图形用户界面90的高级状态,以使得能够从所选择的数据源中选择一个或多个数据结构(例如,表)来进行修改。在该实例中,针对该数据源中包含的每个选择的数据源72a、72d(图7)数据结构,图形用户界面90显示菜单部分92(例如,其可以对应于图8A中的菜单部分92),具有控件92a,该控件的选择使图形用户界面90在部分94中显示。例如,部分94显示表96,该表包括列95a至95j。列95a显示视觉表示96a至96g,这些视觉表示具有所选择的数据源的名称,例如如图3或图7中选择的。视觉表示96a至96g表示例如根据视觉表示95d(图8A)所选择的数据源72d,从而将数据源72d指定为从其选择表进行策划的数据源。视觉表示96a至96g表示例如根据视觉表示58(图8A)的数据源72d,从而将数据源72d指定为从其选择表进行策划的数据源。列95b显示视觉表示97a至97g,每个视觉表示分别表示在视觉表示96a至96g中的对应一个中表示的数据源中的表的名称。列95c显示列95b中表示的每个表的数据类型。列95d提供用于输入列95a中表示的每个表的描述的控件。列95e显示可选择的控件,对它们的选择指定了(例如,通过显示视觉表示,诸如视觉表示95e’、95e”)表,从该表选择数据和/或数据结构以便进行修改。在该实例中,视觉表示95e’、95e”显示在列95e中,以指定分别由视觉表示97c、97f表示的表是被选择用于修改的表。
表96还包括列95f至95h,每个列指定可以选择和应用的特定功能。表96包括“最后更新”列95i,该列针对表96中的每一行显示指定最后更新由该行表示的表的用户以及何时执行更新的数据。表96还包括编辑列95j,该编辑列为表96中的每一行显示控件(例如,控件95j’、95j”)。对于针对其列95e指定由该行表示的表是可编辑的特定行,在针对该行的编辑列95j中显示的控件的选择使得能够对该表进行编辑和修改。例如,控件95j’的选择使得能够修改由视觉表示97c表示的表。在该实例中,视觉表示97c表示表75(图7),并且如前所述地修改表75。控件95j”的选择使得能够修改由视觉表示97f表示的表。在该实例中,视觉表示97f表示表81(图7),并且如前所述地修改表81。
参考图8C,显示图形用户界面150(例如,通过图1中的渲染模块20)以例如通过使用户能够生成执行分段的指令来使得用户能够访问、查看修改的数据结构并从修改的数据结构生成指令。图形用户界面150包括菜单部分152,该菜单部分包括控件,这些控件的选择使得能够生成各种类型的指令。在这个实例中,菜单部分152包括控件154,该控件的选择使得能够指定一个或多个所选择的数据结构(例如72a、72d)中的一个或多个字段,从该控件选择数据记录(和/或对那些数据记录执行操作)。
图形用户界面150包括用于指定数据分段和各种其他操作(例如像过滤、结合等)的编辑器界面156。在选择控件154时,部件158被显示在编辑器界面156中。通常,部件表示可执行逻辑(或指令),诸如分段逻辑,以执行各种操作。该部件(经由编辑器界面156)接收诸如选择数据或其他输入数据的输入,并且系统使用所接收的输入来生成可执行逻辑。在一个实例中,系统存储可执行逻辑和部件之间的预配置映射。然后,基于输入或由部件以其他方式指定,(用于该部件的)可执行逻辑被更新或修改为包括输入。部件158使得能够指定指令以选择诸如97a至97g的特定表(例如,策划表)。部件158包括图标160,该图标的选择使得能够选择特定的策划表。
参考图8D,示出图形用户界面170。图形用户界面170是图形用户界面150(图8C)的更新版本,例如其在选择图标160之后被更新。在选择图标160时,在图形用户界面170中渲染叠层部分172。叠层部分172包括(已被修改和策划的表83(图2)、97f(图8B)的)视觉表示172a以及(已被修改和策划的表76(图7)的)视觉表示172b。在该实例中,选择视觉表示172a。
参考图8E,示出图形用户界面174。图形用户界面174是图形用户界面170(图8D)的更新版本。在选择视觉表示172a时,示出叠层176。叠层176示出表38(图7)的内容,并且包括可选择的部分176a,该部分的选择使得用户能够选择在可选择的部分176a中表示的字段(即“绑定语音和数据字段”)以便包括在由部件158表示的可执行逻辑中。叠层176还包括部分176b,该部分表示订户ID字段。在该实例中,对可选择的部分176a的选择自动引起部分176b的选择,因为在可选择的部分176a中表示的字段中的值需要与订户ID相关联,以便将值归于适当的订户。在一些实例中,由部件158表示的可执行逻辑根据通过选择可选择部分176a而选择的字段来修改或更新。
参考图8F,示出图形用户界面180。图形用户界面180是图形用户界面174(图8E)的更新版本。在该实例中,部件158被更新有部分158a、158b。部分158a指定部件158的标题,其中该标题是基于在图8E中的可选择的部分176a中表示的字段的选择。部分158b指定可执行逻辑(由部件158表示)被配置成用于例如从由系统接收或存储的数据记录中选择那些数据记录,针对这些数据记录,“绑定语音和数据”字段的值等于“1”。更一般地说,部分158b通过识别接收的数据记录中的哪些具有与在所选择的该一个或多个可选择的部分中表示的一个或多个字段相对应的一个或多个字段来指定接收或存储的数据记录的分段。通常,分段包括将数据记录分配给指定组、对数据记录进行划分和/或将数据记录从指定集合中排除以及将数据记录包括在其他集合中。这允许用户通过编辑器界面“即时”启动数据记录的分段。经由编辑器界面显示的表示因此提供了用于设置用于分段过程的条件的图形快捷方式,例如与逐步定义这些条件(诸如通过输入条件)相比,这导致传入的数据记录的更高效的(时间和资源)分段。总体而言,向用户提供了对传入数据记录的分段的更直接、更不易出错且更快的控制。在图8F的实例中,在选择可选择的部分176a(图8E)时,部分158b被自动填充有以下字符串:“具有绑定语音和数据的订户=____”。在该实例中,图形用户界面180显示提示(未示出),该提示提示用户为前述字符串中的空字段“_____”填入值“1”或“0”。在此实例中,用户选择值“1”。在该实例中,在前述字符串中引用的订户由部分176b(图7)中表示的订户ID字段表示。
在该实例中,用户还选择控件154以使部件182被添加到编辑器界面156。部件182使得能够指定指令以从另一特定表(例如,策划表)中选择一个或多个字段。部件182包括图标182a,该图标的选择使得能够选择特定的策划表和/或从特定的策划表中选择字段。
参考图8G,示出图形用户界面184。图形用户界面184是图形用户界面180(图8F)的更新版本,例如其在选择图标182a之后被更新。在选择图标182a时,在图形用户界面184中渲染叠层部分186。叠层部分186包括(已被修改和策划的表83(图7)的)视觉表示186a以及(已被修改和策划的表76(图7)的)视觉表示186b。在该实例中,选择视觉表示186b。
参考图8H,示出图形用户界面188。图形用户界面188是图形用户界面184(图8G)的更新版本。在选择视觉表示186b(图8G)时,示出叠层190。叠层190示出了表76(图7)的内容,并且包括可选择部分190a、190b、190c,对它们的选择使得用户能够分别选择订户ID字段、使用分钟数字段和价格计划名称字段,以便包含在由部件182表示的可执行逻辑中。在该实例中,一个或多个可选择的部分190b、190c的选择自动导致对可选择的部分190a的选择,因为在可选择的部分190a、190b中表示的字段中的值需要与订户ID相关联,以便将值归于适当的订户(例如,用户)。在一些实例中,由部件182表示的可执行逻辑根据通过选择在该实例中选择的可选择部分190b而选择的字段来修改或更新。
参考图8I,示出图形用户界面192。图形用户界面192是图形用户界面188(图8H)的更新版本。在该实例中,部件182被更新有部分182b、182c。部分182c指定部件182的标题,其中该标题是基于在图8H中的可选择的部分190b中表示的字段的选择。部分182b指定可执行逻辑(由部件182表示)被配置成用于例如从由系统接收或存储的数据记录中选择包括“使用分钟数”字段的那些数据记录,如在可选择的部分190b(图8H)中指定的。在此实例中,“使用分钟数”字段是策划字段,并且实际上与实际数据记录中的字段的名称不匹配。因此,系统存储图7中的表75(包括数据记录本身中的字段的实际名称)和图7中的表76(包括字段的策划名称)的副本以及表75中的每个字段名称与表76中的字段名称之间的映射。基于映射,系统针对策划的字段名称来查找实际的字段名称。例如,系统使用该映射来识别部分182b中引用的“使用分钟数”字段实际上是数据记录中的“min_used”字段。
参考图8J,图形用户界面194展示了在选择控件198之后用结合部件200来更新编辑器界面。在该实例中,结合部件200表示将两个不同的数据流或数据记录的集合结合在一起的可执行逻辑。在此实例中,结合部件200表示部件158的输出(“绑定语音和数据”字段的值等于“1”的那些数据记录)与部件182的输出(“订户使用的分钟数”字段中具有值的那些数据记录)结合在一起。在变型中,部件158的输出是当值等于“1”时“绑定语音和数据”字段(即图7中的字段81c或字段82c)的值以及“订户ID”字段(即图7中的字段83a或字段81b)的相关联值。在该变型中,部件182的输出是“使用的分钟数”字段(图7中的字段76c或字段75c)的值以及“订户ID”字段(图7中的字段76b或字段75b)的相关联值。由结合部件200表示的可执行逻辑通过订户ID将部件158、182的输出结合在一起。在该实例中,可以例如经由控件197的选择从菜单部分152中选择连接器201、203,以指定部件158、182的输出是到结合部件200中的输入,以将部件158、182的输出结合在一起。
在该实例中,编辑器界面156显示可以通过选择保存控件196来保存(例如,以供将来使用)的特定片段的定义,选择该保存控件会提示用户输入片段的名称以使得能够随后通过该名称检索该片段。
参考图8K,显示图形用户界面206以使得能够创建预定义的数据聚合体(也称为“实体”)。具体地,例如,基于通过用户界面206接收的指令,系统将来自不同表的数据结合以生成这些实体,这些实体然后在生成分段时(例如,通过系统)可用。这些实体将各种数据组织到指定的类别中。
图形用户界面206包括菜单部分207,带有订户控件207a,该订户控件的选择引起显示实体部分208。实体部分208显示定义的实体,并且包括生成控件205,对该生成控件的选择显示一系列提示和控件,以供用户定义新的实体。在该实例中,实体部分显示先前定义的实体的视觉表示209,该视觉表示指定与和特定键(例如,表示订户)相关联的手机或设备相关的数据的聚合体。
参考图8L,例如在选择生成控件205(图8K)时,将图形用户界面210显示为图形用户界面206(图8K)的叠层。图形用户界面210使得能够生成新的实体,并且包括名称部分210a,用于输入指定正在创建的实体的名称的信息;前缀部分210b,用于输入指定所生成的实体的技术或数据库字段名称的前缀;以及描述部分210c,用于输入指定正在创建的实体的描述的信息。图形用户界面210还包括字段部分212,该字段部分指定字段212a至212j,这些字段包括在图形用户界面210中定义的实体中。在该实例中,字段212a至212j是从包括在各种数据源(例如,图1中的数据源12a至12c)中的表选择的字段。在该实例中,字段部分212在列212k中显示原始字段名称(例如,来自未策划表)并且在列212l中显示修改或策划的字段名称。在该实例中,字段212h对应于图2中的字段75d,并且字段212m是字段212h的修改或策划版本。字段212m对应于图7中的字段76f,例如以说明字段部分212如何能够通过其原始字段名称和其修改的字段名称来进行字段的选择。字段部分212还包括用于输入搜索查询或一个或多个搜索项的搜索控件212n。系统使用搜索控件212n的输入来(从数据源中的表)搜索与搜索标准匹配或相对应的字段名称。在选择适当的字段后,这些字段被显示在字段部分212中。
参考图8M,图形用户界面213是图形用户界面206(图8K)的修改版本。在该实例中,实体部分208被更新以显示视觉表示214,该视觉表示表示根据在图形用户界面210(图8L)中进行的规范和选择而创建的实体(以下称为“订户丰富实体”)。在该实例中,使视觉表示209、214中表示的实体在定义分段中对用户可用,如下文进一步详细描述的。
参考图8N,图形用户界面216被显示并且是与图形用户界面194(图8J)相同的图形用户界面。从菜单部分152选择控件218以访问例如在实体部分208(图15)中表示的预定义实体。
参考图8O,图形用户界面220被显示并且是图形用户界面216(图8N)的修改版本,其中叠层部分222被渲染在编辑器界面156中。叠层部分222包括(在图8L中的图形用户界面210中定义的订户丰富实体的)视觉表示222a以及(由图8K中的视觉表示209表示的手机实体的)视觉表示122b。在该实例中,选择视觉表示222a,例如以将满足由订户丰富实体指定的某些标准的订户添加到在编辑器界面156中定义的分段。
参考图8P,显示图形用户界面224。图形用户界面224是图形用户界面220(图8O)的修改版本,其中实体部件226被添加到编辑器界面156。在该实例中,实体部件226表示可执行逻辑,该可执行逻辑在被执行时检索具有指定字段(例如,图8M中的字段212k至212j)的那些数据记录。在一种变型中,实体部件226表示可执行逻辑,该可执行逻辑在被执行时检索字段212k至212j(图8M)的值以及与那些字段相关联的键的值。在此实例中,配置文件数据从实体部件226输出,并且经由连接器228结合到结合部件200,与部件158、182的输出结合。通过将实体部件226添加到编辑器界面156,分段230被定义为仅包括由实体部件226指定的那些订户,具有绑定语音和数据计划(如由部件158指定的)的订户以及已使用分钟数(如由部件183所指定的)的订户。在此实例中,通过选择保存控件196保存分段230以供后续使用。在该实例中,选择保存控件196使得由部件158、182、200、226以及由连接器201、203、228表示的可执行逻辑被保存(例如,在数据结构中)以用于随后检索,例如进一步定义其他分段。在该实例中,执行系统14(图1)可以执行分段230,例如以分段存储在存储器16(图1)中的多个数据记录,以仅包括具有字段和/或具有满足由分段230指定的定义的字段的值的那些数据记录。在该实例中,可以通过分段控件232访问分段230,该分段控件提供对分段部件的选择。分段部件允许在构建分段时将已定义的分段用作数据选择的来源。
在该实例中,分段230是由图1中的分段模块22(或图9中的分段模块22)执行以执行分段的可执行数据流图。通常,可执行数据流图包括有向数据流图,图中的顶点表示部件(数据文件或过程),并且图中的链路或“边”指示部件之间的数据流。在名称为“EXECUTINGCOMPUTATIONS EXPRESSED AS GRAPHS(执行表示为图的计算)”的在先美国专利号5,966,072中描述了一种用于执行这种基于图的计算和数据流图的系统,该专利通过引用并入本文。通过执行分段作为在系统14(图1)上执行的数据流图,在系统(通过执行数据流图)正在对数据和数据记录进行执行排序、过滤、结合等功能时而不是在直接在存储器16(图1)中或其他数据存储设备中执行该功能时,系统14的系统资源和存储器16(图1)被释放。也就是说,当分段所需的操作直接在存储器16中执行时,由于执行数据流图以执行分段功能而不是通过直接对存储器中的数据进行操作来执行分段功能,因此存储器16(图1)的处理能力和速度相对于存储器16的处理能力和速度而增加。
在一些实例中,本文描述的系统识别用于各种活动的分段。通常,活动是对例如在指定时间发送给指定用户的选择的提议的定义。数据流图可以定义活动,例如当数据流图的可执行逻辑指定如何确定将哪些提议发送到分配给该活动的分段时。可以为活动分配保持类型,包括例如指定或限制活动成员资格的指令。存在各种保持类型,包括例如“无”类型、“全局”类型、“语音”类型、“数据”类型、“SMS”类型、“包”类型、“重新加载”类型等等。保持类型为“无”的活动对订户没有任何限制。具有“全局”保持类型的活动指定订户可以在该活动中,而不能同时有其他活动。具有“语音”保持类型的活动指定订户一次仅能处于语音保持类型的单个活动中。具有“数据”保持类型的活动指定订户一次仅能处于数据保持类型的单个活动中。具有“SMS”保持类型的活动指定订户一次仅能处于SMS保持类型的单个活动中。具有“包”保持类型的活动指定订户一次仅能处于包保持类型的单个活动中。具有“重新加载”保持类型的活动指定订户一次仅能处于重新加载保持类型的单个活动中。在配置活动时,用户可以选择在活动周期结束时是否将订户从活动保持中释放。
该系统还为每个活动分配一个主题(例如,存储表示主题的数据的数据结构),该主题表示活动的目标。活动主题具有优先权。如下所述,系统在使用联系策略的活动仲裁过程期间使用此优先级。
在任何时间点,订户都可以有资格参加一个或多个活动。重要的是并且在由理事机构监管的一些情况下,这不是要向订户发送带有过多提议的垃圾邮件,而是将最重要的提议定位给订户。联系策略控制着系统在活动期间与订户通信的频率。联系策略设置了系统可以传输的对外提议的数量的限制。如果订户有资格参加多个活动,则系统需要根据联系策略并根据各个执行活动的相对优先级来扩展那些提议,以便在可以为优先级较高的活动扩展提议时不为优先级较低的活动扩展提议。例如,订户可能处于高优先级活动的特定阶段,但是已开始落入低参与度分段。如下所述,系统执行活动仲裁指令,以确保当应为订户分配较高优先级的提议时,不会为订户分配较低优先级的提议。
在联系策略限制了可以发送给目标客户的提议的数量的情况下,系统会基于活动主题和优先级执行活动仲裁指令以选择最佳提议。例如,如果联系策略规定每天只能向客户发送两个提议,并且该客户有资格获得五个提议,则系统会基于活动主题和优先级选择前两个提议(例如,系统选择各自与相对于其他活动的优先级具有前两名优先级的活动之一相关联的两个提议)。
例如,当配置成千上万个活动时,计划在一天中较早执行的活动可能会消耗系统将希望提供给优先级较高的活动的联系策略限制。为了解决这个问题,系统使用活动主题的优先级来用系统中包含的通信子系统为订户预留通信时隙。通常,系统为每个订户存储数据结构或队列并用表示何时将消息发送给订户的数据填充数据结构中的条目,和/或用为特定活动保留该条目的数据填充数据结构中的条目。当需要发送消息时,系统然后检查订户的联系策略和该订户的数据结构,使得优先级较低的活动不会消耗当天晚些时候所需的联系策略限制。
参考图8Q,显示图形用户界面270以使得能够修改在图形用户界面210(图8L)中定义的订户丰富实体。在该实例中,选择创建控件272,例如以将一个或多个附加字段添加到订户丰富实体的定义。在该实例中,在选择创建控件272时,一个或多个存储器中聚合体被添加到订户丰富实体。
参考图8R,显示叠层274例如作为图形用户界面270(图8Q)的叠层。在该实例中,叠层274显示可以添加以便包括在订户丰富实体中的各种类型的存储器中聚合体274a、274b、274c、274d。在该实例中,选择一个存储器中聚合体274d(即储器中聚合体274d’)以便包括在订户丰富实体中。在该实例中,存储器中聚合体274d’是指定语音使用计数(例如,用户进行的语音呼叫的数量)的存储器中聚合体。
参考图8S,图形用户界面276是图形用户界面270(图8Q)的更新版本,其中根据图21中的存储器中聚合体274d’的选择来将字段部分212更新为包括字段278。字段278是用于存储存储器中聚合体274d’的值的字段,从而将存储器中聚合体274d’添加到订户丰富实体。在此实例中,存储器中聚合体274d’是语音使用计数存储器中聚合体,它按每个键提供语音呼叫数量的计数。
参考图8T,图形用户界面280是图形用户界面224(图8N)的更新版本,其中例如在选择过滤器控件284之后,将过滤器部件282添加到编辑器界面156。过滤器部件表示可执行逻辑,以根据指定规则过滤其流上的数据。如由连接器286指定的,从实体部件226输出的配置文件数据被输入到过滤器部件中。在该实例中,从实体部件226输出的配置文件数据包括用于语音使用计数存储器中聚合体的值(例如,针对每个键值)。过滤器部件282被配置成用于从包括在输出配置文件数据中的数据记录中排除那些数据记录,其中语音使用计数存储器中聚合体的值大于或等于值2。在该实例中,仅指定订户已进行少于两次语音呼叫的接收的数据记录将通过由过滤器部件282表示的逻辑,因为这些是指定订户已进行少于两次语音呼叫的仅接收的数据记录。通过由过滤器部件282表示的标准或逻辑的那些数据记录是经过滤的数据,并且将它们输入到结合部件200中(如由连接器288指定的)。编辑器界面156的内容定义了新的分段,即分段290。
参考图9,执行环境300使用数据源303(例如,如先前所解释的用于接收针对其策划或以其他方式修改字段的数据记录)、数据源302(用于接收将要处理的数据记录),并且包括系统314以用于实施收集-检测-动作(CDA)。通常,CDA是指系统314收集数据记录、处理那些数据记录以检测哪些数据记录包括满足指定标准的值并参考那些数据记录来执行一个或多个动作的过程。如上所述,该环境还包括预执行模块14’(类似于执行模块14),该预执行模块包括数据结构修改模块18(图1),以用于选择从其可获取数据的一个或多个数据源以及那些选择的一个或多个数据源中的一个或多个数据结构以用于(例如,通过修改字段名称)修改一个或多个数据结构。预执行模块14’还包括渲染模块20(图1),以用于在用户界面(在客户端设备301上显示)中渲染修改的数据结构的视觉表示中,如图1中所讨论的。
参考图10,系统314包括收集模块316,以用于收集数据记录(例如,从数据源302接收的数据记录302a至302c和其他数据),将数据记录302a至302c中的数据转换成转换数据306,并且将该转换数据306分配给下游应用,包括例如分段模块326、检测模块318和动作模块320。数据记录302a的内容包括“ID:34213,事件类型:语音,日期:4/3/2018”。数据记录302b的内容是“ID:34214,事件类型:SMS,日期:4/3/2018”。数据记录302c的内容是“ID:34215,计划类型:绑定计划,日期:4/3/2018”。在此示例中,动作模块320包括到第三方系统和/或外部系统的接口。具体地,采集模块316从各种来源(例如像数据源302)或从定位于不同位置并经由网络互连的不同服务器以批量或实时方式收集数据,并且从实时数据流收集数据,例如来自定位于不同位置并经由网络互连的不同服务器的实时数据。提供数据源302的存储设备对系统314来说可以是本地的,例如存储在连接至计算机运行系统314的存储介质(例如,硬盘驱动器)上,或者可以远离系统314,例如托管在远程系统上,该远程系统通过局域数据网络或广域数据网络与系统314通信。
收集模块316在存储器322中记录在接收的数据记录中发生的每个事件的记录。如前所述,收集模块316将这些发生记录在数据记录或表中。在该实例中,收集模块316将接收的事件的发生记录在存储器322中的散列表中。对于每个接收的记录,收集模块316通过生成复合键来生成(i)复合键值,然后对该复合键进行散列以生成散列的复合键,如列346a中所示,并且生成(ii)复合值,如列346b中所示。在该实例中,复合值是从包括在接收的数据记录中的字段中的数据和/或从表示聚合体(例如,计数、最小值、平均值、最大值等)的先前存储的数据(例如,存储在存储器322或存储器324中)生成的。在该实例中,从接收的记录302a生成散列表346中的条目346c。为了生成条目346c,收集模块316对记录302a中的ID字段的值(“34213”)进行散列以生成散列值“0111”,然后将其存储在用于条目346c的列346a中。在该实例中,收集模块316在条目346c的复合值列346b中的记录302a中包括事件字段的值“语音”。收集模块316还在条目346c的复合值列346b中包括用于ID:34213的其他聚合体(例如,从存储器322或持久性存储器324检索)。在此实例中,检索的聚合数据表示在指定时间段(例如,过去三十天内)使用的SMS消息数量的计数(“4”)。在该实例中,散列表346还包括在列346a和346b中具有所示值的条目346d、346e。在该实例中,条目346d包括“绑定计划,平均23分钟”的复合值,表示对于具有散列值“0010”的ID,该ID与绑定计划相关联(从接收的数据记录的字段中检索到该值),并且具有该ID的订户的平均分钟数是二十三分钟(该值是从存储器322或持久性存储器324检索的聚合体)。条目346e包含复合值“50分钟,平均2340分钟”,表示对于具有散列值“1101”的ID,该ID是具有五十分钟(从接收的数据记录的字段中检索到该值)的长度的当前事件(例如电话呼叫),并且具有该ID的订户的平均分钟数是两千三百四十分钟(该值是从存储器322或持久性存储器324检索的聚合体)。如下文进一步详细描述的,分段模块326然后通过识别数据记录中的哪一个包括满足存储在存储器322中的一个或多个分段定义的各种标准的字段的值来对数据记录进行分段。在该实例中,分段模块326包括分段逻辑326a。
现在还参考图10,在该实例中,检测模块318执行存储或以其他方式包括在分段模块326中的分段逻辑326a,例如该分段模块可以与图1中的分段模块22相同。使用本文中描述的技术,分段模块326执行一个或多个分段定义以识别满足包括在一个或多个分段定义中的各种标准(例如分段逻辑326a)的订户(由键或订户ID识别)。例如,分段模块326针对例如存储在存储器322或持久性存储器324中的数据记录的一个或多个集合执行分段定义,以识别满足分段定义的各种标准的那些数据记录的子集。通常,分段定义包括存储表示分段的定义的数据的数据结构。在该实例中,存储器322存储十四天的事件发生的记录。超过十四天的事件发生的记录被存储在持久性存储器324中。
在一些实例中,分段定义要求最近十四天内发生的事件的实时聚合体(或近实时(例如,实况时间)聚合体)。在该实例中,分段模块326通过生成适当的查询344a至344c(针对分段定义)并将该查询提交至存储器322来生成实时聚合体。作为响应,存储器322针对散列表346执行查询344a至344c中的适当一个。在该实例中,散列表346中的每个相应散列键值的每个复合值是返回到查询344a至344c的结果。在该实例中,存储器返回查询结果347,这些查询结果包括返回的条目347a至347c,如下文进一步详细描述的。
在该实例中,分段模块326从记录302a的内容(和/或从包括在变换数据306中的表示记录302a的内容的数据)生成查询344a。在该实例中,分段模块326检测到记录302a包括用于事件类型字段的语音值。基于该字段,分段模块326生成查询344a,该查询包括复合键“34213.语音”,该复合键是数据记录302a中的ID字段和事件类型字段的值的并置。在接收到查询344a时,存储器322被配置成用于对复合键的第一部分进行散列,因为第一部分表示ID的值。在该实例中,散列值“34213”是“0111”,并且存储器322作为返回条目347a返回到分段模块326条目346c。在该实例中,当返回条目346c的值时,存储器322未对散列的键值进行散列,使得返回的条目347a包括ID值“34213”。
分段模块326从记录302b的内容(和/或从包括在变换数据306中的表示记录302b的内容的数据)生成查询344b。在该实例中,分段模块326检测到记录302b包括用于事件字段的SMS值。基于该字段,分段模块326生成查询344b,该查询包括复合键“34214.SMS”,该复合键是数据记录302b中的ID字段和事件类型字段的值的并置。在接收到查询344b时,存储器322被配置成用于对复合键的第一部分进行散列,因为第一部分表示ID的值。在该实例中,散列值“34214”是“0010”,并且存储器322作为返回条目347b返回到分段模块326条目346d。在该实例中,当返回条目346d的值时,存储器322未对散列的键值进行散列,使得返回的条目347b包括ID值“34214”。
分段模块326从记录302c的内容(和/或从包括在变换数据306中的表示记录302c的内容的数据)生成查询344c。在该实例中,分段模块326检测到记录302c包括针对事件字段的绑定计划值。基于该字段,分段模块326生成包括复合键“34215.绑定计划”的查询344c,它是数据记录302c中的ID字段和事件类型字段的值的并置。在接收到查询344c时,存储器322被配置成用于对复合键的第一部分进行散列,因为第一部分表示ID的值。在该实例中,散列值“34215”是“1101”,并且存储器322作为返回条目347c返回到分段模块326条目346e。在该实例中,当返回条目346e的值时,存储器322未对散列的键值进行散列,使得返回的条目347c包括ID值“34215”。
在接收到查询结果347时,分段模块326针对分段逻辑326a执行返回条目347a至347c中的每一个。在此实例中,返回条目347a通过过滤器1,并且因此由返回条目347a中的ID表示的用户包括在该分段中。在此实例中,返回条目347b通过过滤器2,并且因此由返回条目347b中的ID表示的用户包括在该分段中。在此实例中,返回条目347c通过过滤器3,并且因此由返回条目347c中的ID表示的用户包括在该分段中。基于通过分段逻辑326a中包含的至少一个过滤器的条目347a至347c中的每个条目,分段模块326执行“结合:输出过滤器1,输出过滤器2,输出过滤器3”的逻辑(分段模块326中指定的),并生成结合的数据记录327,该数据记录指定了由分段逻辑326a定义的分段中所包含的数据记录的ID字段的值。分段模块326将结合的数据记录327传输到逻辑模块328以便进行进一步处理,如下文更详细地描述的。
在一些实例中,分段模块326存储表示所请求的实时聚合体的共享变量。分段模块326将从存储器322返回的该或这些值或条目存储在共享变量中,然后可通过请求共享变量的各种分段定义对其进行访问。在该实例中,从存储器322返回的聚合体(例如,作为包括在例如从散列表346返回的条目中的一项或多项复合值)是实时聚合体(或近实时聚合体),因为系统314不需要从磁盘(例如,持久性存储器324)检索数据。相反,可以从系统上的存储器(例如,存储器322)检索聚合体。另外,系统314例如通过记录事件的发生而不是存储记录本身来预先计算聚合体。通过记录事件的发生,系统314可以通过简单地识别具有与所请求的数据类型匹配(或以其他方式对应)的名称的列来更快地执行查询。然后,如果所请求的聚合体是计数,例如系统314可以对所识别的列中的出现次数进行计数,与解析数据记录和数据记录中的字段以识别具有满足分段的指定标准的值的那些数据记录所需要的处理时间相比,这具有减少的处理时间。
在另一个实例中,分段模块326请求最近二十天内发生的数据记录的实时聚合体。因此,系统314需要向存储器322和持久性存储器324两者查询实时聚合体。在该实例中,系统314如上所述地查询存储器322。系统314还向持久性存储器324查询满足实时聚合体所需的标准的数据(和/或数据的出现)。基于所请求的标准,持久性存储器324(例如,从使较旧的记录的内容(例如,在指定日期之前接收的记录)散列的散列表324a)中检索的数据记录中的适当和/或相关数据,并将该检索的数据(作为磁盘上的数据)发送到检测模块318。
在该实例中,来自持久性存储器324的数据包括指定事件发生的数据,其中那些发生在超过十四天之前发生。在该实例中,分段模块326将来自持久性存储器324的数据与从存储器322检索的数据进行聚合,以生成所请求的实时聚合体(例如,包括在复合键值的复合值部分中的聚合体)。具体地,由分段模块326实现的分段定义指定了仅在过去的二十天内进行了三次以上语音呼叫的用户被包括在分段中。在该实例中,由逻辑模块328实现的可执行逻辑在针对该分段中的用户的数据记录(例如,包括表示该分段中的用户的键的数据记录)上执行。在该实例中,系统314向存储器322查询与特定订户ID相关联的语音呼叫的计数。
在该实例中,存储器322返回由特定订户ID表示的用户已进行的两次语音呼叫的计数。系统314然后向持久性存储器324查询(在最近六天内进行的)语音呼叫的计数以及相关联的指定订户ID。从持久性存储器324返回的数据(例如,基于具有表324a的查询)指定与特定订户ID相关联的用户已进行一次语音呼叫。因此,磁盘上的数据指定了由特定订户ID表示的用户已进行的一次语音呼叫的计数。检测模块318接收磁盘上的数据,并将特定订户ID的计数(包括在磁盘上的数据中)与从存储器322中检索的特定订户ID的计数进行聚合,以识别出与特定订户ID相关联的用户最近20天内已进行三次呼叫,并且因此满足分段定义的标准并被包含在该分段中。
在该实例中,分段模块326将指定满足一个或多个分段定义的标准的订户的订户ID的数据项发送到逻辑模块328。在此实例中,每个数据项都是宽记录,其包含由系统314使用的所有复合值。也就是说,宽记录是系统使用的所有事件或复合键的宽记录。在此实例中,系统存储所有复合键和相关联的复合值,如前所述。然而,该系统仅在宽记录中包括系统314(例如,由分段模块326、逻辑模块328或动作模块320)实际使用的那些复合键。在此实例中,系统预先识别正在使用和/或访问哪些复合键,并且系统仅将那些访问的复合键(和相关联的复合值)添加到宽记录中,以优化系统性能并确保不增加数据处理方面的延迟。
如前所述,逻辑模块328存储并执行表示为数据流图的可执行逻辑。在该实例中,逻辑模块328针对订户的特定分段执行数据流图,如分段模块326中所识别的。数据流图例如基于分段中包括的订户的属性来识别关于不同订户将要执行的不同动作。
在检测到满足动作执行的各种标准的订户(包括在分段中)时,检测模块318将触发器332(例如,指令或消息)发布到队列,其内容由动作模块320接收并处理。通常,触发器332指定一个或多个指令以执行一个或多个动作。
动作模块320执行已经被触发的动作,诸如发送文本消息或电子邮件、打开案例管理系统中的工作订单的票证、立即切断服务、向目标系统或设备提供web服务、使用一个或多个通知传输分组数据等等。在另一个实例中,动作模块320生成消息的指令和/或内容,并将这些指令(和/或内容)发送至第三方系统,这些第三方系统进而基于指令执行动作,例如传输文本消息、提供web服务等。在一个实例中,动作模块320被配置成用于为各个接收者生成定制内容。在此实例中,动作模块320配置有规则或指令,这些规则或指令指定向哪些接收者发送或传输哪种定制内容。
现在参考图11,示出了用于处理数据结构以修改数据结构的属性的过程350。该处理选择352将要在编辑器界面中表示的多个数据源中的一个或多个,并生成354包括在多个数据源中的数据的子集,并从该或这些选择的数据源中选择356一个或多个数据结构,其中每个数据结构包括一个或多个字段,通过修改358选择的数据结构中一个或多个字段的一个或多个属性来修改该一个或多个字段。该或这些修改的数据结构被存储360在存储器中(例如,图1的存储器16或图6的56或图6的58),并且所选择的数据结构被包括在子集中。在编辑器界面中显示的是存储的数据结构的表示。该过程通过编辑器界面接收364指定对一个或多个可选择的部分的选择的选择数据,并且过程350通过识别哪些接收的数据记录具有与在选择的一个或多个可选择的部分中表示的一个或多个字段相对应的一个或多个字段来对多个接收的数据记录进行分段366。现在参考图12,示出用于聚合数据记录的过程380。过程380间歇地从一个或多个数据源(例如72a至72d(图7))接收382数据记录,并且从一个或多个数据源中识别384给定数据记录中的至少第一字段和第二字段。过程380检测386给定记录的第一字段中的第一值和第二字段中的第二值的存在。如上所述,过程380生成388复合键值。该过程从存储器322(图7)访问390与给定记录的至少第一字段或第二字段相关的聚合数据,并生成392复合键值,并记录394给定数据记录的出现。
现在参考图13,执行过程400,其中示出了由数据结构修改模块18、渲染模块20、分段模块22以及复合键模块30和逻辑模块25中的每一个执行的功能模块。数据结构修改模块18接收数据结构402,引起数据结构的可视化的渲染404,并且接收406由执行系统修改数据结构修改模块18中的数据结构而得到的修改的数据结构418。
渲染模块20从数据结构修改模块18接收经修改的数据结构,并且引起410具有经修改的数据结构的分段模板的渲染。渲染模块还接收分段逻辑412并将分段逻辑发送414到分段模块22。
分段模块22接收420分段逻辑并生成422复合键查询,这些复合键查询被发送424到复合键模块30。
复合键模块30接收430数据记录(例如,来自图1中的存储库12a),通过生成434复合键值从中生成复合键。复合键模块30存储436复合键值(例如,在图3中的数据存储库12e中)。
现在参考图14,示出过程450,其中示出了由分段模块22、复合键模块30和逻辑模块25中的每一个执行的功能模块。复合键模块30接收438复合键查询,并检索440具有满足指定标准的复合键的那些记录,并将检索的记录发送给分段模块22。分段模块22从复合键模块30接收426检索的查询记录,并且将检索的记录发送428到逻辑模块25。
逻辑模块25从分段模块22接收450发送的记录,并且应用452由分段逻辑指定的逻辑,诸如由部件158表示的可执行逻辑,并且此后输出454由处理产生的数据集。
上述技术可以使用软件来实施以便在计算机上执行。例如,软件形成一个或多个计算机程序中的在一个或多个编程或可编程计算机系统(可以是诸如分布式、客户端/服务器或网格等的各种架构)上执行的过程,这些计算机系统各自包括至少一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备或端口以及至少一个输出设备或端口。软件可以形成较大程序(例如,提供与图表和流程图的设计和配置相关的其他服务)的一个或多个模块。图表的节点、链路和元素可以实施为存储在计算机可读介质中的数据结构或者符合存储在数据存储库中的数据模型的其他有组织的数据。
本文所描述的技术可以在数字电子电路系统中实施,或者在计算机硬件、固件、软件或其组合中实现。装置可以在有形地体现或存储在机器可读存储设备(例如,非暂态机器可读存储设备、机器可读硬件存储设备等)中的计算机程序产品中实施,以供可编程处理器执行;并且方法动作可以由执行指令程序的可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行功能。本文描述的实施例以及权利要求书和本文描述的技术的其他实施例可以有利地在一个或多个计算机程序上实施,该计算机程序可在包括以下各项的可编程系统上执行:至少一个可编程处理器,其耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向数据存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。每个计算机程序可以用高级程序或面向对象的编程语言来实施,或者如果需要的话用汇编语言或机器语言来实施;并且在任何情况下,语言可以是编译语言或解释语言。
适合于执行计算机程序的处理器举例来讲包括通用微处理器和专用微处理器两者、以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机必不可少的元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或者光盘),或者被可操作地耦合以从用于存储数据的一个或多个大容量存储设备接收数据或者向其传送数据,或者既接收又传送数据。用于体现计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器,举例来说,包括半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD ROM盘。处理器和存储器可以由专用逻辑电路系统来补充或并入专用逻辑电路系统中。上述任何一项都可以由ASIC(专用集成电路)补充或并入ASIC中。
为了提供与用户的交互,实施例可以在具有用于向用户显示信息的显示设备(例如,LCD(液晶显示器)监视器)和用户可以通过其向计算机提供输入的键盘和指向设备(例如,鼠标或轨迹球)的计算机上实施。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以用任何形式接收来自用户的输入,包括声音输入、语音输入、或触觉输入。
实施例可以在计算系统中实施,该计算系统包括后端部件(例如,作为数据服务器),或者包括中间件部件(例如,应用服务器),或者包括前端部件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该图形用户界面或Web浏览器与实施例的实施进行交互),或者这些后端部件、中间件部件或前端部件的任何组合。系统的部件可以通过数字数据通信(例如,通信网络)的任何形式或介质来进行互连。通信网络的实例包括局域网(LAN)和广域网(WAN)(例如,互联网)。
该系统和方法或其部分可以使用“万维网”(Web或WWW),即互联网上利用超文本传输协议(HTTP)的服务器的集合。HTTP是已知的应用协议,其为用户提供对资源的访问权,资源可以是不同格式的信息,诸如文本、图形、图像、声音、视频、超文本标记语言(HTML)以及程序。在用户指定链路后,客户端计算机向Web服务器发出TCP/IP请求并接收信息,该信息可以是根据HTML格式化的另一个Web页。用户也可以通过遵循屏幕上的指令、输入特定数据或点击所选图标来访问相同或其他服务器上的其他页。还应当注意,本领域技术人员已知的任何类型的选择设备,诸如复选框、下拉框等,可以用于使用web页来允许用户为给定部件选择选项的实施例。服务器在各种平台上运行,包括UNIX机器,尽管也可以使用其他平台,诸如Windows 2000/2003、Windows NT、Sun、Linux和Macintosh。计算机用户可以通过使用浏览软件(诸如Firefox、Netscape Navigator、Microsoft Internet Explorer或Mosaic浏览器)在Web上查看服务器或网络上可用的信息。计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此并且通常通过通信网络交互。客户端和服务器的关系是借助于在相应的计算机上运行的计算机程序而产生,并且具有与彼此的客户端服务器关系。
其他实施例在说明书和权利要求的范围和精神内。例如,由于软件的性质,上文描述的功能可以使用软件、硬件、固件、硬连线或任何这些的组合来实施。实施功能的特征也可以物理地位于各种位置,包括被分布使得功能的各部分在不同的物理位置处实施。本文和整个申请中术语“a”的使用不以限制性方式使用,并且因此并不意味着排除术语“a”的多种含义或“一个或多个”含义。另外,就要求对临时专利申请的优先权而言,应该理解的是,临时专利申请不是限制性的,而是包括可以如何实现本文描述的技术的实例。
已经描述了本发明的多个实施例。然而,本领域普通技术人员将理解,在不脱离权利要求和本文描述的技术的精神和范围的情况下,可以进行各种修改。

Claims (18)

1.一种数据处理系统,该数据处理系统用于从多个数据源产生数据的子集,修改该子集的一个或多个相应字段的一个或多个属性,并且通过显示该一个或多个经修改字段的一个或多个表示来显示实现数据记录的分段的编辑器界面,该数据处理系统包括:
存储将要在编辑器界面中表示的多个数据源的存储器;
数据结构修改模块,该数据结构修改模块选择将要在编辑器界面中表示的多个数据源并且通过以下步骤生成包含在该多个数据源中的数据子集:针对这些数据源中的每一个,从该数据源中选择一个或多个数据结构,其中每个数据结构包括一个或多个字段;以及针对至少一个选择的数据结构,修改该数据结构中的一个或多个相应字段的一个或多个属性;
存储该子集中包括的这些选择的数据结构的存储器,其中这些存储的数据结构中的至少一个包括该一个或多个相应字段的该一个或多个修改属性;
渲染模块,该渲染模块在该编辑器界面中显示这些存储的数据结构的表示,其中这些表示中的至少一个具有该一个或多个相应字段的该一个或多个修改属性,其中每个表示包括一个或多个可选择的部分,其中可选择的部分表示数据结构的字段,并且该渲染模块通过该编辑器界面接收指定对一个或多个可选择的部分的选择的选择数据;以及
分段模块,该分段模块通过识别多个接收的数据记录中的哪些具有与在所选择的该一个或多个可选择的部分中表示的一个或多个字段相对应的一个或多个字段来对这些接收的数据记录进行分段。
2.一种由数据处理系统实现的方法,该方法用于从多个数据源产生数据的子集,修改该子集的一个或多个相应字段的一个或多个属性,并且通过显示该一个或多个经修改字段的一个或多个表示来显示实现数据记录的分段的编辑器界面,该方法包括:
选择将要在编辑器界面中表示的多个数据源;
通过以下步骤生成包含在该多个数据源中的数据子集:
针对这些数据源中的每一个,
从该数据源中选择一个或多个数据结构,其中每个数据结构包括一个或多个字段;
针对至少一个选择的数据结构,
修改该数据结构中的一个或多个相应字段的一个或多个属性;
将该子集中包括的这些选择的数据结构存储在存储器中,其中这些存储的数据结构中的至少一个包括该一个或多个相应字段的该一个或多个修改属性;
在该编辑器界面中显示这些存储的数据结构的表示,其中这些表示中的至少一个具有该一个或多个相应字段的该一个或多个修改属性,其中每个表示包括一个或多个可选择的部分,其中可选择的部分表示数据结构的字段;
通过该编辑器界面,接收指定对一个或多个可选择的部分的选择的选择数据;以及
通过识别多个接收的数据记录中的哪些具有与所选择的该一个或多个可选择的部分中表示的一个或多个字段相对应的一个或多个字段来对这些接收的数据记录进行分段。
3.如权利要求2所述的方法,其中该数据结构包括表示用于该数据结构的键的键字段、与该键的值相关联的记录,该方法进一步包括:
从多个选择的数据结构中选择多个字段;
将可执行指令存储在存储器中,这些可执行指令在执行时:
针对该键的指定值选择用于这些相应的选择字段的值;
将这些选择的值结合该键的该指定值;以及
输出这些结合值。
4.如权利要求2所述的方法,其中这些表示是第一表示,并且其中,该方法进一步包括:
在该编辑器界面中显示这些可执行指令的第二表示。
5.如权利要求4所述的方法,进一步包括:
通过该编辑器界面接收附加选择数据,该附加选择数据指定对该第二表示的选择并且进一步指定应用于那些输出的一个或多个标准,该一个或多个给定字段的结合值由通过该编辑器界面选择的该一个或多个可选择的部分表示。
6.如权利要求2所述的方法,包括:
显示用户界面,该用户界面具有用于选择数据结构的一个或多个第一控件并且具有用于修改该一个或多个字段的一个或多个第二控件。
7.如权利要求2所述的方法,进一步包括:
通过该编辑器界面接收附加数据,该附加数据指定将应用于一个或多个给定字段的一个或多个标准,该一个或多个给定字段由通过该编辑器界面选择的该一个或多个可选择的部分表示;
其中,分段包括通过识别该多个接收的数据记录中的哪些具有与在所选择的该一个或多个可选择的部分中表示的一个或多个字段相对应并且满足该一个或多个标准的一个或多个字段的一个或多个值来对这些接收的数据记录进行分段。
8.如权利要求2所述的方法,其中该数据结构包括一个或多个记录,其中每个记录具有用于特定字段的一个或多个值。
9.如权利要求2所述的方法,其中这些数据源中的至少一个包括未选择的数据结构。
10.一种由数据处理系统执行的用于生成近实时聚合体的方法,该方法包括:
间歇地从一个或多个数据源接收数据记录;
对于接收的给定数据记录,
至少识别该给定数据记录中的第一字段和第二字段;
检测该第一字段中的第一值和该第二字段中的第二值;以及
根据该第一字段的该第一值和该第二字段的该第二值生成复合键;
从存储器访问与至少该第一字段或该第二字段相关的聚合数据;
通过生成数据记录来生成复合键值,该数据记录具有存储该复合键的字段和各自存储该聚合数据项的一个或多个字段,其中该复合键值表示与至少该第一字段或该第二字段相关的数据的近实时聚合体;以及
通过将该复合键值存储在存储器中来记录该给定数据记录的出现。
11.如权利要求10所述的方法,其中生成该复合键包括将该第一值与该第二值连接。
12.如权利要求10所述的方法,进一步包括:
将该复合键散列;
将该散列的复合键与复合值一起存储在散列表中。
13.如权利要求12所述的方法,其中该复合值是该聚合数据。
14.如权利要求13所述的方法,进一步包括:
针对该给定记录,
检测该给定记录中包括的每个字段的值;以及
生成至少两个检测值的多个唯一组合,其中每个唯一组合是复合键;
针对每个复合键,
识别该给定记录中的一个或多个字段,其中该复合键包括那些一个或多个字段的一个或多个相应值;
从存储器访问与该一个或多个识别的字段中的至少一个相关的聚合数据;
通过生成具有存储该复合键的字段和存储该聚合数据的字段的数据记录来生成复合键值;以及
将该复合键值存储在存储器中。
15.如权利要求14所述的方法,其中生成多个唯一组合包括生成该给定记录中检测到的字段值的多个所有唯一组合。
16.如权利要求10所述的方法,进一步包括:
接收对在一段时间内的指定值的聚合体的请求;
从存储器选择复合键值,该复合键值存储该指定值的出现;以及
从该复合键值提取该请求的聚合体。
17.如权利要求10所述的方法,进一步包括:
将一个或多个该聚合数据项与该给定数据记录中的字段的值进行聚合;
基于该聚合为该字段生成近实时聚合值;以及
将该近实时聚合值存储在该复合键值中。
18.如权利要求12所述的方法,进一步包括:
接收对与一个或多个指定值相关的聚合体的请求;
从该一个或多个指定值生成复合键;
将该复合键散列;
从存储在存储器中的该散列表请求与该散列的复合键一起存储的该复合值;以及
从该复合值中提取所请求的聚合数据项。
CN201980066262.9A 2018-08-08 2019-08-05 数据处理系统及其实现的方法和生成近实时聚合体的方法 Active CN112868000B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862716155P 2018-08-08 2018-08-08
US62/716,155 2018-08-08
US16/163,647 2018-10-18
US16/163,647 US11561993B2 (en) 2018-08-08 2018-10-18 Generating real-time aggregates at scale for inclusion in one or more modified fields in a produced subset of data
PCT/US2019/045115 WO2020033314A1 (en) 2018-08-08 2019-08-05 Generating real-time aggregates at scale for inclusion in one or more modified fields in a produced subset of data

Publications (2)

Publication Number Publication Date
CN112868000A true CN112868000A (zh) 2021-05-28
CN112868000B CN112868000B (zh) 2024-10-25

Family

ID=69405979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980066262.9A Active CN112868000B (zh) 2018-08-08 2019-08-05 数据处理系统及其实现的方法和生成近实时聚合体的方法

Country Status (8)

Country Link
US (1) US11561993B2 (zh)
EP (1) EP3834097A1 (zh)
JP (1) JP2021533500A (zh)
CN (1) CN112868000B (zh)
AU (1) AU2019319729A1 (zh)
CA (1) CA3108870A1 (zh)
SG (1) SG11202100995UA (zh)
WO (1) WO2020033314A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11263202B2 (en) * 2018-11-30 2022-03-01 Microsoft Technology Licensing, Llc Scalable implementations of exact distinct counts and multiple exact distinct counts in distributed query processing systems
US11036700B2 (en) * 2018-12-31 2021-06-15 Microsoft Technology Licensing, Llc Automatic feature generation for machine learning in data-anomaly detection
WO2024163937A1 (en) * 2023-02-03 2024-08-08 Ab Initio Technology Llc Processing structured data for real-time segmentation
WO2024211674A1 (en) * 2023-04-07 2024-10-10 Ab Initio Technology Llc On-demand integration of records with data catalog identifiers

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542011A (zh) * 2010-12-15 2012-07-04 微软公司 编辑与静态图像关联的数据记录
US8682925B1 (en) * 2013-01-31 2014-03-25 Splunk Inc. Distributed high performance analytics store
US9146954B1 (en) * 2014-10-09 2015-09-29 Splunk, Inc. Creating entity definition from a search result set
EP3128423A1 (en) * 2015-08-06 2017-02-08 Hewlett-Packard Enterprise Development LP Distributed event processing
CA2952938A1 (en) * 2015-12-30 2017-06-30 Business Objects Software Limited Indirect filtering in blended data operations
US20170344672A1 (en) * 2016-05-24 2017-11-30 Ab Initio Technology Llc Executable Logic for Processing Keyed Data in Networks
CN108363776A (zh) * 2018-02-09 2018-08-03 东莞嘉泰钟表有限公司 一种表格字段的自定义显示方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3331233B2 (ja) * 1993-03-31 2002-10-07 富士通株式会社 リレーショナルデータベースの対話型データ検索・抽出システム
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
JP3584630B2 (ja) * 1996-09-20 2004-11-04 株式会社日立製作所 データベース処理システムにおける分類集計処理方法
US7181419B1 (en) * 2001-09-13 2007-02-20 Ewinwin, Inc. Demand aggregation system
JP2001216307A (ja) * 2000-01-31 2001-08-10 Teijin Ltd リレーショナルデータベース管理システム及びそれを記憶した記憶媒体
US6505189B1 (en) * 2000-06-15 2003-01-07 Ncr Corporation Aggregate join index for relational databases
JP4497691B2 (ja) 2000-09-27 2010-07-07 株式会社日立製作所 データベース管理方法及び管理システム
US6768995B2 (en) * 2002-09-30 2004-07-27 Adaytum, Inc. Real-time aggregation of data within an enterprise planning environment
US20050125280A1 (en) * 2003-12-05 2005-06-09 Hewlett-Packard Development Company, L.P. Real-time aggregation and scoring in an information handling system
US7873541B1 (en) * 2004-02-11 2011-01-18 SQAD, Inc. System and method for aggregating advertising pricing data
US7263520B2 (en) * 2004-02-27 2007-08-28 Sap Ag Fast aggregation of compressed data using full table scans
US9720971B2 (en) * 2008-06-30 2017-08-01 International Business Machines Corporation Discovering transformations applied to a source table to generate a target table
US8738619B2 (en) * 2009-04-01 2014-05-27 Touchstone Systems, Inc. Method and system for data aggregation, targeting and acquisition
US9811553B2 (en) * 2010-03-11 2017-11-07 Entegrity LLC Methods and systems for data aggregation and reporting
US8938416B1 (en) * 2012-01-13 2015-01-20 Amazon Technologies, Inc. Distributed storage of aggregated data
US20140214753A1 (en) * 2012-12-28 2014-07-31 Joseph Guerra Systems and methods for multi-source data-warehousing
US9547681B2 (en) 2014-05-30 2017-01-17 International Business Machines Corporation Combining row based and column based tables to form mixed-mode tables

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542011A (zh) * 2010-12-15 2012-07-04 微软公司 编辑与静态图像关联的数据记录
US8682925B1 (en) * 2013-01-31 2014-03-25 Splunk Inc. Distributed high performance analytics store
US9146954B1 (en) * 2014-10-09 2015-09-29 Splunk, Inc. Creating entity definition from a search result set
EP3128423A1 (en) * 2015-08-06 2017-02-08 Hewlett-Packard Enterprise Development LP Distributed event processing
CA2952938A1 (en) * 2015-12-30 2017-06-30 Business Objects Software Limited Indirect filtering in blended data operations
US20170344672A1 (en) * 2016-05-24 2017-11-30 Ab Initio Technology Llc Executable Logic for Processing Keyed Data in Networks
CN108363776A (zh) * 2018-02-09 2018-08-03 东莞嘉泰钟表有限公司 一种表格字段的自定义显示方法

Also Published As

Publication number Publication date
EP3834097A1 (en) 2021-06-16
US11561993B2 (en) 2023-01-24
CN112868000B (zh) 2024-10-25
JP2021533500A (ja) 2021-12-02
SG11202100995UA (en) 2021-02-25
US20200050680A1 (en) 2020-02-13
AU2019319729A1 (en) 2021-02-25
CA3108870A1 (en) 2020-02-13
WO2020033314A1 (en) 2020-02-13

Similar Documents

Publication Publication Date Title
US12067007B1 (en) Analyzing a pipelined search to determine data on which to execute the pipelined search
US11924021B1 (en) Actionable event responder architecture
US11645286B2 (en) Dynamic data processor for streaming and batch queries
US11379508B1 (en) User interface with automated condensation
US11392654B2 (en) Data fabric service system
US20220327125A1 (en) Query scheduling based on a query-resource allocation and resource availability
US20230049579A1 (en) Executing commands from a distributed execution model
US20200364279A1 (en) Unified data processing across streaming and indexed data sets
US20200364223A1 (en) Search time estimate in a data intake and query system
CN112868000B (zh) 数据处理系统及其实现的方法和生成近实时聚合体的方法
US20190272271A1 (en) Assigning processing tasks in a data intake and query system
US20170052652A1 (en) System for high volume data analytics and data ingestion
US20070073691A1 (en) Server side filtering and sorting with field level security
US8495510B2 (en) System and method for managing browser extensions
US10733211B2 (en) Optimizing faceted classification through facet range identification
US9251239B1 (en) System, method and computer program product for applying a public tag to information
US8074234B2 (en) Web service platform for keyword technologies
US10409808B2 (en) System and method for metadata management via a user interface page
US12079233B1 (en) Multiple seasonality online data decomposition

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