DE102013215529B4 - Remapping jobs to check data quality - Google Patents
Remapping jobs to check data quality Download PDFInfo
- Publication number
- DE102013215529B4 DE102013215529B4 DE102013215529.8A DE102013215529A DE102013215529B4 DE 102013215529 B4 DE102013215529 B4 DE 102013215529B4 DE 102013215529 A DE102013215529 A DE 102013215529A DE 102013215529 B4 DE102013215529 B4 DE 102013215529B4
- Authority
- DE
- Germany
- Prior art keywords
- job
- jobs
- data
- database
- copy
- 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
Images
Classifications
-
- 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
- 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
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Abstract
Von einem Computer ausgeführtes Verfahren, um die Datenqualität von Daten eines Anwendungsprogramms (366) durch ein Datenqualitätsmanagementsystem (310) zu prüfen, wobei das Verfahren aufweist:- Ausführen (102) von mindestens einem Job einer Vielzahl von Jobs (332) durch das Datenqualitätsmanagementsystem, wobei der mindestens eine Job so ausgelegt ist, dass er die Daten auf Übereinstimmung mit einem oder mehreren Qualitätskriterien auswertet,• wobei jeder der Jobs zu einem Job-Satz einer Vielzahl von Job-Sätzen (334, 336, 338) gehört, wobei die Vielzahl der Job-Sätze mindestens einen ersten Job-Satz (334) und einen zweiten Job-Satz (336) aufweist;• wobei jeder Job-Satz der Job-Sätze eine Kategorie eines Laufzeitverhaltens darstellt, wobei die in jedem Job-Satz enthaltenen Jobs entsprechend ihres jeweiligen Laufzeitverhaltens in die Laufzeitverhaltenskategorien eingeteilt wurden;• wobei die Ausführung der in dem ersten Job-Satz enthaltenen Jobs von einer Nachricht (MS) ausgelöst wird, die das Datenqualitätsmanagementsystem von dem Anwendungsprogramm empfängt;• wobei die Ausführung der in dem zweiten Job-Satz enthaltenen Jobs von einem Scheduler (314) des Datenqualitätsmanagementsystems ausgelöst wird;- Überwachen des Laufzeitverhaltens von dem mindestens einen ausgeführten Job durch das Datenqualitätsmanagementsystem, um ein aktuelles Laufzeitverhalten des Jobs festzustellen;- Neuklassifizieren des mindestens einen überwachten Jobs, indem der Job demjenigen Job-Satz neu zugeordnet wird, der das festgestellte aktuelle Laufzeitverhalten darstellt.Method executed by a computer to check the data quality of data of an application program (366) by a data quality management system (310), the method comprising:- executing (102) at least one job of a plurality of jobs (332) by the data quality management system, wherein the at least one job is designed to evaluate the data for compliance with one or more quality criteria,• wherein each of the jobs belongs to a job set of a plurality of job sets (334, 336, 338), the plurality the job sets comprises at least a first job set (334) and a second job set (336);• wherein each job set of the job sets represents a category of run-time behavior, the jobs contained in each job set corresponding their respective runtime behavior have been divided into the runtime behavior categories;• the execution of the jobs contained in the first job set being triggered by a message (MS), which the data quality management system receives from the application program;• wherein the execution of the jobs contained in the second job set is triggered by a scheduler (314) of the data quality management system;- the data quality management system monitors the runtime behavior of the at least one executed job in order to obtain a current runtime behavior of the job;- reclassifying the at least one monitored job by reassigning the job to the job set that represents the detected current runtime behavior.
Description
Bereich der Erfindungscope of the invention
Die Erfindung betrifft den Bereich der Datenverarbeitung und, genauer gesagt, den Bereich des Prüfens der Datenqualität.The invention relates to the field of data processing and more specifically to the field of data quality testing.
Hintergrundbackground
Systeme zur Unternehmensressourcenplanung (Enterprise Resource Planning (ERP)) und zugehörige Datenverwaltungssysteme sind für Unternehmen aus den unterschiedlichsten Industriezweigen und mit der unterschiedlichsten technologischen Ausrichtung von entscheidender Bedeutung. Eine nicht unerhebliche Menge Geld und Zeit wird in die Vermeidung und Beseitigung von fehlerhaften Daten in ERP-Systemen gesteckt, da fehlerhafte Daten zu fehlerhaften Herstellungsprozessen und dem Verlust von Daten führen können und äußerst wichtige Datensätze unbrauchbar machen können.Enterprise resource planning (ERP) systems and associated data management systems are critical to organizations across a wide range of industries and technology verticals. A significant amount of money and time is invested in preventing and eliminating erroneous data in ERP systems, since erroneous data can lead to faulty manufacturing processes and data loss, rendering extremely important data sets unusable.
Manche ERP-Systeme sind bereits mit einigen integrierten Modulen ausgestattet, um die Datenqualität sicherzustellen. Oftmals werden alternativ oder zusätzlich zu den integrierten Modulen externe Systeme eingesetzt, um die Datenqualität zu gewährleisten und aufrechtzuerhalten. Ein Problem in Verbindung mit der Verwendung von externen Systemen zur Prüfung der Datenqualität besteht darin, dass zusätzlicher Zeitaufwand notwendig ist, um das externe System an die semantische Struktur der Geschäftsobjekte des ERP-Systems oder gar an die Datenstrukturen anzupassen, die zur Speicherung der Geschäftsobjekte verwendet werden, damit es dem externen System möglich ist, die Qualitätsprüfungen durchzuführen. Folglich kann sowohl die Durchführung als auch die Vorbereitung von Prüfungen der Datenqualität im Zusammenhang mit einem ERP-System zeitaufwendig sein.Some ERP systems already come with some built-in modules to ensure data quality. External systems are often used as an alternative or in addition to the integrated modules to ensure and maintain data quality. A problem associated with using external systems to check data quality is that additional time is required to adapt the external system to the semantic structure of the business objects of the ERP system or even to the data structures used to store the business objects so that it is possible for the external system to carry out the quality checks. As a result, both performing and preparing for data quality checks associated with an ERP system can be time-consuming.
Ein weiteres Problem ist, dass Prüfungen der Datenqualität, insbesondere globale Prüfungen der Datenqualität, welche die Verarbeitung einer Vielzahl von Geschäftsobjekten aus einer Datenquelle oder aus einer Vielzahl von verteilten Datenquellen beinhalten, äußerst zeitaufwendig sein können. Eine laufende Datenqualitätsprüfung kann somit einen Engpass für die Leistungsfähigkeit eines ERP-Systems darstellen. Ein weiteres Problem besteht darin, dass das Laufzeitverhalten der Qualitätsprüfungen in Abhängigkeit von den ausgewerteten Daten und/oder der Antwortzeit von externen Ressourcen, welche gewisse Teile der auszuwertenden Daten des ERP-Systems aufweisen, stark und unvorhersehbar variieren kann.Another problem is that data quality reviews, particularly global data quality reviews that involve processing multiple business objects from one data source or from multiple distributed data sources, can be extremely time consuming. An ongoing data quality check can therefore represent a bottleneck for the performance of an ERP system. Another problem is that the runtime behavior of the quality checks can vary greatly and unpredictably depending on the evaluated data and/or the response time of external resources which contain certain parts of the ERP system data to be evaluated.
Kurzdarstellung der ErfindungSummary of the Invention
Es ist eine Aufgabe von Ausführungsformen der Erfindung, ein verbessertes, von einem Computer ausgeführtes Verfahren, einen von einem Computer lesbaren Datenträger und ein Computersystem vorzusehen, um die Datenqualität von Daten eines Anwendungsprogramms, beispielsweise eines ERP-Systems, durch ein Datenqualitätsmanagementsystem (data quality management system (DQMS)) zu prüfen. Die Aufgabe wird durch die Merkmale der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen angegeben. Soweit nicht ausdrücklich anders angegeben, können Ausführungsformen der Erfindung frei miteinander kombiniert werden.It is an object of embodiments of the invention to provide an improved computer-implemented method, computer-readable data carrier and computer system for measuring the data quality of data of an application program, for example an ERP system, by a data quality management system (data quality management system (DQMS)). The object is solved by the features of the independent claims. Preferred embodiments are given in the dependent claims. Unless expressly stated otherwise, embodiments of the invention can be freely combined with one another.
In der hier verwendeten Weise ist ein „Anwendungsprogramm“ ein beliebiges, funktional zusammenhängendes Stück Programmlogik, das in der Lage ist, ein oder mehrere Geschäftsobjekte zu verarbeiten, d.h., zu erstellen, zu ändern und/oder zu löschen. In der hier verwendeten Weise bezieht sich ein „Geschäftsobjekt“ (business object (BO)) auf ein Datenobjekt, z.B. ein Idoc-Objekt, das gemäß einem „Geschäftsobjektschema“ angegeben wird. In der hier verwendeten Weise wird der Begriff „Geschäftsobjekt“ verwendet, um auf Instanzen eines Geschäftsobjekts zu verweisen, die in dem Geschäftsobjektschema angegeben sind. Ein Geschäftsobjektschema ist eine Beschreibung der semantischen Struktur von Geschäftsobjekten und optional ihrer untereinander bestehenden Wechselbeziehung. Ein Geschäftsobjektschema kann zum Beispiel eine Beschreibung der Geschäftsobjekttypen „Analyse-Einheit“ und „biologisches Muster“ aufweisen, wobei die „Analyse-Einheit“ dem Schema entsprechend Attribute wie „Musterkapazität“, „Status“, „Einheitentyp“ oder dergleichen und der Geschäftsobjekttyp „biologisches Muster“ Attribute wie „Mustertyp“, „Alter“, „Patientenkennung“ oder dergleichen aufweisen kann. Jede Instanz eines BO wird entsprechend einer jeweiligen BO-Definition erzeugt, die in dem BO-Schema angegeben ist.As used herein, an "application program" is any functionally coherent piece of program logic capable of manipulating, i.e., creating, modifying and/or deleting, one or more business objects. As used herein, a "business object" (BO) refers to a data object, such as an Idoc object, specified according to a "business object schema". As used herein, the term "business object" is used to refer to instances of a business object that are specified in the business object schema. A business object schema is a description of the semantic structure of business objects and, optionally, their interrelationship. For example, a business object schema may have a description of the business object types "analysis entity" and "biological sample", where the "analysis entity" has attributes according to the schema such as "sample capacity", "status", "unit type" or the like and the business object type " "biological pattern" may have attributes such as "pattern type", "age", "patient identifier" or the like. Each instance of a BO is created according to a respective BO definition given in the BO schema.
In der hier verwendeten Weise ist ein „Job“ eine Arbeitseinheit, die von einem Datenverarbeitungssystem ausgeführt wird. In Abhängigkeit von der Ausführungsform kann es sich bei einem Job um einen kompilierten, ausführbaren Binärcode, z.B. einen Bytecode, oder um auswertbaren Programmcode handeln. In der hier verwendeten Weise bezieht sich ein „Laufzeitverhalten“ auf Merkmale des Verhaltens eines ausgeführten Jobs. In der hier verwendeten Weise ist eine „Regel“ ein beliebiges Stück Software-Code, das einen entsprechenden Job angibt und von einem Programmierer geändert werden kann. Bei einer Regel kann es sich zum Beispiel um eine Java- oder C++-Klasse, um funktionstragende Teile der Java- oder C++-Klasse oder um ein PHP-Skript oder dergleichen handeln.As used herein, a "job" is a unit of work performed by a data processing system. Depending on the embodiment, a job may be a kom compiled, executable binary code, e.g. a byte code, or program code that can be evaluated. As used herein, "run-time behavior" refers to characteristics of the behavior of an executed job. As used herein, a "rule" is any piece of software code that specifies a job and can be modified by a programmer. A rule can be, for example, a Java or C++ class, functional parts of the Java or C++ class, or a PHP script or the like.
In der hier verwendeten Weise ist ein „Datenqualitätsmanagementsystem“ (DQMS) ein Anwendungsprogramm, z.B. ein ERP-System, das zur Verwaltung von Daten entwickelt wurde und integrierte oder zusätzliche Funktionen aufweist, um einige Qualitätsprüfungen an den verwalteten Daten durchzuführen. In der hier verwendeten Weise bezieht sich die Sicherstellung und die Aufrechterhaltung der „Datenqualität“ auf die Aufgabe, die Konsistenz von Daten sicherzustellen und aufrechtzuerhalten, auf die Vermeidung oder die Entfernung von redundanten Dateneinträgen, auf die Sicherstellung, dass Datenwerte in einem konsistenten Datenformat gespeichert werden (z.B. dass alle Datumsangaben in einem konsistenten Datenformat gespeichert werden), auf die Sicherstellung, dass die gespeicherten Daten semantisch oder syntaktisch korrekt sind, oder dergleichen.As used herein, a "data quality management system" (DQMS) is an application program, e.g. an ERP system, designed to manage data and has built-in or additional functionality to perform some quality checks on the managed data. As used herein, ensuring and maintaining "data quality" refers to the task of ensuring and maintaining the consistency of data, avoiding or removing redundant data entries, ensuring that data values are stored in a consistent data format (e.g. that all dates are stored in a consistent data format), to ensuring that the data stored is semantically or syntactically correct, or the like.
In der hier verwendeten Weise ist eine „Transaktion“ eine von einem Anwendungsprogramm an einer Datenbank durchgeführte Arbeitseinheit, die unabhängig von anderen Transaktionen zusammenhängend ausgeführt wird. Eine Transaktion kann zum Beispiel die Übergabe eines Befehls an eine Datenbank aufweisen, die mit dem Anwendungsprogramm betriebsfähig verbunden ist, um ein BO oder beliebige seiner Attributwerte in der Datenbank zu speichern oder zu ändern oder um das BO oder Attribute aus der Datenbank zu löschen. Vorzugsweise folgt eine Transaktion einem „Alles-oder-nichts“-Prinzip gemäß dem ACID-Konzept (atomar, konsistent, isoliert und dauerhaft).As used herein, a "transaction" is a unit of work performed by an application program on a database that is contiguously executed independently of other transactions. A transaction may include, for example, the submission of a command to a database operably linked to the application program to store or change a BO or any of its attribute values in the database, or to delete the BO or attributes from the database. Preferably, a transaction follows an "all or nothing" principle according to the ACID concept (atomic, consistent, isolated and durable).
In der hier verwendeten Weise ist eine „proaktive Prüfung“ eine Prüfung der Datenqualität, die durchgeführt wird, bevor eine Transaktion festgeschrieben wird, um sicherzustellen, dass die Transaktion nicht festgeschrieben wird, falls die in der Transaktion zu übertragenden Daten die von der proaktiven Prüfung ausgewerteten Qualitätskriterien nicht erfüllen.As used herein, a "proactive check" is a data quality check performed before a transaction is committed to ensure that the transaction will not commit if the data to be transferred in the transaction is that evaluated by the proactive check quality criteria not met.
In der hier verwendeten Weise ist eine „reaktive Prüfung“ eine Prüfung der Datenqualität, die durchgeführt wird, nachdem eine Transaktion von dem Anwendungsprogramm festgeschrieben wurde, um sicherzustellen, dass in dem Fall, in dem die in der Transaktion übertragenen Daten nicht die Qualitätskriterien erfüllen, welche von der reaktiven Prüfung ausgewertet wurden, diese Daten gekennzeichnet werden. In Abhängigkeit von der reaktiven Prüfung und dem festgestellten Qualitätsmangel können die fehlerhaften oder qualitativ geringwertigen Daten automatisch entfernt, korrigiert oder gemeldet werden.As used herein, a "reactive check" is a data quality check performed after a transaction has been committed by the application program to ensure that in the event the data transferred in the transaction does not meet the quality criteria, which were evaluated by the reactive check, this data is marked. Depending on the reactive check and the detected quality defect, the erroneous or low-quality data can be automatically removed, corrected or reported.
In der hier verwendeten Weise ist eine ‚externe Ressource‘ eine beliebige Datenressource, die sich außerhalb des Datenqualitätsmanagementsystems befindet und einige Daten aufweist, die zusätzlich zu den Daten eines BO eines Anwendungsprogramms ausgewertet werden müssen, um die Datenqualität von mindestens einigen der BOs zu prüfen. Die externe Ressource kann ein Computersystem oder eine Datenbank sein, die mit dem Datenqualitätsmanagementsystem über ein Netzwerk, z.B. das Internet oder ein Intranet, verbunden ist.As used here, an 'external resource' is any data resource that is outside of the data quality management system and has some data that needs to be evaluated in addition to the data of an application program BO to check the data quality of at least some of the BOs. The external resource can be a computer system or database connected to the data quality management system over a network, e.g., the Internet or an intranet.
In der hier verwendeten Weise bezieht sich eine „Datenbank“ auf eine beliebige Art eines Datenspeichers, z.B. einen Satz von Dateiverzeichnissen, XML-Dateien oder vorzugsweise auf eine relationale oder spaltenorientierte Datenbank.As used herein, a "database" refers to any type of data store, e.g., a set of file directories, XML files, or preferably a relational or columnar database.
In der hier verwendeten Weise ist ein „Extract-transfer-load“-(ETL-) beziehungsweise „Entnehmen-übertragen-laden“-Job ein beliebiger Job, der in der Lage ist, dem Anwendungsprogramm BO-Instanzen oder Teile von BO-Instanzen von einem oder mehreren BOs zu entnehmen, die Daten in ein Datenformat zu überführen, das von dem Datenqualitätsmanagementsystem verarbeitet werden kann, und die transformierten Daten in einer Datenbank zu speichern, die mit dem Datenqualitätsmanagementsystem betriebsfähig verbunden ist. In der hier verwendeten Weise ist ein ETL-Job, der auf einer „BO-Ebene“ Operationen durchführt, ein ETL-Job, der die zu übertragenden Daten nicht über eine Schnittstelle der Datenbank, in der die BOs physisch gespeichert sind, sondern über eine Anwendungs-API abfragt, welche BOs und entsprechenden Attributen entspricht, die in dem BO-Schema des Anwendungsprogramms angegeben sind. Folglich arbeitet ein ETL-Job, der auf einer „BO-Ebene“ Operationen durchführt, auf der Grundlage der semantischen und nicht der syntaktischen Struktur eines Datenobjekts.As used herein, an extract-transfer-load (ETL) job is any job capable of delivering BO instances or portions of BO instances to the application program from one or more BOs, transforming the data into a data format that can be processed by the data quality management system, and storing the transformed data in a database operably connected to the data quality management system. In the manner used here, an ETL job that performs operations at a "BO level" is an ETL job that does not transfer the data to be transferred via an interface of the database in which the BOs are physically stored, but via a Application API queries which corresponds to BOs and corresponding attributes specified in the application program's BO schema. Consequently, an ETL job that performs operations at a "BO level" operates on the basis of the semantic and not the syntactic structure of a data object.
In der hier verwendeten Weise ist eine „Legacy“-Schnittstelle eine bereits vorhandene Schnittstelle einer Software-Anwendung, z.B. eines ERP-Systems. Eine Legacy-Schnittstelle wurde möglicherweise nicht zum Zweck des Datenaustauschs mit einem DQMS, sondern vielmehr beispielsweise für Zwecke entwickelt, die nicht in Verbindung mit Prüfungen der Datenqualität stehen, z.B. zum Zweck des Austauschs von Daten mit anderen Anwendungen oder zur Durchführung von Datenbanktransaktionen durch das Anwendungsprogramm.As used here, a "legacy" interface is an already existing interface of a software application, eg an ERP system. A legacy interface may not have been developed for the purpose of exchanging data with a DQMS, but rather, for example, for purposes unrelated to data quality checks, e.g. for the purpose of exchanging data with other applications or for the application program to perform database transactions .
Ein „Attribut“, das auch als „Parameter“ bezeichnet wird, ist ein Merkmal, das eine bestimmte Entität definiert oder beschreibt. Beispiele für einen Parameter sind „Farbe“, „Höhe“, Adresse“ oder dergleichen.An "attribute," also known as a "parameter," is a characteristic that defines or describes a particular entity. Examples of a parameter are "color", "height", "address" or the like.
In einem Aspekt betrifft die Erfindung ein von einem Computer ausgeführtes Verfahren, um die Datenqualität von Daten eines Anwendungsprogramms durch ein Datenqualitätsmanagementsystem (DQMS) zu prüfen. Das Verfahren weist das Ausführen von mindestens einem Job einer Vielzahl von Jobs durch das DQMS auf. Der mindestens eine Job ist so ausgelegt, dass er die Daten auf Übereinstimmung mit einem oder mehreren Qualitätskriterien auswertet. Jeder der Jobs gehört zu einem Job-Satz einer Vielzahl von Job-Sätzen, wobei die Vielzahl der Job-Sätze mindestens einen ersten Job-Satz und einen zweiten Job-Satz aufweist. Jeder der Job-Sätze stellt eine Kategorie eines Laufzeitverhaltens dar. Die in jedem Job-Satz enthaltenen Jobs wurden entsprechend ihres jeweiligen Laufzeitverhaltens in die Laufzeitverhaltenskategorien eingeteilt. Die Ausführung der in dem ersten Job-Satz enthaltenen Jobs wird von einer Nachricht ausgelöst, die das Datenqualitätsmanagementsystem von dem Anwendungsprogramm empfängt. Die Ausführung der in dem zweiten Job-Satz enthaltenen Jobs wird von einem Terminierungsprogramm (Scheduler) des DQMS ausgelöst. Das Verfahren weist des Weiteren die Überwachung des Laufzeitverhaltens von dem mindestens einen ausgeführten Job durch das Datenqualitätsmanagementsystem auf, um ein aktuelles Laufzeitverhalten des Jobs festzustellen; und die Neuklassifizierung des mindestens einen überwachten Jobs, indem der Job demjenigen Job-Satz neu zugeordnet wird, welcher das festgestellte aktuelle Laufzeitverhalten darstellt. Vorzugsweise wird die Neuklassifizierung automatisch durchgeführt. Manchen Ausführungsformen entsprechend kann die Neuklassifizierung halbautomatisch durchgeführt werden und die an einen Benutzer gerichtete Aufforderung aufweisen, einer automatisch vorgeschlagenen Neuklassifizierung zuzustimmen. Die Merkmale können vorteilhaft sein, da in Abhängigkeit vom Laufzeitverhalten eines die Datenqualität prüfenden Jobs der Auslösemechanismus, der die Ausführung des Jobs einleitet, geändert werden kann. Jobs, bei denen festgestellt wurde, dass sie in einem verhältnismäßig kurzen Zeitraum ausgeführt werden können, können als Reaktion auf eine Nachricht, d.h. ereignisgesteuert, ausgeführt werden, Jobs, die ein anderes Laufzeitverhalten aufweisen, z.B. eine längere Ausführungszeit, können an einen Zeitplan gebunden ausgeführt werden. Dies kann im Zusammenhang mit einem DQMS besonders vorteilhaft sein, da die Terminierung einer bestimmten Art von Datenqualitätsprüfungen, z.B. Prüfungen mit einer langen Ausführungszeit, Prüfungen, die externe Datenressourcen erforderlich machen, Prüfungen, die ein Datenprotokoll auswerten usw., von einem Scheduler dann angestoßen werden kann, wenn die Verarbeitungslast gering ist, wenn der Netzwerkverkehr zu den externen Ressourcen gering ist und/oder wenn nur wenige Ereignisse die Übergabe von Nachrichten bewirken, die die Ausführung der Jobs in dem ersten Job-Satz auslösen. Das Anwendungsprogramm kann auch als eine externe Ressource betrachtet werden, z.B., wenn ein oder mehrere BOs des Anwendungsprogramms ausgewertet werden müssen, die noch nicht in das Datenqualitätsmanagementsystem importiert worden sind. Die Klassifizierung der Jobs in Abhängigkeit von einem überwachten statt einem vorher festgelegten und geschätzten Laufzeitverhalten kann im Zusammenhang mit einem DQMS vorteilhaft sein, da das tatsächliche Laufzeitverhalten einer Datenqualitätsprüfung von der Art der gespeicherten Daten abhängen kann und somit möglicherweise nicht vorhersagbar ist. Folglich können die Merkmale für ein äußerst flexibles DQMS sorgen, das in der Lage ist, Datenprüfungen in Abhängigkeit von ihrem tatsächlichen Laufzeitverhalten neu zu klassifizieren, wobei gleichzeitig auch der Zeit- und Arbeitsaufwand des Bedieners für die Verwaltung des DQMS und für die Verwaltung der Jobausführung verringert wird, da sowohl die nachrichtengesteuerten als auch die vom Scheduler gesteuerten Jobs vollautomatisch ausgeführt werden können.In one aspect, the invention relates to a computer-executed method for checking the data quality of data from an application program using a data quality management system (DQMS). The method includes the DQMS executing at least one of a plurality of jobs. The at least one job is designed to evaluate the data for compliance with one or more quality criteria. Each of the jobs belongs to one of a plurality of job sets, the plurality of job sets including at least a first job set and a second job set. Each of the job sets represents a category of run-time behavior. The jobs contained in each job set have been classified into the run-time behavior categories according to their respective run-time behavior. The execution of the jobs contained in the first job set is triggered by a message that the data quality management system receives from the application program. The execution of the jobs contained in the second job record is triggered by a scheduling program (scheduler) of the DQMS. The method further includes the data quality management system monitoring the runtime behavior of the at least one executed job to determine a current runtime behavior of the job; and reclassifying the at least one monitored job by reassigning the job to the job set that represents the determined current runtime behavior. Preferably, the reclassification is performed automatically. According to some embodiments, the reclassification may be performed semi-automatically and may include prompting a user to consent to an automatically proposed reclassification. The features can be beneficial because, depending on the runtime behavior of a data quality checking job, the triggering mechanism that initiates execution of the job can be changed. Jobs that have been determined to be able to run in a relatively short period of time can be run in response to a message, i.e. event-driven, jobs that have different runtime behavior, e.g. a longer run time, can be run tied to a schedule will. This can be particularly advantageous in the context of a DQMS, since the scheduling of a certain type of data quality check, e.g. checks with a long execution time, checks that require external data resources, checks that evaluate a data log, etc., are then triggered by a scheduler when the processing load is light, when network traffic to the external resources is light, and/or when only a few events cause messages to be submitted that trigger the execution of the jobs in the first job set. The application program can also be considered as an external resource, e.g. if one or more BOs of the application program have to be evaluated that have not yet been imported into the data quality management system. The classification of the jobs depending on a monitored rather than a previously determined and estimated runtime behavior can be advantageous in connection with a DQMS, since the actual runtime behavior of a data quality check can depend on the type of data stored and may therefore not be predictable. Consequently, the features can provide a highly flexible DQMS capable of reclassifying data checks depending on their actual run-time behavior while also reducing operator time and effort in managing the DQMS and managing job execution because both the message-controlled jobs and the jobs controlled by the scheduler can be executed fully automatically.
Gemäß Ausführungsformen wird die Nachricht durch das DQMS von dem Anwendungsprogramm empfangen, nachdem das Anwendungsprogramm eine Datenbanktransaktion zur Speicherung der Daten in einer ersten Datenbank durchgeführt hat, welche mit dem Anwendungsprogramm betriebsfähig verbunden ist. Die Nachricht weist mindestens einen Teil der Daten auf, deren Qualität ausgewertet werden soll, z.B. bestimmte Daten, die angeben, welche der Attribute eines BO in Verbindung mit dem geänderten Attributwert geändert werden sollen. Die Transaktion wird angehalten, bis das Anwendungsprogramm eine Antwort von dem DQMS empfängt, die angibt, dass die Daten die Qualitätskriterien erfüllen, welche von einem oder mehreren der Jobs ausgewertet wurden. Wenn die Antwort angibt, dass die Kriterien nicht erfüllt werden, wird die Transaktion abgebrochen oder ein Benutzer wird aufgefordert, zu entscheiden, ob die Transaktion dennoch durchgeführt werden soll. Alternativ können dem Benutzer Mittel an die Hand gegeben werden, um die Transaktion mit geänderten Transaktionsdaten erneut auszuführen. Die Merkmale können vorteilhaft sein, da sie es dem DQMS ermöglichen können, die Ausführung von Jobs, die in bestimmten Job-Sätzen, z.B. in dem ersten Job-Satz, enthalten sind, transaktionsgesteuert und proaktiv auszulösen. Das bedeutet, dass die Transaktion anhält, bis die transaktionsgesteuerten Prüfungen der Datenqualität, die in manchen Jobs des ersten Job-Satzes angegeben sind, abgeschlossen sind und eine Antwort zurückgeschickt haben, die angibt, dass die Daten die ausgewerteten Qualitätskriterien erfüllen. Andere Prüfungen der Datenqualität, z.B. Prüfungen, die von den Jobs in dem zweiten Job-Satz ausgeführt und von einem Scheduler ausgelöst werden, werden nicht als Reaktion auf die Transaktion ausgeführt. Somit muss das Anwendungsprogramm nicht warten, bis die Jobs abgeschlossen sind, und Engpässe, die die Ausführung des Anwendungsprogramms verlangsamen, können vermieden werden.According to embodiments, the message is received by the DQMS from the application program after the application program has performed a database transaction for storing the data in a first database operably connected to the application program. The message includes at least part of the data whose quality is to be evaluated, eg certain data indicating which of the attributes of a BO are to be changed in connection with the changed attribute value. The transaction is suspended until the application program receives a response from the DQMS indicating that the data meets the quality criteria evaluated by one or more of the jobs. If the response indicates that the criteria are not met, the transaction is aborted or a user is prompted to decide whether to proceed with the transaction anyway. Alternatively, the user may be provided with a means to change the Trans Re-execute action with changed transaction data. The features can be advantageous because they can enable the DQMS to trigger the execution of jobs contained in certain job sets, eg in the first job set, in a transaction-controlled and proactive manner. This means that the transaction stalls until the transaction-driven data quality checks specified in some jobs of the first job set have completed and returned a response indicating that the data meets the evaluated quality criteria. Other data quality checks, such as checks performed by the jobs in the second job set and triggered by a scheduler, are not performed in response to the transaction. Thus, the application program does not have to wait for the jobs to complete, and bottlenecks that slow down the execution of the application program can be avoided.
Gemäß Ausführungsformen weisen die Job-Sätze des Weiteren einen dritten Job-Satz auf. Die Ausführung von Jobs, die in dem dritten Job-Satz enthalten sind, wird von dem Scheduler regelmäßig und darüber hinaus nach dem Empfang einer Nachricht ausgelöst, welche von dem Anwendungsprogramm nach einer transaktionsbasierten Änderung von einem der Geschäftsobjekte, die dem Job zugewiesen sind, gesendet wird. Die Ausführung der Jobs des zweiten Job-Satzes wird einzig und allein von dem Scheduler regelmäßig ausgelöst. Der Scheduler kann die Ausführung der Jobs in dem dritten Job-Satz gemäß einem anderen Schema (z.B. häufiger) als in dem zweiten Job-Satz auslösen. Die Verwendung eines dritten Job-Satzes ist jedoch optional. Jeder beliebige der Jobs, deren überwachte Ausführungszeit einen ersten Zeit-Schwellwert unterschreitet oder gleich einem ersten Zeit-Schwellwert ist, wird als ein Job klassifiziert, der zu dem ersten Job-Satz oder zu dem dritten Job-Satz gehört. Jeder beliebige der Jobs, deren überwachte Ausführungszeit den ersten Zeit-Schwellwert überschreitet, wird als ein Job klassifiziert, der zu dem zweiten Job-Satz gehört. Die Merkmale können vorteilhaft sein, da sie für eine äußerst differenzierte Verwaltung von Jobs, die Daten prüfen, sorgen. Falls ein bestimmter Job, der eine Prüfung der Datenqualität durchführt und zuvor aufgrund dessen, dass er zu dem ersten Job-Satz gehört, als ein proaktiver Job mit einer kurzen Ausführungszeit ausgeführt worden ist, überwacht und als ein Job mit einer langen Ausführungszeit festgestellt wird, z.B. aufgrund einer Änderung bei den zugrunde liegenden Datensätzen oder aufgrund einer Änderung bei der Antwortzeit von einigen zusätzlichen internen oder externen Datenressourcen, wird sein Auslösemechanismus durch eine Neuklassifizierung des Jobs und eine Neuzuordnung des Jobs zu beispielsweise dem zweiten Job-Satz zwangsläufig geändert. Als Folge der Neuzuordnung ist der Job nun kein von einer Transaktion ausgelöster, proaktiver, Daten prüfender Job, sondern vielmehr ein an einen Zeitplan gebundener, reaktiver, Daten prüfender Job. Folglich braucht der Bediener keine wie auch immer gearteten Eventualitäten zu berücksichtigen, die sich auf die Laufzeit eines Jobs auswirken können, um anzugeben, ob der Job als ein proaktiver oder als ein reaktiver Job ausgeführt werden soll. Bei Verwendung von Ausführungsformen der Erfindung wird sich der Bediener gegebenenfalls eher auf die automatische, in Abhängigkeit von dem überwachten Laufzeitverhalten erfolgende Neuklassifizierung der Jobs verlassen, die sich ebenfalls auf den Auslösemechanismus (transaktionsbasiert oder an einen Zeitplan gebunden) zum Abruf des jeweiligen Jobs auswirken kann. Dies kann besonders vorteilhaft in einem DQMS sein, in dem ein transaktionsgesteuerter, proaktiver Job, der mehr Zeit in Anspruch nimmt als erwartet, die Anwendung deutlich verlangsamen kann, da die Transaktion bis zum Empfang einer Antwort angehalten wird. In Abhängigkeit von der Ausführungsform kann der erste Zeit-Schwellwert im Bereich von einer oder mehreren Minuten, bevorzugt unter 30 Sekunden und vorzugsweise sogar unter 10 Sekunden liegen, um eine Leistungsbeeinträchtigung einer Benutzerinteraktion zu vermeiden.According to embodiments, the job sets further include a third job set. Execution of jobs included in the third job set is periodically and additionally triggered by the scheduler upon receipt of a message sent by the application program after a transaction-based change of one of the business objects assigned to the job becomes. The execution of the jobs of the second job set is regularly triggered solely by the scheduler. The scheduler can trigger the execution of the jobs in the third job set according to a different scheme (e.g. more frequently) than in the second job set. However, using a third job set is optional. Any of the jobs whose monitored execution time is less than or equal to a first time threshold is classified as a job belonging to the first job set or the third job set. Any of the jobs whose monitored execution time exceeds the first time threshold is classified as a job belonging to the second job set. The features can be beneficial as they provide highly granular management of jobs that inspect data. If a particular job that performs a data quality check and has previously been executed as a proactive job with a short execution time due to belonging to the first job set is monitored and determined as a job with a long execution time, e.g. due to a change in the underlying datasets or due to a change in the response time of some additional internal or external data resources, its triggering mechanism is inevitably changed by reclassifying the job and reassigning the job to, for example, the second job set. As a result of the remapping, the job is now not a transaction-triggered, proactive, data-checking job, but rather a scheduled, reactive, data-checking job. Consequently, the operator does not need to consider any contingencies that may affect the runtime of a job in order to specify whether the job should be run as a proactive or reactive job. Using embodiments of the invention, the operator may be more likely to rely on the automatic reclassification of jobs based on monitored runtime behavior, which may also affect the triggering mechanism (transactional or scheduled) for retrieving each job. This can be particularly beneficial in a DQMS, where a transaction-driven, proactive job that takes longer than expected can significantly slow down the application as the transaction stalls until a response is received. Depending on the embodiment, the first time threshold may be in the range of one or more minutes, preferably under 30 seconds, and preferably even under 10 seconds to avoid degrading the performance of a user interaction.
Gemäß Ausführungsformen sind allen Jobs, die in demselben Job-Satz der Job-Sätze enthalten sind, ein oder mehrere Klassifizierungsmerkmale gemein. Die Neuklassifizierung von dem mindestens einen Job weist die Festlegung eines Werts für eines oder mehrere der Klassifizierungsmerkmale und die Neuklassifizierung des Jobs gemäß den festgelegten Werten der Klassifizierungsmerkmale auf. Das eine oder die mehreren Klassifizierungsmerkmale können ein Wiederholungsparameter sein, der angibt, ob der Job, dem ein entsprechender Parameterwert zugewiesen wurde, regelmäßig ausgeführt werden kann; oder eine Gesamtausführungszeit des Jobs; oder eine Fähigkeit des Jobs, auf eine oder mehrere externe Ressourcen zuzugreifen, um die Qualität der Daten auszuwerten; oder eine beliebige Kombination von zwei oder mehr der Klassifizierungsmerkmale. Dies kann vorteilhaft sein, da eine sehr differenzierte Klassifizierung von Jobs und folglich eine differenzierte Kontrolle über den Job-Auslösemechanismus vorgesehen werden kann. Zum Beispiel kann der Scheduler verschiedene Job-Auslöseschemata für verschiedene Job-Sätze aufweisen. Ein Bediener kann beispielsweise mittels eines einem jeden Job zugewiesenen Wiederholungsparameters oder mittels einer entsprechenden Regel, die den Job codiert, involviert werden, wenn ein bestimmter Job wiederholt oder nicht wiederholt ausgeführt werden soll. Indem man berücksichtigt, ob ein Job Daten von zwei oder mehr BOs auswertet und/oder Daten eines BO in Verbindung mit Daten, die von einer externen Ressource abgerufen werden sollen, auswertet, wird überdies gegebenenfalls eine Klassifizierung von Jobs auf der Grundlage des „Wissens“ möglich, dass der Job zumindest potenziell zeitaufwendig sein könnte, beispielsweise, weil die Möglichkeit besteht, dass eine Netzwerkverbindung zu der externen Ressource langsam ist. Folglich kann jeder Job, der möglicherweise langsam ausgeführt wird, z.B. aufgrund der Auswertung von externen Daten, in beispielsweise den zweiten Job-Satz eingeordnet werden, um zu gewährleisten, dass der Job nicht als ein proaktiver, die Datenqualität prüfender Job ausgeführt wird, der das Anwendungsprogramm dadurch verlangsamen könnte, dass eine Transaktion angehalten wird.According to embodiments, all jobs included in the same job set of job sets have one or more classification features in common. Reclassifying the at least one job comprises setting a value for one or more of the classifiers and reclassifying the job according to the set values of the classifiers. The one or more classification characteristics may be a recurrence parameter indicating whether the job assigned a corresponding parameter value can be run regularly; or a total execution time of the job; or an ability of the job to access one or more external resources to evaluate the quality of the data; or any combination of two or more of the classification features. This can be advantageous since a very fine-grained classification of jobs and consequently a fine-grained control over the job-triggering mechanism can be provided. For example, the scheduler can have different job release schemes for different job sets. For example, an operator may be involved if a particular job is to be repeated or not repeated, by means of a recurrence parameter assigned to each job or by means of a corresponding rule encoding the job. Furthermore, by considering whether a job evaluates data from two or more BOs and/or evaluates data from one BO in conjunction with data to be retrieved from an external resource, a classification of jobs on the Based on "knowing" that the job could be at least potentially time consuming, for example because there is a possibility that a network connection to the external resource is slow. Consequently, any job that may run slowly, e.g. due to the evaluation of external data, can be classified in e.g. the second job set to ensure that the job is not run as a proactive data quality checking job that could slow down the application program by halting a transaction.
In Abhängigkeit von der Ausführungsform können die Werte der Klassifizierungsmerkmale von dem DQMS festgelegt werden, indem Programmcode, der dem Job zugrunde liegt, ausgewertet wird, indem ein Kommentar, z.B. ein Klassifizierungsparameter, des Jobs ausgewertet wird, und/oder indem das Laufzeitverhalten des Jobs in Bezug auf das Klassifizierungsmerkmal überwacht wird. Dass ein Job auf eine externe Ressource zugreift, kann beispielsweise als Kommentar an den Job angefügt oder durch Auswertung von Quellcode des Jobs ermittelt werden. Falls der Zugriff auf die externe Ressource die Ausführungszeit des Jobs verlängert, kann der Job in der Folge neu klassifiziert und beispielsweise in den zweiten Job-Satz verschoben werden. Gemäß Ausführungsformen wird jeder der Jobs von einer entsprechenden Regel codiert. Eine Neuklassifizierung von dem mindestens einen Job weist eine Neuklassifizierung der Regel, die den Job codiert, in einen Regelsatz auf, der die Kategorie des Laufzeitverhaltens des Job-Satzes darstellt, dem der Job zugeordnet ist. Die Merkmale können vorteilhaft sein, da ein Bediener des DQMS leicht erkennen und verstehen kann, welche Art von Regel und welcher entsprechende Job gerade als zu einem bestimmten Job-Satz gehörend klassifiziert werden. Dem Bediener kann auch ermöglicht werden, die Regeln beispielsweise über eine grafische Benutzeroberfläche (GUI) zu ändern und dabei ein paar Klassifizierungsparameter hinzuzufügen oder zu ändern, die von dem DQMS neben dem überwachten Laufzeitverhalten als Klassifizierungsmerkmale verwendet werden können, um einen Job und eine entsprechende Regel zu klassifizieren.Depending on the embodiment, the values of the classification features can be defined by the DQMS by evaluating the program code on which the job is based, by evaluating a comment, e.g. a classification parameter, of the job and/or by evaluating the runtime behavior of the job in Is monitored in relation to the classification feature. The fact that a job accesses an external resource can be added to the job as a comment, for example, or can be determined by evaluating the job's source code. If accessing the external resource increases the execution time of the job, the job can subsequently be reclassified and, for example, moved to the second job set. According to embodiments, each of the jobs is encoded by a corresponding rule. A reclassification of the at least one job includes a reclassification of the rule encoding the job into a rule set that represents the runtime behavior category of the job set with which the job is associated. The features can be advantageous because an operator of the DQMS can easily recognize and understand which type of rule and which corresponding job are currently classified as belonging to a certain job set. The operator can also be allowed to change the rules, for example via a graphical user interface (GUI), adding or changing a few classification parameters that can be used by the DQMS as classification characteristics in addition to the monitored run-time behavior to create a job and a corresponding rule to classify.
Gemäß Ausführungsformen wird mindestens ein weiterer Job der Vielzahl der Jobs so ausgelegt, dass er die Qualitätskriterien an einer Kopie von einem der BOs in Verbindung mit weiteren Daten auswertet, wobei es sich bei den weiteren Daten um eine Kopie von mindestens einem weiteren BO und/oder um Daten handelt, die von einer externen Ressource abgeleitet werden. Die erste Datenbank, aus der ein paar fehlende BOs oder fehlende Attributwerte von BOs importiert werden müssen, um eine Kopie eines entsprechenden BO zu erstellen oder zu aktualisieren, kann gemäß Ausführungsformen ebenfalls als eine externe Ressource betrachtet werden. Gemäß Ausführungsformen kann die Art von Jobs, die Operationen an einem BO in Verbindung mit weiteren Daten durchführt, automatisch ermittelt und in den zweiten Job-Satz eingeordnet werden. Die Merkmale können vorteilhaft sein, da Jobs, bei denen die Gefahr groß ist, dass sie möglicherweise zu Jobs mit einer langen Ausführungszeit werden, beispielsweise weil sie an mehreren BOs oder externen Daten Operationen durchführen, von Anfang an als zu dem zweiten Job-Satz gehörende Jobs klassifiziert werden können.According to embodiments, at least one other job of the plurality of jobs is designed to evaluate the quality criteria on a copy of one of the BOs in conjunction with other data, the other data being a copy of at least one other BO and/or is data derived from an external resource. The first database from which a few missing BOs or missing attribute values of BOs have to be imported in order to create or update a copy of a corresponding BO can also be considered as an external resource according to embodiments. According to embodiments, the type of jobs that perform operations on a BO in connection with other data can be automatically determined and classified into the second job set. The features can be advantageous because jobs that are at high risk of possibly becoming long-running jobs, for example because they operate on multiple BOs or external data, are considered to belong to the second job set from the start Jobs can be classified.
Gemäß Ausführungsformen handelt es sich bei den Daten, deren Qualität ausgewertet wird, um Anwendungsdaten und sie weisen eine oder mehrere Kopien von BOs auf, die von einem BO-Schema des Anwendungsprogramms entsprechend angegeben werden. Das Anwendungsprogramm ist mit einer ersten Datenbank betriebsfähig verbunden, in der die BOs gespeichert sind. Die Prüfungen der Datenqualität an Kopien der Daten und nicht an den Daten selbst durchzuführen, kann vorteilhaft sein, da dies die Leistungsfähigkeit des Anwendungsprogramms erhöht, insbesondere, wenn das Anwendungsprogramm und das DQMS auf verschiedenen Datenverarbeitungsmaschinen gehostet werden.According to embodiments, the data whose quality is evaluated is application data and comprises one or more copies of BOs correspondingly specified by a BO schema of the application program. The application program is operably linked to a first database in which the BOs are stored. Performing the data quality checks on copies of the data rather than on the data itself can be advantageous as it increases the performance of the application program, especially when the application program and the DQMS are hosted on different computing machines.
Gemäß Ausführungsformen werden die BOs in der ersten Datenbank gespeichert. Vorzugsweise wird der Dateninhalt der ersten Datenbank über eine Schnittstelle auf BO-Ebene in die zweite Datenbank des DQMS kopiert. Dies kann vorteilhaft sein, da die Ebene von den strukturellen Einzelheiten der ersten Datenbank abstrahiert, was den Datenübertragungsprozess somit allgemeiner und leichter anpassbar an verschiedene Anwendungssysteme macht. Falls sich die internen Strukturen der ersten Datenbank ändern sollten, sind das DQMS und die Schnittstelle, die zum Kopieren der BOs in die zweite Datenbank verwendet wird, folglich nicht von den Änderungen betroffen.According to embodiments, the BOs are stored in the first database. The data content of the first database is preferably copied to the second database of the DQMS via an interface at BO level. This can be advantageous as the level abstracts from the structural details of the first database, thus making the data transfer process more general and more easily adaptable to different application systems. If the internal structures of the first database should change, the DQMS and the interface used to copy the BOs to the second database are therefore not affected by the changes.
Gemäß Ausführungsformen ist das DQMS mit einer zweiten Datenbank betriebsfähig verbunden, wobei die zweite Datenbank eine Kopie der Anwendungsdaten und entsprechende Kopien der BOs in der zweiten Datenbank aufweist. Die Kopien der BOs werden in der zweiten Datenbank entsprechend einer Zuordnung gespeichert, wobei die Zuordnung Strukturelementen der zweiten Datenbank Attribute der BOs des BO-Schemas zuweist. Die Merkmale können vorteilhaft sein, da eine Zuordnung eine einfache Datenstruktur ist, die hauptsächlich aus der Zuweisung besteht. Sie kann auf der Grundlage einer Textdatei oder einer Datenbanktabelle vorgenommen werden, die von einem Benutzer lesbaren und editierbaren Text aufweist. Die Merkmale können vorteilhaft sein, da ein Benutzer die Art der Zuordnungsstruktur leicht verstehen und ändern kann und dabei die Art und Weise anpassen kann, in der die Kopien der BOs in der zweiten Datenbank entsprechend den Erfordernissen der Datenqualitätsprüfungen und der von der zweiten Datenbank auferlegten Rahmenbedingungen gespeichert werden. Sie kann beispielsweise die Datenqualitätsprüfungen beschleunigen, wenn die Struktur der Tabellen und Indizes der zweiten Datenbank, die zur Speicherung der Kopien der BOs verwendet wird, an den entsprechenden Anbieter der zweiten Datenbank angepasst wird.According to embodiments, the DQMS is operably connected to a second database, the second database having a copy of the application data and corresponding copies of the BOs in the second database. The copies of the BOs are stored in the second database according to a mapping, the mapping assigning attributes of the BOs of the BO schema to structure elements of the second database. The features can be beneficial because an association is a simple data structure consisting primarily of assignment. It can be based on a text file or a database table containing user-readable and editable text points. The features can be advantageous because a user can easily understand and change the nature of the mapping structure, thereby adapting the way in which the copies of the BOs are stored in the second database according to the needs of the data quality checks and the constraints imposed by the second database get saved. For example, it can speed up data quality checks if the structure of the tables and indexes of the second database used to store the copies of the BOs is adapted to the corresponding provider of the second database.
Gemäß Ausführungsformen weist das Verfahren des Weiteren den Zugriff durch das DQMS auf das BO-Schema und die Zuordnung auf, um Attribute von BOs, die in dem BO-Schema angegeben sind, zu ermitteln, welche Strukturelementen der zweiten Datenbank zugeordnet werden; und das Erzeugen von einem oder mehreren der Jobs als ETL-Jobs durch das DQMS unter Verwendung des BO-Schemas und/oder der Zuordnung. Die Merkmale können vorteilhaft sein, da in dem Fall, in dem an dem BO-Schema und/oder der Struktur der zweiten Datenbank Änderungen vorgenommen werden sollten, von einem Bediener des DQMS nur geringfügige Anpassungen durchgeführt werden müssten, um das DQMS an die neue Situation anzupassen. Im Grunde muss möglicherweise nur die Zuordnung geändert werden und gegebenenfalls müssen neue ETL-Jobs, die an die Änderungen angepasst werden, erzeugt werden, um die Daten erneut aus der ersten Datenbank in die zweite Datenbank zu laden. Da die ETL-Jobs automatisch unter Verwendung der Zuordnung und des BO-Schemas als Eingabe erzeugt werden, ist der Aufwand, den der Bediener für die Verwaltung des DQMS treiben muss, gegebenenfalls sehr gering.According to embodiments, the method further comprises accessing and mapping the BO schema by the DQMS to determine attributes of BOs specified in the BO schema which structural elements are mapped to the second database; and the DQMS creating one or more of the jobs as ETL jobs using the BO schema and/or the mapping. The features can be advantageous because in the event that changes should be made to the BO schema and/or the structure of the second database, only minor adjustments would have to be made by an operator of the DQMS in order to adapt the DQMS to the new situation to adjust. In essence, only the mapping may need to be changed and new ETL jobs adapted to the changes may need to be created to reload the data from the first database to the second database. Because the ETL jobs are automatically generated using the mapping and BO schema as input, the effort that the operator has to put into managing the DQMS may be very small.
Gemäß Ausführungsformen weist die Vielzahl der Jobs einen oder mehrere ETL-Jobs auf. Die ETL-Jobs weisen erste ETL-Jobs und/oder zweite ETL-Jobs und/oder dritte ETL-Jobs auf. Das Verfahren weist des Weiteren auf: Ausführen der ersten ETL-Jobs, um zunächst die zweite Datenbank anzulegen; wobei der Schritt das Erstellen einer Datenbanktabelle aufweisen kann, die so ausgelegt ist, dass sie Kopien von BOs speichert; und/oder Ausführen der zweiten ETL-Jobs, um die zweite Datenbank mit Kopien der BOs der ersten Datenbank zu füllen; und/oder regelmäßiges Ausführen der dritten ETL-Jobs, um die Kopien der BOs zu aktualisieren. Vorzugsweise werden mindestens einige der dritten ETL-Jobs, welche die zweite Datenbank regelmäßig aktualisieren, auf der Grundlage des ihnen angefügten Kommentars, dass sie regelmäßig ausgeführt werden können, und/oder auf der Grundlage ihres überwachten Laufzeitverhaltens in den zweiten Job-Satz oder in den dritten Job-Satz eingeordnet. Da die Jobs in dem zweiten Job-Satz und in dem dritten Job-Satz von dem Scheduler ausgelöst werden, können die ETL-Jobs, die zur Aktualisierung der zweiten Datenbank verwendet werden, regelmäßig ausgeführt werden, wodurch sich der für die Verwaltung des DQMS erforderliche Zeit- und Arbeitsaufwand verringert und die zweite Datenbank auf dem neuesten Stand gehalten wird. In manchen Ausführungsformen kann auch ein dritter ETL-Job als ein zu dem ersten Job-Satz gehörender Job klassifiziert werden, wodurch gewährleistet wird, dass eine transaktionsbasierte Änderung eines BO eine Aktualisierung der entsprechenden Kopie des BO auslöst.According to embodiments, the plurality of jobs includes one or more ETL jobs. The ETL jobs include first ETL jobs and/or second ETL jobs and/or third ETL jobs. The method further includes: executing the first ETL jobs to initially create the second database; wherein the step may include creating a database table adapted to store copies of BOs; and/or executing the second ETL jobs to populate the second database with copies of the BOs of the first database; and/or periodically running the third ETL jobs to update the copies of the BOs. Preferably, at least some of the third ETL jobs that regularly update the second database, based on the comment attached to them that they can be executed regularly, and / or based on their monitored runtime behavior in the second job set or in the third job set filed. Because the jobs in the second job set and in the third job set are triggered by the scheduler, the ETL jobs used to update the second database can be run regularly, increasing the time required for managing the DQMS Saving time and effort and keeping the second database up to date. In some embodiments, a third ETL job may also be classified as a job belonging to the first job set, thereby ensuring that a transaction-based change to a BO triggers an update of the corresponding copy of the BO.
Gemäß Ausführungsformen weist das Verfahren auf: Empfangen der Nachricht von dem Anwendungsprogramm, wobei die Nachricht eines der in der ersten Datenbank gespeicherten BOs sowie Änderungen angibt, die an dem BO vorgenommen werden sollen; Ändern einer Kopie des BO, wobei die Kopie in der zweiten Datenbank gespeichert wird, wobei die angegebenen Änderungen als Eingabe verwendet werden; wenn die geänderte Kopie des BO nicht alle Daten des BO aufweist, Setzen eines der geänderten Kopie zugewiesenen Vollständigkeitsparameters auf einen Wert, der anzeigt, dass die Kopie ein oder mehrere fehlende Attribute aufweist, welche das Datenqualitätsmanagementsystem noch nicht von dem Anwendungsprogramm empfangen hat. Die Nachricht kann beispielsweise nach dem Einleiten einer Aktualisierungstransaktion (UPDATE) oder einer Erzeugungstransaktion (CREATE) in Bezug auf das BO von dem Anwendungsprogramm gesendet werden.According to embodiments, the method comprises: receiving the message from the application program, the message indicating one of the BOs stored in the first database and changes to be made to the BO; modifying a copy of the BO, the copy being stored in the second database using the specified modifications as input; if the modified copy of the BO does not have all the data of the BO, setting a completeness parameter assigned to the modified copy to a value indicating that the copy has one or more missing attributes that the data quality management system has not yet received from the application program. For example, the message can be sent by the application program after initiating an update transaction (UPDATE) or a create transaction (CREATE) in relation to the BO.
Gemäß Ausführungsformen weist das Speichern der Kopie des BO in der zweiten Datenbank das Kennzeichnen des BO als unvollständig auf, wodurch die an der Kopie des BO erfolgende Auswertung durch beliebige der die Qualität prüfenden Jobs in dem zweiten Job-Satz verhindert wird.According to embodiments, storing the copy of the BO in the second database includes marking the BO as incomplete, thereby preventing any of the quality checking jobs in the second job set from evaluating the copy of the BO.
Gemäß bevorzugten Ausführungsformen werden die Jobs in dem ersten Job-Satz allein durch den Empfang einer Nachricht ausgelöst, die nach einer transaktionsbasierten Änderung eines BO, das dem Job zugewiesen ist, gesendet wird, die Jobs in dem zweiten Job-Satz werden einzig und allein von dem Scheduler regelmäßig ausgelöst und die Jobs in dem dritten Job-Satz werden durch den Empfang einer Nachricht ausgelöst, die nach einer transaktionsbasierten Änderung eines BO, das dem Job zugewiesen ist, gesendet wird und sie werden von dem Scheduler regelmäßig ausgelöst. In Abhängigkeit von dem tatsächlich verwendeten Auslösemechanismus können die die Qualität prüfenden Jobs in dem dritten Job-Satz folglich als proaktive Jobs agieren und dabei die Eingabe von fehlerhaften Daten in die erste Datenbank verhindern, oder sie können reaktiv agieren und dabei jedwede Fehler, die in die erste und die zweite Datenbank eingebracht wurden, melden. Diese „Doppelnutzung“ desselben Jobs und gegebenenfalls derselben Regel kann vorteilhaft sein, da keine Duplikate der Jobs oder Regeln erzeugt werden müssen, um sowohl proaktive als auch reaktive Jobs vorzusehen. Beide Funktionen können von demselben Job bereitgestellt werden, der einmal vom Scheduler und einmal von einer Transaktion ausgelöst wird. Folglich werden eine Duplizierung des Codes vermieden und die Verwaltung des DQMS vereinfacht.According to preferred embodiments, the jobs in the first job set are triggered solely by receipt of a message sent following a transaction-based change of a BO assigned to the job, the jobs in the second job set are triggered solely by scheduled by the scheduler and the jobs in the third job set are scheduled by receiving a message sent after a transaction-based change of a BO assigned to the job and scheduled by the scheduler. Thus, depending on the actual triggering mechanism used, the quality checking jobs in the third job set can be used as Jobs can act proactively, thereby preventing erroneous data from being entered into the first database, or they can act reactively, thereby reporting any errors introduced into the first and second databases. This "dual use" of the same job and possibly the same rule can be advantageous since no duplicate jobs or rules need to be created in order to provide for both proactive and reactive jobs. Both functions can be provided by the same job, triggered once by the scheduler and once by a transaction. Consequently, code duplication is avoided and management of the DQMS is simplified.
Gemäß Ausführungsformen weist eine Neuklassifizierung eines gerade in dem zweiten Job-Satz enthaltenen Jobs, um ein Job des ersten oder des dritten Job-Satzes zu werden, auf: Zugreifen auf eine transaktionsbasierte Zuordnung, wobei die transaktionsbasierte Zuordnung Zuweisungen von ersten BO-Attributen zu für den BO-Typ spezifischen Transaktionen aufweist, die von einer auf Transaktionsebene befindlichen Schnittstelle des Anwendungsprogramms unterstützt werden; wobei eine Zuordnung von einem oder mehreren Attributen zu einer der Transaktionen in der transaktionsbasierten Zuordnung angibt, dass Werte der Attribute obligatorisch in einer Nachricht übertragen werden, die nach einer transaktionsbasierten Änderung eines BO von einem BO-Typ, der die Attribute aufweist, über die Schnittstelle übergeben wird; Feststellen, ob die Qualitätskriterien, die von dem Job an Attributen eines dem Job zugewiesenen BO ausgewertet wurden, ausschließlich an einem oder mehreren Attributen, die als Teil einer Nachricht von dem Anwendungsprogramm gemäß der transaktionsbasierten Zuordnung obligatorisch empfangen werden, Operationen durchführen; falls die Ausführungszeit des Jobs den ersten Verarbeitungszeit-Schwellwert unterschreitet und falls die Qualitätskriterien des Jobs ausschließlich an Attributen Operationen durchführen, deren Werte als Teil einer Nachricht obligatorisch empfangen werden, welche die Ausführung des Jobs auslöst, Neueinordnen des Jobs aus dem zweiten in den ersten oder den dritten Job-Satz; falls die Qualitätskriterien des Jobs auch an Attributen Operationen durchführen, deren Werte nicht als Teil einer Nachricht empfangen werden, welche die Ausführung des Jobs auslöst, nicht erfolgende Neueinordnung des Jobs aus dem zweiten in den ersten oder den dritten Job-Satz, selbst wenn die Ausführungszeit des Jobs den ersten Verarbeitungszeit-Schwellwert unterschreitet. Die Merkmale können vorteilhaft sein, da sie gewährleisten, dass in dem Fall, in dem festgestellt wird, dass ein Job schnell ausgeführt wird, der Job nur dann in den ersten Job-Satz oder in den dritten Job-Satz eingeordnet wird, wenn sichergestellt ist, dass die Nachricht, welche die Ausführung des Jobs in der Zukunft auslösen kann, den Job mit allen für die Durchführung der Qualitätsprüfungen erforderlichen Daten versieht. Jobs, welche die Qualität prüfen und in dem ersten und/oder dem dritten Job-Satz enthalten sind, werden aktiviert, um ihre jeweiligen Qualitätskriterien an der Kopie des BO ungeachtet des Werts des Vollständigkeitsparameters auszuwerten, da sie nur als Jobs klassifiziert werden, die zu dem ersten oder dem dritten Job-Satz gehören, wenn gemäß der transaktionsbasierten Zuordnung sichergestellt ist, dass jedwede Nachricht, welche die Ausführung des Jobs auslöst, den Job mit allen BO-Attributen versieht, die von den Qualitätskriterien des Jobs ausgewertet wurden.According to embodiments, a reclassification of a job currently contained in the second job set to become a job of the first or third job set comprises accessing a transaction-based mapping, the transaction-based mapping including assignments of first BO attributes to for comprises BO-type specific transactions supported by a transaction-level interface of the application program; wherein an association of one or more attributes with one of the transactions in the transaction-based association indicates that values of the attributes are mandatorily transmitted in a message following a transaction-based change of a BO from a BO type having the attributes via the interface is handed over; determining whether the quality criteria evaluated by the job on attributes of a BO assigned to the job operate exclusively on one or more attributes that are mandatorily received as part of a message by the application program according to the transaction-based mapping; if the execution time of the job falls below the first processing time threshold and if the quality criteria of the job only operate on attributes whose values are obligatorily received as part of a message that triggers the execution of the job, reordering the job from the second to the first or the third job set; if the job's quality criteria also operate on attributes whose values are not received as part of a message that triggers the job's execution, failing to reclassify the job from the second to the first or third job set, even if the execution time of the job falls below the first processing time threshold. The features can be advantageous because they ensure that in the event that a job is determined to be executed quickly, the job is only classified into the first job set or the third job set if it is assured , that the message, which can trigger the execution of the job in the future, provides the job with all the data required to carry out the quality checks. Jobs that check the quality and are included in the first and/or the third job set are activated to evaluate their respective quality criteria on the copy of the BO regardless of the value of the completeness parameter, since they are only classified as jobs that belong to belong to the first or the third job set if, according to the transaction-based mapping, it is ensured that any message which triggers the execution of the job provides the job with all BO attributes evaluated by the job's quality criteria.
Gemäß Ausführungsformen führen mindestens ein paar der Jobs in dem zweiten Job-Satz eine Datenqualitätsprüfung an einer Kopie eines BO, die in der zweiten Datenbank gespeichert ist, in Verbindung mit weiteren Daten durch. Bei den weiteren Daten kann es sich um eine Kopie von mindestens einem weiteren BO und/oder um Daten handeln, die von einer externen Ressource abgeleitet werden. Die Merkmale können vorteilhaft sein, da die Ausführung einer beliebigen Art eines die Qualität prüfenden Jobs, der in dem zweiten Job-Satz enthalten ist, welcher vorzugsweise alle global ausgeführten, die Datenqualität prüfenden Jobs aufweist, verhindert werden kann, bis alle ausgewerteten Kopien der BOs aktualisiert und als „vollständig“ gekennzeichnet sind.According to embodiments, at least some of the jobs in the second job set perform a data quality check on a copy of a BO stored in the second database in conjunction with other data. The other data can be a copy of at least one other BO and/or data derived from an external resource. The features may be advantageous because execution of any type of quality checking job contained in the second job set, which preferably includes all globally executed data quality checking jobs, can be prevented until all evaluated copies of the BOs updated and marked as complete.
Gemäß Ausführungsformen weist das Ausführen der dritten ETL-Jobs auf: Auswerten einer jeden Kopie eines entsprechenden der BOs, wobei die Kopien in der zweiten Datenbank gespeichert werden, um festzustellen, ob der Kopie ein Wert eines Vollständigkeitsparameters zugewiesen wurde, der anzeigt, dass ein oder mehrere Attribute des BO, von dem die Kopie abgeleitet ist, fehlende Attribute sind, die das DQMS noch nicht von dem Anwendungsprogramm empfangen hat; falls einer Kopie eines BO, welcher der dritte ETL-Job zugewiesen wurde, ein Parameterwert zugewiesen wurde, der Unvollständigkeit anzeigt, Abrufen des einen oder der mehreren fehlenden Attribute von dem Anwendungsprogramm; Aktualisieren der Kopie des BO und dabei Vervollständigen der Kopie mit den abgerufenen Attributen und Ändern des Werts des Vollständigkeitsparameters der Kopie, um die Vollständigkeit der Kopie anzugeben. Die Merkmale können vorteilhaft sein, da die Ausführung der dritten Art von ETL-Jobs sicherstellt, dass die Kopien der BOs, die in der zweiten Datenbank gespeichert sind, insbesondere die Kopien, die von einer Transaktion ausgelöste Änderungen erfahren haben, alle Daten aufweisen, um bestimmte Jobs zu aktivieren, welche globale Datenprüfungen durchführen (d.h. Datenprüfungen, welche die Qualität von Daten einer bestimmten Kopie eines BO in Kombination mit weiteren Daten auswerten). Wenn nicht, werden die fehlenden Daten, insbesondere fehlende Attributwerte, mit Hilfe der dritten ETL-Jobs aus der ersten Datenbank abgerufen. Zum Beispiel könnte eine Transaktion eine Änderung eines bestimmten BO auslösen und in der Folge kann eine geänderte Kopie des BO in der zweiten Datenbank gespeichert werden. Um bestimmte Datenqualitätsprüfungen durchzuführen, kann es notwendig sein, weitere Attribute des BO auszuwerten, die nicht geändert und nicht als Teil der Nachricht an das DQMS übertragen worden sind. Möglicherweise sind in der ersten Datenbank einige Änderungen an Daten ausgeführt worden, ohne dass die Übergabe einer Nachricht ausgelöst wurde. Um also zu gewährleisten, dass alle von einem bestimmten Job ausgewerteten Daten auch in der zweiten Datenbank enthalten und auf dem neuesten Stand sind, können die dritten ETL-Jobs ausgewählte Daten aus der ersten Datenbank abrufen, die Kopie des BO mit den abgerufenen Daten vervollständigen und dabei ein paar die Datenqualität prüfende Jobs des zweiten Job-Satzes aktivieren, die folglich reaktiv ausgeführt werden, um an auf dem neuesten Stand befindlichen Kopien von BOs, die alle auszuwertenden Daten aufweisen, Operationen durchzuführen.According to embodiments, executing the third ETL jobs comprises: evaluating each copy of a corresponding one of the BOs, the copies being stored in the second database, to determine whether the copy has been assigned a value of a completeness parameter indicating that a or several attributes of the BO from which the copy is derived are missing attributes that the DQMS has not yet received from the application program; if a copy of a BO assigned the third ETL job has been assigned a parameter value indicating incompleteness, retrieving the one or more missing attributes from the application program; Updating the copy of the BO, thereby completing the copy with the retrieved attributes and changing the value of the copy's completeness parameter to indicate the completeness of the copy. The features can be advantageous because the execution of the third type of ETL jobs ensures that the copies of the BOs stored in the second database, in particular the copies that have undergone transaction-triggered changes, have all the data to activate specific jobs that perform global data checks (ie data checks that evaluate the quality of data from a specific copy of a BO in combination with other data). If not, the missing data, in particular missing attribute values retrieved from the first database using the third ETL jobs. For example, a transaction could trigger a change of a particular BO and subsequently a changed copy of the BO can be stored in the second database. In order to carry out certain data quality checks, it may be necessary to evaluate other attributes of the BO that have not been changed and have not been transferred to the DQMS as part of the message. Some changes may have been made to data in the first database without triggering a message submission. So to ensure that all data evaluated by a given job is also contained and up to date in the second database, the third ETL jobs can retrieve selected data from the first database, complete the copy of the BO with the retrieved data and thereby activating a few data quality checking jobs of the second job set, which are thus executed reactively to perform operations on up-to-date copies of BOs that have all the data to be evaluated.
Gemäß Ausführungsformen wurde jedem der Jobs eine Definition eines BO-Schemas von entsprechenden der BOs zugewiesen. Falls es noch keine Kopie des in der Nachricht angegebenen BO gibt, kann die Kopie mit Hilfe der zugewiesenen Definition eines Anwendungs-BO-Schemas des angegebenen BO erzeugt werden, wobei die Kopie des BO entsprechend der in der Nachricht (und in der Transaktion, welche die Übergabe der Nachricht ausgelöst hat) angegebenen Änderung geändert werden kann. Das Verfahren weist des Weiteren auf: Ändern einer Kopie eines in der Nachricht angegebenen BO gemäß Daten, die in der Nachricht enthalten sind; Kennzeichnen des einen oder der mehreren Jobs, die zu der Schema-Definition des in der Nachricht angegebenen BO gehören, wobei die gekennzeichneten Jobs in dem ersten oder in dem dritten Job-Satz enthalten sind; Ausführen des einen oder der mehreren gekennzeichneten Jobs an der geänderten Kopie des BO, um auszuwerten, ob die von den Jobs ausgewerteten Qualitätskriterien von der geänderten Kopie erfüllt werden; und Senden einer Antwort an das Anwendungsprogramm, wobei die Antwort angibt, ob die geänderte Kopie des ersten Datenobjekts die ausgewerteten Qualitätskriterien erfüllt. Dass die Jobs Operationen auf der BO-Ebene und nicht auf der Ebene der in der Nachricht empfangenen Transaktionsdaten durchführen, kann vorteilhaft sein, da das DQMS von den Besonderheiten der Struktur der ersten Datenbank losgelöst ist; es ist nur an die semantische Struktur von BOs gebunden, die in dem BO-Schema der Anwendung angegeben sind. Dies kann die Verwaltung des DQMS vereinfachen. Die Jobs können durch entsprechende BOs zugeordnet werden, beispielsweise mittels einer Kennungs-(ID-)Zuordnung von Job-Typ-IDs und BO-Typ-IDs. Die Nachricht kann eine ID eines BO-Typs aufweisen.According to embodiments, each of the jobs has been assigned a definition of a BO schema from corresponding ones of the BOs. If there is no copy of the BO specified in the message yet, the copy can be created using the assigned definition of an application BO schema of the specified BO, where the copy of the BO according to the one specified in the message (and in the transaction which triggered the delivery of the message) specified change can be changed. The method further comprises: changing a copy of a BO specified in the message according to data contained in the message; identifying the one or more jobs associated with the schema definition of the BO identified in the message, the identified jobs being included in one of the first and third job sets; performing the one or more identified jobs on the modified copy of the BO to evaluate whether the quality criteria evaluated by the jobs are met by the modified copy; and sending a response to the application program, the response indicating whether the modified copy of the first data object meets the evaluated quality criteria. The fact that the jobs perform operations at the BO level and not at the level of the transaction data received in the message can be advantageous since the DQMS is detached from the specifics of the structure of the first database; it is bound only to the semantic structure of BOs specified in the application's BO schema. This can simplify the administration of the DQMS. The jobs can be assigned by corresponding BOs, for example by means of an identifier (ID) assignment of job type IDs and BO type IDs. The message may have an ID of a BO type.
Gemäß Ausführungsformen wird die Nachricht über eine erste Legacy-Schnittstelle des Anwendungsprogramms empfangen, wobei die erste Legacy-Schnittstelle für Datenqualitätsprüfungen entwickelt oder verwendet wurde, die an Transaktionsdaten durchgeführt werden sollen, wobei es sich bei einer Transaktion um eine Änderung oder eine Speicherung von einem der BOs in der ersten Datenbank handelt, wobei die Nachricht Transaktionsdaten des BO aufweist. Die erste Schnittstelle wurde möglicherweise für proaktive, anwendungsprogramminterne Qualitätsprüfungen verwendet. Das Verfahren weist des Weiteren das Verwenden einer zweiten Legacy-Schnittstelle des Anwendungsprogramms auf, um in der ersten Datenbank gespeicherte Daten abzurufen, um die zweite Datenbank erstmalig über einen oder mehrere der Jobs, bei denen es sich um ETL-Jobs handelt, zu füllen und/oder um sie zu aktualisieren. Die zweite Legacy-Schnittstelle wurde möglicherweise für Datenaustauschzwecke auf einer BO-Ebene entwickelt. Die ETL-Jobs führen Operationen auf einer BO-Ebene aus. Die Merkmale können vorteilhaft sein, da Legacy-Schnittstellen, die es bereits in vielen Anwendungen und ERP-Systemen gibt, verwendet werden können und Code in dem Anwendungsprogramm möglicherweise nicht umgeschrieben werden muss. Überdies kann durch die Merkmale ermöglicht werden, ein DQMS vorzusehen, das in der Lage ist, sowohl transaktionsbasierte, proaktive Prüfungen der Datenqualität als auch Prüfungen, die auf BO-Ebene durchgeführt werden, zu integrieren. Prüfungen auf BO-Ebene können zum Beispiel notwendig sein, um die Datenqualität und die Konsistenz einer Vielzahl von BOs auszuwerten. Folglich sind Ausführungsformen der Erfindung gegebenenfalls in der Lage, Daten auf Transaktionsebene über die Nachricht zu empfangen, die Daten zur Erzeugung und/oder Änderung einer entsprechenden Kopie eines BOs und zur Ausführung einer transaktionsgesteuerten und proaktiven Qualitätsprüfung mittels der die Datenqualität prüfenden Jobs in dem ersten und in dem dritten Job-Satz sowie der an einen Zeitplan gebundenen, reaktiven, die Datenqualität prüfenden Jobs des zweiten und des dritten Job-Satzes innerhalb ein und desselben DQMS zu verwenden. Dadurch wird ein Problem der Datenqualitätsmanagementsysteme nach dem Stand der Technik überwunden, die oftmals entweder auf rein transaktionsbasierte, proaktive Datenqualitätsmanagementsysteme oder auf der BO-Ebene basierte, globale und reaktive Datenqualitätsmanagementsysteme beschränkt waren. Vorzugsweise führen alle die Datenqualität prüfenden Jobs, die in einem beliebigen der Job-Sätze enthalten sind, Operationen an Kopien der BOs und nicht direkt an Transaktionsdaten durch, welche nicht über die semantische Struktur der entsprechenden BOs verfügen. Zum Beispiel können die Kopien der in der zweiten Datenbank gespeicherten BOs mit Hilfe von einem der ETL-Jobs erzeugt werden, die in Abhängigkeit von der semantischen Struktur der BOs erzeugt wurden, welche in dem BO-Schema der Anwendung angegeben ist, oder sie können von dem DQMS aus den Transaktionsdaten erzeugt werden, die in der empfangenen Nachricht enthalten sind, indem das BO-Schema der Anwendung in Verbindung mit der Zuordnung verwendet wird. Nachdem die Kopie des BOs erzeugt oder gelesen wurde, für die ein die Datenqualität prüfender Job durchgeführt werden soll, wird der Job an der Kopie des BOs und nicht an den bloßen Transaktionsdaten in der Nachricht ausgeführt.According to embodiments, the message is received via a first legacy interface of the application program, the first legacy interface being developed or used for data quality checks to be performed on transaction data, a transaction being a change or a storage of one of the BOs is in the first database, the message having transaction data of the BO. The first interface may have been used for proactive, in-application quality checks. The method further includes using a second legacy interface of the application program to retrieve data stored in the first database, to initially populate the second database via one or more of the jobs that are ETL jobs, and /or to update them. The second legacy interface may have been developed for data exchange purposes at a BO level. The ETL jobs perform operations at a BO level. The features can be advantageous because legacy interfaces that already exist in many applications and ERP systems can be used and code in the application program may not need to be rewritten. In addition, the features may allow for the provision of a DQMS capable of integrating transaction-based, proactive data quality checks as well as checks performed at BO level. For example, checks at BO level may be necessary to evaluate the data quality and consistency of a large number of BOs. Consequently, embodiments of the invention may be able to receive transaction-level data via the message containing data for creating and/or modifying a corresponding copy of a BO and for performing a transaction-driven and proactive quality check using the data quality checking jobs in the first and in the third job set as well as the scheduled, reactive, data quality checking jobs of the second and third job set within one and the same DQMS. This overcomes a problem of prior art data quality management systems, which were often limited to either purely transaction-based, proactive data quality management systems or BO-level based, global and reactive data quality management systems. Preferably, all data quality checking jobs included in any of the job sets perform operations on copies of the BOs and not directly on transactional data, which does not have the semantic structure of the corresponding BOs. For example, the copies of the BOs stored in the second database can be made using be generated by one of the ETL jobs generated depending on the semantic structure of the BOs specified in the application's BO schema, or they may be generated by the DQMS from the transaction data contained in the received message by using the application's BO schema in conjunction with the mapping. After the copy of the BO has been created or read for which a data quality checking job is to be performed, the job is performed on the copy of the BO and not on the mere transactional data in the message.
In einem weiteren Aspekt betrifft die Erfindung einen von einem Computer lesbaren Datenträger, welcher einen damit realisierten, von einem Computer lesbaren Programmcode aufweist, der, wenn er von einem Prozessor ausgeführt wird, den Prozessor veranlasst, ein Verfahren nach einem der vorhergehenden Ansprüche durchzuführen.In a further aspect, the invention relates to a computer-readable data carrier which has a computer-readable program code implemented therewith which, when it is executed by a processor, causes the processor to carry out a method according to one of the preceding claims.
In einem weiteren Aspekt betrifft die Erfindung ein Computersystem, das ein DQMS aufweist. Das DQMS weist eine Verarbeitungsengine, ein Überwachungsmodul, ein Klassifizierungsmodul und einen Scheduler auf. Das DQMS ist so ausgelegt, dass es die Datenqualität von Daten eines Anwendungsprogramms prüft. Die Verarbeitungsengine ist so ausgelegt, dass sie mindestens einen Job einer Vielzahl von Jobs ausführt, wobei der mindestens eine ausgeführte Job so ausgelegt ist, dass er die Daten auf Übereinstimmung mit einem oder mehreren Qualitätskriterien auswertet. Jeder der Jobs gehört zu einem Job-Satz einer Vielzahl von Job-Sätzen, wobei die Vielzahl der Job-Sätze mindestens einen ersten Job-Satz und einen zweiten Job-Satz aufweist. Jeder Job-Satz der Job-Sätze stellt eine Kategorie eines Laufzeitverhaltens dar, wobei die in jedem Job-Satz enthaltenen Jobs entsprechend ihres jeweiligen Laufzeitverhaltens in die Laufzeitverhaltenskategorien eingeteilt wurden. Die Ausführung der in dem ersten Job-Satz enthaltenen Jobs wird von einer Nachricht ausgelöst, die das Datenqualitätsmanagementsystem von dem Anwendungsprogramm empfängt. Die Ausführung der in dem zweiten Job-Satz und in dem dritten Job-Satz enthaltenen Jobs wird von einem Scheduler des Datenqualitätsmanagementsystems ausgelöst. Das Überwachungsmodul ist so ausgelegt, dass es das Laufzeitverhalten von mindestens einem der ausgeführten Jobs überwacht, um ein aktuelles Laufzeitverhalten des Jobs festzustellen. Das Klassifizierungsmodul ist so ausgelegt, dass es den mindestens einen überwachten Job automatisch oder halbautomatisch neu klassifiziert, indem es den Job demjenigen Job-Satz neu zuordnet, welcher das festgestellte aktuelle Laufzeitverhalten darstellt.In a further aspect, the invention relates to a computer system which has a DQMS. The DQMS has a processing engine, a monitoring module, a classification module and a scheduler. The DQMS is designed to check the data quality of data from an application program. The processing engine is configured to perform at least one of a plurality of jobs, wherein the at least one performed job is configured to evaluate the data for compliance with one or more quality criteria. Each of the jobs belongs to one of a plurality of job sets, the plurality of job sets including at least a first job set and a second job set. Each of the job sets represents a category of run-time behavior, and the jobs contained in each job set have been classified into the run-time behavior categories according to their respective run-time behavior. The execution of the jobs contained in the first job set is triggered by a message that the data quality management system receives from the application program. The execution of the jobs contained in the second job set and in the third job set is triggered by a scheduler of the data quality management system. The monitoring module is designed to monitor the run-time behavior of at least one of the jobs being executed in order to determine a current run-time behavior of the job. The classification module is configured to automatically or semi-automatically reclassify the at least one monitored job by reassigning the job to the job set that represents the observed current runtime behavior.
Manchen Ausführungsformen entsprechend handelt es sich bei den Daten um Anwendungsdaten des Anwendungsprogramms. Die Anwendungsdaten weisen eine Vielzahl von BOs auf. Das Computersystem weist des Weiteren das Anwendungsprogramm, eine erste Datenbank und eine zweite Datenbank auf. Das Anwendungsprogramm ist mit der ersten Datenbank betriebsfähig verbunden, in der die BOs gespeichert sind. Die zweite Datenbank ist mit dem DQMS betriebsfähig verbunden und weist eine Kopie der Anwendungsdaten und der BOs in der zweiten Datenbank entsprechend einer Zuordnung auf. Die Zuordnung weist Strukturelementen der zweiten Datenbank Attribute der BOs des BO-Schemas zu. Das Datenqualitätsmanagementsystem ist so ausgelegt, dass es: auf das BO-Schema und die Zuordnung zugreift, um Attribute von BOs, die in dem BO-Schema angegeben sind, zu ermitteln, welche Strukturelementen der zweiten Datenbank zugeordnet werden; mittels des BO-Schemas und/oder der Zuordnung einen oder mehrere der Jobs als ETL-Jobs erzeugt.According to some embodiments, the data is application data of the application program. The application data has a large number of BOs. The computer system also has the application program, a first database and a second database. The application program is operatively connected to the first database in which the BOs are stored. The second database is operably connected to the DQMS and has a copy of the application data and the BOs in the second database according to a mapping. The assignment assigns attributes of the BOs of the BO schema to structure elements of the second database. The data quality management system is designed to: access the BO schema and mapping to determine attributes of BOs specified in the BO schema which structural elements map to the second database; one or more of the jobs are generated as ETL jobs using the BO scheme and/or the assignment.
Manchen Ausführungsformen entsprechend kann zusätzlich eine manuelle oder halbmanuelle Neuklassifizierung von einem Teil der Jobs unterstützt werden. Gemäß Ausführungsformen folgt die Neuklassifizierung einem in der folgenden Tabelle angegebenen Schema:
Wie der Fachmann verstehen wird, können Erscheinungsformen der vorliegenden Erfindung als ein System, ein Verfahren oder ein Computerprogrammprodukt realisiert werden. Folglich können Aspekte der vorliegenden Erfindung die Form einer ganz in Hardware realisierten Ausführungsform, einer ganz in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, die hier alle allgemein als eine „Schaltung“, ein „Modul“ oder ein „System“ bezeichnet werden können. Überdies können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das sich auf einem oder mehreren von einem Computer lesbaren Datenträger(n) befindet, auf dem beziehungsweise denen sich der von einem Computer lesbare Programmcode befindet. Jede beliebige Kombination aus einem oder mehreren von einem Computer lesbaren Datenträgern kann verwendet werden. Der von einem Computer lesbare Datenträger kann ein von einem Computer lesbarer Signaldatenträger oder ein von einem Computer lesbares Speichermedium sein. Ein von einem Computer lesbares Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede beliebige geeignete Kombination des Vorstehenden sein. Zu konkreteren Beispielen (wobei die Liste keinen Anspruch auf Vollständigkeit erhebt) für das von einem Computer lesbare Speichermedium würden folgende gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine Diskette eines tragbaren Computers, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede beliebige geeignete Kombination des Vorstehenden. In Zusammenhang mit diesem Schriftstück kann ein von einem Computer lesbares Speichermedium jedes physisch greifbare Medium sein, das ein Programm zur Verwendung durch ein Befehlsausführungssystem, eine Befehlsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Befehlsausführungssystem, einer Befehlsausführungsvorrichtung oder -einheit enthalten oder speichern kann. Ein von einem Computer lesbarer Signaldatenträger kann ein übertragenes Datensignal mit einem darin enthaltenen, von einem Computer lesbaren Programmcode, beispielsweise in einem Basisband oder als Teil einer Trägerwelle, enthalten. Solch ein übertragenes Signal kann eine beliebige einer Vielzahl von Formen einschließlich elektromagnetischer, optischer Formen oder jede beliebige geeignete Kombination dieser Formen, ohne darauf beschränkt zu sein, annehmen. Bei einem von einem Computer lesbaren Signaldatenträger kann es sich um jeden beliebigen von einem Computer lesbaren Datenträger handeln, der kein von einem Computer lesbares Speichermedium ist und der ein Programm zur Verwendung durch ein Befehlsausführungssystem, eine Befehlsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Befehlsausführungssystem, einer Befehlsausführungsvorrichtung oder -einheit übertragen, weiterleiten oder transportieren kann. Auf einem von einem Computer lesbaren Datenträger enthaltener Programmcode kann mittels eines geeigneten Mediums einschließlich eines drahtlosen Mediums, eines drahtgebundenen Mediums, eines Lichtwellenleiterkabels, mittels Hochfrequenz (HF) usw., ohne darauf beschränkt zu sein, oder mittels jeder beliebigen geeigneten Kombination des Vorstehenden übertragen werden.As will be appreciated by those skilled in the art, aspects of the present invention may be implemented as a system, method, or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects, all of which are generic herein may be referred to as a "circuit", a "module" or a "system". Furthermore, aspects of the present invention may take the form of a computer program product residing on one or more computer readable media having the computer readable program code resident thereon. Any combination of one or more computer-readable media can be used. The computer-readable data carrier can be a computer-readable signal data carrier or a computer-readable storage medium. A computer-readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device or any suitable combination of the above. More specific examples (and the list is not exhaustive) of the computer-readable storage medium would include: an electrical connection with one or more wires, a portable computer floppy disk, a hard disk, a random access memory (RAM), a Nur Read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage unit, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain or store a program for use by an instruction execution system, apparatus, or unit, or for use in connection with an instruction execution system, apparatus, or unit . A computer-readable signal carrier may include a transmitted data signal having computer-readable program code embodied therein, for example in baseband or as part of a carrier wave. Such a transmitted signal may take any of a variety of forms including, but not limited to, electromagnetic, optical, or any suitable combination of these forms. A computer-readable signal medium may be any computer-readable medium, other than a computer-readable storage medium, containing a program for use by, or in connection with, an instruction execution system, apparatus or device Instruction execution system, an instruction execution device or unit can transmit, forward or transport. Program code embodied on a computer readable medium may be transmitted by any suitable medium, including but not limited to wireless medium, wired medium, fiber optic cable, radio frequency (RF), etc., or any suitable combination of the foregoing .
Figurenlistecharacter list
Im Folgenden werden bevorzugte Ausführungsformen der Erfindung anhand eines Beispiels ausführlicher beschrieben, wobei nur Bezug auf die Zeichnungen genommen wird, bei denen:
-
1 einen Ablaufplan eines Verfahrens zeigt, das eine Neuklassifizierung von Jobs aufweist, -
2 einen Ablaufplan eines Verfahrens zeigt, das die Erzeugung von ETL-Jobs aufweist, -
3 ein Anwendungsprogramm, z.B. ein ERP-System, und ein DQMS zeigt; und -
4 ein paar Komponenten des DQMS ausführlicher darstellt.
-
1 shows a flowchart of a method involving reclassification of jobs, -
2 shows a flowchart of a method that includes the creation of ETL jobs, -
3 shows an application program, eg an ERP system, and a DQMS; and -
4 presents a few components of the DQMS in more detail.
Ausführliche BeschreibungDetailed description
Im Schritt 102, der in
Das DQMS sendet eine Antwort auf die Nachricht an das Anwendungsprogramm, wobei die Antwort angibt, ob der eine oder die mehreren ausgeführten, die Qualität prüfenden Jobs des ersten und/oder des dritten Job-Satzes festgestellt haben, dass die transaktionsbasierte Änderung, die transaktionsbasierte Erzeugung oder die transaktionsbasierte Löschung dieser BO-Kopie (CBO) Qualitätsanforderungen nicht eingehalten hat. Da die zweite Datenbank Kopien der BOs des Anwendungsprogramms aufweist, gilt das Ergebnis der die Qualität prüfenden Jobs, das für die Kopien der BOs berechnet wurde, gleichfalls für die entsprechenden BOs des Anwendungsprogramms.The DQMS sends a response to the message to the application program, the response indicating whether the one or more executed quality checking jobs of the first and/or third job set have determined that the transaction-based change, the transaction-based creation or the transaction-based deletion of this BO copy (CBO) did not meet quality requirements. Since the second database contains copies of the application program's BOs, the result of the quality checking jobs calculated for the copies of the BO's also applies to the corresponding application program's BOs.
Falls im Schritt 208 festgestellt wird, dass die Transaktion nicht gegen die Qualitätsanforderungen, die von den die Qualität prüfenden Jobs in dem ersten und/oder dem dritten Job-Satz ausgewertet wurden, verstößt, löst der aufgerufene Verantwortliche das Anwendungsprogramm aus, um die angehaltene Transaktion festzuschreiben. Im Schritt 210 kennzeichnet das DQMS die Kopie des BO als unvollständig, falls die Nachricht nicht alle Attributwerte aufwies, welche die Kopie des BO ausmachen, und falls die zweite Datenbank die fehlenden Attributwerte ebenfalls nicht aufweist. Fehlende Attributwerte können von dem DQMS ermittelt werden, indem das BO-Schema in Verbindung mit der Zuordnung und der zweiten Datenbank ausgewertet wird, in der die entsprechenden Attributwerte in den Strukturelementen, welche in der Zuordnung angegeben sind, gespeichert sind. Im Schritt 212 löst ein Scheduler des DQMS die Ausführung von Jobs aus, die in einem zweiten Job-Satz enthalten sind, der Jobs mit langer Ausführungszeit enthält, z.B. reaktive, die Datenqualität prüfende Jobs mit langer Ausführungszeit und/oder ETL-Jobs, welche die BOs aktualisieren. Der Scheduler kann darüber hinaus die Ausführung von Jobs auslösen, die in einem dritten Job-Satz enthalten sind, der reaktive, die Datenqualität prüfende Jobs mit kurzer Ausführungszeit aufweist. Jeder der reaktiven, die Datenqualität prüfenden Jobs und/oder jeder der BO-Aktualisierungs-ETL-Jobs, kann einem oder mehreren der BOs, die in dem BO-Schema der Anwendung angegeben sind, zugewiesen werden. Falls irgendeine der BO-Kopien als unvollständig gekennzeichnet wird, ermittelt ein von dem Scheduler ausgelöster BO-Aktualisierungs-ETL-Job, der dem BO zugewiesen wird, die fehlenden Attribute und ruft die Attributwerte automatisch über eine auf Geschäftsobjektebene befindliche Schnittstelle des Anwendungsprogramms auf, vervollständigt die Kopie des BO mit den abgerufenen Attributwerten und setzt einen Wert des Vollständigkeitsparameters der Kopie auf „vollständig“. Die die Datenqualität prüfenden Jobs, die in dem zweiten Job-Satz enthalten sind, werden daran gehindert, eine als „unvollständig“ gekennzeichnete Kopie eines BO auszuwerten. Falls die jeweils zugewiesenen BO-Kopien als „vollständig“ gekennzeichnet sind, werten die reaktiven, die Datenqualität prüfenden Jobs die Kopie des BO und optional weitere Daten, z.B. die in anderen BOs oder in externen Ressourcen enthaltenen Daten, aus, um festzustellen, ob die Datenqualität des BO gegen bestimmte Qualitätsanforderungen verstößt. Das Ergebnis von zumindest den Qualitätsprüfungen, die von den die Qualität prüfenden Jobs durchgeführt werden, welche in dem zweiten Job-Satz enthalten sind, kann in Form eines Berichts gespeichert werden, der in dem DQMS abgelegt, einem Benutzer angezeigt und/oder an das Anwendungsprogramm übergeben werden kann.If, at
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102013215529.8A DE102013215529B4 (en) | 2013-08-07 | 2013-08-07 | Remapping jobs to check data quality |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102013215529.8A DE102013215529B4 (en) | 2013-08-07 | 2013-08-07 | Remapping jobs to check data quality |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102013215529A1 DE102013215529A1 (en) | 2015-02-12 |
DE102013215529B4 true DE102013215529B4 (en) | 2022-09-29 |
Family
ID=52388767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102013215529.8A Active DE102013215529B4 (en) | 2013-08-07 | 2013-08-07 | Remapping jobs to check data quality |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102013215529B4 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130081025A1 (en) | 2011-09-28 | 2013-03-28 | International Business Machines Corporation | 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 |
-
2013
- 2013-08-07 DE DE102013215529.8A patent/DE102013215529B4/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130081025A1 (en) | 2011-09-28 | 2013-03-28 | International Business Machines Corporation | 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 |
Also Published As
Publication number | Publication date |
---|---|
DE102013215529A1 (en) | 2015-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69736748T2 (en) | EDITING ENVIRONMENT FOR OBJECT MODELS AND METHOD FOR THEIR APPLICATION | |
US9922106B2 (en) | Reallocating jobs for checking data quality | |
DE102012208141B4 (en) | Compensation for decreasing functionality | |
DE112012005037B4 (en) | Manage redundant immutable files using deduplications in storage clouds | |
DE112010004652B4 (en) | Reliable high-throughput replication of transformed data in data systems | |
DE202013012496U1 (en) | Systems for asynchronous schema changes | |
DE112020004623T5 (en) | ML-BASED EVENT HANDLING | |
DE112011101793T5 (en) | Shared data usage with file clones | |
DE202011110124U1 (en) | Hybrid query execution plan | |
DE112017006106T5 (en) | Create, access, and view lineage metadata | |
DE102014215621A1 (en) | Template system for generating customized documents | |
DE202009019149U1 (en) | Asynchronous distributed garbage collection for replicated storage clusters | |
DE102014116369A1 (en) | MANAGEMENT OF LANGUAGE MARKERS IN INTERNATIONAL DATA STORAGE | |
DE112011100618T5 (en) | Manage write operations to a range of tracks that is moved between storage devices | |
DE102013200355A1 (en) | Merging of documents based on the knowledge of a document schema | |
DE112011101559T5 (en) | Dynamic adaptive detection of processes and their compliance | |
DE102012223167B4 (en) | Sharing artifacts between collaborative systems | |
DE112019001480T5 (en) | Automatically optimizing resource usage in a target database management system to increase workload performance | |
DE102021125630A1 (en) | DATA SYNCHRONIZATION IN A DATA ANALYSIS SYSTEM | |
DE102013200508A1 (en) | Replacement order of cache sets based on time-based set recording | |
DE112010004003T5 (en) | A method of training and using a classification model with association rules models | |
DE112018000456T5 (en) | Manage large allocation groups using optimized bitmap representations | |
DE112015002101T5 (en) | Systems and methods for improved data structure storage | |
DE112018001290T5 (en) | Method for estimating the erasability of data objects | |
DE102021130957A1 (en) | RECOMMENDATIONS FOR THE STABILITY OF SOFTWARE UPDATES |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R084 | Declaration of willingness to licence | ||
R020 | Patent grant now final |