US11429614B2 - Systems and methods for data quality monitoring - Google Patents
Systems and methods for data quality monitoring Download PDFInfo
- Publication number
- US11429614B2 US11429614B2 US16/824,207 US202016824207A US11429614B2 US 11429614 B2 US11429614 B2 US 11429614B2 US 202016824207 A US202016824207 A US 202016824207A US 11429614 B2 US11429614 B2 US 11429614B2
- Authority
- US
- United States
- Prior art keywords
- data
- metadata
- outputs
- output
- pipeline
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/062—Generation of reports related to network traffic
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0787—Storage of error reports, e.g. persistent data storage, storage using memory protection
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3086—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves the use of self describing data formats, i.e. metadata, markup languages, human readable formats
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/149—Network analysis or design for prediction of maintenance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P20/00—Technologies relating to chemical industry
- Y02P20/141—Feedstock
- Y02P20/143—Feedstock the feedstock being recycled material, e.g. plastics
Definitions
- Various embodiments of the present invention generally relate to processing data. More specifically, the embodiments of the present invention relate to systems and methods for data quality monitoring.
- Standard data query tools can be effective but fall short when working with dynamic data sets.
- Traditional data quality tools typically use human-powered reports.
- many solutions for data quality monitoring involve building a team of people to examine the quality of data and then generating a report.
- approaches that rely on human-labor often take extended periods of time and can be prohibitively expensive.
- a data quality report that takes an extended period of time to generate is often useless when it becomes available as the problems that result from poor data quality may have arisen before the report is completed.
- Implicit schema and schema creep (typos, changes to schema) often cause issues when ingesting data.
- Embedded JSON in relational data and document-based NoSQL databases are particularly prone to this type of problem.
- Completeness issues can also arise when ingesting data. For example, completeness can be compromised when there is an incorrect count of data rows/documents, when there are missing fields or missing values, and/or when there are duplicate and near-duplicate data entries.
- accuracy issues may arise when there are incorrect types in fields (e.g. a string field that often contains numbers but now contains words). Accuracy issues may further arise when there are incorrect category field values (e.g.
- a method to facilitate data monitoring in a computing system calls for ingesting unprocessed data from one or more data input streams and generating metadata using the unprocessed data.
- the metadata can describe a variety of attributes of the unprocessed data including, but not limited to, data schemas, data types, and data values.
- the method continues with computing, by utilizing the metadata, one or more expected data outputs from the unprocessed data.
- the expected data outputs may be predictive of an output from data processing in a data pipeline. Once the expected data outputs have been calculated, processed data emitted from one or more data output streams may be ingested.
- the processed data can include one or more actual data outputs.
- the processed data can be emitted from a data pipeline or other type of data processing system such as an extract/transform/load (ETL) orchestrated environment.
- ETL extract/transform/load
- the method continues with determining that the one or more actual data outputs of the processed data do not align with the one or more expected data outputs.
- the non-alignment may result from differences in data schema, differences in data type proportions, differences in the actual data values, or other differences which cause the expected outputs to differ from the actual outputs.
- an alert can be generated that signifies the one or more expected data outputs do not align with the one or more actual data outputs.
- the alert may then be sent to a client and can include a confidence level indicating at least an accuracy of the generated metadata.
- Generating the alert can further comprise generating a visual error report.
- the visual error report can include graphic elements that highlight which of the one or more actual data outputs do not align with the one or more expected data outputs.
- the visual error report may be a graph, table, plot, or other type of visualization.
- Generating the metadata can further include determining a value distribution of the unprocessed data, checking data types of the unprocessed data, and identifying a data schema for the unprocessed data.
- format changes to the unprocessed data can be tracked and the client may be notified of any format changes that occur in the unprocessed data. Changes to object records in the unprocessed data may also be detected in real time and upon detection, the client can be notified about the changes.
- a method to facilitate data monitoring in a computing system includes reading file records of a client.
- the file records may exist as a permanent file database that stores data received from a data pipeline or other type of data processing service.
- changes may occur in the file record of the client when a data pipeline writes new information to the file records.
- a score may be assigned to any changes that occur in the file records and the score can indicate a severity of a change in the file records.
- the method can further include identifying a location in the file records with a change that exceeds the score threshold and constructing a visual representation that highlights the location in the file record that exceeded the score threshold. Once generated, the visual representation may be sent to the client.
- metadata is generated to describe one or more attributes of the file record. Generating metadata can include checking the data types to determine a proportion of strings, numbers, and objects in the file record. Generating metadata can additionally include identifying a schema, a hierarchy, and counts of data items in the file record. Generating metadata can additionally include analyzing one or more actual values in the file record.
- the computerized system can include a data ingestion engine, a metadata generation platform, and a storage media.
- the computerized system may be coupled to a data pipeline and/or a database.
- the data ingestion engine may ingest data and can be communicatively coupled to the metadata generation platform.
- the data ingestion engine can ingest data received from a database or a data processing environment.
- the metadata generation platform can utilize the ingested data to produce metadata and may be operatively coupled to the data ingestion engine.
- the metadata generation platform can include a record hashing module, a schema building module, a type checking module, and a value distribution module.
- the record hashing module can record changes in data ingested by the data ingestion engine and may assign a score to each observed change.
- the schema building module can identify a data schema in the data ingested by the data ingestion engine.
- the type checking module can identify data types in the ingested data while the value distribution module can determine the value distribution in the data ingested by the data ingestion engine.
- the storage media may be operatively coupled with the metadata generation platform and can store metadata produced by the metadata generation platform.
- the computerized system can further include a data visualization engine that generates visual representations of metadata generated by the metadata ingestion engine. Additionally, the computerized system can include a data reading engine configured to read file records stored on a client database.
- Embodiments of the present invention also include computer-readable storage media containing sets of instructions to cause one or more processors to perform the methods, variations of the methods, and other operations described herein.
- FIG. 1 illustrates an example of an operating environment in which one or more embodiments of the present technology may be utilized
- FIG. 2 is a flowchart illustrating a set of operations for operating a data quality monitoring platform according to one or more embodiments of the present technology
- FIG. 3 is a sequence diagram for data quality monitoring according to one or more embodiments of the present technology
- FIG. 4 illustrates an example of an operational architecture according to one or more embodiments of the present technology
- FIG. 5 is a flowchart illustrating a set of operations for operating a data quality monitoring platform in accordance with some embodiments of the present technology
- FIG. 6 illustrates metadata generation platform in accordance with one or more embodiments of the present technology
- FIGS. 7A-7F illustrate data visualizations in accordance with some embodiments of the present technology.
- FIG. 8 illustrates an exemplary computing system according to various embodiments of the present technology.
- Various embodiments of the present invention relate generally to data quality monitoring.
- Many existing data quality tools and “best practices” are one-off activities.
- such one-off activities may involve first cleaning the data and then analyzing the data which can prevent continuous data monitoring.
- various embodiments of the present technology focus on continuous, high-velocity data feeds that are ingested and re-processed into a database system.
- Continuous data feeds can include real-time records of mouse clicks, telemetry events, and other real-time activities which prevents the effective use of one-off data analysis techniques.
- Such systems often require continuous, asynchronous data pipelines and many organizations have built (or bought) their own data cleaning, enrichment, fusion, and linking capabilities to enable these high-velocity operations.
- Data pipelines are running constantly, and downstream parts of a data intake systems make decisions based on the data in these pipelines. These decision makers are both software and human.
- the challenge facing downstream data intake systems is not altering operation of the data pipeline but knowing these data pipelines are operating correctly even when the upstream data changes, which is generally outside the control of downstream data intake systems.
- a data monitoring system to maintain data integrity can integrate into an existing data pipeline or other type of data processing system.
- the data monitoring system can monitor the quality of data entering the data pipeline as well as the quality of processed data existing the data pipeline.
- the data monitoring system may generate metadata to facilitate the data quality monitoring processes.
- the metadata may be used to determine if the data entering the data pipeline and the processed data exiting the data pipeline are historically consistent and that unexpected changes do not occur. For example, the metadata may be used to determine if the field names of data entering the data pipeline have changed.
- the data monitoring system may integrate into an existing data pipeline or an existing set of data pipelines.
- data pipelines are only as good as their source data as an error in the data source can cause errors to arise in the data pipeline.
- the data monitoring system can verify that the source data is valid.
- the data pipeline can invoke the data monitoring system to assess the quality of data inputs and to deliver confidence scoring on upstream data compared to previously examined data inputs.
- the data monitoring system may detect when data formats, schemas, key values, or expected values have changed before the pipeline attempts to load mismatched or incorrect values into a database, data warehouse, or machine learning model.
- the data monitoring system can be used in multiple places in pipeline development to identify value and statistical distortion as data flows through the pipeline.
- the data monitoring system can compare datasets, in multiple geographies, or a previous snapshot, or other related datasets to compute high-level differences and similarity.
- the data monitoring system may include a user interface to allow human operators to train the data monitoring system on the currently understood data quality.
- the data monitoring system may utilize self-supervised machine learning during training. The results of this machine learning can improve compression and re-calculation organization to improve efficiency.
- the user interface may include an undo capability to alter decisions made previously if they are found to be incorrect.
- the data monitoring system may warn that data processing has changed within hours of an error being introduced and provides automated and continuous data review.
- the data monitoring system can plug into to any number data pipelines, enabling error catching across asynchronous jobs, mismatches between test and production environments, and other challenging workflows.
- the data monitoring system can infer rules, influenced by user feedback, as to pipeline operation frequency, record counter throughput, and data shape.
- the data monitoring system includes metadata APIs that let data pipelines share both data and metadata with the data monitoring system for metrics monitoring.
- the data monitoring system may automatically generate an alert when anomalies occur or sustain themselves in metadata. For example, the data monitoring system may automatically generate an alert when a drop in the records processed occurs, statistical changes to the data occur, unexpected schema changes occur, inconsistent types of fields arise, and the like.
- the data monitoring system can track the differences between test and production environments. Data and metrics can be reported to the data monitoring system with a pipeline identifier and an environment name, so that data used in the test environment maintains a realistic correspondence to production data.
- the data monitoring system may include a validator that integrates into any ETL or data manipulation scripts.
- the data monitoring system may employ a variety of statistical tools to model the data shape, expected information, entropy, and other data attributes. Due to the continuous nature of data intake systems, the statistical tools can operate quickly when data rows are changing and may avoid recomputing large calculations. Furthermore, various embodiments can utilize data history information to compare past and present data shape as a means to ascertain the current state of the data. Comparing past and present data sets may utilize data compression techniques to increase the speed of this process. Typical compression works by looking at small buffers of data and entropy-coding the buffers, leveraging related neighbor values. Some embodiments may utilize pre-transforming the data before applying “local compression” techniques to yield significant improvements to compression (e.g., delta compression, column compression).
- local compression e.g., delta compression, column compression
- a data monitoring system may intake data from either side of a data pipeline. Unprocessed data entering the data pipeline, or copies of the unprocessed data, may be sent to the data monitoring system. The data monitoring system can ingest the unprocessed data and perform predictive analysis to determine the expected outputs that may result from data processing within the data pipeline. The data monitoring system may then compare the expected outputs with the processed outputs of the data pipeline to determine if the data pipeline is operating correctly.
- the data monitoring system may operate as a read only entity without implementing code changes to a data pipeline and/or database.
- a customer environment can provide a replica node of the data to the data monitoring system that the data monitoring system can connect to, thus reducing load on the primary data nodes.
- the data monitoring system can receive change records from the replica and processes them in real time.
- the data monitoring system can determine when a change negatively affects a database or data pipeline.
- the data monitoring system may combine database snapshots, backups, replicas, or multiple databases to compare point-in-time differences among multiple sources, even comparing across live data and .csv or other data formats for records is presented. Long-running asynchronous updates to data combined with automated data cleaning and data enrichment means data is constantly changing. Due to the constantly changing nature of the data, the data monitoring system can audit data changes over time.
- the data monitoring system may populate test databases or provide virtual presentation layers with a statistically meaningful subset of data for machine learning training and quality assurance testing.
- Some embodiments provide for a data monitoring system that prepares and audits data for machine learning models automatically across different data sources and models.
- the data monitoring system may identify differences between two data sets so that the two data sets can be made consistent with one another.
- the data monitoring system may further provide a unit test suite of tools and rules for datasets, enabling users to provide semantic rules to the data monitoring system to refine warnings, inferring inter- and intra-relationships, and so on. Via both sampling and comprehensive analytics, the data monitoring system can provide quality scoring that enables analysts to annotate or document confidence in their reports and visualizations of the data presented to the end-user.
- the data monitoring system may additionally provide interactive data visualization to the user.
- the interactive data visualizations can summarize data sets and present data sets graphically and interactively.
- the data monitoring system can plug into a database directly as a read-only user.
- a user may direct the data monitoring system at a read-only replica of a database to reduce performance impact on production or configure the data monitoring system to read from database snapshots.
- the data monitoring system may detect changes to object records over time, as they happen. For example, when a new field is added to a record, field name is misspelled, or inconsistent type are used in a field, the data monitoring system can detect these errors and generate an alert without having to wait for downstream consequences to reveal themselves. This may allow for faster diagnosing of database and/or data pipeline problems closer to the source and closer to real-time.
- the data monitoring system may flag database conditions that “should never happen” and can generate an automatic warning when they happen again.
- various embodiments of the present technology provide for a wide range of technical effects, advantages, and/or improvements to computing systems and components.
- various embodiments include one or more of the following technical effects, advantages, and/or improvements: 1) comparing point-in-time differences between multiple large data sets; 2) auditing changes to data sets over time; 3) detection of software bugs or changes in object records over time; 4) providing interactive data visualization to present large data sets in a condensed manner; 5) preparing large data sets for machine learning engines; 6) integrating into existing database environments to monitor data quality without altering database structure; and/or 7) generating metadata in real time to predict changes in data from data processing.
- Some embodiments include additional technical effects, advantages, and/or improvements to computing systems and components.
- inventions introduced here can be embodied as special-purpose hardware (e.g., circuitry), as programmable circuitry appropriately programmed with software and/or firmware, or as a combination of special-purpose and programmable circuitry.
- embodiments may include a machine-readable medium having stored thereon instructions which may be used to program a computer (or other electronic devices) to perform a process.
- the machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, compact disc read-only memories (CD-ROMs), magneto-optical disks, ROMs, random access memories (RAMs), erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, flash memory, or other type of media/machine-readable medium suitable for storing electronic instructions.
- FIG. 1 includes operating environment 100 which illustrates various embodiments of the present technology.
- Operating environment 100 includes data sources 101 , data pipeline 110 , database 120 and data monitoring platform 130 .
- Data sources 101 further includes data source 103 , data source 105 , and data source 107 .
- data sources 101 is not limited by the type, or number of data sources.
- data sources 101 may produce customer information data, industrial production data, online activity data, and/or other types of data.
- data sources 101 can generate data inputs 104 .
- Data pipeline 110 is representative of one or more data processing elements.
- data pipeline 110 may include an extract/transform/load (ETL) orchestrated environment.
- ETL extract/transform/load
- Data pipeline 110 can receive data inputs 104 from data sources 101 .
- the data inputs 104 may include information generated by one or more of data sources 103 , 105 , or 107 .
- Data pipeline 110 may perform a variety of processes on data inputs 104 received by data sources 101 to generate processed outputs 106 .
- data pipeline 110 may extract relevant data components from data inputs 104 and transform the relevant components into processed outputs 106 that are readable by database 120 , and then load, or otherwise send processed outputs 106 to database 120 .
- Data pipeline 110 may exist as a single data processing entity or as multiple data processing entities linked in series.
- data pipeline 110 may have one or more inherent programming errors which cause elements of processed outputs 106 to be malformed.
- an inherent programming error in data pipeline 110 may replace a string with an object during the processing of data inputs 104 , causing an unexpected change in processed outputs 106 .
- data inputs 104 may exist in a non-standard state upon entering data pipeline 110 causing data pipeline 110 to incorrectly process data inputs 104 .
- Database 120 is representative of one or more computing devices integrated into a network that communicates with data pipeline 110 and database 120 .
- Examples of applicable computing devices include, but are not limited to, server computers and data storage devices deployed on-premises, in the cloud, in a hybrid cloud, or elsewhere, by content providers such as enterprises, organizations, individuals, and the like.
- Database 120 may rely on the physical connections provided by one or more other network providers such as transit network providers, Internet backbone providers, and the like to interface with data pipeline 110 and data monitoring platform 130 .
- Database 120 includes storage system 123 .
- Storage system 123 may be any number of storage devices including random access memory, read only memory, magnetic disks, optical disks, optical media, flash memory, virtual memory and non-virtual memory, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other suitable storage media.
- database 120 receives processed outputs 106 from data pipeline 110 and stores processed outputs 106 on storage system 123 as received outputs 151 .
- Data monitoring platform 130 is representative of one or more computing devices, such as server computers and data storage devices deployed on-premises, in the cloud, in a hybrid cloud, or elsewhere, and the like. Data monitoring platform 130 can be operatively coupled to data pipeline 110 and communicatively coupled to database 120 . Data monitoring platform 130 can include data processor 135 and local storage 137 . In some embodiments, data monitoring platform 130 can receive a call from data pipeline 110 to ingest data inputs 104 , before data pipeline 110 processes data inputs 104 . Data monitoring platform 130 can further receive calls from data pipeline 110 to ingest processed outputs 106 .
- data monitoring platform 130 can relay data inputs 104 and processed outputs 106 to data processor 135 .
- Data processor 135 may then store processed outputs 106 on local storage 137 as received outputs 151 .
- Data processor 135 after receiving data inputs 104 , can utilize data inputs 104 to implement process 200 , or other similar processes, to generate calculated outputs 141 , metadata 143 , error reports 145 , and confidence reports 147 .
- calculated outputs 141 are representative of an expected output of data pipeline 110 when processing data inputs 104 .
- data processor 135 may mimic the operation of data pipeline 110 to calculate the expected result of when data pipeline 110 ingests and processes data inputs 104 .
- data processor 135 may cross-examine data outputs 141 with received outputs 151 . In doing so, data processor 135 may determine if calculated outputs 141 accurately align with received outputs 151 .
- Data processor 135 can use data inputs 104 to generate metadata 143 .
- Metadata 143 may describe various components of data inputs 104 .
- metadata 143 may include information describing a schema, a hierarchy, counts, data types, and a distribution of data types in data inputs 104 .
- Data processor 135 may in some instances use metadata 143 to determine if received outputs 151 properly align with calculated outputs 141 .
- data processor 135 can use metadata 143 to determine if data inputs 104 are correctly formatted. For example, data processor 135 can identify that metadata 143 is different than an expected data structure of data inputs 104 , and in turn, determine that data inputs 104 possess one or more incorrect data elements.
- data platform 130 may then notify data pipeline 110 to abort the processing of data inputs 104 .
- data processor 135 may use previously generated metadata to determine if metadata 143 generated using data inputs 104 is historically consistent. Data processor 135 may operate in real time and may be a fully automated computing system.
- Error reports 145 can include one or more visual elements highlighting what elements of received outputs 151 do not align with calculated outputs 141 . Error reports 145 can additionally highlight components of calculated outputs 141 that do not align with received outputs 151 .
- the visual elements may include one or more charts, graphs, tables, animations, gifs, or other visuals to pinpoint the non-aligned components of received outputs 151 .
- a visual element of error reports 145 may indicate that a data string in received outputs 151 has replaced with a data object. Error reports 145 , once generated, can then be sent to database 120 to notify database 120 , or an entity in control of database 120 , that one or more components in received outputs 151 do not align with calculated outputs 141 . Error reports 145 may further include an abort command directing database 120 to cease ingesting processed outputs 106 from data pipeline 110 .
- confidence reports 147 may include a confidence level indicating how likely received outputs 151 do not align with calculated outputs 141 .
- confidence reports 147 may include a confidence level indicating how likely data inputs 104 include one or more malformed elements. Once generated, confidence reports 147 may be sent to database 120 .
- data processor 135 performs data monitoring process 200 , described in FIG. 2 , in order to determine if received outputs 151 properly correlate with calculated outputs 141 .
- Data monitoring process 200 may be implemented in program instructions in the context of any of the software applications, modules, components, or other such programming elements of data monitoring platform 130 and/or data processor 135 .
- the program instructions direct the underlying physical or virtual computing system or systems to operate as follows, referring parenthetically to the steps in FIG. 2 and in the context of the operating environment 100 of FIG. 1 .
- FIG. 2 is a flowchart illustrating a data monitoring process according to one or more embodiments of the present technology.
- the data monitoring process 200 may be fully automated and can require no user input. Alternatively, data monitoring process 200 may allow user input to provide for user customization of the data monitoring process.
- a server or other type of computing device e.g. data processor 135
- employing data monitoring process 200 receives a call from a data pipeline (e.g. data pipeline 110 ) to ingest data inputs (step 210 ).
- the data pipeline may be an ETL orchestrated environment or other type of data processing environment that can ingest and process the data inputs (e.g. data inputs 104 ).
- the server generates metadata (e.g.
- the server can store the metadata in one or more storage systems (e.g. local storage 137 ).
- the storage system may include a metadata record that includes previously generated metadata. The server may compare the generated metadata to the previously generated metadata to ascertain if the newly ingested data inputs are historically consistent with previous data inputs. When historical consistency is not observed, the server can determine that at least one element of the ingested data inputs is different than previously ingested data inputs.
- the server may determine that the schema of the ingested data inputs is different than the schema of the previously ingested data inputs. In some embodiments, if historical inconsistency is observed, the server may notify the data pipeline and instruct the data pipeline to cease processing the data inputs.
- the server may calculate expected data outputs using the generated metadata (step 230 ).
- the calculated outputs may include expected outputs from the data pipeline when the data pipeline processes the data inputs.
- the calculated outputs may include an expected schema, expected data types, and expected data values that result from processing the data inputs in the data pipeline.
- the server can receive data outputs (e.g. processed outputs 106 ) from the data pipeline (step 240 ).
- the data outputs may be generated by the data pipeline by processing the data inputs.
- the server can determine if the received data outputs match the expected data outputs calculated by using the ingested data inputs (step 250 ).
- the server may generate metadata using the received data outputs and then compare the output metadata with the input metadata.
- the server may compare the expected schema, the expected data types, and the expected data values of the expected outputs with the actual schema, the actual data types, and the actual data values of the received outputs.
- the server may generate an error report and send the error report (e.g. error reports 145 ) to a client (step 260 ).
- the client e.g. database 120
- the error report may include one or more visualizations that point out which elements of the received data outputs do not align with calculated expected data.
- the visualizations may be a chart, a plot, a table, or an animation and can summarize the contents of a database.
- the error reports may include a confidence level (e.g.
- the confidence level may indicate an 80% confidence that the received data outputs do not align with the expected data outputs.
- the confidence level may further indicate an accuracy of the generated metadata.
- the error report may further include an abort command to direct the client to stop receiving data from the data pipeline. However, if the expected data outputs align with the received data outputs, the server can continue to monitor pipeline data inputs and outputs (step 270 ).
- FIG. 3 illustrates a sequence diagram representing an operational sequence according to one or more embodiments of the present technology.
- the operational sequence may include some or all aspects of data monitoring process 200 .
- FIG. 3 includes information source 300 , ETL environment 310 , monitoring system 320 , and client 330 .
- Information source 300 can send data inputs to ETL environment 310 .
- Information source 300 is representative of a variety of processes which produce data. Examples include, but are not limited to, customer purchasing data, advertisement data, company revenue data, industrial production data, online website activity data, and the like.
- the data inputs can be sent to ETL environment 310 in an unprocessed state.
- ETL environment 310 is representative of a data processing system to intake unprocessed data and transform the unprocessed data into a storable state. Upon receiving the data inputs, ETL environment 310 processes the data and then sends the processed data to client 330 . Processing can include an extract/transform/load process or similar data formatting process. Client 330 , after receiving the processed data may store the processed data. The storage can be permanent or temporary and may be performed in real time or in batches.
- ETL environment 310 can additionally call monitoring system 320 with a request for monitoring system 320 to ingest the data inputs.
- Monitoring system 320 after accepting the call, receives the data inputs from ETL environment 310 .
- monitoring system 320 can include a validator to receive the call from ETL environment 310 .
- Monitoring system 320 can utilize the data inputs to generate metadata that describes one or more characteristics of the data inputs.
- the metadata may describe the schema, the types, and the values or the data inputs.
- Monitoring system 320 can then receive historical metadata from client 330 .
- the historical metadata may include the correct and/or the preferred structure of data inputs sent to ETL environment 310 .
- the historical metadata may further include information on the structure of previous data inputs sent to ETL environment 310 .
- the historical metadata may be locally stored in monitoring system 320 instead of being received from client 330 .
- Monitoring system 320 can then compare the generated metadata with the historical metadata to determine if the data inputs are structurally consistent with previous data inputs received by ETL environment 310 .
- Monitoring system 320 may then send a constancy measure to ETL environment 310 .
- the consistency measure can indicate how similar the generated metadata is to the historical metadata. If the generated metadata is inconsistent with the historical metadata, ETL environment 310 may cease intaking data inputs from information source 300 . In some examples, ETL environment 310 may reformat the data inputs to become consistent with previous data inputs.
- ETL environment 310 can include a processing engine to determine, by utilizing the consistency measure, whether or not to proceed with processing data inputs received from information source 300 .
- monitoring system 320 can calculate one or more expected outputs.
- the expected outputs may be a predictive model for the processed outputs produced by ETL environment 310 .
- the expected outputs may model the data shape, expected information, entropy, and other data attributes of the processed outputs.
- monitoring system 320 can utilize the generated metadata to calculate the expected outputs.
- ETL environment 310 may call monitoring system 320 with a request to ingest the processed data. Monitoring system 320 can then ingest the processed data. After ingesting the processed data, monitoring system 320 can then determine that the processed data generated by ETL environment 310 does not align with the expected outputs calculated by monitoring system 320 . Monitoring system 320 can then identify the errors that cause the processed outputs to not align with the expected outputs.
- the monitoring system 320 may identify differences in data structure, data types, proportions of data types, and/or actual data values between the processed outputs and the calculated expected outputs. Monitoring system 320 may then send an error report to client 330 outlining the differences between the processed data and the calculated expected outputs. In some examples, the error report may include one or more visual elements specifically pointing out which fields of the processed outputs do not align with the expected outputs. Monitoring system 320 may further send a confidence report to client 330 that includes a confidence level. The confidence level may indicate how likely the calculated expected outputs are to be different than the processed outputs. For example, a confidence level of 85% may indicate that there is an 85% likelihood that the calculated expected outputs do not align with the processed outputs of ETL environment 310 .
- FIG. 4 includes operational architecture 400 which illustrates one or more embodiments of the present technology.
- Operational architecture 400 includes data center 410 , file records 420 , data monitoring system 430 , and metadata engine 435 .
- Data center 410 is representative of one or more computing devices such as a server computer and includes file system 415 .
- File system 415 is representative of one or more storage devices and can be configured to store file records 420 . Examples or storage devices include, but are not limited to, hard disk storage drives and/or solid-state storage drives.
- data center 410 may be communicatively coupled to a data pipeline or another type of data processing system. Data center 410 may receive data generated by the data pipeline and then write the received data to file system 415 .
- File records 420 includes data file 424 , data file 426 , and data file 428 .
- Data files 424 , 426 , and 428 are representative of data stored on file system 415 .
- File records 420 can be a replica dataset.
- data files 424 , 426 , and 428 may include data received from a data pipeline or data replicas of data received from a data pipeline. When new data is received by data center 410 and written to file records 420 , changes may occur in any of data files 424 , 436 , and 428 .
- file records 420 can include a record of changes that occur in any of data files 424 , 426 , or 428 .
- Data files 424 , 426 , and 428 may be permanent file records of data received from a data pipeline or a replica of the permanent file records.
- File system 415 can be communicatively coupled to data monitoring system 430 .
- Data monitoring system 430 is representative of one or more computing devices and includes metadata engine 435 and storage system 437 .
- Metadata engine 435 is representative of one or more computing devices that can implant program instructions to record any changes that occur in the data files of file records 420 .
- metadata engine 435 may create a local copy of changes to data files 424 , 426 , and 428 and then store the local copy on storage system 437 as tracked changes 441 .
- metadata engine 435 can read data files 424 , 426 , and 428 of file records 420 to determine the contents of data files 424 , 426 , and 428 .
- Metadata engine 435 may further utilize the read data to generate metadata describing data files 424 , 426 and 428 and store the generated metadata on storage system 437 as metadata 443 . Metadata engine 435 may use metadata 445 to create visuals 445 . Visuals 445 may visually present metadata 445 and provide a summary of any or all components of file records 420 . In some embodiments, metadata engine 435 may run data monitoring process 500 . Data monitoring process 500 may be implemented as program instructions in the context of any software applications, modules, components, or other such programming elements of data monitoring system 430 and/or metadata engine 435 . The program instructions can direct the underlying physical or virtual computing system or systems to operate as follows, referring parenthetically to the steps in FIG. 5 and in the context of the operational architecture 400 of FIG. 4 .
- FIG. 5 is a flowchart illustrating a data monitoring process according to one or more embodiments of the present technology.
- the data monitoring process may be implemented as program instructions and can be fully automated.
- a server or other type of computing device e.g. metadata engine 135
- may read file records of a client e.g. file records 420
- monitor for changes in the file records of the client step 500 .
- the server may act as a read-only entity and track the changes in the client's file records.
- the server may further create a copy of the tracked changes (e.g. tracked changes 441 ) and store the copy on a local database (e.g. storage system 437 ).
- the changes to the file records may be caused by a data pipeline or other type of data processing service writing new data to the file records.
- the server may score the changes to the client file records to locate adverse changes to the file records (step 510 ).
- the score assigned by the server can reflect the severity of an adverse change. For example, a large score may indicate an adverse change to the file record while a small score may indicate a non-detrimental change to the file record. In some embodiments, the score may be an alphanumeric score.
- the server may generate metadata (e.g. metadata 443 ) that describes the file records and/or changes that occurred in the file records to aid in scoring the tracked changes. The server may compare the generated metadata to previously generated metadata to determine if the generated metadata is historically consistent. Generated metadata that is historically inconsistent can indicate that an adverse change has occurred in the file records.
- adverse changes can include, but are not limited to, unexpected changes to the file record that alter the existing data schema, data hierarchy, data types, proportions of data types, or actual data values of the file record. For example, an adverse change may result if the field names in a file record are unexpectedly changed.
- the server after scoring an observed change, can then determine if the score exceeds a score threshold (step 520 ).
- the score threshold may be a limit that indicates the severity of a scored change. For example, if the score exceeds the score threshold, the server may deem the change an adverse change and identify the location in the file record with the adverse change (step 530 ). Once the location of the adverse change is identified, the sever can then generate a visual representation of the file records (step 540 ).
- the visual representation may include one or more visual or textual elements which point out the location in the file records with the adverse change as well as the severity of the adverse change.
- the visual representation can include one or more charts, plots, graphs, tables, pictures, or animations to highlight the location and the severity of the scored changes.
- the server may send the visual representation to the client (step 550 ). Likewise, if the server determines that the score is below the score threshold, the server may deem the score non-detrimental or otherwise not adverse and continue can continue to read the client file records (step 560 ).
- FIG. 6 illustrates system architecture 600 which illustrates one or more embodiments of the present technology.
- System architecture 600 includes customer environment 610 , metadata generator 620 , and metadata storage 630 .
- Customer environment 610 includes customer database 613 and data files 615 .
- Data files 615 may be a replica file record.
- customer database 613 produces change record stream 642 and data files 615 produces information stream 644 .
- Information stream 644 can include data from data files 615 or a replica of data files 615 .
- Customer environment 610 can transmit change record stream 642 and information stream 644 to metadata generator 620 .
- Change record stream 642 can include any recorded changes to data files 615 .
- a data processing system such as an ETL data pipeline (not shown), may write information to data files 615 causing one or more changes to occur in data files 615 .
- Customer database 613 can record the changes to data files 615 and may then include the changes to data files 615 in change record stream 642 .
- Information stream 644 can include data stored in data files 615 or data received from a data processing system (not shown).
- Metadata generator 620 represents one or more computing systems and can ingest change record stream 642 and information stream 644 .
- metadata generator 620 includes record hashing module 623 , schema building module 625 , type checking module 627 , and value distribution module 629 .
- Metadata generator 620 can relay the ingested change record stream 642 to record hashing module 623 .
- Record hashing module 623 can record the list of changes included in change record stream 642 .
- record hashing module 623 may assign a score to each change in change record stream 642 . The scores can reflect a severity in each change and can indicate whether or not the change adversely affected a state of data files 615 .
- Record hashing module 623 can produce metadata describing the recorded changes and the scores assigned to each of the changes.
- the metadata produced by record hashing module 623 may include information relating the types of changes included in change record stream 642 .
- the metadata produced by record hashing module 623 may categorize the changes as additions and/or deletions.
- the metadata produced by record hashing module 623 can further include counters detailing the number of times each change occurred.
- Metadata generator 620 may relay information stream 644 to schema building module 625 , type checking module 627 , and value distribution module 629 .
- Schema building module 625 can produce metadata detailing the structure of data included in information stream 644 .
- schema building module 625 can determine the schema, the hierarchy, and the counts of data types of information stream 644 and include this information in the produced metadata.
- Type checking module 627 can produce metadata describing the types and proportions of the types of data in information stream 644 .
- type checking module 627 may track the proportion strings, numbers, and objects in the data of information stream 644 and include the tracked proportions in the produced metadata.
- Value distribution module 629 can perform distribution analysis on information stream 644 and produce metadata relating the distribution analysis.
- the distribution analysis includes analyzing the actual values in the data of information stream 644 .
- analyzing the actual values may include determining the distribution between words and strings.
- Metadata generator 620 may send the metadata produced by record hashing module 623 , schema building module 625 , type checking module 627 , and value distribution module 629 to metadata storage 630 .
- Metadata storage 630 is representative of one or more storage devices and can store the metadata received from metadata generator 620 as metadata records 633 .
- Metadata storage 630 may operate under continuously or may store metadata in batches.
- Metadata records 633 can include recently generated metadata as well as metadata generated during previous iterations. Metadata records 633 can be used in metadata training and is not limited by size.
- metadata generator 620 utilizes metadata records 633 to produce one or more visual elements to visually depict metadata records 633 .
- Metadata generator 620 can store the one or more visual elements as visuals 635 on metadata storage 630 .
- FIGS. 7A-7F depict examples data visualizations according to one or more embodiments of the present technology.
- the data visualizations include indicators describing the contents of a database.
- the data visualizations may present any data type or data structure within a database.
- a data visualization may depict the schema and the data types of a database.
- the visualizations may include color or pattern schemes detailing the state of any contents in a database. For example, a data object, or a portion of a data object may be marked with a pattern that indicates the data object is defective. In contrast, a data object, or a portion or a data object, may be marked with a pattern or color that indicates that the data object is in a non-defective state.
- the visualizations may be interactive and can be updated in real time to reflect changes in a database.
- Each visualization may show the proportion of data types within a database.
- the visualizations may indicate that 50% of the contents in a database are strings.
- the visualizations may include alphanumeric symbols to identify contents within a database. It should be appreciated that the data visualizations are not limited by the data type nor number of data items.
- the data visualizations may be generated by utilizing metadata produced by a metadata generator.
- the metadata can be used to summarize the contents of a particular database and this summary may be depicted in the data visualizations.
- the visualizations may include one or more animated sections that depict changes over time in a database.
- the visualizations may be time-stamped as to indicate the state of a database at a particular point in time.
- FIG. 800 illustrates computing system 800 that is representative of any system or collection of systems in which the various processes, programs, services, and scenarios disclosed herein may be implemented.
- Examples of computing system 800 include, but are not limited to, server computers, routers, web servers, cloud computing platforms, and data center equipment, as well as any other type of physical or virtual server machine, physical or virtual router, container, and any variation or combination thereof.
- Computing system 800 may be implemented as a single apparatus, system, or device or may be implemented in a distributed manner as multiple apparatuses, systems, or devices.
- Computing system 800 includes, but is not limited to, processing system 825 , storage system 805 , software 810 , communication interface system 820 , and user interface system 830 (optional).
- Processing system 825 is operatively coupled with storage system 805 , communication interface system 820 , and user interface system 830 .
- Processing system 825 loads and executes software 810 from storage system 805 .
- Software 810 includes and implements data monitoring process 815 , which is representative of the data monitoring processes discussed with respect to the preceding Figures.
- data monitoring process 815 When executed by processing system 825 , software 810 directs processing system 825 to operate as described herein for at least the various processes, operational scenarios, and sequences discussed in the foregoing implementations.
- Computing system 800 may optionally include additional devices, features, or functionality not discussed here for purposes of brevity.
- processing system 825 may comprise a micro-processor and other circuitry that retrieves and executes software 810 from storage system 805 .
- Processing system 825 may be implemented within a single processing device but may also be distributed across multiple processing devices or sub-systems that cooperate in executing program instructions. Examples of processing system 825 include general purpose central processing units, graphical processing units, application specific processors, and logic devices, as well as any other type of processing device, combinations, or variations thereof.
- Storage system 805 may comprise any computer readable storage media that is readable by processing system 825 and capable of storing software 810 .
- Storage system 805 may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of storage media include random access memory, read only memory, magnetic disks, optical disks, optical media, flash memory, virtual memory and non-virtual memory, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other suitable storage media. In no case is the computer readable storage media a propagated signal.
- storage system 805 may also include computer readable communication media over which at least some of software 810 may be communicated internally or externally.
- Storage system 805 may be implemented as a single storage device but may also be implemented across multiple storage devices or sub-systems co-located or distributed relative to each other.
- Storage system 805 may comprise additional elements, such as a controller, capable of communicating with processing system 825 or possibly other systems.
- Software 810 may be implemented in program instructions and among other functions may, when executed by processing system 825 , direct processing system 825 to operate as described with respect to the various operational scenarios, sequences, and processes illustrated herein.
- software 810 may include program instructions for implementing a data monitoring process as described herein.
- the program instructions may include various components or modules that cooperate or otherwise interact to carry out the various processes and operational scenarios described herein.
- the various components or modules may be embodied in compiled or interpreted instructions, or in some other variation or combination of instructions.
- the various components or modules may be executed in a synchronous or asynchronous manner, serially or in parallel, in a single threaded environment or multi-threaded, or in accordance with any other suitable execution paradigm, variation, or combination thereof.
- Software 810 may include additional processes, programs, or components, such as operating system software, virtualization software, or other application software.
- Software 810 may also comprise firmware or some other form of machine-readable processing instructions executable by processing system 825 .
- software 810 may, when loaded into processing system 825 and executed, transform a suitable apparatus, system, or device (of which computing system 800 is representative) overall from a general-purpose computing system into a special-purpose computing system customized to optimize secure traffic as described herein.
- encoding software 810 on storage system 805 may transform the physical structure of storage system 805 .
- the specific transformation of the physical structure may depend on various factors in different implementations of this description. Examples of such factors may include, but are not limited to, the technology used to implement the storage media of storage system 805 and whether the computer-storage media are characterized as primary or secondary storage, as well as other factors.
- software 810 may transform the physical state of the semiconductor memory when the program instructions are encoded therein, such as by transforming the state of transistors, capacitors, or other discrete circuit elements constituting the semiconductor memory.
- a similar transformation may occur with respect to magnetic or optical media.
- Other transformations of physical media are possible without departing from the scope of the present description, with the foregoing examples provided only to facilitate the present discussion.
- Communication interface system 820 may include communication connections and devices that allow for communication with other computing systems (not shown) over communication networks (not shown). Examples of connections and devices that together allow for inter-system communication may include network interface cards, antennas, power amplifiers, RF circuitry, transceivers, and other communication circuitry. The connections and devices may communicate over communication media to exchange communications with other computing systems or networks of systems, such as metal, glass, air, or any other suitable communication media. The aforementioned media, connections, and devices are well known and need not be discussed at length here.
- Communication between computing system 800 and other computing systems may occur over a communication network or networks and in accordance with various communication protocols, combinations of protocols, or variations thereof. Examples include intranets, internets, the Internet, local area networks, wide area networks, wireless networks, wired networks, virtual networks, software defined networks, data center buses and backplanes, or any other type of network, combination of network, or variation thereof.
- the aforementioned communication networks and protocols are well known and need not be discussed at length here.
- the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to.”
- the terms “connected,” “coupled,” or any variant thereof means any connection or coupling, either direct or indirect, between two or more elements; the coupling or connection between the elements can be physical, logical, or a combination thereof.
- the words “herein,” “above,” “below,” and words of similar import when used in this application, refer to this application as a whole and not to any particular portions of this application.
- words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively.
- the word “or,” in reference to a list of two or more items, covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Library & Information Science (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Environmental & Geological Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
Description
Claims (7)
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/824,207 US11429614B2 (en) | 2020-02-18 | 2020-03-19 | Systems and methods for data quality monitoring |
| EP21757309.6A EP4107670A4 (en) | 2020-02-18 | 2021-02-18 | DATA QUALITY MONITORING SYSTEMS AND METHODS |
| PCT/US2021/018511 WO2021168070A1 (en) | 2020-02-18 | 2021-02-18 | Systems and methods for data quality monitoring |
| US17/737,169 US11829365B2 (en) | 2020-02-18 | 2022-05-05 | Systems and methods for data quality monitoring |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202062978291P | 2020-02-18 | 2020-02-18 | |
| US16/824,207 US11429614B2 (en) | 2020-02-18 | 2020-03-19 | Systems and methods for data quality monitoring |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/737,169 Continuation US11829365B2 (en) | 2020-02-18 | 2022-05-05 | Systems and methods for data quality monitoring |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20210248144A1 US20210248144A1 (en) | 2021-08-12 |
| US11429614B2 true US11429614B2 (en) | 2022-08-30 |
Family
ID=77391640
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/824,207 Active 2040-04-20 US11429614B2 (en) | 2020-02-18 | 2020-03-19 | Systems and methods for data quality monitoring |
| US17/737,169 Active 2040-03-19 US11829365B2 (en) | 2020-02-18 | 2022-05-05 | Systems and methods for data quality monitoring |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/737,169 Active 2040-03-19 US11829365B2 (en) | 2020-02-18 | 2022-05-05 | Systems and methods for data quality monitoring |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US11429614B2 (en) |
| EP (1) | EP4107670A4 (en) |
| WO (1) | WO2021168070A1 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20230041906A1 (en) * | 2021-08-03 | 2023-02-09 | Data Culpa, Inc. | Data lineage in a data pipeline |
| US20250209048A1 (en) * | 2022-12-08 | 2025-06-26 | CollectiveHealth, Inc. | Data quality evaluation system |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2022038402A (en) * | 2020-08-26 | 2022-03-10 | 京セラドキュメントソリューションズ株式会社 | Data federation system and control system |
| US12061583B1 (en) * | 2020-09-29 | 2024-08-13 | Amazon Technologies, Inc. | Systems for processing data using stages |
| US20220207048A1 (en) * | 2020-12-28 | 2022-06-30 | EMC IP Holding Company LLC | Signal of trust access prioritization |
| US20220318006A1 (en) * | 2021-03-31 | 2022-10-06 | Mastercard Technologies Canada ULC | Secure data enclave |
| US12216625B2 (en) * | 2021-08-03 | 2025-02-04 | Data Culpa, Inc. | Elastic data sampling in a data pipeline |
| US11874725B2 (en) * | 2021-08-17 | 2024-01-16 | Data Culpa, Inc. | Visual alert generation in a data pipeline environment |
| US11860853B2 (en) | 2021-11-09 | 2024-01-02 | Microsoft Technology Licensing, Llc | Automated data health reasoning |
| US11966381B2 (en) * | 2021-11-09 | 2024-04-23 | Microsoft Technology Licensing, Llc | Event driven data health monitoring |
| US20230267113A1 (en) * | 2022-02-23 | 2023-08-24 | Dell Products L.P. | Dcf confidence score aging |
| US20230289839A1 (en) * | 2022-03-14 | 2023-09-14 | Adobe Inc. | Data selection based on consumption and quality metrics for attributes and records of a dataset |
| US12340333B2 (en) | 2022-03-14 | 2025-06-24 | Adobe Inc. | Interactive tree representing attribute quality or consumption metrics for data ingestion and other applications |
| US20230306033A1 (en) * | 2022-03-14 | 2023-09-28 | Adobe Inc. | Dashboard for monitoring current and historical consumption and quality metrics for attributes and records of a dataset |
| US12026134B2 (en) * | 2022-05-23 | 2024-07-02 | Microsoft Technology Licensing, Llc | Flow-based data quality monitoring |
| US12099524B2 (en) * | 2022-06-09 | 2024-09-24 | Salesforce, Inc. | Database systems and related replication monitoring methods |
| US12326722B2 (en) * | 2022-07-12 | 2025-06-10 | Rockwell Automation Technologies, Inc. | Data pipeline security model |
| US12093243B1 (en) | 2023-01-09 | 2024-09-17 | Wells Fargo Bank, N.A. | Metadata quality monitoring and remediation |
| US20240264986A1 (en) * | 2023-01-18 | 2024-08-08 | Google Llc | Automated, In-Context Data Quality Annotations for Data Analytics Visualization |
| US11954434B1 (en) * | 2023-05-19 | 2024-04-09 | Fmr Llc | Automatic validation of a hybrid digital document |
| CN117112651B (en) * | 2023-09-22 | 2026-04-28 | 杭州比智科技有限公司 | A method and equipment for enterprise data quality assessment |
| US12608352B2 (en) | 2024-04-19 | 2026-04-21 | Anomalo, Inc. | Injecting synthetic anomalies into data for benchmarking data quality monitoring algorithms |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110082848A1 (en) * | 2009-10-05 | 2011-04-07 | Lev Goldentouch | Systems, methods and computer program products for search results management |
| US20140067734A1 (en) | 2012-09-05 | 2014-03-06 | Numenta, Inc. | Anomaly detection in spatial and temporal memory system |
| US20150026027A1 (en) | 2009-06-12 | 2015-01-22 | Guardian Analytics, Inc. | Fraud detection and analysis |
| US20160147852A1 (en) | 2014-11-21 | 2016-05-26 | Arndt Effern | System and method for rounding computer system monitoring data history |
| US20160307173A1 (en) | 2015-04-20 | 2016-10-20 | Splunk Inc. | Display of data ingestion information based on counting generated events |
| US20190028557A1 (en) | 2015-08-28 | 2019-01-24 | Ankur MODI | Predictive human behavioral analysis of psychometric features on a computer network |
| US20200174966A1 (en) * | 2018-11-30 | 2020-06-04 | International Business Machines Corporation | Self-learning operational database management |
| US20210090694A1 (en) * | 2019-09-19 | 2021-03-25 | Tempus Labs | Data based cancer research and treatment systems and methods |
| US11238048B1 (en) * | 2019-07-16 | 2022-02-01 | Splunk Inc. | Guided creation interface for streaming data processing pipelines |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10324773B2 (en) * | 2015-09-17 | 2019-06-18 | Salesforce.Com, Inc. | Processing events generated by internet of things (IoT) |
| US10681074B2 (en) * | 2015-10-28 | 2020-06-09 | Qomplx, Inc. | System and method for comprehensive data loss prevention and compliance management |
-
2020
- 2020-03-19 US US16/824,207 patent/US11429614B2/en active Active
-
2021
- 2021-02-18 WO PCT/US2021/018511 patent/WO2021168070A1/en not_active Ceased
- 2021-02-18 EP EP21757309.6A patent/EP4107670A4/en not_active Withdrawn
-
2022
- 2022-05-05 US US17/737,169 patent/US11829365B2/en active Active
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150026027A1 (en) | 2009-06-12 | 2015-01-22 | Guardian Analytics, Inc. | Fraud detection and analysis |
| US20110082848A1 (en) * | 2009-10-05 | 2011-04-07 | Lev Goldentouch | Systems, methods and computer program products for search results management |
| US20140067734A1 (en) | 2012-09-05 | 2014-03-06 | Numenta, Inc. | Anomaly detection in spatial and temporal memory system |
| US20160147852A1 (en) | 2014-11-21 | 2016-05-26 | Arndt Effern | System and method for rounding computer system monitoring data history |
| US20160307173A1 (en) | 2015-04-20 | 2016-10-20 | Splunk Inc. | Display of data ingestion information based on counting generated events |
| US20190028557A1 (en) | 2015-08-28 | 2019-01-24 | Ankur MODI | Predictive human behavioral analysis of psychometric features on a computer network |
| US20200174966A1 (en) * | 2018-11-30 | 2020-06-04 | International Business Machines Corporation | Self-learning operational database management |
| US11238048B1 (en) * | 2019-07-16 | 2022-02-01 | Splunk Inc. | Guided creation interface for streaming data processing pipelines |
| US20210090694A1 (en) * | 2019-09-19 | 2021-03-25 | Tempus Labs | Data based cancer research and treatment systems and methods |
Non-Patent Citations (2)
| Title |
|---|
| International Search Report and Written Opinion; PCT Application No. PCT/US2021/018511, filed Feb. 18, 2021; dated Jun. 25, 2021; 23 pages. |
| Tsoch Antaridis et al. ‘Support vector machine learning for interdependent and structured output spaces.’ Proceedings of the twenty-first international conference on Machine learning. 2004. Jul. 2004 (Jul. 2004) Retrieved on May 22, 2021 (May 22, 2021) from <https://dl.acm.org/dol/abs/10.1145/1015330.1015341 > entire document. |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20230041906A1 (en) * | 2021-08-03 | 2023-02-09 | Data Culpa, Inc. | Data lineage in a data pipeline |
| US12019902B2 (en) * | 2021-08-03 | 2024-06-25 | Data Culpa, Inc. | Data lineage in a data pipeline |
| US20250209048A1 (en) * | 2022-12-08 | 2025-06-26 | CollectiveHealth, Inc. | Data quality evaluation system |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4107670A4 (en) | 2024-03-13 |
| US20220261403A1 (en) | 2022-08-18 |
| EP4107670A1 (en) | 2022-12-28 |
| US20210248144A1 (en) | 2021-08-12 |
| WO2021168070A1 (en) | 2021-08-26 |
| US11829365B2 (en) | 2023-11-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11829365B2 (en) | Systems and methods for data quality monitoring | |
| CN113396395B (en) | Methods for Effectively Evaluating Log Patterns | |
| CN119311678B (en) | A data quality monitoring method and system based on knowledge graph | |
| US20160154692A1 (en) | Systems and/or methods for handling erroneous events in complex event processing (cep) applications | |
| US12411753B2 (en) | Branching data monitoring watchpoints to enable continuous integration and continuous delivery of data | |
| US20200210401A1 (en) | Proactive automated data validation | |
| US12105687B2 (en) | Systems and methods for automated data quality semantic constraint identification using rich data type inferences | |
| CN114880405A (en) | Data lake-based data processing method and system | |
| CN118967344B (en) | A system for automatically checking accounts of enterprise data and its implementation method | |
| US20200210389A1 (en) | Profile-driven data validation | |
| CN118133962A (en) | Correlation analysis method, device and system of fault event and storage medium | |
| CN120196916A (en) | Intelligent data quality assessment system and method based on multi-modal analysis and dynamic baseline prediction | |
| CN118820360A (en) | Financial data synchronization method and system | |
| CN117057941A (en) | Abnormal consumption detection method based on multidimensional data analysis | |
| CN121412211A (en) | A method and system for intelligent storage and management of multi-source indicator data | |
| CN120705690A (en) | Intelligent alarm analysis and diagnosis method and device based on AI algorithm | |
| CN120336323A (en) | A multi-caliber budget table processing method, system, device and medium | |
| CN120180019A (en) | Data governance early warning processing method, device, equipment and storage medium based on blood relationship analysis | |
| CN119357166A (en) | A big data cleaning method and system based on artificial intelligence | |
| CN119338607A (en) | Automatic account reconciliation method and electronic device | |
| CN121277919B (en) | Data quality control compliance system fusing AI technology | |
| CN118295864B (en) | Linux operating system hardware error identification method and system | |
| CN121561475A (en) | Data verification and tracing method and device, computer equipment, medium and product | |
| CN121724780A (en) | Dynamic verification system of electronic evidence in cross-border tax compliance | |
| CN120743601A (en) | Root cause analysis method and device of database, computer equipment and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| AS | Assignment |
Owner name: DATA CULPA INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HAILE, J. MITCHELL;REEL/FRAME:052174/0686 Effective date: 20200313 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 4 |