DE102013215529A1 - Reassign jobs to verify data quality - Google Patents
Reassign jobs to verify data quality Download PDFInfo
- Publication number
- DE102013215529A1 DE102013215529A1 DE102013215529.8A DE102013215529A DE102013215529A1 DE 102013215529 A1 DE102013215529 A1 DE 102013215529A1 DE 102013215529 A DE102013215529 A DE 102013215529A DE 102013215529 A1 DE102013215529 A1 DE 102013215529A1
- 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.)
- Granted
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Die Erfindung betrifft ein 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), der so ausgelegt ist, dass er die Daten auf Übereinstimmung mit einem oder mehreren Qualitätskriterien auswertet, – Überwachen des Laufzeitverhaltens von dem mindestens einen ausgeführten Job; – Neuklassifizieren des mindestens einen überwachten Jobs, indem der Job einem Job-Satz neu zugeordnet wird, der das festgestellte aktuelle Laufzeitverhalten darstellt.The invention relates to a method performed 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) adapted to evaluate the data for compliance with one or more quality criteria, - monitoring the runtime behavior of the at least one executed job; - Reclassify the at least one monitored job by remapping the job to a job set representing the current runtime behavior detected.
Description
Bereich der ErfindungField 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 checking.
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 related data management systems are critical to companies from a wide variety of industries and technological backgrounds. A significant amount of money and time is devoted to the prevention and elimination of data corruption in ERP systems, as erroneous data can lead to erroneous manufacturing processes and the loss of data, rendering unusable records useless.
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 are already equipped with some integrated modules to ensure data quality. Often, as an alternative or in addition to the integrated modules, external systems are used to ensure and maintain data quality. One problem associated with the use of external data quality validation systems 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. Consequently, both the execution and the preparation of 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 checks, particularly global data quality checks involving the processing of a variety of business objects from one data source or from a plurality of distributed data sources, can be extremely time consuming. An ongoing data quality check can thus represent a bottleneck for the performance of an ERP system. Another problem is that the runtime behavior of the quality checks depending on the evaluated data and / or the response time of external resources, which have certain parts of the data of the ERP system to be evaluated, can vary greatly and unpredictably.
Kurzdarstellung der ErfindungBrief description 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, a computer-readable medium, and a computer system to control the data quality of data of an application program such as an ERP system through a data quality management system system (DQMS)). The object is solved by the features of the independent claims. Preferred embodiments are given in the dependent claims. Unless otherwise stated, embodiments of the invention may be freely combined.
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 that is capable of processing one or more business objects; h., to create, modify and / or delete. As used herein, a "business object" (BO) refers to a data object, e.g. An idoc object specified according to a "business object schema". As used here, 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 mutual correlation. For example, a business object schema may have a description of the business entity types "analysis entity" and "biological pattern", the "analysis entity" corresponding to the schema attributes such as "sample capacity", "status", "entity type" or the like and the business object type " biological pattern may include "attributes such as" pattern type, "" age, "" patient identifier, "or the like. Each instance of a BO is generated according to a respective BO definition specified in the BO scheme.
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 work item that is executed by a data processing system. Depending on the embodiment, a job may be one compiled, executable binary code, e.g. As a byte code, or act to evaluate program code. As used herein, a "runtime behavior" refers to features of the behavior of a running job. As used herein, a "rule" is any piece of software code that specifies a corresponding job and can be changed by a programmer. For example, a rule can be a Java or C ++ class, functional parts of the Java or C ++ class, 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. For example, an ERP system designed to manage data 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 (eg, storing all dates in a consistent data format), ensuring that the stored data is semantic 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 executed contiguously independently of other transactions. For example, a transaction may include passing a command to a database operatively connected to the application program to store or modify 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 persistent).
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 that is performed before a transaction is committed to ensure that the transaction is not committed if the data to be transferred in the transaction is the one evaluated by the proactive check Do not meet quality criteria.
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 audit" is a data quality audit performed after a transaction has been committed by the application program to ensure that in the event that the data transmitted in the transaction does not meet the quality criteria, which were evaluated by the reactive test, this data will be marked. Depending on the reactive test and the identified 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 herein, an 'external resource' is any data resource that resides outside the data quality management system and has some data that must be evaluated in addition to the data of a BO of an application program to validate the data quality of at least some of the BOs. The external resource may be a computer system or database that communicates with the data quality management system over a network, e.g. As the Internet or an intranet connected.
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 storage, e.g. For example, a set of directories, XML files, or preferably a relational or column-oriented 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 that is capable of giving the application program BO instances or parts of BO instances from one or more BOs, to translate the data into a data format that can be processed by the data quality management system, and to store the transformed data in a database that is operatively connected to the data quality management system. As used herein, an ETL job performing operations on a "BO level" is an ETL job that overflows the data to be transmitted not through an interface of the database in which the BOs are physically stored The application API queries which BOs and corresponding attributes are specified in the BO schema of the application program. Thus, an ETL job performing operations on a "BO level" operates on the basis of the semantic rather than 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 herein, a "legacy" interface is an existing interface of a software application, e.g. B. 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 carrying out database transactions by the application program.
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 referred to as a "parameter", is a feature 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 method performed by a computer to check the data quality of data of an application program by a data quality management system (DQMS). The method includes performing at least one job of a plurality of jobs by the DQMS. 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 a job set of a plurality of job sets, the plurality of job sets having at least a first job set and a second job set. Each of the job sets represents a category of runtime behavior. The jobs contained in each job set have been divided into the runtime behavior categories according to their runtime 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 is triggered by a scheduler of the DQMS. The method further comprises monitoring the runtime behavior of the at least one executed job by the data quality management system to determine a current runtime behavior of the job; and reclassifying the at least one monitored job by remapping the job to the job set representing the detected current runtime behavior. Preferably, the reclassification is performed automatically. In accordance with some embodiments, the reclassification may be semi-automated and may include the request to a user to agree to an automatically proposed reclassification. The features may be advantageous because depending on the run-time behavior of a job verifying data quality, the triggering mechanism that initiates execution of the job may be changed. Jobs that have been found to be able to run in a relatively short period of time may respond in response to a message, i. H. event-driven, jobs that have a different run-time behavior, such as For example, a longer execution time may be tied to a schedule. This may be particularly advantageous in the context of a DQMS because the termination of a particular type of data quality checks, e.g. Exams with a long execution time, checks that require external data resources, checks that evaluate a data log, etc., can be triggered by a scheduler when processing load is low, when network traffic to external resources is low, and / or if only a few events cause the delivery of messages 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. For example, if one or more BOs of the application program need to be evaluated that have not yet been imported into the data quality management system. The classification of the jobs as a function of a monitored rather than a predetermined and estimated runtime behavior may be advantageous in the context of a DQMS since the actual runtime behavior of a data quality check may depend on the type of data stored and thus may not be predictable. As a result, the features can provide a highly flexible DQMS capable of reclassifying data checks depending on their actual runtime behavior, while also reducing the operator's time and labor of managing the DQMS and managing job execution because both the message-driven and scheduler-controlled jobs can be fully automated.
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 to store the data in a first database operatively connected to the application program. The message has at least a portion of the data whose quality is to be evaluated, e.g. For example, certain data indicating which of the attributes of a BO should be changed in conjunction with the changed attribute value. The transaction is paused 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 given resources to complete the transaction Re-execute with changed transaction data. The features may be advantageous because they may allow the DQMS to perform jobs that are performed in certain job sets, e.g. Included in the first job set, trigger transaction-based and proactive. That is, the transaction pauses 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, eg. B. Checks performed by the jobs in the second job set and dispatched by a scheduler are not executed 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 comprise a third job set. Execution of jobs contained in the third job set is triggered by the scheduler on a regular basis and beyond upon receipt of a message sent by the application program following 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 triggered solely by the scheduler on a regular basis. The scheduler may trigger the execution of the jobs in the third job set according to a different scheme (eg more frequently) than in the second job set. However, the use of a third job set is optional. Any one of the jobs whose monitored execution time is less than a first time threshold or equal to a first time threshold is classified as a job associated with the first job set or the third job set. Any one of the jobs whose monitored execution time exceeds the first time threshold is classified as a job associated with the second job set. The features can be beneficial as they provide extremely differentiated management of jobs that check data. If a particular job performing a data quality check previously executed as a proactive job with a short execution time because of belonging to the first job set is monitored and found to be a job with a long execution time, z. Due to a change in the underlying data sets or due to a change in the response time of some additional internal or external data resources, its triggering mechanism is forcibly changed by reclassifying the job and reassigning the job to, for example, the second job set. As a result of the reassignment, the job is now not a transaction-triggered, proactive, data-reviewing job, but rather a schedule-sensitive, data-checking job. Consequently, the operator need not consider any contingencies that may affect the runtime of a job to indicate whether the job should be executed as a proactive or a reactive job. When using embodiments of the invention, the operator will eventually rely more on the automatic re-classification of the jobs depending on the monitored runtime behavior, which may also impact the triggering mechanism (transaction-based or schedule-based) to fetch the particular job. This may be particularly advantageous in a DQMS in which a transaction-driven, proactive job, which takes more time than expected, can significantly slow down the application because the transaction is paused until a response is received. Depending on the embodiment, the first time threshold may be in the range of one or more minutes, preferably less than 30 seconds, and preferably even less than 10 seconds, to avoid performance degradation of 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 contained in the same job set of job sets have one or more classification characteristics in common. The reclassification of the at least one job includes establishing a value for one or more of the classification features and reclassifying the job according to the specified values of the classification characteristics. The one or more classification features may be a repeat parameter indicating whether the job to which a corresponding parameter value has been assigned can be executed 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 differentiated classification of jobs and consequently a differentiated control over the job triggering mechanism can be provided. For example, the scheduler may have different job triggering schemes for different job sets. An operator may be involved, for example, by means of a repeat parameter assigned to each job or by means of a corresponding rule which codes the job if a particular job is to be executed repeatedly or not repeatedly. Furthermore, by considering whether a job evaluates data from two or more BOs and / or evaluates data of a BO in connection with data to be retrieved from an external resource, a classification of jobs based on the "knowledge" may also be considered. possible that the job could at least potentially be time-consuming, for example because of the possibility is that a network connection to the external resource is slow. Consequently, any job that may run slowly, such as For example, due to the evaluation of external data, for example, the second job set may be arranged to ensure that the job is not executed as a proactive data quality checking job that could slow down the application program by stopping 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 may be determined by the DQMS by evaluating program code underlying the job by providing a comment, e.g. For example, a classification parameter that evaluates the job and / or monitors the runtime behavior of the job with respect to the classification feature. For example, a job accessing an external resource can be added as a comment to the job, or it can be determined by evaluating the job's source code. If access to the external resource extends the execution time of the job, the job can be reclassified in the sequence and, for example, moved to the second job set. According to embodiments, each of the jobs is coded by a corresponding rule. Reclassifying the at least one job involves reclassifying the rule that codes the job to a rule set that represents the category of the runtime behavior of the job set to which the job is associated. The features may be advantageous as an operator of the DQMS can easily recognize and understand what type of rule and which corresponding job is currently being classified as belonging to a particular job set. The operator may also be allowed to change the rules via, for example, a graphical user interface (GUI), adding or changing a few classification parameters that can be used by the DQMS in addition to the monitored runtime behavior as a classification feature, 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 arranged to evaluate the quality criteria on a copy of one of the BOs in conjunction with other data, the further 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 have to be imported from BOs to create or update a copy of a corresponding BO may also be considered as an external resource, according to embodiments. According to embodiments, the type of jobs performing operations on a BO in conjunction with other data may be automatically determined and placed in the second job set. The features may be advantageous because jobs that are at great risk of becoming jobs with a long execution time, for example because they are performing operations on multiple BOs or external data, are considered from the beginning to be associated with the second job set 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 includes one or more copies of BOs specified by a BO scheme of the application program. The application program is operatively connected to a first database in which the BOs are stored. It may be advantageous to perform the data quality checks on copies of the data rather than the data itself, as this increases the performance of the application program, especially if the application program and the DQMS are hosted on different data processing 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 via an interface on the BO level into the second database of the DQMS. This may be advantageous as the layer abstracts from the structural details of the first database, thus making the data transfer process more general and easier to adapt to different application systems. Thus, if the internal structures of the first database were to change, the DQMS and the interface used to copy the BOs to the second database are 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 operatively 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 BO's to the BO schema to structural elements of the second database. The features may be advantageous because an association is a simple data structure consisting primarily of the assignment. It can be based on a text file or a database table that has user-readable and editable text. The features may be advantageous because a user can easily understand and change the nature of the allocation structure, and thereby adjust the manner in which the copies of the BOs in the second database correspond the requirements of the data quality checks and the framework conditions imposed by the second database. For example, it may speed data quality checks if the structure of the tables and indexes of the second database used to store the copies of the BOs is matched 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 the BO scheme and the association by the DQMS to determine attributes of BOs specified in the BO schema, which structural members are assigned to the second database; and generating one or more of the jobs as ETL jobs by the DQMS using the BO schema and / or the mapping. The features may be advantageous because in the case where 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 to bring the DQMS to the new situation adapt. In fact, only the mapping may need to be changed and, if necessary, new ETL jobs adapted to the changes need to be created to reload the data from the first database to the second database. Since the ETL jobs are automatically generated as input using the map and the BO schema, the amount of effort that the operator must drive to manage 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 have first ETL jobs and / or second ETL jobs and / or third ETL jobs. The method further comprises: executing the first ETL jobs to first create the second database; wherein the step may comprise creating a database table arranged 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 periodically update the second database are placed on the second job set or on the basis of their attached commentary that they can be executed on a regular basis and / or on the basis of their monitored runtime behavior arranged third job set. Since 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 executed on a regular basis, which is necessary for managing the DQMS Reduce time and effort and keep the second database up-to-date. In some embodiments, a third ETL job may also be classified as a job associated with the first job set, thereby ensuring that a transaction-based change of 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 changes as input; if the modified copy of the BO does not include all of the data of the BO, setting a completion parameter assigned to the changed 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, after the initiation of an update transaction (UPDATE) or a generation transaction (CREATE) with respect to the BO, the message may be sent by the application program.
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 flagging the BO as incomplete, thereby preventing evaluation of the copy of the BO by any of the quality checking jobs in the second job set.
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 the receipt of a message sent after a transaction-based change of a BO assigned to the job, the jobs in the second job set being sent solely by The scheduler is triggered periodically and the jobs in the third job set are triggered by the receipt of a message sent after a transaction-based change of a BO assigned to the job, and they are triggered by the scheduler on a regular basis. Thus, depending on the triggering mechanism actually used, the quality checking jobs in the third job set may act as proactive jobs, preventing the entry of erroneous data into the first database, or they may act responsively, and any errors that occur in the first job first and the second database were reported. This "double use" of the same job and possibly the same rule can be advantageous since No duplicates of jobs or rules need to be created to provide both proactive and reactive jobs. Both functions can be provided by the same job, which is triggered once by the scheduler and once by a transaction. As a result, duplication of the code 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, reclassifying 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 map, the transaction-based map assigning assignments of first BO attributes to BO type-specific transactions supported by a transaction-level interface of the application program; wherein an assignment of one or more attributes to one of the transactions in the transaction-based association indicates that values of the attributes are compulsorily transmitted in a message following a transaction-based change of a BO of a BO type having the attributes over the interface is handed over; Determining whether the quality criteria evaluated by the job on attributes of a BO assigned to the job are only performing operations on one or more attributes that are compulsorily received as part of a message from the application program according to the transaction-based association; if the execution time of the job falls below the first processing time threshold and if the quality criteria of the job only perform operations on attributes whose values are compulsorily received as part of a message that triggers the job, reclassifying the job from the second to the first or the third job set; if the quality criteria of the job also perform on operations whose values are not received as part of a message that triggers the execution of the job, not reordering the job from the second to the first or third job set, even if the execution time the job falls below the first processing time threshold. The features may be advantageous because they ensure that in the case where it is determined that a job is being executed quickly, the job is placed in the first job set or in the third job set only if it is ensured in that the message that can trigger the execution of the job in the future provides the job with all the data required to perform the quality checks. Jobs that check 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 completion parameter, since they are only classified as jobs belonging to The first or third job set, if according to the transaction-based association, ensures that any message that triggers the execution of the job provides the job with all the BO attributes evaluated by the quality criteria of the job.
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 a few 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 further data may be a copy of at least one other BO and / or data derived from an external resource. The features may be advantageous in that execution of any type of quality checking job contained in the second job set, which preferably has 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, wherein the copies are stored in the second database to determine if the copy has been assigned a value of a completion parameter indicating that an 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 to which the third ETL job has been assigned has been assigned a parameter value indicating incompleteness, fetching 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 completion parameter of the copy to indicate the completeness of the copy. The features may 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 changes initiated by a transaction, all have data enable certain jobs that perform global data validation (that is, data checks that evaluate the quality of data of a particular copy of a BO in combination with other data). If not, the missing data, especially missing attribute values, are retrieved from the first database using the third ETL jobs. For example, a transaction could trigger a change in a particular BO, and subsequently a modified copy of the BO can be stored in the second database. In order to perform certain data quality checks, it may be necessary to evaluate further attributes of the BO that are not changed and not transmitted to the DQMS as part of the message have been. There may have been some changes to data in the first database without triggering the delivery of a message. Thus, to ensure that all data evaluated by one particular job is also in the second database and up to date, 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 responsively to perform up-to-date copies of BOs having 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 scheme by corresponding ones of the BOs. If there is not yet a copy of the BO indicated in the message, the copy can be generated using the assigned definition of an application BO schema of the specified BO, the copy of the BO corresponding to that in the message (and in the transaction, which the message has triggered 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; Flagging the one or more jobs associated with the schema definition of the BO specified in the message, wherein the flagged jobs are contained in the first or third job set; Executing the one or more flagged jobs on the modified copy of the BO to evaluate whether the quality criteria evaluated by the jobs are met by the changed copy; and sending a response to the application program, wherein the response indicates 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 transaction data received in the message may be advantageous because the DQMS is detached from the peculiarities of the structure of the first database; it is bound only to the semantic structure of BOs specified in the BO schema of the application. This can simplify the management of the DQMS. The jobs can be assigned by corresponding BOs, for example by means of identification (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, wherein the first legacy interface was developed or used for data quality checks to be performed on transaction data, wherein a transaction is a change or storage of one of the BOs in the first database, the message having transaction data of the BO. The first interface may have been used for proactive, in-program quality checks. The method further includes using a second legacy interface of the application program to retrieve data stored in the first database to fill the second database for the first time with one or more of the jobs that are ETL jobs / 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 may be advantageous because legacy interfaces that already exist in many applications and ERP systems may be used and code may not need to be rewritten in the application program. Moreover, the features may enable to provide a DQMS capable of integrating both transaction-based, proactive data quality checks and checks performed at the BO level. For example, checks at the BO level may be necessary to evaluate the data quality and consistency of a variety of BOs. Thus, embodiments of the invention may be able to receive transaction-level data about the message, the data to create and / or modify a corresponding copy of a BO, and to perform a transaction-driven and proactive quality check using the data quality checking jobs in the first and second in the third job set as well as the scheduled, reactive, data quality checking jobs of the second and third job sets within one and the same DQMS. This overcomes a problem of the prior art data quality management systems that 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 the data quality checking jobs contained in any of the job sets perform operations on copies of the BOs and not directly on transaction data that does not have the semantic structure of the corresponding BOs. For example, the copies of the BOs stored in the second database may be generated using one of the ETL jobs generated depending on the semantic structure of the BOs specified in the BO schema of the application, or they may be from the DQMS are generated from the transaction data contained in the received message by using the BO schema of the application in association with the mapping. After the copy of the BO has been created or read, for which the Data Quality Checking job, the job is executed on the copy of the BO and not on the mere transaction 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 medium comprising computer readable program code which, when executed by a processor, causes the processor to perform a method according to any 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 having a DQMS. The DQMS comprises a processing engine, a monitoring module, a classification module and a scheduler. The DQMS is designed to check the data quality of data of an application program. The processing engine is configured to perform at least one job of a plurality of jobs, wherein the at least one executed job is arranged to evaluate the data for compliance with one or more quality criteria. Each of the jobs belongs to a job set of a plurality of job sets, the plurality of job sets having at least a first job set and a second job set. Each job set of job sets represents a category of a runtime behavior, with the jobs contained in each job set being divided into the runtime behavior categories according to their respective runtime 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. Execution of the jobs contained in the second job set and the third job set is initiated by a data quality management system scheduler. The monitoring module is designed to monitor the runtime behavior of at least one of the executed jobs to determine a current runtime behavior of the job. The classification module is designed to automatically or semi-automatically re-classify the at least one monitored job by reassigning the job to the job set representing the identified 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.In some embodiments, the data is application data of the application program. The application data has a plurality of BOs. The computer system further includes 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 operatively connected to the DQMS and has a copy of the application data and the BOs in the second database according to an association. The assignment assigns attributes of the BOs of the BO schema to structural elements of the second database. The data quality management system is arranged to: access the BO schema and the mapping to determine attributes of BOs specified in the BO schema, which structural elements are assigned to the second database; generates one or more of the jobs as ETL jobs using the BO schema and / or the mapping.
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ägern) 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 those skilled in the art will appreciate, aspects of the present invention may be practiced as a system, method, or computer program product. Thus, aspects of the present invention may take the form of a wholly hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.) or an embodiment that combines software and hardware aspects, all of which are general may be referred to as a "circuit", a "module" or a "system". Moreover, aspects of the present invention may take the form of a computer program product residing on one or more computer readable media on which the computer readable program code resides. Any combination of one or more computer-readable media may be used. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. For example, a computer-readable storage medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device or any suitable combination of the above. More concrete examples (the list is not exhaustive) of the computer-readable storage medium would include: an electrical connection to one or more wires, a floppy disk of a portable computer, a hard disk, Random Access Memory (RAM), an Only 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 unit, a magnetic storage Storage unit or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any physically tangible medium that may contain or store a program for use by a command execution system, instruction execution device or unit, or for use in conjunction with an instruction execution system, instruction execution device or unit , A computer readable signal medium may include a transmitted data signal having computer readable program code 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 that is not a computer readable storage medium and that may be a program for use by an instruction execution system, instruction execution device or unit, or for use with a computer Command execution system, a command execution device or unit can transmit, forward or transport. Program code contained on a computer readable medium may be transferred by means of a suitable medium including a wireless medium, a wired medium, a fiber optic cable, radio frequency (RF), etc., without being limited thereto, or by any suitable combination of the foregoing ,
Kurze Beschreibung der ZeichnungenBrief description of the drawings
Im Folgenden werden bevorzugte Ausführungsformen der Erfindung anhand eines Beispiels ausführlicher beschrieben, wobei nur Bezug auf die Zeichnungen genommen wird, bei denen:Hereinafter, preferred embodiments of the invention will be described in more detail by way of example, with reference only to the drawings, in which:
Ausführliche Beschreibung Detailed description
Im Schritt
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 is transaction-based generation or the transaction-based deletion of this BO copy (CBO) has not met quality requirements. Since the second database has copies of the BOs of the application program, the result of the quality checking jobs computed for the copies of the BOs also applies to the corresponding BOs of the application program.
Falls im Schritt
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 true DE102013215529A1 (en) | 2015-02-12 |
DE102013215529B4 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 |
---|---|
DE102013215529B4 (en) | 2022-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69736748T2 (en) | EDITING ENVIRONMENT FOR OBJECT MODELS AND METHOD FOR THEIR APPLICATION | |
DE102012208141B4 (en) | Compensation for decreasing functionality | |
DE60315996T2 (en) | METHOD AND DEVICE FOR DATA MOVEMENT BY LOCKING | |
DE112019003833T5 (en) | WEAKNESS POINT ANALYSIS OF OPEN SOURCE SOFTWARE | |
DE112020004623T5 (en) | ML-BASED EVENT HANDLING | |
DE69815946T2 (en) | Information processing apparatus | |
DE202013012496U1 (en) | Systems for asynchronous schema changes | |
DE102014215621A1 (en) | Template system for generating customized documents | |
DE112020000467T5 (en) | FINAL STATE MACHINES FOR IMPLEMENTING WORKFLOWS FOR DATA OBJECTS MANAGED BY A DATA PROCESSING SYSTEM | |
DE102012223167B4 (en) | Sharing artifacts between collaborative systems | |
DE112012005051T5 (en) | Fix delivery system | |
DE102014116369A1 (en) | MANAGEMENT OF LANGUAGE MARKERS IN INTERNATIONAL DATA STORAGE | |
DE112011101793T5 (en) | Shared data usage with file clones | |
DE102019131291B4 (en) | SIMULTANEOUS PERFORMANCE OF SERVICES | |
DE102013200355A1 (en) | Merging of documents based on the knowledge of a document schema | |
DE102021125630A1 (en) | DATA SYNCHRONIZATION IN A DATA ANALYSIS SYSTEM | |
DE112010004003T5 (en) | A method of training and using a classification model with association rules models | |
DE112018001290T5 (en) | Method for estimating the erasability of data objects | |
DE112011103428T5 (en) | Automated analysis of composite applications | |
DE112022001326T5 (en) | CREATE AND EXECUTE PROCESS FLOWS TO CORRECT DATA QUALITY ISSUES IN DATA ASSETS | |
DE102021130957A1 (en) | RECOMMENDATIONS FOR THE STABILITY OF SOFTWARE UPDATES | |
DE102012001406A1 (en) | Automatic configuration of a product data management system | |
DE112022000878T5 (en) | DATASET MULTIPLEXER FOR DATA PROCESSING SYSTEM | |
DE112018005620T5 (en) | ORDER MANAGEMENT IN A DATA PROCESSING SYSTEM | |
DE102021123578A1 (en) | MEASURE THE DATA QUALITY OF DATA IN A GRAPH DATABASE |
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 |