CN103632219B - 用于重新分配用于检查数据质量的作业的方法和系统 - Google Patents
用于重新分配用于检查数据质量的作业的方法和系统 Download PDFInfo
- Publication number
- CN103632219B CN103632219B CN201310359305.7A CN201310359305A CN103632219B CN 103632219 B CN103632219 B CN 103632219B CN 201310359305 A CN201310359305 A CN 201310359305A CN 103632219 B CN103632219 B CN 103632219B
- Authority
- CN
- China
- Prior art keywords
- data
- business object
- copy
- quality
- database
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种计算机实施的方法,该方法用于数据质量管理系统(310)检查应用程序(366)的数据的数据质量,该方法包括:‑执行(102)多个作业(332)中的至少一个作业,至少一个作业适于评估所述数据与一个或者多个质量标准的相符性;‑监视至少一个执行的作业的运行时行为;‑通过将至少一个监视的作业重新分配到代表确定的当前运行时行为的作业集来对所述作业重新分类。
Description
技术领域
本发明涉及数据处理领域,并且更具体地涉及数据质量检查领域。
背景技术
企业资源规划(ERP)系统和有关数据管理系统对于所有种类的行业和技术规程而言至关重要。大量财力和时间投入花费在禁止和消除ERP系统内的错误数据,因为错误数据可能造成错误制造过程、数据丢失,并且可能使关键重要数据集无用。
一些ERP系统已经伴随有用于保证数据质量的一些集成模块。取代所述集成模块或者除了所述集成模块之外还经常使用外部系统以便确保和维护数据质量。与将外部系统用于数据质量检查有关的问题是需要附加时间使外部系统适应ERP系统的业务对象的语义结构或者甚至适应用于存储所述业务对象的数据结构,以便使所述外部系统能够执行质量检查。因此,在ERP系统的情境中执行以及设置数据质量检查可能耗时。
又一问题是数据质量检查、具体为包括处理来自一个或者多个分布式数据元的多个业务对象的全局数据检查可能高度地耗时。因此,进行中的数据质量检查可能构成ERP系统的性能瓶颈。又一问题是质量检查的运行时行为可能评估的数据和/或如下外部资源的响应时间而强烈和不可预测地变化,这些外部资源包括ERP系统的待评估的数据的一些部分。
发明内容
本发明的实施例的目的是提供一种用于数据质量管理系统检查应用程序(例如ERP系统)的数据的数据质量的改进的计算机实施的方法、计算机可读介质和计算机程序。该目的由独立权利要求的特征解决。在从属权利要求中给出优选实施例。如果未另外明示,则可以相互自由组合本发明的实施例。
如这里所用“应用程序”是可操作用于处理、即创建、修改和/或删除一个或者多个业务对象的任何一件在功能上相干的程序逻辑。如这里所用“业务对象”(BO)涉及根据“业务对象模式”指定的数据对象、例如Idoc对象。如这里所用术语“业务对象”将用来指代在所述业务对象模式中指定的业务对象的实例。业务对象模式是对语义对象的语义结构并且可选地对它们与彼此的相互关系的指定。例如业务对象模式可以包括业务对象类型“分析设备”和“生物采样”的指定,其中根据所述模式,“分析设备”包括属性、比如“采样容量”、“状态”、“设备类型”等,并且业务对象类型“生物采样”可以包括属性、比如“采样类型”、“年龄”、“患者ID”等。根据在BO模式中指定的相应BO定义来创建每个BO实例。
如这里所用“作业”是数据处理系统执行的工作单位。根据实施例,作业可以是编译的可执行二进制代码、例如字节代码或者可以是可解译程序代码。如这里所用“运行时行为”涉及执行的作业的行为的特征。如这里所用“规则”是任何一件指定相应作业并且可由程序员修改的软件代码。例如规则可以是Java或者C++类或者其函数部分、PHP脚本等。
如这里所用“数据质量管理系统”(DQMS)是如下应用程序、例如ERP系统,该应用程序被设计用于管理数据并且包括用于对管理的数据执行一些质量检查的集成或者附加能力。如这里所用保证和维护“数据质量”涉及保证和维护数据的一致性的任务、避免或者去除冗余数据条目、保证以一致数据格式存储数据值(例如以一致日期格式存储所有日期)、保证存储的数据在语义上和在句法上正确等。
如这里所用“事务”是以与其它事务独立的相干方式对待的,应用程序相对于数据库执行的工作单位。例如事务可以包括向操作地耦合到应用程序的数据库提交命令,以用于存储或者修改所述数据库中的BO或者它的属性值中的任何属性值或者用于从所述数据库删除所述BO或者属性。优选地,事务遵循根据ACID概念(原子、一致、隔离和持久)的“全或者无(all or nothing)”原理。
如这里所用“前摄(pro-active)检查”是在交付所述事务之前执行的数据质量检查,以保证在将在事务中传送的数据未满足所述前摄检查评估的质量标准的情况下不交付所述事务。
如这里所用“后摄(re-active)检查”是在应用程序已经交付所述事务之后执行的数据质量检查,以保证在已经在事务中传送的数据未满足所述后摄检查评估的质量标准的情况下标识所述数据。根据后摄检查和确定的质量缺陷,可以自动去除、纠正或者报告所述错误或者低质量数据。
如这里所用“外部资源”是任何如下数据源,该数据源在数据质量管理系统外部并且除了应用程序的BO的数据之外还包括一些如下数据,需要评估该数据用于检查BO中的至少一些BO的数据质量。所述外部资源可以是经由网络,例如一天因特网或者内部网连接到数据质量管理系统的计算机系统或者数据库。
如这里所用“数据库”涉及任何种类的数据存储库、例如文件目录集、XML文件集或者更优选地涉及关系或者列数据库。
如这里所用“提取-传送-加载”(ETL)作业是可操作用于从应用程序提取一个或者多个BO的BO实例或者其部分、向数据质量管理系统可以处理的数据格式中传送所述数据,并且在操作地耦合到数据质量管理系统的数据库中存储所述变换的数据的任何作业。如这里所用的在“BO级”上操作的ETL作业是如下ETL作业,该ETL作业查询将经由与如在应用程序的BO模式中指定的BO和相应属性对应的应用API,而不是经由已经在物理上存储BO的数据库的接口传送的数据。因此,在“BO级”上操作的ETL作业基于数据对象的语义而不是句法结构操作。
如这里所用“遗存接口”是软件应用、例如ERP系统的任何预先存在的接口。遗存接口可能尚未被设计用于与DQMS的数据交换这样的目的,而实际上可能已经被设计例如用于与数据质量检查无关的目的,例如用于与其它应用交换数据的目的或者用于应用程序执行数据库事务。
也称为“参数”的“属性”是定义或者描述特定实体的特征。用于参数的示例是“颜色”、“高度”、“地址”等。
在一个方面中,本发明涉及一种计算机实施的方法,该方法用于数据质量管理系统(DQMS)检查应用程序的数据的数据质量。该方法包括DQMS执行多个作业中的至少一个作业。至少一个作业适于评估所述数据与一个或者多个质量标准的相符性。作业中的每个作业是多个作业集之一的成员,多个作业集至少包括第一作业集和第二作业集。所述作业集中的每个作业集代表运行时行为类别。在每个作业集中包含的作业已经根据它们的相应运行时行为被分类到运行时行为类别中。由数据质量管理系统从应用程序接收的消息触发执行在第一作业集中包含的作业。由DQMS的调度器触发执行在第二作业集中包含的作业。该方法还包括由数据质量管理系统监视至少一个执行的作业的运行时行为以用于确定所述作业的当前运行时行为;以及通过将至少一个监视的作业重新分配到代表确定的当前运行时行为的作业集来对所述作业重新分类。优选地,自动执行重新分配。根据一些实施例,重新分类可以被半自动执行,并且包括提示用户以批准自动建议的重新分类。所述特征可以是有利的,因为根据数据质量检查作业的运行时行为,可以修改触发执行所述作业的触发机制。可以响应于消息执行已经被确定在比较短的时间段中执行的作业、即事件驱动,可以用调度方式执行具有不同运行时行为、例如更长执行时间的作业。这可能在DQMS的情境中特别地有利,因为调度某种数据质量检查,例如具有长执行时间的数据质量检查、需要外部数据资源的数据质量检查、评估大量数据的数据质量检查等可以在处理负荷低时、在仅存在去往外部资源的低网络流量时和/或在仅少数事件引起提交触发执行第一作业集中的作业的消息时的时间由调度器触发。例如,如果需要评估应用程序的尚未向数据质量管理系统中导入的一个或者多个BO,则所述应用程序也可以被视为外部资源。根据监视的运行时而不是预定义和评估的运行时行为对作业分类可以在DQMS的情境中是有利的,因为数据质量检查的实际运行时行为可以依赖于存储的数据种类,因此可能不可预测。因此,所述特征可以提供高度地灵活DQMS,该DQMS可操作用于根据数据检查的实际运行时行为对数据检查重新分类,由此也减少操作者用于维护DQMS和作业执行的时间和工作,因为可以全自动执行消息驱动以及调度器驱动的作业二者。
根据实施例,在应用程序执行用于在操作地耦合到应用程序的第一数据库中存储所述数据的数据库事务时,DQMS从应用程序接收消息。消息至少包括质量待评估的数据的部分,例如一些如下数据,该数据指定将与修改的属性值组合修改BO的属性中的哪个属性。挂起事务直至应用程序从DQMS接收响应,该响应指示所述数据满足作业中的一个或者多个作业评估的质量标准。如果响应指示未满足所述标准,则放弃事务或者提示用户判决然而是否应当执行事务。可选地,可以向用户提供用于修改的手段,以用修改的事务数据重新执行事务。所述特征可以是有利的,因为它们可以允许DQMS触发以事务驱动方式和以前摄方式执行在一些特定作业集、例如第一作业集中包含的作业。这意味着事务挂起直至在第一作业集的一些作业中指定的、事务驱动的数据质量检查已经终止并且已经返回指示所述数据满足评估的质量标准的响应。其它数据质量检查(例如由第二作业集中的作业执行的并且调度器触发的数据质量检查)不是响应于事务而执行的。因此,应用程序无需等待直至所述作业终止,并且可以避免使它的执行减缓的瓶颈。
根据实施例,作业集还包括第三作业集。在第三作业集中包含的作业的执行定期地由调度器触发,并且还在向所述作业指派的业务对象之一的事务修改时接收应用程序发送的消息时被触发。第二作业集的作业的执行定期地仅由调度器触发。调度器可以根据与在第二作业集中不同的模式(例如更频繁)触发执行第三作业集中的作业。然而使用第三作业集是可选的。作业中的具有在第一时间阈值以下或者与第一时间阈值相等的监视的执行时间的任何作业被分类为第一或者第三作业集的成员。作业中的具有在第一时间阈值以上的监视的执行时间的任何作业被分类为第二作业集的成员。所述特征可以是有利的,因为它们提供高度地细粒度的数据检查作业管理。在监视执行数据质量检查并且先前已经作为前摄、短期运行的作业——该前摄、短期运行的作业是第一作业集的成员——而执行的特定作业并且例如由于下层数据集的改变或者由于一些附加内部或者外部数据资源的响应时间的改变而确定该特定作业具有长运行时间的情况下,对所述作业重新分类并且例如将所述作业重新分配到第二作业集也将固有地改变它的触发机制。作为重新分配的结果,作业现在将不是事务触发的前摄数据检查作业,而实际上是调度的后摄数据检查作业。因此,操作者无需考虑可以对作业的运行时具有影响的任何种类的可能性,以用于指定是应当作为前摄还是后摄作业来执行所述作业。操作者使用本发明的实施例可以实际上依赖于根据监视的运行时行为对作业自动化重新分类,这也可以对用于调用相应作业的触发机制(基于事务或者调度)具有影响。这可以在DQMS中特别地有利,其中花费比预计更长的时间的、事务驱动的前摄作业可能显著减缓应用,因为事务被挂起直至接收到响应。根据实施例,第一时间阈值可以在一分钟或者数分钟的范围、更优选地在30秒以下并且更优选地在10秒以上用于防止减少用户交互的性能。
根据实施例,在作业集中的相同作业集中包含的所有作业共同具有一个或者多个分类特征。对至少一个作业重新分类包括确定用于所述分类特征中的一个或者多个分类特征的值,并且根据确定的分类特征值对作业重新分类。一个或者多个分类特征可以是:重复参数,该重复参数指示是否定期地可执行已经被指派相应参数值的作业;或者作业的总执行时间;或者作业的用于访问一个或者多个外部资源用于评估数据的质量的能力;或者所述分类特征中的两个或者更多分类特征的任何组合。这可以是有利的,因为可以提供很细微粒度的作业分类,并且因而提供对作业触发机制的细微粒度的控制。例如调度器可以包括用于不同作业集的不同作业触发模式。可以例如借助向每个作业或者对作业编码的对应规则指派的重复参数使操作者能够知道是否应当重复地执行特定作业。此外,通过考虑作业是否评估两个或者更多BO的数据和/或与从外部资源取回的数据组合来评估BO的数据可以允许基于所述作业可能至少潜在地例如由于与所述外部资源的网络连接可能缓慢而耗时这样的“知识”对作业分类。因此,可以将可能潜在地例如由于评估外部数据而缓慢执行的任何作业被分类到例如第二作业集,以确保所述作业没有作为可能通过挂起事务来减缓应用程序的前摄数据质量作业而执行。
根据实施例,DQMS可以通过评估在所述作业下层的程序代码、通过评估所述作业的标注(例如分类参数)和/或通过相对于所述分类特征监视所述作业的运行时行为,来确定分类特征值。例如可以向作业标注或者通过评估所述作业的源代码来确定所述作业访问外部源。在对外部资源的所述访问增加所述作业的执行时间的情况下,作为结果可以对作业重新分类并且可以将其例如移向第二作业集。根据实施例,作业中的每个作业由相应规则编码。至少一个作业的重新分类包括将对所述作业编码的规则重新分类到规则集中,该规则集代表所述作业被分配到的作业集的运行时行为类别。所述特征可以是有利的,因为DQMS的操作者可以容易识别和理解当前将哪种规则和对应作业被分类为作为给定的作业集的成员。也可以使操作者能够例如经由GUI修改所述规则,由此添加或者修改一些分类参数,DQMS可以使用这些分类参数作为除了监视的运行时行为之外也用于对作业和对应规则分类的分类特征。
根据实施例,多个作业中的至少又一作业适于与更多数据组合对BO之一的副本评估质量标准,更多数据是至少一个又一BO的副本和/或从外部资源获得的数据。如下第一数据库可以根据实施例也视为外部资源,需要从该第一数据库导入一些遗漏BO或者遗漏BO属性值,以用于创建或者更新相应BO副本。根据实施例,可以将与更多数据组合对BO操作的所述种类的作业自动确定和分类到第二作业集中。所述特征可以是有利的,因为可以从一开始将如下作业分类为第二作业集的成员,这些作业由于它们对多个BO或者外部数据操作而具有潜在地变成长期运行的作业的更大危险。
根据实施例,质量待评估的数据是应用数据并且包括应用程序的BO模式分别指定的BO的一个或者多个副本。应用程序操作地耦合到已经存储BO的第一数据库。对数据的副本而不是数据本身执行数据质量检查可以是有利的,因为这特别是如果在不同数据处理机器上托管应用程序和DQMS则增加应用程序的性能。
根据实施例,在第一数据库中存储BO。优选地,经由BO级接口向DQMS的第二数据库复制第一数据库的数据内容。这可以是有利的,因为所述级从第一数据库的结构细节进行抽象,因此使数据传送过程更通用并且更易于适应不同应用系统。因此,在第一数据库的内部结构应当改变的情况下,所述修改未影响DQMS和用于向第二数据库中复制BO的接口。
根据实施例,DQMS操作地耦合到第二数据库,第二数据库在第二数据库中包括所述应用数据的副本和BO的相应副本。根据映射在第二数据库中存储BO的副本,映射向第二数据库的结构元素指派BO模式的BO的属性。所述特征可以是有利的,因为映射是基本上由所述指派构成的简单数据结构。可以基于包括人类可读和可编辑文本的文本文件或者数据库表实施它。所述特征可以是有利的,因为用户可以容易理解和修改所述种类的映射结构,由此根据数据质量检查的要求和第二数据库施加的约束来适配在第二数据库中存储BO副本的方式。例如,如果用于存储BO副本的第二数据库的表和索引的结构适应第二数据库的相应销售商,则它可以加速数据质量检查。
根据实施例,该方法还包括DQMS访问BO模式和映射,以用于确定在BO模式中指定的BO的属性,属性被映射到第二数据库的结构元素;以及由DQMS使用BO模式和/或映射来作为ETL作业创建作业中的一个或者多个作业。所述特征可以是有利的,因为在应当进行对BO模式和/或第二数据库的结构进行任何改变的情况下,DQMS的操作者仅需进行少量调整以使DQMS适应所述新情形。基本上,可以仅需修改映射并且可以仅需创建适应修改的新ETL作业,以从一开始向第二数据库中重新加载数据。由于使用映射和BO模式作为输入来自动创建ETL作业,所以仅需操作者的很少工作用于维护DQMS。
根据实施例,多个作业包括一个或者多个ETL作业。ETL作业包括第一ETL作业和/或第二ETL作业和/或第三ETL作业。该方法还包括:执行第一ETL作业用于初始地创建第二数据库;所述步骤可以包括创建适于存储BO的副本的数据库表;和/或执行第二ETL作业用于用第一数据库的BO的副本填充第二数据库;和/或定期地执行第三ETL作业用于更新BO的一个或者多个副本。优选地,第三ETL作业中的规律地更新第二数据库的至少一些第三ETL作业基于它们作为规律地可执行的标注和/或基于它们的监视的运行时行为被分类到第二或者第三作业集中。由于第二和第三作业集中的作业由调度器触发,所以可以定期地执行用于更新第二数据库的所述ETL作业,由此减少为了维护DQMS并且保持第二数据库最新而需要的时间和工作。在一些实施例中,也可以将第三ETI作业分类为第一作业集的成员,由此确保BO的事务修改触发对应BO副本的更新。
根据实施例,该方法包括:从应用程序接收消息,该消息指示在第一数据库中存储的BO之一,并且指示将对BO业务对象施加的修改;使用指示的修改作为输入来修改BO的副本,该副本存储于第二数据库中;如果所述BO的修改的副本未包括BO的所有数据,则将向所述修改的副本指派的完整性参数设置成如下值,该值指示副本包括数据质量管理系统尚未从应用程序接收的一个或者多个遗漏属性。可以例如在所述应用程序相对于所述BO启动更新或者创建事务时发送消息。
根据实施例,在第二数据库中存储BO的副本包括标记所述BO为不完整。由此禁止对所述BO副本评估所述第二作业集中的质量检查作业中的任何质量检查作业。
根据优选实施例,第一作业集中的作业仅由接收在向所述作业指派的BO的事务修改时发送的消息而触发,第二作业集中的作业仅定期地由调度器触发,并且第三作业集中的作业由接收到在向所述作业指派的BO的事务修改时发送的消息而触发并且定期地由调度器触发。因此,根据实际使用的触发机制,第三作业集中的质量检查作业可以充当前摄作业由此禁止向第一数据库中录入错误数据,或者可以用后摄方式作用由此报告已经向第一和第二数据库引入的任何错误。相同作业并且如果有则相同规则的这一“双重使用”可以是有利的,因为无需创建作业或者规则的复制用于提供前摄以及后摄作业。两个功能可以由相同作业提供,一次由调度器而一次由事务触发。因此避免代码重复并且有助于维护DQMS。
根据实施例,对在第二作业集中当前包含的作业重新分类以变成第一或者第三作业集的成员包括:访问事务映射,该事务映射包括向应用程序的事务级接口支持的BO型专属事务指派第一BO属性;所述事务映射内的一个或者多个属性到所述事务之一的映射指示在包括所述属性的BO型的BO的事务修改时在经由所述接口提交的消息中强制地传送所述属性的值;根据事务映射确定所述作业对向所述作业指派的BO的属性评估的质量标准是否仅对作为消息的部分从应用程序强制地接收的一个或者多个属性而操作;在所述作业的执行时间在第一处理时间阈值以下的情况下并且在所述作业的质量评估仅对如下属性操作——作为触发执行所述作业的消息的部分强制地接收这些属性的值的情况下,将所述作业从第二作业集重新分类到第一或者第三作业集中;在所述作业的质量评估也对如下属性操作——未作为触发执行所述作业的消息的部分强制地接收这些属性的值的情况下,即使在所述作业的执行时间在第一处理时间阈值以下的情况下仍然不将所述作业从第二作业集重新分类到第一或者第三作业集中。所述特征可以是有利的,因为它们确保在确定作业被快速执行的情况下,仅在保证可以在将来触发执行作业的消息向所述作业提供用于执行质量检查的所有所需数据的情况下将所述作业分类到第一作业集或者第三作业集中。使在第一和/或第三作业集中包含的质量检查作业能够无论所述完整性参数的值如何都对所述BO副本评估它们的相应质量标准,因为如果根据事务映射保证触发所述作业的执行的任何消息向作业提供所述作业的质量标准评估的所有BO属性,则仅将它们分类为第一或者第三作业集的成员。
根据实施例,第二作业集中的作业中的至少一些作业与更多数据组合对在第二数据库中存储的BO副本执行数据质量检查。更多数据可以是至少一个更多BO的副本和/或可以是从外部数据库获得的数据。所述特征可以是有利的,因为可以禁止执行在优选地包括所有全局执行的数据质量检查作业的第二作业集中包含的任何种类的质量检查作业,直至更新和标记所有评估的BO副本为“完整”。
根据实施例,执行第三ETL作业包括:评估BO中的相应BO的每个副本用于确定所述副本是否已经指派完整性参数值,这些副本存储于第二数据库中,该完整性参数值指示从其获得所述副本的BO的一个或者多个属性是DQMS系统尚未从应用程序接收的遗漏属性;在已经向所述第三ETL作业指派的BO副本已经指派指示不完整的参数值的情况下,从应用程序取回一个或者多个遗漏属性;更新BO的副本,由此用取回的遗漏属性完成BO副本,并且修改所述副本的完整性参数值以指示所述副本完整。所述特征可以是有利的,因为执行第三种ETL作业保证在第二数据库中存储的BO的副本——具体为已经面临一些事务触发的修改的副本——包括用于实现执行全局数据检查(即与更多数据组合评估特定BO副本的数据质量的数据检查)的一些作业的所有数据。如果不是,则借助所述第三ETL作业从第一数据库取回所述遗漏数据——具体为遗漏属性值。例如,事务可以触发修改特定BO,并且作为结果,可以在第二数据库中存储所述BO的修改的副本。为了执行一些数据质量检查,可能有必要评价所述BO的未修改的并且未作为消息的部分向DQMS发送的更多属性。可能已经发生在第一数据库中执行一些数据修改而未触发消息的提交。因此,为了确保特定作业评估的所有数据也包含于第二数据库中并且是最新的,第三ETL作业可以从第一数据库取回选择的数据,用取回的数据完成所述BO副本,并且由此使第二作业集的并且因此以后摄方式执行的一些数据质量作业能够对包括待评估的所有数据的最新BO副本操作。
根据实施例,作业中的每个作业已经指派BO中的相应BO的BO模式定义。在消息中指示的BO的副本尚未存在的情况下,可以借助所述指示的BO的指派的应用BO模式创建所述副本,其中可以根据在消息中(并且在已经触发提交所述消息的事务中)指定的修改来修改所述BO副本。该方法还包括:根据在消息中包含的数据来修改在所述消息中指示的BO的副本;标识与在消息中指示的BO的模式定义关联的一个或者多个作业,标识的作业包含于第一或者第三作业集中;对BO的修改的副本执行一个或者多个标识的作业,以用于评估修改的副本是否满足所述作业评估的质量标准;并且向应用程序发送响应,该响应指示第一数据对象的修改的副本是否满足评估的质量标准。作业在BO级而不是在消息中接收的事务数据这一级操作可以是有利的,因为DQMS从第一数据库的结构的特性去耦合;它仅耦合到如在应用BO模式中指定的BO的语义结构。这可以易于维护DQMS。可以例如借助作业类型ID和BO类型ID的ID映射,由相应BO关联作业。消息可以包括BO类型ID。
根据实施例,经由应用程序的第一遗存接口接收消息,第一遗存接口已经被设计或者使用于将对事务数据执行的数据质量检查,事务是在第一数据库中修改或者存储BO之一,消息包括所述BO的事务数据。所述第一接口可以已经用于前摄应用程序内部质量检查。该方法还包括将应用程序的第二遗存接口用于取回在第一数据库中存储的任何数据用于经由作业中的一个或者多个作业初始地填充和/或更新第二数据库,这些作业是ETL作业。第二遗存接口可以已经被开发用于在BO级的数据交换目的。所述ETL作业在BO级操作。所述特征可以是有利的,因为可以使用已经在许多应用和ERP系统中存在的遗存接口并且可以不必改写应用程序中的任何代码。此外,所述特征可以允许提供可操作用于集成基于事务的前摄数据质量检查与在BO级操作的检查的DQMS。BO级检查可以例如是评估多个BO的数据质量和一致性所必需的。因此,本发明的实施例可以能够经由消息接收事务级数据、利用所述数据创建和/或修改对应BO副本,并且用于在一个且相同DQMS内借助第一和第三作业集中的数据质量检查作业以及第二和第三作业集的调度的后摄数据质量检查作业来执行事务驱动的和前摄的质量检查。由此克服现有技术的DQMS的问题,该DQMS经常限于纯基于事务的前摄DQMS或者基于BO级的全局和后摄DQMS。优选地,在作业集中的任何作业集中包含的所有数据质量检查作业对BO的副本而不是直接对缺乏相应BO的语义结构的事务数据进行操作。例如可以借助已经根据如在应用BO模式中指定的BO的语义结构创建的EOL对象之一创建在第二数据库中存储的BO的副本,或者DQMS可以通过与映射组合使用应用BO模式从在接收的消息中保护的事务数据创建这些副本。在已经创建或者读取将为其执行数据质量检查作业的BO副本之后,对所述BO副本而不是对消息内的仅有事务数据执行所述作业。
在又一方面中,本发明涉及一种计算机可读介质,该计算机可读介质包括随之体现的计算机可读程序代码,该计算机可读程序代码在由处理器执行时使处理器执行根据以上段落中的任一段落的方法。
在又一方面中,本发明涉及一种包括DQMS的计算机系统。DQMS包括处理引擎、监视模块、分类模块和调度器。DQMS适于检查应用程序的数据的数据质量。处理引擎适于执行多个作业中的至少一个作业,至少一个执行的作业适于评估所述数据与一个或者多个质量标准的相符性。作业中的每个作业是多个作业集之一的成员,多个作业集至少包括第一作业集和第二作业集。所述作业集中的每个作业集代表运行时行为类别,在每个作业集中包含的作业已经根据它们的相应运行时行为被分类到运行时行为类别中。执行在第一作业集中包含的作业由数据质量管理系统从应用程序接收的消息触发。执行在第二和第三作业集中包含的作业由数据质量管理系统调度器触发。监视模块适于监视执行的作业中的至少一个作业的运行时行为以用于确定所述作业的当前运行时行为。分类模块适于通过将至少一个监视的作业重新分配到代表确定的当前运行时行为的作业集,来对所述作业重新分类。
根据一些实施例,数据是所述应用程序的应用数据。应用数据包括多个BO。计算机系统还包括应用程序、第一数据库和第二数据库。应用程序操作地耦合到已经存储BO的第一数据库。第二数据库操作地耦合到DQMS并且包括根据映射在第二数据库中的BO和所述应用数据的副本。映射向第二数据库的结构元素指派BO模式的BO的属性。数据质量管理系统适于:访问BO模式和映射以用于确定在BO模式中指定的BO的属性,属性被映射到第二数据库的结构元素;通过使用BO模式和/或映射来创建作业中的一个或者多个作业作为ETL作业。
根据一些实施例,还可以支持所述作业中的一些作业的人工或者半人工重新分类。根据实施例,重新分类遵循在以下表中指定的模式:
如本领域技术人员将理解的那样,可以实现本发明的方面为系统、方法或者计算机程序产品。因而,本发明的方面可以采用全硬件实施例、全软件实施例(包括固件、常驻软件、微代码等)或者组合软件和硬件方面的实施例这样的形式,这些软件和硬件方面可以这里都通常为“电路”、“模块”或者“系统”。另外,本发明的方面也可以采用在一个或者多个计算机可读介质中体现的计算机程序产品的形式,该计算机可读介质具有在其上体现的计算机可读程序代码。可以利用一个或者多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以例如是但不限于电子、磁、光学、电磁、红外线或者半导体系统、装置或者设备或者前述各项的任何适当组合。计算机可读存储介质的更多具体示例(非穷尽列表)将包括以下各项:具有一个或者多个接线的电连接、便携计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EPROM或者闪存)、光纤、便携紧致盘只读存储器(CD-ROM)、光学存储设备、磁存储设备或者前述各项的任何组合。在本文的上下文中,计算机可读存储介质可以是任何如下有形介质,该有形介质可以包含或者存储用于由指令执行系统、装置或者设备使用或者与指令执行系统、装置或者设备结合使用的程序。计算机可读信号介质可以包括例如在基带中或者作为载波的部分而传播的数据信号,该数据信号具有在其中体现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,这些形式包括但不限于电磁、光学或者其任何适当组合。计算机可读信号介质可以是任何如下计算机可读介质,该计算机可读介质不是计算机可读存储介质并且可以传达、传播或者传送用于由指令执行系统、装置或者设备使用或者与指令执行系统、装置或者设备结合使用的程序。可以使用任何适当介质来传输在计算机可读介质上体现的程序代码,该介质包括但不限于无线、有线、光纤线缆、RF等或者前述各项的任何适当组合。
附图说明
在下文中,将仅参照附图通过示例更具体描述本发明的优选实施例,在附图中:
图1示出包括作业重新分类的方法的流程图;
图2示出包括ETL作业创建的方法的流程图;
图3示出应用程序(例如ERP系统)以及DQMS;以及
图4更具体示出DQMS的一些部件。
具体实施方式
图1示出用于借助如例如图2中描绘的数据质量管理系统(DQMS)以灵活和高效方式评估数据质量的方法的流程图。DQMS保证应用程序、例如ERP系统的数据完整和质量,该ERP系统包括业务对象、比如“客户”、“订单”、“部门”或者“雇员”。这通过前摄数据质量检查和/或通过后摄数据质量检查来完成,这些前摄数据质量检查从开始防止添加错误数据,这些后摄数据质量检查在错误数据多数存储到ERP系统的数据库之后自动确定并且可选地也消除所述错误数据。例如DQMS可以自动保证以一致和有效的数据格式录入客户地址数据、例如电邮地址、出生日期等。此外,对多个BO操作的数据质量检查可以保证不同BO的语义内容未相互矛盾。例如特定订单不应被允许已经指派两个不同客户。如果公司的特定部门已经指派比整个公司更多的雇员,则这也暗示ERP系统的数据基础不一致。通过集成分别由不同机制触发的前摄数据质量检查和后摄数据质量检查、并且通过使相应触发机制适应数据质量检查作业的监视的运行时行为,DQMS可操作用于对业务对象副本高度地高效执行数据质量检查而未妨碍ERP系统的性能。通过自动生成ETL作业,减少DQMS的总权属成本并且也减少用于构建这样的DQMS的宝贵时间。
在图1中描绘的步骤102中,DQMS执行多个作业中的至少一个作业。所述作业中的至少一些作业适于评估应用程序的数据与一个或者多个质量标准的相符性。多个作业还可以包括用于创建、初始地填充和/或用于更新DQMS的数据库的一个或者多个ETL作业,该数据库包括应用程序的BO的副本。在步骤104中,DQMS的监视模块监视一个或者多个执行的作业的运行时行为,以用于分别确定所述作业的当前运行时行为。所述时间在步骤106中由分类模块用于通过将一个或者多个监视的作业重新分配到作业集来对所述作业重新分类,该作业集代表所述作业的确定的运行时行为。
图2示出如下方法的流程图,该方法包括自动化创建ETL作业。根据所述ETL作业中的一些ETL作业的监视的运行期行为并且可选地也根据用户或者自动向所述作业指派的一些分类特征、并且可选地也根据事务映射323,对所述作业重新分类。在步骤202中,DQMS的作业工厂模块自动生成用于创建、初始地填充和/或更新这里也称为“第二数据库”的DQMS数据库的一个或者多个ETL作业,该DQMS数据库操作地耦合到DQMS并且用于存储应用程序的BO的副本。所述创建包括评估应用程序的BO模式和映射。映射向第二数据库的结构元素指派BO类型及其相应属性。所述映射可以例如经由图形用户界面由DQMS的用户修改。因此,通过人工适配映射以与第二数据库施加的约束或者其它因素相符,有可能容易使DQMS和ETL作业适应所述约束,而无需对现有ETL作业的任何人工修改并且无需对新ETL作业的耗时人工重建。在步骤204中,执行用于初始地创建和填充第二数据库的一个或者多个ETL作业。由此,自动创建并且用应用程序的BO的自动生成的副本填充第二数据库。在步骤206中,DQMS可以从应用程序接收消息。在应用程序对将创建、修改或者删除的BO执行数据库事务时发送消息。消息包括所述BO的指示,并且还可以包括将对所述BO施加的修改、例如一个或者多个修改的属性值等。在步骤208中,接收消息触发执行向在消息中指示的BO指派的并且在第一或者第二作业集中包含的质量检查作业,其中第一作业集包括对事务执行仅一次的短期运行的、事务触发的作业。第三作业集包括仅对单个BO的属性(即从执行所述BO的事务修改的应用程序随着事务驱动的消息强制接收的数据)执行的、短期运行的、消息触发的的作业和短期运行的、调度器触发的作业。作为前摄检查执行作为第一作业集的成员和第三作业集的消息驱动的作业而执行的数据质量检查作业。这意味着相应质量检查由事务(即由消息接收)触发,并且挂起事务直至应用程序接收响应,该响应包括在第一和/或第三作业集中包含的并且向所述BO指派的数据质量检查作业的评估结果。
DQMS向应用程序发送对所述消息的响应,其中响应指示第一和/或第三作业集的一个或者多个执行的质量检查作业是否确定该BO副本(CBO)的事务修改、创建或者删除违反任何质量要求。由于第二数据库包括应用程序的BO的副本,所以质量检查作业的为BO副本计算的结果类似地适用于应用程序的相应BO。
在步骤208中确定事务未违反第一和/或第二作业集中的质量检查作业评估的质量要求的情况下,提交的负责触发应用程序交付挂起的事务。在步骤210中,DQMS在消息未包括构成所述BO副本的所有属性值的情况下并且在第二数据库也未包括遗漏属性值的情况下,标记BO副本为不完整。DQMS可以通过与映射和第二数据库组合评估BO模式来确定遗漏属性值,该第二数据库已经在映射中指定的结构元素中存储相应属性值。在步骤212中,DQMS的调度器触发执行在包括长期运行的作业(例如长期运行的后摄数据质量检查作业和/或BO更新ETL作业)的第二作业集中包含的作业。调度器还可以触发执行在包括短期运行的后摄数据质量检查作业的第三数据集中包含的作业。可以向如在应用BO模式中指定的BO中的一个或者多个BO指派后摄数据质量检查作业和/或BO更新ETL作业中的每个作业。在标记BO副本中的任何BO副本为不完整的情况下,由调度器已经触发的并且向所述BO指派的BO更新ETL作业确定遗漏属性,并且经由应用程序的业务对象级接口自动取回所述属性值、用取回的属性值完成BO副本并且将所述副本的完整性参数值设置成“完整”。禁止包含在第二作业集中的数据质量检查作业评估任何标记为“不完整”的BO副本。在相应指派的BO副本被标记为“完整”的情况下,后摄数据质量检查作业将评估所述BO副本并且可选地评估更多数据、例如在其它BO中包含的或者在外部资源中包含的数据以便确定所述BO的数据质量违反一些质量约束。可以用报告的形式存储在第二作业集中包含的质量检查作业执行的质量检查中的至少一些质量检查的结果,该报告可以存储于DQMS内、向用户显示和/或向应用程序提交。
图3示出包括第一计算机系统358和第二计算机系统302的分布式计算机系统300的框图。第一计算机系统包括存储器360、处理器262和存储介质364。第一计算机系统托管应用程序366,该应用程序包括根据应用BO模式368指定的多个BO BO1-BO4。应用程序包括用于对操作地耦合到应用程序的第一数据库374执行事务的事务级接口372。可以在第一计算机或者另一计算机系统上托管第一应用程序。第一计算机程序包括一个或者多个数据库表376,该数据库表已经存储BO BO1-BO4及其相应属性。此外,应用程序366包括这里也称为“应用API”的业务对象级接口370,该接口由DQMS310的ETL作业用于取回用于初始地填充和更新在第二数据库中包含的BO副本CBO1-CBO4的数据。应用程序的源代码可以包括指令块内的一些指令,这些指令块分别指定事务,从而使所述事务挂起并且使消息向DQMS310发送。仅在从DQMS接收对该消息MS的响应R的情况下向第一数据库交付事务,该响应指示所述事务的数据质量良好。消息可以包括将在所述事务中创建、修改或者删除的BO的指示,并且可选地也包括将用于修改的数据。根据其它实现方式变体,可与应用程序和第一数据库互操作的截获模块可以截获应用程序将对第一数据库执行的任何事务,并且可以挂起所述事务直至接收所述响应。第二计算机系统302包括存储器304、处理器306和存储介质308。第二计算机系统托管DQMS310,该DQMS可操作用于经由BO级接口370从应用程序366接收BO数据,并且可操作用于在应用程序执行事务时接收消息MS并且经由事务级接口372返回响应R。DQMS310包括多个模块、例如用于自动创建一个或者多个ETL作业的作业工厂模块316、用于监视处理引擎319执行的多个作业332的运行时行为的监视模块322。DQMS包括映射318、例如包括人类可读文本的文件或者数据库表,该映射向第二数据库324的结构元素(例如表326、328和列)指派BO(具有与BO副本相同的语义结构和BO模式定义)及其属性。事务映射323,例如文件或者数据库条目向事务级接口372支持的事务分配BO属性,由此指示在包括所述属性的BO的事务修改时触发的作业评估的所有属性是否将由DQMS作为消息MS的部分而接收。事务映射也可以与映射318组合用于在接收包括所述BO的至少一些属性值的消息时实例化BO副本。另外,DQMS包括应用程序366使用的BO模式的副本312或者适于访问在第一计算机系统中存储的应用程序的BO模式312。在第一数据库374中存储BO BO1-BO4。在已经执行用于创建和填充第二数据库324的一个或者多个ETL作业之后,在第二数据库中存储BO BO1-BO4的相应副本CBO1-CBO4。第二数据库的列表结构可以但是未必必须与第一数据库相同。在第一和第二数据库的结构互不相同的情况下,ETL作业必须相应地适配数据存储例程。应用BO模式312、映射318和在第二数据库324中包含的数据的组合向作业工厂316提供用于自动创建ETL作业的所有所需信息,并且向处理引擎319提供足够信息以确定给定的BO副本是否完整。将作业332分组成分别至少由特定运行时行为表征的多个不同作业集。第一作业集334和第三作业集338分别为短期运行的作业,例如数据质量检查作业和/或BO更新ETL作业。由事务(即由接收消息)触发执行在第一和第三作业集中包含的作业。仅响应于所述事务执行第一作业集中的作业。定期地执行并且由调度器314触发第二和第三作业集中的作业。第二作业集336包括长期运行的作业,例如数据质量检查作业和/或BO更新ETL作业。第四作业集(未示出)可以包括用于创建和/或初始地填充第二数据库的将执行仅一次的作业,例如作业330。由监视模块322监视作业332中的任何作业的运行时行为。分类模块320适于至少根据监视的运行时行为对作业重新分类。以前摄方式执行在第一作业集中包含的数据质量检查作业,并且在消息驱动的场合时也执行第三作业集中的作业。这意味着,挂起事务直至所述检查的执行已经终止并且直至接收到指示数据质量良好的响应。如果响应指示数据质量未满足评估的质量标准,则放弃或者仅在用户人工审核事务之后执行事务,由此禁止向第一数据库中录入错误或者低质量数据。由于可以快速执行在第一和第三作业集中包含的数据质量检查作业,所以挂起事务直至接收响应确保了不会存储低质量数据而未降低应用程序的性能。执行在第二作业集中包含的作业并且在调度器驱动的场合时也执行第三作业集中的作业作为后摄数据质量检查。这意味着在应用程序对在第二数据库中包含的相应修改的BO副本执行事务之后执行所述作业。因此,后摄执行的作业不能禁止存储错误数据,但是可以检测所述错误并且随后报告它们。由于已经确定在第二作业集中包含的作业很耗时,例如因为它们与一个或者多个更多BO组合和/或与在外部资源354中包含的数据组合一起评估BO的数据。外部资源354可以经由网络356连接到第二计算机系统。由于必须经由网络传送待评估的数据,所以包括来自外部资源的数据的数据质量检查可能特别低,并且挂起事务直至这样的种类的“跨BO”或者“跨数据源”检查已经完成将可能显著减缓应用程序。由于对BO的副本(而不是对第一数据库的原有BO)在调度基础上作为后摄质量检查执行数据质量检查,所以执行第二作业集中的作业并未未负面地影响应用程序的性能。
图4更具体地示出图3中描绘的DQMS310的一些部件。一些箭头1a)-5)用于图示DQMS的部件的动态方面。DQMS可以经由事务级接口372从应用程序接收消息MS。消息可以指示应当通过将BO BO2的第二属性A2设置成特定属性值‘XY’来修改所述BO。处理引擎319基于映射318和应用模式312标识所述BO BO2的对应副本CBO2。处理引擎可以通过将CBO2的属性A2设置成“XY”来修改CBO2。此外,处理引擎可以确定尚未接收并且在第二数据库中存储该CBO2的所有属性。因此,处理引擎可以通过将完整性质设置成值“不完整”402来标记CBO2为不完整。处理引擎319可以如箭头1a)所示触发在第一作业集中包含的短期运行的作业。所述作业可以是短期运行的数据质量检查340、342,这些数据质量检查评估在消息中包含的和/或在所述数据对象副本CBO2的已经可用属性中包含的数据的数据质量。与1a)并行,处理引擎319在接收消息时可以如箭头1c)所示触发执行在包括短期运行的作业的第三作业集338中包含的作业。响应于1a)和1c),可以如箭头2a)和2c)所示对在接收的消息中包含的数据并且对在CBO2中已经包含的数据执行作业340、342、350和/或352。独立于是否接收消息MS,调度器314定期地触发执行第一和第三作业集中的所有作业。例如在A2代表属性“电邮地址”并且XY是客户的特定电邮地址的情况下,作业340可以根据模式“前缀@域.顶级域”检查属性值XY是否包括“@”符号和被“.”从域段分离的有效顶级域。作业350或者352可以负责确定是否在电邮地址黑名单中包含所述电邮地址。由于可以持续更新黑名单,所以规律执行用于确定是否在所述黑名单中包含向属性A2指派的任何电邮地址的所述作业可以确保未在第二数据库中、也未在应用程序的第一数据库中存储或者维护在所述黑名单中包含的电邮地址。执行在第二作业集336中包含的作业未由接收消息触发,而实际上由调度器314触发。在调度器应当启动执行第二作业集中的作业的情况下,第二作业不会对CBO2执行它们的相应数据质量检查,因为已经将它标记为不完整(见2b):无检查!)。然而调度器可以启动执行如下ETL更新作业348,其可以执行该ETL更新作业348用于经由BO级接口370从应用程序取回遗漏属性值并且用于完成CBO2。根据个别ETL更新作业的相应实现方式和运行时行为,可以在第一、第二或者第三作业集中的任何作业集中包含用于取回遗漏属性值的ETL更新作业。因此,取回遗漏属性值和/或取回已经向第一数据库新添加的BO可以由在第一作业集中包含的ETL作业341或者由在第二作业集中包含的ETL作业348执行。ETL更新作业341或者348如箭头3)所示经由BO级接口370取回CBO2的所有遗漏数据。在已经取回遗漏数据之后,用附加数据更新CBO2,由此生成完整CBO2’。将所述CBO2’的完整性参数设置成值“完整”404。在由调度器下次触发执行在第二作业集中包含的并且向BO2(因此相应地向CBO2’)指派的数据质量作业时,如箭头4)所示也对CBO2’执行所述作业344、346,因为CBO2’的完整性参数指示完整。最后,如箭头5)所示生成报告。报告至少包括在第二作业集中包含的数据质量检查作业的结果,但是可选地还包括在第一和/或第三作业集中包含的数据质量检查作业的结果。可以例如经由图形用户界面向用户输出、向应用程序返回和/或向存储介质308存储报告。
Claims (14)
1.一种用于检查数据质量的计算机实施的方法,用于由数据质量管理系统(310)检查应用程序(366)的数据的数据质量,所述方法包括:
-由所述数据质量管理系统执行(102)多个作业(332)中的至少一个作业,所述至少一个作业适于评估所述数据与一个或者多个质量标准的相符性,
·其中所述作业中的每个作业是多个作业集(334,336,338)之一的成员,所述多个作业集至少包括第一作业集(334)和第二作业集(336);
·其中所述作业集中的每个作业集代表运行时行为类别,在每个作业集中包含的所述作业已经根据它们的相应运行时行为被分类到所述运行时行为类别中;
·其中在所述第一作业集中包含的所述作业的执行由所述数据质量管理系统从所述应用程序接收的消息(MS)触发;
·其中在所述第二作业集中包含的所述作业的执行由所述数据质量管理系统的调度器(314)触发;
-所述数据质量管理系统监视所述至少一个执行的作业的运行时行为以用于确定所述作业的当前运行时行为;
-通过将至少一个监视的所述作业重新分配到代表所述确定的当前运行时行为的所述作业集,来对所述作业重新分类。
2.根据权利要求1所述的计算机实施的方法,
其中所述数据质量管理系统在所述应用程序执行用于在第一数据库(374)中存储所述数据的数据库事务时从所述应用程序接收所述消息,所述第一数据库操作地耦合到所述应用程序,所述消息包括质量待评估的所述数据的至少部分;
其中挂起所述事务直至所述应用程序从所述数据质量管理系统接收到响应(R),所述响应指示所述数据满足所述作业中的一个或者多个作业评估的所述质量标准。
3.根据权利要求1-2中的任一权利要求所述的计算机实施的方法,
-其中所述作业集还包括第三作业集(338),其中所述第三作业集中包含的作业的所述执行定期地由所述调度器触发,并且还在对指派给所述作业的业务对象之一进行事务修改时接收到所述应用程序发送的消息时被触发,
-其中所述第二作业集的所述作业的所述执行仅由所述调度器定期地触发;
-其中所述作业中的具有在第一时间阈值以下或者与所述第一时间阈值相等的执行时间的任何作业被分类为所述第一或者第三作业集的成员;
-其中所述作业中的具有在所述第一时间阈值以上的执行时间的任何作业被分类为所述第二作业集的成员。
4.根据权利要求1或2所述的计算机实施的方法,其中在所述作业集中的相同作业集中包含的所有作业共同具有一个或者多个分类特征,其中对所述至少一个作业重新分类包括确定用于所述分类特征中的一个或者多个分类特征的值并且根据确定的分类特征值对所述作业重新分类,其中在任何组合下从包括以下各项的组选择所述一个或者多个分类特征:
·重复参数,所述重复参数指示是否定期地执行已经指派相应参数值的所述作业;
·所述作业的总执行时间;
·所述作业的用于访问一个或者多个外部资源用于评估所述数据的所述质量的能力。
5.根据权利要求3所述的计算机实施的方法,其中所述多个作业中的至少又一作业适于与更多数据相结合对所述业务对象之一(BO2)的副本(CBO2)评估质量标准,所述更多数据是至少一个又一业务对象的副本和/或是从外部资源(354)获得的数据,所述方法包括:
-确定所述又一作业与更多数据组合对所述业务对象之一(BO2)的副本(CBO2)评估质量标准;
-将所述作业分类为所述第二作业集的成员作为所述确定的结果。
6.根据权利要求1或2所述的计算机实施的方法,其中质量待检查的所述数据是应用数据,所述应用数据包括由所述应用程序的业务对象模式(312)指定的一个或者多个业务对象(BO1-BO4);
其中所述应用程序操作地耦合到已经存储所述业务对象(BO1-BO4)的第一数据库(374);
其中所述数据质量管理系统操作地耦合到第二数据库(324),所述第二数据库包括根据映射(318)的所述业务对象(BO1-BO4)的相应副本(CBO1-CBO4)和所述应用数据的副本,所述映射向所述第二数据库的结构元素(326,328)指派所述业务对象模式(312)的所述业务对象的属性;
所述方法还包括:
-由所述数据质量管理系统访问所述业务对象模式(312)和所述映射(318)以用于确定在所述业务对象模式中指定的业务对象的属性(A1,A2,…,An),所述属性被映射到所述第二数据库的所述结构元素;
-由所述数据质量管理系统使用所述业务对象模式和/或所述映射来创建所述作业(341,348,330)中的一个或者多个作业作为ETL作业。
7.根据权利要求6所述的计算机实施的方法,其中所述多个作业包括一个或者多个ETL作业(341,348,330),所述ETL作业包括第一ETL作业和/或第二ETL作业和/或第三ETL作业,
所述方法还包括:
-执行所述第一ETL作业(330)以用于初始地创建所述第二数据库(324);和/或
-执行所述第二ETL作业以用于利用所述第一数据库的所述业务对象的副本填充所述第二数据库;和/或
-定期地执行所述第三ETL作业(348)以用于更新所述业务对象的一个或者多个副本(CBO1-CBO4)。
8.根据权利要求6所述的计算机实施的方法,所述方法包括:
-从所述应用程序接收所述消息(MS),所述消息指示在所述第一数据库中存储的所述业务对象(BO1-BO4)之一(BO2)并且指示将对所述业务对象施加的修改;
-使用指示的修改作为输入来修改所述指示的业务对象(BO2)的副本(CBO2),所述副本存储于所述第二数据库(324)中;
-如果所述业务对象的所述修改的副本未包括所述业务对象的所有数据,则将向所述修改的副本指派的完整性参数设置成如下值(402),所述值指示所述副本包括所述数据质量管理系统尚未从所述应用程序接收的一个或者多个遗漏属性。
9.根据权利要求8所述的计算机实施的方法,其中修改所述业务对象在所述第二数据库中的所述副本包括将向所述副本指派的完整性参数设置成指示不完整的值(402),由此禁止在所述第二作业集(336)中包含的数据质量检查作业对所述副本(CBO2)评估所述质量标准中的任何质量标准,其中在所述第一作业集(334)和/或第三作业集(338)中包含的数据质量检查作业可操作用于无论所述完整性参数的值如何都对所述业务对象副本评估它们的相应质量标准。
10.根据权利要求7所述的计算机实施的方法,其中定期地执行所述第三ETL作业(348)包括:
·评估所述业务对象中的相应业务对象的每个副本以用于确定所述副本是否已经指派完整性参数值(402),所述副本存储于所述第二数据库中,所述完整性参数值指示从其导出所述副本的所述业务对象的一个或者多个属性是所述数据质量管理系统尚未从所述应用程序接收的遗漏属性;
·从所述应用程序取回所述一个或者多个遗漏属性;
·更新所述业务对象的所述副本,由此利用所述取回的遗漏属性完成所述副本,并且修改所述副本的所述完整性参数值(404)以指示所述副本完整。
11.根据权利要求3所述的计算机实施的方法,其中所述作业中的每个作业已经指派所述业务对象中的相应业务对象的业务对象模式定义,所述方法包括:
-根据在所述消息中包含的数据修改在所述消息中指示的业务对象(BO2)的副本(CBO2);
-标识在所述第一或者第三作业集中包含的并且与在所述消息中指示的所述业务对象的所述模式定义关联的一个或者多个作业;
-对所述业务对象的所述修改的副本执行所述一个或者多个标识的作业,以用于评估更新的副本是否满足由所述作业评估的所述质量标准;
-向所述应用程序发送响应(R),所述响应指示第一数据对象的所述修改的副本(CBO2)是否满足所述评估的质量标准。
12.根据权利要求6所述的计算机实施的方法,
其中经由所述应用程序的第一遗存接口(372)接收所述消息,所述第一遗存接口已经被设计或者被用于将对事务数据执行的数据质量检查,事务是在所述第一数据库(374)中修改或者存储所述业务对象之一,所述消息包括业务对象的事务数据;
并且还包括:
-将所述应用程序的第二遗存接口(370)用于取回在所述第一数据库中存储的任何数据,以用于经由所述作业中的一个或者多个作业初始地填充和/或更新所述第二数据库(324),所述作业是ETL作业,所述ETL作业在业务对象级操作。
13.一种用于检查数据质量的计算机系统(300),包括:
-数据质量管理系统(310),包括处理引擎(319)、监视模块(322)、分类模块(320)和调度器(314),所述质量管理系统适于检查应用程序(366)的数据的数据质量;
-其中所述处理引擎适于执行多个作业(332)中的至少一个作业,所述至少一个执行的作业适于评估所述数据(CBO2)与一个或者多个质量标准的相符性,
·其中所述作业中的每个作业是多个作业集(334,336,338)之一的成员,所述多个作业集至少包括第一作业集(334)和第二作业集(336);
·其中所述作业集中的每个作业集代表运行时行为类别,在每个作业集中包含的所述作业已经根据它们的相应运行时行为被分类到所述运行时行为类别中;
·其中在所述第一作业集中包含的所述作业的执行由所述数据质量管理系统从所述应用程序接收的消息(MS)触发;
·其中在所述第二作业集中包含的所述作业的执行由所述调度器触发;
-其中所述监视模块适于监视所述执行的作业中的至少一个作业的所述运行时行为以用于确定所述作业的当前运行时行为;
-其中所述分类模块适于通过将至少一个监视的所述作业重新分配到代表所述确定的当前运行时行为的所述作业集,来对所述作业重新分类。
14.根据权利要求13所述的计算机系统,其中所述数据是所述应用程序的应用数据,所述应用数据包括多个业务对象(BO1-BO4),所述计算机系统还包括:
-所述应用程序;
-第一数据库(374),其中所述应用程序操作地耦合到已经在其中存储所述业务对象的第一数据库(374);
-第二数据库(324),操作地耦合到所述数据质量管理系统,所述第二数据库包括根据映射(318)在所述第二数据库中的所述相应业务对象的副本(CBO1-CBO4)和所述应用数据的副本,所述映射向所述第二数据库的结构元素指派业务对象模式的所述业务对象的属性;
其中所述数据质量管理系统适于:
-访问所述业务对象模式(312)和所述映射以用于确定在所述业务对象模式中指定的业务对象的属性,所述属性被映射到所述第二数据库的结构元素(326,328);
-通过使用所述业务对象模式和/或所述映射来创建所述作业中的一个或者多个作业作为ETL作业。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1214853.2A GB2505184A (en) | 2012-08-21 | 2012-08-21 | Checking data quality of an application program by monitoring runtime behaviour |
GB1214853.2 | 2012-08-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103632219A CN103632219A (zh) | 2014-03-12 |
CN103632219B true CN103632219B (zh) | 2017-04-26 |
Family
ID=47017065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310359305.7A Active CN103632219B (zh) | 2012-08-21 | 2013-08-16 | 用于重新分配用于检查数据质量的作业的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9514212B2 (zh) |
CN (1) | CN103632219B (zh) |
GB (1) | GB2505184A (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9600776B1 (en) | 2013-11-22 | 2017-03-21 | Groupon, Inc. | Automated adaptive data analysis using dynamic data quality assessment |
GB2528066A (en) * | 2014-07-08 | 2016-01-13 | Ibm | A method for processing data quality exceptions in a data processing system |
US9244809B1 (en) * | 2014-07-15 | 2016-01-26 | International Business Machines Corporation | Validating code of an extract, transform and load (ETL) tool |
CN105005849A (zh) * | 2015-06-29 | 2015-10-28 | 用友优普信息技术有限公司 | 基于erp系统的工序工价生成方法及装置 |
US10216543B2 (en) * | 2015-08-14 | 2019-02-26 | MityLytics Inc. | Real-time analytics based monitoring and classification of jobs for a data processing platform |
US10147040B2 (en) | 2017-01-20 | 2018-12-04 | Alchemy IoT | Device data quality evaluator |
US10754868B2 (en) | 2017-01-20 | 2020-08-25 | Bank Of America Corporation | System for analyzing the runtime impact of data files on data extraction, transformation, and loading jobs |
CN109635023B (zh) * | 2018-11-13 | 2021-01-15 | 广州欧赛斯信息科技有限公司 | 基于etl的轻量化自定义源数据分解读取系统和方法 |
US10853198B2 (en) | 2019-01-30 | 2020-12-01 | Bank Of America Corporation | System to restore a transformation state using blockchain technology |
US10768907B2 (en) | 2019-01-30 | 2020-09-08 | Bank Of America Corporation | System for transformation prediction with code change analyzer and implementer |
US10824635B2 (en) | 2019-01-30 | 2020-11-03 | Bank Of America Corporation | System for dynamic intelligent code change implementation |
CN110704404B (zh) * | 2019-08-29 | 2023-04-28 | 苏宁云计算有限公司 | 一种数据质量校验方法、装置、系统 |
CN110795479A (zh) * | 2019-10-08 | 2020-02-14 | 中国建设银行股份有限公司 | 基于数据的分布式etl调度的方法和装置 |
CN112416727A (zh) * | 2020-11-23 | 2021-02-26 | 中国建设银行股份有限公司 | 批处理作业的检核方法、装置、设备及介质 |
US11734238B2 (en) | 2021-05-07 | 2023-08-22 | Bank Of America Corporation | Correcting data errors for data processing fault recovery |
US11789967B2 (en) | 2021-05-07 | 2023-10-17 | Bank Of America Corporation | Recovering from data processing errors by data error detection and correction |
US11880803B1 (en) * | 2022-12-19 | 2024-01-23 | Tbk Bank, Ssb | System and method for data mapping and transformation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983194A (zh) * | 2005-12-15 | 2007-06-20 | 国际商业机器公司 | 使用动态确定的前端作业群调度计算机作业的方法和系统 |
CN101017546A (zh) * | 2007-03-12 | 2007-08-15 | 中国建设银行股份有限公司 | 一种用于可分类数据批处理的方法及装置 |
CN102473116A (zh) * | 2009-07-21 | 2012-05-23 | 国际商业机器公司 | 分布式数据处理系统中使用最佳网络拓扑识别的作业调度的方法和系统 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574605B1 (en) * | 1998-11-17 | 2003-06-03 | Citibank, N.A. | Method and system for strategic services enterprise workload management |
TWI360083B (en) | 2003-05-09 | 2012-03-11 | Jda Software Group Inc | System, method and software for managing a central |
US20050216282A1 (en) | 2004-03-25 | 2005-09-29 | International Business Machines Corporation | System and method for business object discovery |
US7590972B2 (en) * | 2004-10-28 | 2009-09-15 | Cogency Software, Inc. | Role-oriented development environment |
US20060230048A1 (en) | 2005-04-08 | 2006-10-12 | International Business Machines Corporation | Method and apparatus for object discovery agent based mapping of application specific markup language schemas to application specific business objects in an integrated application environment |
US8145653B2 (en) | 2005-04-08 | 2012-03-27 | International Business Machines Corporation | Using schemas to generate application specific business objects for use in an integration broker |
US20060242172A1 (en) | 2005-04-22 | 2006-10-26 | Igor Tsyganskiy | Systems and methods for transforming logic entities of a business application into an object-oriented model |
US7461044B2 (en) * | 2005-04-27 | 2008-12-02 | International Business Machines Corporation | It resource event situation classification and semantics |
EP2076874A4 (en) * | 2006-05-13 | 2011-03-09 | Sap Ag | DERIVED CONSISTENT SET OF INTERFACES DERIVED FROM A BUSINESS OBJECT MODEL |
US7797708B2 (en) * | 2006-06-26 | 2010-09-14 | Sap Ag | Simulating actions on mockup business objects |
JP4308241B2 (ja) * | 2006-11-10 | 2009-08-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム |
US8219848B2 (en) * | 2007-04-10 | 2012-07-10 | International Business Machines Corporation | Mechanism for recovery from site failure in a stream processing system |
US7895192B2 (en) * | 2007-07-19 | 2011-02-22 | Hewlett-Packard Development Company, L.P. | Estimating the loaded execution runtime of a database query |
US7783667B2 (en) | 2007-11-14 | 2010-08-24 | Sap Ag | Key management and high performance runtime for view business objects |
US8214324B2 (en) | 2009-08-25 | 2012-07-03 | International Business Machines Corporation | Generating extract, transform, and load (ETL) jobs for loading data incrementally |
AU2012216531B1 (en) | 2011-08-31 | 2013-03-21 | Accenture Global Services Limited | Data quality analysis and management system |
US9122782B2 (en) | 2011-09-28 | 2015-09-01 | International Business Machines Corporation | Apparatus and computer program product for adaptively determining response time distribution of transactional workloads |
US20130185729A1 (en) | 2012-01-13 | 2013-07-18 | Rutgers, The State University Of New Jersey | Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures |
AU2013200233A1 (en) | 2012-01-16 | 2013-08-01 | Tata Consultancy Services Limited | Data quality analysis |
US9460131B2 (en) | 2012-05-04 | 2016-10-04 | International Business Machines Corporation | Data stream quality management for analytic environments |
US9600776B1 (en) * | 2013-11-22 | 2017-03-21 | Groupon, Inc. | Automated adaptive data analysis using dynamic data quality assessment |
US9244809B1 (en) * | 2014-07-15 | 2016-01-26 | International Business Machines Corporation | Validating code of an extract, transform and load (ETL) tool |
-
2012
- 2012-08-21 GB GB1214853.2A patent/GB2505184A/en not_active Withdrawn
-
2013
- 2013-08-08 US US13/962,342 patent/US9514212B2/en not_active Expired - Fee Related
- 2013-08-16 CN CN201310359305.7A patent/CN103632219B/zh active Active
-
2016
- 2016-10-12 US US15/291,105 patent/US9922106B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983194A (zh) * | 2005-12-15 | 2007-06-20 | 国际商业机器公司 | 使用动态确定的前端作业群调度计算机作业的方法和系统 |
CN101017546A (zh) * | 2007-03-12 | 2007-08-15 | 中国建设银行股份有限公司 | 一种用于可分类数据批处理的方法及装置 |
CN102473116A (zh) * | 2009-07-21 | 2012-05-23 | 国际商业机器公司 | 分布式数据处理系统中使用最佳网络拓扑识别的作业调度的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
GB2505184A (en) | 2014-02-26 |
US20170032002A1 (en) | 2017-02-02 |
CN103632219A (zh) | 2014-03-12 |
US9514212B2 (en) | 2016-12-06 |
GB201214853D0 (en) | 2012-10-03 |
US20140059561A1 (en) | 2014-02-27 |
US9922106B2 (en) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103632219B (zh) | 用于重新分配用于检查数据质量的作业的方法和系统 | |
US11847574B2 (en) | Systems and methods for enriching modeling tools and infrastructure with semantics | |
US7747736B2 (en) | Rule and policy promotion within a policy hierarchy | |
US8196100B2 (en) | Content management system for computer software with dynamic traceability between code and design documents | |
US9785899B2 (en) | Configurable resource policies | |
US8214877B1 (en) | System and method for the implementation of policies | |
CN103229143B (zh) | 具有可扩展和可定制的计算引擎的面向网络服务的架构内的服务提供者 | |
US20150199378A1 (en) | Method and apparatus for realizing a dynamically typed file or object system enabling a user to perform calculations over the fields associated with the files or objects in the system | |
BR102012008540B1 (pt) | método e sistema de priorização e designação de scripts de teste para uma plataforma de testes integrada. | |
US20100293538A1 (en) | Dynamic program updating in a continuation based runtime | |
ITMI20130390U1 (it) | Metodi e apparato per generatori di endpoint dinamici, individuazione e mediazione (brokerage) di oggetti remoti dinamici | |
US20160246699A1 (en) | Verification of product release requirements | |
CN108037919A (zh) | 一种基于web的可视化大数据工作流配置方法及系统 | |
CN102542382A (zh) | 业务规则的管理方法和装置 | |
US8949785B2 (en) | Custom compound types in declarative programs | |
CN108369675A (zh) | 用于案例分配的技术 | |
CN110196809A (zh) | 接口测试方法及装置 | |
TW201011584A (en) | Data schema transformation using declarative transformations | |
CN104102971B (zh) | 管理具有对象循环的模型 | |
Williams et al. | Change Risk Assessment: Understanding Risks Involved in Changing Software Requirements. | |
US20120179711A1 (en) | System and Method for Accessing a Database Including Data Abstraction Layer and Request Table Processing | |
Ogheneovo | Software Maintenance and Evolution: The Implication for Software Development | |
CN107924502A (zh) | 多阶段高效能业务流程管理引擎 | |
US9154380B2 (en) | Rules based fetching of operating platform status | |
Akram et al. | A Change Management Framework for Service Oriented Enterprises. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |