首页 / 数据生成

数据生成有效专利 发明

技术内容

数据生成 [0001] 优先权要求 [0002] 本申请要求2013年12月18日提交的美国专利申请61/917,727的优先权,在此通过引用包含其全部内容。 背景技术 [0003] 本说明书涉及数据生成。 [0004] 在数据处理应用程序的开发期间,开发者可以在生产环境外部进行工作并且可能无权访问生产数据。为了确保数据处理应用程序将以实际的数据在生产中正确地运行,可以在数据处理应用程序的开发和测试期间使用逼真数据。 发明内容 [0005] 在一般方面,一种方法包括:接收表示在一个或多个记录的处理期间数据处理应用程序执行一个或多个规则中的各规则的次数的数据;基于所述数据处理应用程序执行所述一个或多个规则中的各规则的次数,来确定一个或多个特定字段中的各特定字段所用的内容标准;基于所述内容标准来生成各特定字段的内容;以及利用所生成的内容来填充各特定字段。 [0006] 实施例可以包括以下特征中的一个或多个特征。 [0007] 生成内容包括基于各字段所用的格式规格来生成内容。所述格式规格指示内容的类型,内容的类型包括字符串、十进制数、整数、日期和日期时间中的一个或多个。所述方法包括经由用户界面来接收所述格式规格。 [0008] 所述方法包括创建包括所述一个或多个字段的新记录;以及填充所述新记录的字段。 [0009] 利用所生成的内容来填充各字段包括针对所述一个或多个字段修改预先存在的内容。 [0010] 填充各字段包括针对一个或多个预先存在的记录创建特定字段。 [0011] 所述内容标准包括目标值、值的目标范围、值的目标分布、最大值和最小值中的一个或多个。 [0012] 所述内容标准包括所生成的内容的特定值。 [0013] 所述内容标准表示要包括在所述一个或多个字段中的两个或更多个字段中的内容的目标组合。 [0014] 所述方法包括经由用户界面接收所述内容标准。 [0015] 生成内容包括基于生成模式来生成内容。 [0016] 所述生成模式包括一个或多个以下模式:(i)针对多个记录各自的一个或多个字段生成随机内容;(ii)针对多个记录各自的一个或多个字段生成唯一内容;以及(iii)针对多个记录各自的一个或多个字段从可用内容的集合中选择内容。 [0017] 所述方法包括将包括所生成的内容的一个或多个记录提供给所述数据处理应用程序。 [0018] 确定所述内容标准以使得通过所述数据处理应用程序来执行特定规则。 [0019] 确定所述内容标准包括:识别执行次数少于最小阈值次数的特定规则;以及确定所述内容标准以使得所述特定规则的执行次数至少是所述最小阈值次数。 [0020] 所述格式规格包括内容的类型。 [0021] 在一般方面,一种方法包括:经由用户界面接收格式规格;经由用户界面接收内容标准;经由用户界面接收要生成内容所用的模式的指示;根据所指示的模式来生成内容,其中所生成的内容满足所述格式规格和所述内容标准;以及在记录中创建字段,所述字段包括所生成的内容。 [0022] 实施例可以包括以下特征中的一个或多个特征。 [0023] 所述生成模式包括一个或多个以下模式:(i)针对多个记录各自的一个或多个字段生成随机内容;(ii)针对多个记录各自的一个或多个字段生成唯一内容;以及(iii)针对多个记录各自的一个或多个字段从可用内容的集合中选择内容。 [0024] 接收所述内容标准包括接收从所述用户界面上所显示的一个或多个内容标准的内容标准的选择。 [0025] 接收所述格式规格包括接收从所述用户界面上所显示的一个或多个格式规格的格式规格的选择。 [0026] 所述格式规格指示内容的类型,诸如字符串、十进制数、整数、日期和日期时间中的一个或多个。 [0027] 所述内容标准表示所述内容的最大值、所述内容的最小值和所述内容的值的范围。 [0028] 所述内容标准表示所述内容的特定值。 [0029] 所述内容标准表示所述内容的目标分布。 [0030] 所述内容标准表示要包括在两个或更多个字段中的内容的目标组合。 [0031] 接收所述内容生成模式的指示包括接收从所述用户界面上所显示的一个或多个内容生成模式的内容生成模式的选择。 [0032] 所述方法包括创建新记录。在记录中创建字段包括在所述新记录中创建字段。 [0033] 所述方法包括:接收第二格式规格、第二内容标准和第二模式的指示;根据所指示的第二模式来生成第二内容,其中所生成的内容满足所述第二格式规格和所述第二内容标准;以及利用所生成的第二内容来替换所述记录中的现有字段的内容。 [0034] 在一般方面,一种用于存储指令的非瞬态计算机可读介质,所述指令使得计算机系统执行以下处理:基于在一个或多个记录的处理期间数据处理应用程序执行一个或多个规则中的各规则的次数,来确定一个或多个字段中的各字段所用的内容标准;基于所述内容标准来生成各字段的内容;以及利用所生成的内容来填充一个或多个记录中的各字段。 [0035] 在一般方面,一种计算系统,包括:至少一个处理器,用于:基于在一个或多个记录的处理期间数据处理应用程序执行一个或多个规则中的各规则的次数,来确定一个或多个字段中的各字段所用的内容标准;基于所述内容标准来生成各字段的内容;以及利用所生成的内容来填充一个或多个记录中的各字段。 [0036] 在一般方面,一种计算系统,包括:用于基于在一个或多个记录的处理期间数据处理应用程序执行一个或多个规则中的各规则的次数来确定一个或多个字段中的各字段所用的内容标准的部件;用于基于所述内容标准来生成各字段的内容的部件;以及用于利用所生成的内容来填充一个或多个记录中的各字段的部件。 [0037] 在一般方面,一种用于在数据处理应用程序的开发期间测试所述数据处理应用程序的方法,所述方法包括以下步骤:使用所述数据处理应用程序处理第一数据记录,其中所述数据处理应用程序实现一个或多个规则,各第一数据记录具有多个字段;将所述第一数据记录的处理期间执行所述数据处理应用程序的各规则的次数与该规则的目标值进行比较;基于所述比较的结果,确定表示要使用所述数据处理应用程序来处理的第二数据记录中的数据的目标特征的内容标准;根据所述第一数据记录的格式并且根据所述内容标准来生成所述第二数据记录的一个或多个字段的内容;使用所述数据处理应用程序来处理所述第二数据记录;将所述第二数据记录的处理期间执行所述数据处理应用程序的各规则的次数与该规则的目标值进行比较并且判断为满足各规则的目标值;以及使用所述第二数据记录来测试所述数据处理应用程序。 [0038] 实施例可以包括以下特征中的一个或多个特征。 [0039] 所述方法包括在客户端装置处接收所述第一数据记录,其中所述数据处理应用程序是在所述客户端装置上执行的。所述客户端装置包括计算装置。 [0040] 所述方法包括从远程服务器接收所述第一数据记录。所述方法包括在经由LAN或WAN连接以通信方式连接至服务器的客户端装置处接收所述第一数据记录。 [0041] 所述方法包括确定所述内容标准以使得所述第二数据记录中的数据使得在所述数据处理应用程序处理所述第二数据记录的情况下满足各规则的目标值。 [0042] 生成所述第二数据记录的一个或多个字段的内容包括修改所述第一数据记录中的一个或多个字段的内容,并且修改后的第一数据记录是所述第二数据记录。 [0043] 生成所述第二数据记录的一个或多个字段的内容包括创建新的数据记录。 [0044] 所述方法包括将所述第二数据记录存储在存储装置中。 [0045] 所述方法包括基于所述测试的结果来修改所述数据处理应用程序。 [0046] 测试所述数据处理应用程序包括基于使用所述数据处理应用程序处理所述第二数据记录的结果,来修改所述数据处理应用程序。 [0047] 所述方法包括确定所述内容标准以使得所述第二数据记录中的数据实质上类似于预期要通过所述数据处理应用程序在生产环境中进行处理的数据。 [0048] 方面可以包括以下优点中的一个或多个优点。例如,经由直接的用户界面,可以根据任意格式规格和内容标准来生成数据。例如,如果现有数据集合不具有足够的记录或者不具有带有期望特性的记录,则可以使用数据生成来补充现有数据。例如,如果应用程序需要不可用的数据,则可以使用数据生成来从零开始生成数据。 [0049] 在一些示例中,可以生成逼真数据以测试数据处理应用程序。例如,可以生成使得数据处理应用程序的所有规则被执行至少一次(例如,触发数据处理应用程序中的每个可能动作)的测试数据的集合。如果不存在这种数据,则可以生成这种数据。例如,在生成了完整的数据集合之后,所生成的数据集合可以通过数据处理应用程序来处理以测试数据处理应用程序的执行。由于所生成的数据集合使得要执行数据处理应用程序中的每个可能动作,因此可以全面地测试数据处理应用程序。如果数据处理应用程序的性能不如预期那样进行工作(例如,如果数据处理应用程序的动作没有如预期那样执行),则可以适当地修改该数据处理应用程序并且对该数据处理应用程序进行测试,直到实现满意的结果为止。 [0050] 根据以下的说明书、以及根据权利要求书,本发明的其它特征和优点将变得明显。 附图说明 [0051] 图1是数据生成所用的系统的框图。 [0052] 图2是数据生成模块的框图。 [0053] 图3A是示例源文件的一部分。 [0054] 图3B~3D是示例目标文件的一部分。 [0055] 图4是源窗口。 [0056] 图5A是源窗口。 [0057] 图5B是数据生成窗口。 [0058] 图6是目标窗口。 [0059] 图7是辅助源窗口。 [0060] 图8是记录格式窗口。 [0061] 图9是字符串特性窗口。 [0062] 图10是十进制数特性窗口。 [0063] 图11是整数特性窗口。 [0064] 图12是日期特性窗口。 [0065] 图13是日期时间特性窗口。 [0066] 图14A~14C是规则创建所用的窗口。 [0067] 图15A~15C是规则创建所用的窗口。 [0068] 图16是规则创建所用的窗口。 [0069] 图17A~17B是主题区域数据集所用的窗口。 [0070] 图18是流程图。 [0071] 图19是数据处理应用程序的框图。 [0072] 图20是流程图。 具体实施方式 [0073] 这里说明用以根据各种可配置选项来生成数据的一般方式。例如,所生成的数据的数据类型可以由用户来指定。数据类型可以例如包括字符串、十进制数、整数、日期和日期时间。所生成的数据可以满足对所生成的该数据的特性(例如,所生成的十进制数或整数数据的允许值的范围、所生成的字符串数据的平均字符串长度、所生成的数据中可以使用的值或字符的集合和其它特性等)施加限制的一个或多个可配置的内容标准。数据生成可以包括修改现有源记录的一个或多个字段的值、通过在记录中创建并填充新字段来增加源记录或者创建全新的记录。在一些示例中,可配置选项可以由用户经由用户界面来指定。 [0074] 在一些示例中,数据处理应用程序可以对记录集合进行处理。数据处理应用程序可以实现规则,其中这些规则的执行依赖于一个或多个变量的值,诸如依赖于输入记录等。 在一些情况下,可以针对记录集合生成数据以在数据处理应用程序对记录集合进行处理的情况下得到期望执行结果。例如,可以针对数据集合生成将使得执行数据处理应用程序中的特定规则、使得特定规则被执行更多次或更少次或者得到其它期望执行结果的数据。基于执行该程序的结果,可以针对要生成何种数据进行确定,以例如更好地实现期望执行结果。例如,可以生成与预期要通过数据处理应用程序来处理的生产数据基本类似的逼真数据的集合。可以使用所生成的逼真数据的集合来测试数据处理应用程序,以例如确保该数据处理应用程序的所有方面均正确地工作。基于该测试的结果,可以在数据处理应用程序用在生产环境中之前在适当的情况下对该数据处理应用程序进行修改。 [0075] 图1示出可以使用数据生成技术的示例性数据处理系统100。该系统100包括源 102,其中该源102可以包括诸如存储装置或者至线上数据流的连接等的一个或多个数据的源,其中该一个或多个数据的源各自可以以各种格式(例如,数据库表、电子表格文件、非结构文本(flat text)文件或大型机所使用的原本格式)中的任何格式来存储或提供数据。执行环境104包括执行模块112。执行环境104例如可以在诸如某个版本的UNIX操作系统等的适当的操作系统的控制下安装在一个或多个通用计算机上。例如,执行环境104可以包括包含使用多个中央处理单元(CPU)或多个处理器内核的计算机系统的结构的多节点并行计算环境,可以是本地的(例如,诸如对称多处理(SMP)计算机等的多处理器系统)或本地分布式的(例如,作为集群所连接的多个处理器或大规模并行处理(MPP)系统)、或者远程或远程分布式的(例如,经由局域网(LAN)和/或广域网(WAN)连接的多个处理器)、或者它们的任何组合。 [0076] 源102包括存储装置,这些存储装置相对于执行环境104可以是本地的,例如,可以是连接至安装有执行环境104的计算机的存储介质(例如,硬盘驱动器108),或者相对于执行环境104可以是远程的,例如,安装在经由(例如,云计算基础设施所提供的)远程连接与安装有执行环境104的计算机进行通信的远程系统(例如,大型机110)上。 [0077] 执行模块112进行读取并处理从源102读取到的数据。执行模块112包括对数据进行诸如计算等的处理的一个或多个数据处理应用程序。输出数据114可以存储回源102或者存储在执行环境104可访问的数据存储系统116中,或者被使用。 [0078] 开发环境118也可以访问数据存储系统116,其中在开发环境118中,开发者120能够对数据处理应用程序、源或者这两者进行配置。在一些实现中,开发环境118是用于开发作为数据流图的应用程序的系统,其中该数据流图包括顶点(表示数据处理组件或数据集),并且这些顶点通过顶点之间的有向链接(directed link)(表示工作元素(即,数据)的流)相连接。例如,在通过引用包含于此的标题为“Managing Parameters for Graph-Based Applications”的美国专利公开号2007/0011668中更详细地说明了这种环境。在标题为“EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS”的美国专利5,966,072中说明了用于执行这种基于图的计算的系统。根据该系统100所制作的数据流图提供用于将信息输入至图组件所表示的个别处理或从图组件所表示的个别处理获得信息的方法、用于在处理之间移动信息的方法以及用于定义处理的运行顺序的方法。该系统100包括用于从任何可用方法中选取处理间通信方法的算法(例如,与图的链接相对应的通信路径可以使用TCP/IP或UNIX域套接字或者使用共享存储器在处理之间传递数据)。 [0079] 数据生成模块150可以生成数据以通过执行模块来处理。数据生成模块150可以修改或增加诸如来自源102的数据等的现有数据。例如,数据生成模块150可以修改源数据记录中的一个或多个字段的值,或者可以在源数据记录中创建并填充一个或多个新字段。数据生成模块150还可以例如基于源数据记录的格式或者基于指定格式来生成全新的数据记录。 [0080] 参考图2,数据生成模块150包括用于生成要存储在目标24中的数据生成引擎20。 在一些示例中,数据生成引擎20可以基于数据源22中的数据来生成数据。在一些示例中,数据生成引擎20可以从零开始(from scratch)生成数据,即,无需源数据。数据源22可以是文件、数据库、参数集合或数据的其它源。数据源22可以包括各自具有数据的一个或多个字段的一个或多个记录。例如,示例数据源可以是存储零售商店的客户的客户记录的数据库(这里称为“客户数据库”)。该数据库中的各记录代表独立的客户。各记录可以具有多个字段。 数据源22可以具有用于指定记录的格式的记录格式,诸如字段的数量、各字段中的数据的类型(例如,字符串、整数、十进制数、日期或日期时间)以及各字段中的数据的特性(例如,值的允许范围、最大允许值、允许字符的列表或其它限制)等。在一些示例中,数据是从零开始生成的并且不提供数据源。 [0081] 例如,参考图3A,示例源文件200的一部分包括6个记录202,其中各记录具有以下字段:cust_ID(客户ID)字段204、name(名字)字段206、cust_age(客户年龄)字段208和state(州)字段210。 [0082] 再参考图2,在一些示例中,用户26可以识别数据源22。例如,数据生成模块150的用户界面引擎28可以使得能够例如在诸如个人计算机或移动计算装置等的计算装置32的显示界面上向用户26显示用户界面30。用户26可以经由用户界面30来识别数据源22。所生成的数据可以存储在诸如文件、数据库、参数集或其它数据结构等的目标24中。在一些示例中,用户26可以例如经由用户界面30来识别目标文件24。在一些情况下,目标的记录格式可以与源的记录格式一致。也就是说,针对目标所指定的记录格式可以与源中的现有记录的记录格式相同。在一些情况下,目标的记录格式不同于源的记录格式,并且源的记录格式的一部分或全部可以映射至目标。例如,目标的记录格式中可以包括源的一个或多个字段的格式。 [0083] 数据生成模块150可以基于例如数据库36、文件或其它数据结构中所存储的配置数据34来针对目标24生成数据。配置数据34可以指定要针对目标24使用的数据生成方式、目标24所用的内容生成模式、要针对目标24生成的数据的数据类型、要针对目标生成的数据所用的内容标准以及要针对目标24生成的数据所用的其它配置信息。以下更详细地论述这些配置数据34。在一些情况下,用户26可以例如经由用户界面30来指定针对目标24生成数据所使用的配置数据34的一部分或全部。在一些示例中,可以通过配置引擎39例如基于数据源22的分析或者基于与目标的期望属性有关的信息来确定配置数据34的一部分或全部。 [0084] 在一些示例中,数据生成引擎20可以通过根据配置数据34修改数据源22中的现有源记录的一个或多个字段的值来针对目标24生成数据。修改后的记录可以存储在目标24中。在一些情况下,可以修改给定字段的全部的值。例如,可以针对各记录向给定字段分配值,以使得遍及所有记录的给定字段的值的分布与如配置数据34所指示的目标分布一致。 例如,该分布可以由用户26来指定或者通过配置引擎39来确定。在一些情况下,可以修改比给定字段的全部的值少的值,诸如仅修改不满足如配置数据34所指示的指定标准的值等。 例如,可以修改给定字段的、落在该字段的允许值的特定范围以外的任意值。 [0085] 例如,参考图3B,示例目标文件220的一部分包括基于源文件200所生成的记录 222。在本示例中,配置数据34(图2)指示cust_age字段208的最大值可以是40。为了满足配置数据34所指定的标准,数据生成引擎20修改源文件200中的cust_age字段208的值,以使得cust_age字段的最大值为40。也就是说,将特定记录222a的cust_age字段208的值从(源文件200中的)45修改为(目标文件220中的)25。目标文件中的所生成的记录222的其它字段的值对应于源记录202的值。 [0086] 再参考图2,在一些示例中,数据生成引擎20可以通过根据配置数据34利用一个或多个新字段增加数据源22的现有源记录来生成数据。增加的记录(即,具有一个或多个新字段的记录)可以存储在目标24中。配置数据34可以提供用于确定新字段的数量、新字段的数据类型和值以及新字段的其它特性的指示。在一些情况下,配置数据34可以指定:要基于数据源22的源数据中的现有字段的数据来生成新字段的值。在一些情况下,配置数据34可以指定:要从零开始(例如,根据指定的特性(例如,配置数据34所指定的特性)而不基于任何现有源数据)来生成新字段的值。 [0087] 例如,参考图3C,示例目标文件230的一部分包括基于源文件200所生成的记录 232。在本示例中,配置数据34(图2)指定创建新的age_range(年龄范围)字段234,该新的age_range字段234具有通过将cust_age字段208的值分类成5个可用age_range桶其中之一所生成的值。配置数据34还指定创建新的cust_income(客户收入)字段236,其中该cust_income字段236具有受限于指定的最大值和最小值但与源文件200中的数据没有任何关系的值。 [0088] 再参考图2,在一些示例中,数据生成引擎可以通过根据配置数据34利用一个或多个新记录增加数据源22的现有源记录来生成数据。增加的记录(即,现有源记录和新记录这两者)可以存储在目标24中。新记录可以与源记录具有相同的记录格式。配置数据34可以提供用于确定新记录的数量、新记录的字段的值以及新记录的其它特性的指示。在一些情况下,配置数据34可以指定:要从零开始(例如,根据指定的特性但不基于数据源22的任何现有源数据)生成新记录中的一个或多个字段的值。在一些情况下,配置数据34可以指定:要生成新记录中的一个或多个字段的值以满足配置数据34所指定的配置文件。例如,配置文件可以指定:所有记录中的特定字段的值满足诸如平均或分布等的特性。例如,在客户数据库源中,可以生成新记录,以使得遍及所有记录的cust_age字段的值满足配置数据34所指定的特定分布。 [0089] 例如,参考图3D,示例目标文件240的一部分包括基于源文件200所生成的记录202和242。在本示例中,配置数据34(图2)指定生成4个新记录242,以使得遍及所有记录的cust_age字段208的值具有40~45之间的平均值,并且受限于该字段的最大值60。在本示例中,配置数据34指定:要随机(例如,根据针对该字段所指定的特性)生成各其它字段的值。 原始源记录202也包括在目标文件240中。 [0090] 在一些示例中,数据生成引擎20可以根据配置数据34针对数据生成应用多于一个的方式。例如,数据生成引擎20可以应用以下方式的任意组合:可以修改一个或多个字段的值、可以利用一个或多个新字段来增加源记录以及可以利用一个或多个新记录来增加源记录。 [0091] 在一些示例中,仅将所生成的记录存储在诸如文件、数据库或参数集等的目标中,并且源记录(如果存在)并不存储在目标中。在一些情况下,可以例如由用户来指定源,并且所生成的记录可以基于源的记录格式、源的一个或多个字段的配置文件或源的其它特性,由数据生成引擎20模块生成。在一些情况下,并不指定源,并且记录是根据配置数据34由数据生成引擎20从零开始自动生成的。例如,一个或多个字段的记录格式和特性可以通过配置数据34来指定。 [0092] 在一些示例中,源的记录格式可以映射至目标。例如,配置数据34可以指示目标要采用源的记录格式。例如,根据配置数据34,源的记录格式可以应用于目标,并且可以根据源的记录格式由数据生成引擎20从零开始生成新记录。在一些情况下,可以从多个源生成数据,并且各源的记录格式可以部分或完全地映射至目标。例如,来自各源的关注字段的格式可以映射至目标。 [0093] 在一些示例中,源的记录格式可以映射至目标,并且可以进行修改。例如,配置数据34可以指定:要将字段的名称从源改为目标,或者要移除来自源的字段。 [0094] 参考图4,数据生成模块150提供用户界面(例如,图2的用户界面30),该用户界面提供源窗口300以使得用户能够识别数据源。源窗口300包括使得用户能够指定诸如文件或数据库等的源类型的源类型菜单302。在图4的示例中,源是文件。源窗口300使得用户能够指定源的诸如指向源的路径等的标识符304(例如,指向文件源的路径或指向数据库源所用的配置文件的路径)以及源记录的记录格式的标识符(例如,指向记录格式文件的路径)。在一些示例中,在源是数据库的情况下,用户可以指定从数据库获得源数据所要使用的查询(例如,SQL查询)。源窗口300提供如下选项,其中该选项使得用户能够指示是否要生成新记录306,并且如果要生成新记录,则指示要生成的新记录的数量。源窗口300使得用户能够查看与源有关的其它信息308。例如,用户可以查看源的记录格式、查看源数据或者查看源数据的配置文件。在一些示例中,可以使用诸如数据流图等的可执行应用程序来生成源数据。 [0095] 参考图5A和5B,在一些示例中,用户界面30的源窗口300使得用户能够指定:要在不指定源的情况下从零开始生成数据。特别地,源窗口300使得用户能够选择所生成的数据作为源类型菜单302中的源类型。如果用户选择所生成的数据作为源类型,则将数据生成窗口400显示在用户界面30中。数据生成窗口400使得用户能够指示生成数据所要使用的方法 402(以下论述)并且指示要生成的新记录404的数量。在一些示例中,除非用户对默认进行重写,否则可以使用诸如默认数据生成模式或目标的记录格式中所指定的默认值等的默认数据生成特性来从零开始生成数据。例如,字段生成重写选项406使得用户能够针对目标中的一个或多个字段指定数据生成特性。在一些示例中,规则选项408使得用户能够针对个别字段创建更多复杂的数据生成规则。 [0096] 参考图6,用户界面30提供使得用户能够识别目标的目标窗口500。目标窗口500中的目标类型菜单502使得用户能够指定诸如文件或数据库等的目标类型。目标窗口500还使得用户能够指定目标的标识符504(例如,指向目标文件的路径或指向目标数据库所用的配置文件的路径)。在一些示例中,除非例如经由目标窗口500指定不同的记录格式,否则使用源的记录格式作为目标的记录格式。例如,如果在无需源的情况下从零开始生成数据,则可以经由用于指定目标所用的记录格式的目标窗口来识别记录格式文件。在一些示例中,可以使用诸如数据流图等的可执行应用程序来将所生成的数据写入目标。目标窗口500提供运行按钮506,该运行按钮506在已识别出源和目标之后向用户提供针对数据生成所用的各种可配置选项的访问。目标窗口500还使得用户能够查看与源有关的其它信息508。例如,用户可以查看目标数据集合、查看目标数据集合的配置文件或者查看目标的记录格式。在一些示例中,目标窗口提供针对与目标的数据的生成相关联的统计数据(诸如从源所读取和/或写入目标的记录的数量、所生成的记录的数量或其它统计数据等)的访问。 [0097] 数据生成引擎20提供用以生成数据的多个方式。用户界面30的数据生成窗口使得用户能够指定期望的数据生成方式。例如,可以使用字段修改、字段创建、记录创建、现有源和父数据集方式来生成数据。 [0098] 字段修改:在字段修改方式中,可以修改源记录的一个或多个字段的值,以使得目标数据记录具有与源数据记录相同的格式但不同的内容。在一些情况下,可以修改给定字段的全部的值。例如,可以进行赋值,以使得遍及所有记录的给定字段的值的分布与目标分布一致。在一些情况下,可以修改比给定字段的全部的值少的值,诸如仅修改不满足指定标准的值等。例如,可以修改落在特定字段的允许值的特定范围以外的任意值。 [0099] 字段创建:在字段创建方式中,可以针对现有记录创建一个或多个新字段。在一些情况下,可以基于源数据中的现有字段的数据来生成新字段的值。在一些情况下,可以从零开始(例如,根据指定的特性而不基于任何现有源数据)生成新字段的值。 [0100] 记录创建:在记录创建方式中,可以生成新记录。在要生成新记录的情况下,可以(例如,如图5B中那样)指定要生成的记录的数量。在一些情况下,可以指定新记录的记录格式。例如,如果要利用现有源记录和新生成的记录这两者来填充目标,则新记录的记录格式可以与源记录的记录格式相同。如果要仅利用新生成的记录来填充目标,则用户可以指定要应用于所生成的记录的记录格式,诸如字段的数量、各字段的数据的类型、各字段的数据的特性(例如,最大值、最小值、允许字符的集合和其它特性)以及记录格式的其它特征等。 [0101] 现有数据集:在现有数据集方式中,针对新创建的子数据集生成数据。例如,基于现有客户数据集,可以生成包括交易记录的新数据集。在现有数据集方式中,针对各现有源记录生成指定数量的新记录。例如,参考图7,现有数据集窗口600使得用户能够指定源数据集的路径602或数据操纵语言(DML)604、针对现有源数据集中的各数据记录所要生成的目标记录的数量606以及不会用于生成目标中的记录的源记录的百分比。在一些示例中,辅助源可以包含如下数据,其中该数据用于填充目标记录的特定字段但可以具有与源或目标的记录格式不一致的记录格式。在这种情况下,来自辅助源的一个或多个关注字段可以映射至目标记录。 [0102] 主题区域方式:在主题区域方式中,现有源数据集可以是主题区域层级中的父数据集,并且生成数据可以包括生成与该父数据集相关的子数据集。例如,父数据集(即,源)可以是客户记录的集合并且子数据集(即,目标)可以是客户各自的一个或多个交易记录的集合。可以指定用于将子数据集中的记录链接至父数据集中的相应记录的关键字段,并且父数据记录的一个或多个关键字段映射至所生成的子数据记录的相应字段。例如,cust_ID字段可以是链接客户记录和交易记录的关键字段。可以指定要针对各关键字段生成的子记录的数量。在一些情况下,可以指定不会用于生成子记录的父记录的百分比。在一些情况下,可以指定子记录所用的记录格式。 [0103] 在一些示例中,可以根据格式规格、内容标准或这两者来生成数据。格式规格是要生成的数据的格式的规格。例如,格式规格可以指示要生成的数据的数据类型(例如,字符串、十进制数、整数、日期或日期时间)。内容标准是限制要生成的数据的特性的标准。示例内容标准可以包括:例如,值的允许范围、最大允许值、允许字符的列表或其它内容标准。在一些示例中,在目标记录的记录格式中指定格式规格和内容标准。在一些示例中,用户界面 30可以提供使得用户能够指定字段的特性(诸如字段的格式规格或内容标准等)的字段窗口。 [0104] 参考图8,用户界面的记录格式窗口700使得用户能够编辑包括目标的一个或多个字段的数据类型和数据特性的目标记录格式。记录格式窗口700显示采用目标的记录格式的字段的列表702。列表702还指示各字段的数据类型。在一些示例中,采用目标的记录格式的字段还出现在数据源的记录格式中。可以例如利用星号(即,**)在列表702中标记出现在目标记录格式和源记录格式这两者中的这些字段。例如,在图8的示例中,字段last_transaction(最后的交易)和customer_since(客户始于)出现在目标记录格式和源记录格式这两者中。没有标记的字段仅出现在目标记录格式中。在一些示例中,不在列表702中显示出现在源记录格式中而没有出现在目标记录格式中的字段。 [0105] 记录格式窗口700使得用户能够例如通过点击、轻触或拖拽期望字段的名称来选择指定数据生成特性所针对的目标记录格式的一个或多个字段。显示目标记录格式中的所选择的字段的列表704。也就是说,列表704中的字段是用户意图指定数据生成特性所针对的目标记录格式的那些字段。在一些示例中,例如,如果用户意图仅针对目标记录格式的字段的一部分指定数据生成特性,则列表704可以是目标记录格式中的所有字段的列表702的子集。例如,在图8的示例中,选择了字段custid、fname、lname和building_num(建筑编号)。 [0106] 用户界面30使得用户能够编辑显示在列表704中的所选择的各字段所用的记录格式。例如,针对所选择的各字段,用户可以进行以下处理的任意组合:指定字段的数据类型、向字段分配内容生成模式以及指定字段的数据特性。用户界面可以依次针对所选择的各字段显示数据类型窗口、内容生成窗口和数据特性窗口中的一个或多个,如此使得用户能够针对所选择的各字段指定各种特征。 [0107] 用户界面30使得用户能够指定字段的数据类型。可以响应于用户从列表704选择特定字段而将数据类型窗口显示在用户界面30上以使得用户能够针对该字段指定数据类型。用户可以指定数据生成模块150所支持的任何任意数据类型,诸如字符串、十进制数、整数、日期和日期时间(即,日期和时间)等。可以针对各字段指定一个数据类型。在一些情况下,如果没有针对给定字段指定数据类型,则保持该字段所用的记录格式所指示的数据类型。例如,在图8的示例中,在字段名称旁的括号内示出如各字段所用的记录格式所指示的该字段的数据类型。可以存储针对目标记录格式的各字段所指定的数据类型作为配置数据 34。 [0108] 用户界面30使得用户能够向所选择的一个或多个字段分配内容生成模式。可以响应于用户从列表704选择特定字段而将内容生成窗口显示在用户界面30中以使得用户能够向该字段分配内容生成模式。字段所用的内容生成模式指示要通过数据生成引擎20针对字段生成数据的方式。例如,示例内容生成模式可以包括唯一模式、随机模式、默认模式和列表模式。在唯一模式中,可以针对各记录中的所选择的字段生成唯一值。例如,可以生成唯一十进制数、字符串或整数值的升序集合。可以相对于诸如19000101或其它日期基础等的默认或指定的日期基础以天为升序来生成日期值。可以相对于诸如当前的日期和时间等的默认或指定的日期时间基础以分钟为升序来生成日期时间值。在随机模式中,可以针对各记录中的所选择的字段生成随机值。在默认模式中,可以使用目标的记录格式中所指定的默认特性或默认值来生成值。例如,在一些示例中,默认数据生成模式可以是随机模式,并且默认的值范围和特性可以适用于各数据类型。在列表模式中,从允许值的列表中选择值。 在一些情况下,如果没有针对给定字段分配内容生成模式,则可以使用默认模式来针对该字段生成数据或者可以使用(例如,如目标记录的记录格式中所指定的)默认值作为该字段的值。在一些示例中,可以在目标记录的记录格式中指定一个或多个字段所用的内容生成模式。可以存储目标记录格式的各字段所用的内容生成模式作为配置数据34。 [0109] 如果向字段分配唯一模式、随机模式或默认模式的数据生成,则用户界面30使得用户能够针对所选择的一个或多个字段指定数据特性。数据特性可以依赖于字段的数据类型并且可以限制针对该字段能够生成的允许值。例如,诸如十进制数字段或整数字段等的数值字段使得数据特性可以表示最大允许值、最小允许值、值的允许范围或者遍及所有记录的字段的平均值。如以下论述的,还可以应用其它数据特性。在一些示例中,还可以针对一个或多个字段指定字段错误率(即,要包含错误的记录的数量或百分比)。为了使得能够针对特定字段指定数据特性,响应于用户从列表704选择了该字段而将该字段的数据类型所特有的特性窗口显示在用户界面30中。例如,可以在用户界面30中显示字符串特性窗口、十进制数特性窗口、整数特性窗口、日期特性窗口、日期时间特性窗口或其它数据类型所用的窗口。可以存储目标记录格式的各字段的数据特性作为配置数据34。 [0110] 参考图9,字符串特性窗口800使得用户能够针对字符串字段指定数据特性。在图9的示例中,数据特性包括特定字符串字段的平均字符串长度802、最大字符串长度804和允许字符的集合806。用户还可以针对特定字符串字段指定NULL(空)值的百分比808。在一些情况下,还可以指定其它数据特性。在一些示例中,如果用户没有针对字符串字段指定数据特性中的一个或多个,则可以应用数据特性的默认值。例如,默认的平均字符串长度802可以是8;默认的最大字符串长度804可以是16;默认的允许字符串的集合806可以包括字符{a~z,A~Z,0~9和空格};以及默认的NULL值的百分比808可以是0。 [0111] 在一个特定示例中,用户针对特定字段将平均字符串长度802指定为4个字符,最大字符串长度804指定为8个字符,允许字符的集合806指定为{a~z,A~Z},以及NULL值的百分比808指定为0。在本示例中,如果用户向特定字段分配了随机模式数据生成,则将会从允许字符的集合中针对各记录的该字段生成随机字符串,并且该随机字符串受限于指定的平均长度和最大长度。如果用户向特定字段分配了唯一模式数据生成,则将会针对各记录的该字段生成唯一字符串(即,以使得任何两个记录的针对该特定字段所生成的字符串将不会相同)。 [0112] 参考图10,十进制数特性窗口900使得用户能够针对十进制数字段指定数据特性。 在图10的示例中,数据特性包括特定十进制数字段的允许值的范围902和NULL值的百分比 904。在一些示例中,还可以指定诸如允许十进制数位的最大数量、所生成的所有记录的十进制数字段的平均值或其它特性等的其它数据特性。在一些示例中,如果用户没有指定数据特性中的一个或多个,则可以应用默认值。例如,默认的范围902可以是0~1000,以及默认的NULL值的百分比904可以是0。 [0113] 在一个特定示例中,用户针对特定字段将允许值的范围902指定为0~10并且将NULL值的百分比904指定为10%。在本示例中,如果用户向特定字段分配了随机模式数据生成,则将会针对各记录的该字段生成落入允许值的范围902以内的随机十进制数。百分之十的记录将会被赋予NULL值。如果用户向特定字段分配了唯一模式数据生成,则将会针对各记录的该字段生成落入允许值的范围902以内的唯一十进制数(即,以使得任何两个记录的该特定字段的值将不会相同)。 [0114] 参考图11,整数特性窗口180使得用户能够针对整数字段指定数据特性。在图11的示例中,数据特性包括允许值的范围182。在一些示例中,还可以指定诸如特定整数字段的NULL值的百分比184或者所生成的所有记录的整数字段的平均值等的其它数据特性。在一些示例中,如果用户没有指定数据特性中的一个或多个,则可以应用默认值。例如,默认的范围182可以是0~127。 [0115] 参考图12,日期特性窗口190使得用户能够针对日期字段指定数据特性。在图12的示例中,数据特性包括诸如年、月或日等的日期范围度量192。数据特性还包括作为要用作基础的日期的日期基础194(例如,写成YYYMMDD),其中要相对于该基础来计算日期范围,YYYY是指年,MM是指月,并且DD是指日。数据特性还包括特定日期字段的相对于日期基础 194的允许日期的范围196以及NULL值或空白值的百分比198。在一些情况下,还可以指定其它数据特性。在一些示例中,如果用户没有指定数据特性中的一个或多个,则可以应用默认值。例如,默认的日期范围度量192可以是年,默认的日期基础194可以是今天,允许日期的范围196可以是(相对于默认的日期基础的)-7~0年,以及默认的NULL值的百分比198可以是1%。 [0116] 在一个特定示例中,用户针对特定字段将日期范围度量192指定为日,日期基础 194指定为2013年1月1日,允许日期的范围196指定为365(即,日期基础2013年1月1日之后的365天),以及NULL值的百分比198指定为0。在本示例中,如果用户向该特定字段分配了随机模式数据生成,则将会向各记录的该字段分配在2013年1月1日~2014年1月1日之间随机选择的日期。如果用户向该特定字段分配了唯一模式数据生成,则将会向各记录的该字段分配2013年1月1日~2014年1月1日之间的唯一日期(即,以使得任何两个记录的该特定字段的日期将不会相同)。 [0117] 参考图13,日期时间特性窗口250使得用户能够针对日期时间字段指定数据特性。 在图13的示例中,数据特性包括诸如年、月或日等的日期时间范围度量252。数据特性还包括作为要用作基础的日期和时间的日期时间基础254(例如,写成YYYYMMDD  HH24MISS.NNN),其中要相对于该基础来计算日期时间范围,YYYY是指年,MM是指月,DD是指日,HH24是指24小时制的时钟上的小时,MI是指分钟,SS是指秒,并且NNN是指千分之几秒。 数据特性还包括特定日期时间字段的相对于日期时间基础254的允许日期时间的范围256以及NULL值的百分比258。在一些情况下,还可以指定其它数据特性。在一些示例中,如果用户没有指定数据特性中的一个或多个,则可以应用默认值。例如,默认的日期时间范围度量 252可以是日,默认的日期时间基础254可以是现在,默认的允许日期时间的范围256可以是-7~0天,以及默认的NULL值的百分比258可以是0。 [0118] 在一些示例中,特性窗口(例如,字符串特性窗口800、十进制数特性窗口900、整数特性窗口180、日期特性窗口190或日期时间特性窗口250)中的一个或多个使得用户能够例如通过针对字段选择或指定字段错误率的值来重写该字段的默认错误率。例如,用户可以从以下错误率中进行选择:无、二分之一的字段存在错误、十分之一的字段存在错误、百分之一的字段存在错误、千分之一的字段存在错误、万分之一的字段存在错误和十万分之一的字段存在错误。在一些示例中,用户可以选择或指定百分错误率。 [0119] 在一些示例中,用户界面30向用户提供重写一个或多个数据类型的默认数据特性的机制。例如,用户可以重写所有字符串数据的平均字符串长度。在用户重写特定数据类型的默认特性的情况下,该重写特性应用于用户没有指定数据特性的该数据类型的所有数据生成。 [0120] 如果向字段分配列表模式数据生成,则可以将使得能够提供该字段的允许值的列表的列表窗口显示在用户界面30中。例如,如果向building_num字段分配列表模式数据生成,则用户可以提供能够用作building_num字段的值的建筑编号的列表(例如,{10、20、30、 40、50})。在通过数据生成引擎150针对building_num字段生成数据的情况下,可以从建筑编号的列表中随机选择各记录的该字段的值。在一些示例中,可以应用其它约束。例如,可以从受限于列表中的各项被选择相等的次数的约束的列表中选择字段的值。 [0121] 在一些示例中,可以创建针对数据生成或源-目标格式映射的高级规则。例如,高级规则可以包括用于将一个字段中的值映射在其它字段中的规则、用于使用一个字段中的值来计算其它字段中的值的规则或者用于使用源中的多于一个字段来创建目标中的单个字段的规则。在一些示例中,高级规则可以使数据源的字段的值与针对目标的字段所要生成的值相关。在一些示例中,高级规则可以使目标的第一字段的值与针对目标的第二字段所要生成的值相关。用户界面30可以提供诸如图14A~14C、15A~15C和16所示的配置画面和规则编辑器等的使得用户能够生成针对一个或多个目标字段的生成数据所用的高级规则的规则编辑器能力。例如,用户界面30可以提供使得用户能够指定与字段相关联的规则的规则窗口,其中,可以使用该规则来生成用以填充该字段的数据。用户界面30可以提供使得用户能够定义规则的规则编辑器。 [0122] 例如,参考图14A~14C,用户界面30的规则编辑器能力使得用户能够创建用以将一个字段中的值映射在另一字段中的高级规则。在本示例中,用户想要创建使得能够生成state_cd字段和state_name(州名)字段这两者的规则,其中state_cd字段的值是基于值为相应的州全名的state_name字段从New England(新英格兰)州的两个字母的缩写的列表中所选择的。为了创建该规则,用户可以经由state_cd字段所用的配置窗口350(图14A)来向state_cd字段分配列表生成模式,并且指定可以选择state_cd字段的值的列表352(在这种情况下,New England州的两个字母的缩写的列表为:MA、CT、RI、VT、ME、NH)。在规则窗口354(图14B)中,用户可以指示要将state_name字段356与可以用于将数据填充在state_name字段356中的规则“计算state_name”358相关联。用户可以在规则编辑器360(图14C)中针对state_name字段定义“计算state_name”规则。在本示例中,“计算state_name”规则针对state_cd字段的各值指定要向state_name字段分配的值。 [0123] 例如,参考图15A~15C,用户界面30的规则编辑器能力使得用户能够创建用以使用目标中的第一字段的值来计算目标中的第二字段的值的高级规则。在本示例中,用户想要创建使用income(收入)字段的值来计算tax_rate(税率)字段的值的规则。为了创建该规则,用户可以经由income字段所用的内容生成窗口450(图15A)来向income字段分配随机生成模式,并且针对income字段指定诸如允许值的范围和空白值的百分比等的数据特性452。 在规则窗口454(图15B)中,用户可以指示要将tax_rate字段456与可以用于将数据填充在tax_rate字段456中的规则“计算tax_rate”458相关联。用户可以在规则编辑器460(图15C)中针对tax_rate字段定义规则。在本示例中,“计算tax_rate”规则458针对income字段的各值指定要向tax_rate字段分配的值。“计算tax_rate”规则还指定例如在income字段为空白、NULL或存在错误的情况下要向tax_rate字段分配的默认值462。 [0124] 例如,参考图16,用户界面30的规则编辑器能力使得用户能够创建用以将多个源字段映射在单个目标字段中的高级规则。在一些情况下,源字段中的一个或多个的记录格式可以不同于目标字段的记录格式。在本示例中,用户想要创建用于指定使用firstname(名)字段和lastname(姓)字段这两者的值来生成fullname(全名)字段的数据的表达方式的规则。为了创建该规则,在规则窗口550中,用户可以针对作为来自源的firstname字段 556、空格和来自源的lastname字段558的组合(“firstname”+“”+“lastname”)的fullname字段554定义规则552。 [0125] 可以基于格式规格、一个或多个内容标准、数据生成模式和高级规则中的一个或多个来生成数据。例如,可以修改源记录中的数据,可以利用数据来创建并填充一个或多个新字段,以及/或者可以利用数据来创建并填充新记录。 [0126] 在一些示例中,可以创建主题区域。主题区域是经由至少一个字段中的关键关系而在层级中彼此相关的数据集的集合。例如,现有父数据集可以是客户记录的集合并且子数据集可以是针对各现有客户所生成的一个或多个交易记录的集合。 [0127] 参考图17A,在一个示例中,联合窗口70使得用户能够在要生成子数据集的情况下指定现有父数据集的一个或多个字段用作关键字段。在图17A的示例中,现有父数据集是客户数据集并且要生成交易数据集作为具有联合关键字段custid的子数据集。参考图17B,联合窗口75使得用户能够针对该子数据集指定一个或多个联合关键字段。在本示例中,已经从框76处的父数据集指定了custid字段作为联合关键字段。在框78处,可以从子数据集指定字段作为联合关键字段。在一些示例中,可以从主题区域数据集中排除诸如不存在相应子记录的父记录或不存在相应父记录的子记录等的非联合记录。在一些示例中,即使是非联合记录也可以包括在主题区域数据集中。 [0128] 在一些示例中,可以为了参考完整性而创建主题区域,这意味着主题区域将仅提供用于确保主题区域的层级数据集的参考完整性的数据记录。参考完整性是指主题区域的各记录与主题区域的至少一个其它记录联合。例如,示例主题区域可以包括使账户标识符与各交易记录相关联的第一数据集。在主题区域的另一数据集中,各客户标识符可以与多个账户标识符相关联并且与多个产品标识符相关联。确保主题区域的参考完整性意味着确保主题区域数据集中所包括的所有记录与主题区域数据集中的一个或多个其它记录有效联合。在一些示例中,主题区域可以被创建为包括根据任意可适用的子设置规则而得到的数据记录以及确保参考完整性的数据记录这两者。也就是说,例如,即使是不满足参考完整性标准的记录也可以包括在主题区域中以满足子设置规则。在内容通过引用包含于此的标题为“Data Records Selection”的美国专利申请13/827,558中提供了子设置规则的其它说明。 [0129] 在一些示例中,可以基于一个或多个现有数据集来创建虚拟数据集。例如,基于客户数据集和交易数据集,可以生成包括一个或多个字段的新的汇总数据集,其中该一个或多个字段具有诸如每个客户的交易次数或每个客户所花费的金额等的值。这种汇总数据集可以用在例如对大量或少量客户进行操作的数据处理应用程序中。 [0130] 再参考图2,在一些示例中,分析引擎38可以进行自动分析以针对所生成的数据实现格式规格、一个或多个内容标准、数据生成模式和高级规则中的一个或多个。例如,作为基本示例,如果用户指定2000年5月1日为日期基础并且将允许日期的范围指定为10年,则分析引擎38可以识别出2000年5月1日~2010年5月1日为允许日期的范围而无需用户指定准确日期。 [0131] 在另一示例中,分析引擎38可以确定将会实现用户所指定的平均字符串长度和最大字符串长度的遍及多个记录的字符串长度的分布。例如,分析引擎可以基于默认最大字符串长度和默认平均字符串长度之间的默认目标比来确定字符串长度的分布。可以对最大字符串长度应用默认目标比以识别诸如高斯分布等的字符串长度分布中的峰值字符串长度。例如,在一个示例中,默认最大字符串长度是16并且默认平均字符串长度是8,这样使得默认目标比是0.5。可以对字符串的生成(例如,字符串的随机生成)应用该默认目标比。例如,在受限于最大字符串长度6的字段中,应用默认目标比以确定峰值字符串长度3。因而,将会在峰值字符串长度3周围以高斯分布生成字符串。在另一示例中,在受限于最大字符串长度25的字段中,应用默认目标比以确定峰值字符串长度12~13。因而,将会在峰值字符串长度12~13周围以高斯分布生成字符串。 [0132] 在一些示例中,分析引擎38可以例如通过对源记录进行自动分析来自动地确定格式规格、一个或多个内容标准、数据生成模式和高级规则中的一个或多个。例如,分析引擎 38可以确定如何针对特定字段修改现有数据以及/或者生成新数据以实现该字段的值的目标分布。 [0133] 参考图18,在针对数据生成的一般方法650中,针对字段接收格式规格(652)。格式规格例如可以是诸如字符串、十进制数、整数、日期或日期时间等的针对该字段所要生成的数据的数据类型。例如,系统100可以根据针对数据生成的一般方法650来生成数据。在一些示例中,可以经由诸如用户界面30(例如,经由用户界面30所提供的数据类型窗口)等的用户界面从用户接收格式规格。 [0134] 针对字段接收内容标准(654)。内容标准例如可以是针对该字段所要生成的数据的数据特性。例如,诸如十进制数字段或整数字段等的数值字段的数据特性可以表示最大允许值、最小允许值、值的允许范围或遍及所有记录的字段的平均值。字符串字段的数据特性可以表示字符的最大允许数量、字符的最小允许数量、字符的平均数量或者允许字符的集合。诸如日期字段或日期时间字段等的时间字段的数据特性可以表示日期或日期时间度量、日期或日期时间基础、或者日期或日期时间范围。在一些示例中,还可以针对一个或多个字段指定字段错误率(即,要包含错误的记录的数量或百分比),在一些示例中,可以经由诸如用户界面30(例如,字符串特性窗口800、十进制数特性窗口900、整数特性窗口180、日期特性窗口190或日期时间特性窗口250)等的用户界面从用户接收内容标准。 [0135] 接收字段所用的内容生成模式的指示(656)。内容生成模式是要针对字段生成内容所用的模式。例如,内容生成模式可以从以下模式中进行选择:唯一模式、随机模式、默认模式和列表模式。在唯一模式中,可以针对所选择的字段生成唯一值。在随机模式中,可以针对所选择的字段生成随机值。在默认模式中,可以使用例如在目标的记录格式中所指定的默认特性或默认值来生成值。在列表模式中,从允许值的列表中选择值。在一些情况下,如果没有针对给定字段分配内容生成模式,则可以针对该字段使用默认模式来生成数据。 在一些示例中,经由诸如用户界面30(例如,经由用户界面所提供的内容生成窗口)等的用户界面从用户接收内容生成模式的指示。 [0136] 根据所指示的内容生成模式来生成(658)多个记录各自的字段的内容。针对字段所生成的内容满足该字段所用的格式规格和内容标准。在一些示例中,可以针对多个现有记录各自创建新字段,并且可以根据所指示的内容生成模式针对新字段生成内容。在一些示例中,可以创建各自具有一个或多个字段的多个新记录,其中可以针对该一个或多个字段根据所指示的内容生成模式来生成内容。例如,可以基于各现有记录来创建多个新记录。 [0137] 在一些示例中,可以使用数据生成来创建具有一个或多个期望特征的记录集合。 例如,可以使用数据生成来创建具有期望数量的记录和/或具有期望分布的字段的值的记录集合,以通过数据处理应用程序进行处理。示例数据处理应用程序例如包括客户计费所用(例如,电话客户计费所用)的数据处理应用程序、用于处理客户记录(例如,识别客户购买模式方面的人口统计趋势)的数据处理应用程序以及其它类型的数据处理应用程序。 [0138] 数据处理应用程序通常实现如下规则,其中这些规则的执行依赖于一个或多个变量的值(例如,由一个或多个变量的值来触发)。例如,这些变量可以是与输入数据相对应的输入变量或者依赖于一个或多个输入变量而得出的变量。为了高效地测试数据处理应用程序,可以设置足以使得执行该应用程序中的每个规则(例如,以实现该应用程序中的完全代码覆盖)的输入数据,以使得每个规则的执行次数至少是相应的最小次数,以及/或者以使得每个规则的执行次数不超过相应的最大次数。 [0139] 参考图19,在一些示例中,输入数据记录50可以被设置为至数据处理应用程序52的输入数据。数据处理应用程序52实现一个或多个规则54。规则是可以用来例如将数据从一个格式转换成另一格式、进行与数据有关的判断或者基于输入数据的集合生成新数据的标准的集合。在全部内容通过引用包含于此的2007年4月10日提交的美国专利申请11/733, 434中可以找到针对规则的其它说明。 [0140] 数据处理应用程序52所实现的各规则54可以在满足针对规则的相应的条件表达式的情况下执行并且在不满足该相应的条件表达式的情况下不通过数据处理应用程序52来执行。规则54可以由至少包括条件表达式和执行表达式的规格来指定。在满足条件表达式(例如,利用真结果来评价条件表达式)的情况下,可以评价执行表达式。条件表达式可以依赖于一个或多个变量的值(或者由一个或多个变量的值来触发),其中该一个或多个变量例如可以是与输入数据50相对应的输入变量或依赖于一个或多个输入变量而得出的变量。 在一些情况下,应用程序执行受到触发的所有规则54。在一些情况下,应用程序执行少于受到触发的所有规则54的规则(诸如规则54的一部分或者仅规则54其中之一(例如,所触发的第一个规则54)等)。在内容通过引用包含于此的标题为“Data Records Selection”的美国专利申请13/827,558中提供这种数据处理应用程序的执行的其它说明。 [0141] 规则可以是能够在满足相应的条件表达式的情况下所执行的任何规则。在一个示例中,用于识别零售商店针对客户的营销特惠的数据处理应用程序中的规则可以是识别针对收入低于$20,000的客户的特定营销特惠的规则。在一个示例中,用于生成电话公司的客户帐单的数据处理应用程序中的规则可以是向上个月的移动电话分钟数超过客户的服务套餐的允许移动电话分钟数的任何客户的账单加收额外费用的规则。 [0142] 数据处理应用程序52所生成的执行数据56可以提供与数据处理应用程序52的执行有关的信息,诸如已经执行或没有执行的应用程序52中的规则54、应用程序52中的各规则54的执行次数或其它信息等。可以向数据生成模块150提供执行数据56。基于执行数据 56,数据生成模块150(图2)中的结果引擎40可以识别数据处理应用程序52的期望的输入数据或输入数据标准,诸如将会使得执行未执行的规则54的输入数据、将会使得特定规则54被执行指定的次数的输入数据或者将会引起其它期望执行结果的输入数据等。例如,期望执行结果可以由用户例如经由用户界面30来指定。 [0143] 数据生成模块150的数据生成引擎20可以生成用以满足期望输入数据标准的数据 58。所生成的数据58可以被设置为数据处理应用程序52的输入数据。也就是说,例如,数据生成引擎20可以生成使得执行数据处理应用程序中先前未执行的规则、使得特定规则被执行更多次或更少次或者引起其它期望执行结果的数据。在一个示例中,可以生成income字段的值大于$1,00,000的记录以使得执行仅针对income>$1,000,000的输入数据而执行的规则。在一个示例中,如果gender(性别)字段的值为“F”,则执行第一规则,并且如果gender字段的值为“M”,则执行第二规则。如果在初始执行数据处理应用程序时,执行数据56表示第一规则仅执行了1次而第二规则执行了50次,则数据生成引擎20可以生成用以满足例如用户所指定的第一规则和第二规则的执行次数大致相同的期望执行结果的数据。例如,数据生成引擎20可以生成gender=“F”的附加记录或者修改现有记录的一部分的gender字段的值。 [0144] 参考图20,数据生成模块150所实现的一般方式750生成适用于数据处理应用程序的测试数据的集合。例如,该测试数据的集合可以由数据处理应用程序来处理以得到诸如数据处理应用程序的各规则被执行期望次数等的期望执行结果。在方式750中,设置一个或多个记录以通过实现一个或多个规则的数据处理应用程序来处理(752)。各记录可以具有一个或多个字段。可以执行数据处理应用程序(754)。 [0145] 基于各规则由数据处理应用程序所执行的次数,数据生成模块150的结果引擎40可以针对该一个或多个记录的特定字段来确定内容标准(756)。在一些示例中,可以确定特定字段所用的内容标准以使得根据该内容标准所生成的数据在由数据处理应用程序来处理的情况下可以实现期望执行结果,诸如使得执行先前未执行的规则或者使得特定规则被执行更多次或更少次等。内容标准例如可以是针对字段所要生成的数据的数据特性。例如,诸如十进制数字段或整数字段等的数值字段的数据特性可以表示最大允许值、最小允许值、值的允许范围或遍及所有记录的字段的平均值。字符串字段的数据特性可以表示字符的最大允许数量、字符的最小允许数量、字符的平均数量或允许字符的集合。诸如日期字段或日期时间字段等的时间字段的数据特性可以表示日期或日期时间度量、日期或日期时间基础、或者日期或日期时间范围。 [0146] 可以基于内容标准以及基于特定字段所用的格式规格来针对特定字段生成内容(758)。在一些示例中,可以修改现有记录中的特定字段的内容。在一些示例中,可以创建新记录并且可以针对这些新记录的特定字段生成内容。 [0147] 可以至少使用新生成的内容作为输入数据来执行数据处理应用程序(760)。在一些示例中,可以向数据处理应用程序提供包括特定字段的修改值的现有记录。在一些示例中,可以将现有记录与新创建的记录一起提供给数据处理应用程序。在一些示例中,仅可以向数据处理应用程序提供新创建的记录。 [0148] 可以对至少使用新生成的内容作为输入数据的数据处理应用程序的执行的结果进行分析(762)。如果实现了诸如数据处理应用程序中的规则被执行了期望次数等的期望执行结果(764),数据生成处理完成(766)。如果没有实现期望执行结果(764),则可以确定其它内容标准并且可以再次生成(758)新内容以用作数据处理应用程序的输入数据。 [0149] 在一些示例中,可以实现方式750,以生成数据处理应用程序所用的使得该数据处理应用程序的所有规则被执行至少一次的测试数据的集合。也就是,为了全面测试数据处理应用程序,可以设置用于触发数据处理应用程序中的每个可能动作的数据。如果不存在这种数据,则可以生成这种数据。例如,在完成了数据生成处理(766)之后,所生成的数据集合可以由数据处理应用程序来处理以测试数据处理应用程序的执行(768)。由于所生成的数据集合使得要执行数据处理应用程序中的每个可能动作,因此可以全面地测试该数据处理应用程序。如果数据处理应用程序没有如预期那样进行工作(例如,如果数据处理应用程序的动作没有如预期那样执行),则可以适当地修改该数据处理应用程序(770)并且对该数据处理应用程序进行测试,直到实现满意的结果为止。 [0150] 在一些示例中,可以实现方式750以生成供数据处理应用程序处理的逼真数据的集合。例如,零售公司所用的数据处理应用程序可以生成表示客户购买模式的趋势报告。为了保护客户隐私,可以生成逼真但虚构的数据记录的集合以供数据处理应用程序处理。在一些情况下,所生成的数据可以与实际的客户数据共享诸如遍及数据集合的记录的值的分布(例如,客户的收入分布)等的特性,而不泄露敏感的个人信息。在一些示例中,逼真数据的集合可以使表示物理过程的数据、表示金融交易的数据、表示人或动物行为的数据或其它数据。 [0151] 实施例1涉及一种方法,所述方法包括以下步骤:基于在一个或多个记录的处理期间数据处理应用程序执行一个或多个规则中的各规则的次数,来确定一个或多个字段中的各字段所用的内容标准;基于所述内容标准来生成各字段的内容;以及利用所生成的内容来填充一个或多个记录中的各字段。 [0152] 实施例2涉及实施例1,其中,生成内容包括基于各字段所用的格式规格来生成内容。 [0153] 实施例3涉及实施例1或2,其中,所述格式规格指示内容的类型。 [0154] 实施例4涉及实施例3,其中,内容的类型包括字符串、十进制数、整数、日期和日期时间中的一个或多个。 [0155] 实施例5涉及实施例2~4,其中,还包括:经由用户界面来接收所述格式规格。 [0156] 实施例6涉及前述实施例中的任一项,其中,还包括:创建包括所述一个或多个字段的新记录;以及填充所述新记录的字段。 [0157] 实施例7涉及前述实施例中的任一项,其中,利用所生成的内容来填充各字段包括针对所述一个或多个字段修改预先存在的内容。 [0158] 实施例8涉及前述实施例中的任一项,其中,填充各字段包括针对一个或多个预先存在的记录创建特定字段。 [0159] 实施例9涉及前述实施例中的任一项,其中,所述内容标准包括目标值、值的目标范围、值的目标分布、最大值和最小值中的一个或多个。 [0160] 实施例10涉及前述实施例中的任一项,其中,所述内容标准包括所生成的内容的特定值。 [0161] 实施例11涉及前述实施例中的任一项,其中,所述内容标准表示要包括在所述一个或多个字段中的两个或更多个字段中的内容的目标组合。 [0162] 实施例12涉及前述实施例中的任一项,其中,还包括:经由用户界面接收所述内容标准。 [0163] 实施例13涉及前述实施例中的任一项,其中,生成内容包括基于生成模式来生成内容。 [0164] 实施例14涉及实施例13,其中,所述生成模式包括一个或多个以下模式:(i)针对多个记录各自的一个或多个字段生成随机内容;(ii)针对多个记录各自的一个或多个字段生成唯一内容;以及(iii)针对多个记录各自的一个或多个字段从可用内容的集合中选择内容。 [0165] 实施例15涉及前述实施例中的任一项,其中,还包括:将包括所生成的内容的一个或多个记录提供给所述数据处理应用程序。 [0166] 实施例16涉及前述实施例中的任一项,其中,确定所述内容标准以使得通过所述数据处理应用程序来执行特定规则。 [0167] 实施例17涉及前述实施例中的任一项,其中,确定所述内容标准包括:识别执行次数少于最小阈值次数的特定规则;以及确定所述内容标准以使得所述特定规则的执行次数至少是所述最小阈值次数。 [0168] 实施例18涉及一种用于存储指令的非瞬态计算机可读介质,所述指令使得计算机系统执行以下处理:基于在一个或多个记录的处理期间数据处理应用程序执行一个或多个规则中的各规则的次数,来确定一个或多个字段中的各字段所用的内容标准;基于所述内容标准来生成各字段的内容;以及利用所生成的内容来填充一个或多个记录中的各字段。 [0169] 实施例19涉及一种计算系统,包括:至少一个处理器,用于:基于在一个或多个记录的处理期间数据处理应用程序执行一个或多个规则中的各规则的次数,来确定一个或多个字段中的各字段所用的内容标准;基于所述内容标准来生成各字段的内容;以及利用所生成的内容来填充一个或多个记录中的各字段。 [0170] 实施例20涉及一种计算系统,包括:用于基于在一个或多个记录的处理期间数据处理应用程序执行一个或多个规则中的各规则的次数来确定一个或多个字段中的各字段所用的内容标准的部件;用于基于所述内容标准来生成各字段的内容的部件;以及用于利用所生成的内容来填充一个或多个记录中的各字段的部件。 [0171] 实施例21涉及一种用于在数据处理应用程序的开发期间测试所述数据处理应用程序的方法,所述方法包括以下步骤:使用所述数据处理应用程序处理第一数据记录,其中所述数据处理应用程序实现一个或多个规则,各第一数据记录具有多个字段;将所述第一数据记录的处理期间执行所述数据处理应用程序的各规则的次数与该规则的目标值进行比较;基于所述比较的结果,确定表示要使用所述数据处理应用程序来处理的第二数据记录中的数据的目标特征的内容标准;根据所述第一数据记录的格式并且根据所述内容标准来生成所述第二数据记录的一个或多个字段的内容;使用所述数据处理应用程序来处理所述第二数据记录;将所述第二数据记录的处理期间执行所述数据处理应用程序的各规则的次数与该规则的目标值进行比较并且判断为满足各规则的目标值;以及使用所述第二数据记录来测试所述数据处理应用程序。 [0172] 实施例22涉及实施例21,其中,还包括:在客户端装置处接收所述第一数据记录,其中所述数据处理应用程序是在所述客户端装置上执行的。 [0173] 实施例23涉及实施例22,其中,所述客户端装置包括计算装置。 [0174] 实施例24涉及实施例21或22,其中,还包括:从远程服务器接收所述第一数据记录。 [0175] 实施例25涉及实施例24,其中,还包括:在经由LAN或WAN连接以通信方式连接至服务器的客户端装置处接收所述第一数据记录。 [0176] 实施例26涉及实施例21~25中的任一项,其中,还包括:确定所述内容标准以使得所述第二数据记录中的数据使得在所述数据处理应用程序处理所述第二数据记录的情况下满足各规则的目标值。 [0177] 实施例27涉及实施例21~26中的任一项,其中,生成所述第二数据记录的一个或多个字段的内容包括修改所述第一数据记录中的一个或多个字段的内容,并且修改后的第一数据记录是所述第二数据记录。 [0178] 实施例28涉及实施例21~27中的任一项,其中,生成所述第二数据记录的一个或多个字段的内容包括创建新的数据记录。 [0179] 实施例29涉及实施例21~28中的任一项,其中,还包括:将所述第二数据记录存储在存储装置中。 [0180] 实施例30涉及实施例21~29中的任一项,其中,还包括:基于所述测试的结果来修改所述数据处理应用程序。 [0181] 实施例31涉及实施例21~30中的任一项,其中,测试所述数据处理应用程序包括基于使用所述数据处理应用程序处理所述第二数据记录的结果,来修改所述数据处理应用程序。 [0182] 实施例32涉及实施例21~31中的任一项,其中,还包括:确定所述内容标准以使得所述第二数据记录中的数据实质上类似于预期要通过所述数据处理应用程序在生产环境中进行处理的数据。 [0183] 上述的数据生成技术可以使用执行适当软件的计算系统来实现。例如,该计算系统可以包括:系统100、开发环境118、数据生成模块150和其它计算系统。例如,该软件可以包括在一个或多个编程或可编程计算系统(可以具有诸如分布式、客户端/服务器或网格等的各种架构)上执行的一个或多个计算机程序中的进程,其中该一个或多个编程或可编程计算系统各自包括至少一个处理器、至少一个数据存储系统(包括易失性和/或非易失性存储器和/或存储元件)、(用于使用至少一个输入装置或端口接收输入、并且用于使用至少一个输出装置或端口提供输出的)至少一个用户界面。该软件可以包括例如提供与数据流图的设计、结构和执行相关的服务的更大程序的一个或多个模块。该程序的模块(例如,数据流图的元素)可以实现为符合数据仓库中所存储的数据模型的数据结构或其它有组织的数据。 [0184] 可以将软件设置在诸如CD-ROM或(例如,利用通用或专用计算系统或装置可读取的)其它计算机可读介质等的有形非瞬态介质上、或者经由网络的通信介质(例如,以编码在传送信号中的形式)传递至执行该软件的计算系统的有形非瞬态介质。可以在专用计算机上、或者使用诸如协处理器或现场可编程门阵列(FPGA)或专用集成电路(ASIC)等的专用硬件来进行该处理的一部分或全部。可以以利用不同的计算元件来进行软件所指定的计算的不同部分的分布式方式来实现该处理。优选将这种计算机程序各自存储在通用或专用可编程计算机可访问的存储装置的计算机可读存储介质(例如,固态存储器或介质、或者磁性或光学介质)上或者下载至该计算机可读存储介质,以在利用计算机读取存储装置介质以进行这里所述的处理的情况下配置计算机并使该计算机进行工作。本发明的系统还可被视为作为配置有计算机程序的有形非瞬态介质来实现,其中如此配置成的介质使计算机以特定的预定义方式进行工作,以进行这里所述的处理步骤中的一个或多个。 [0185] 已经说明了多个实施例。然而,应当理解,上述说明意图例示而并非限制由所附权利要求书的范围所定义的本发明的范围。因此,其它实施例也在所附权利要求书的范围内。 例如,可以在没有背离本发明的范围的情况下进行各种变形。另外,上述步骤中的一部分可以是顺序独立的,因而可以以与所述顺序不同的顺序来进行。

相关技术
马歇尔·A·伊斯曼发明人的其他相关专利技术