IP Library Granted Patent US 12,608,352
Granted Patent B2
US 12,608,352 · App. 18/899,670 · Granted Apr 21, 2026

Injecting synthetic anomalies into data for benchmarking data quality monitoring algorithms

Inventors: Jeremy Stanley (Croton on Hudson, NY); Viktoriya Andonova (Lisbon, PT); John Joo (Walnut Creek, CA); Jason Kozemczak (St. Louis, MO); Elliot Shmukler (Burlingame, CA)
Assignee: Anomalo, Inc.
G06F16/215G06F11/3409G06F11/3457G06F16/2365
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,608,352
App. No.
18/899,670
Granted
Apr 21, 2026
Kind
B2
Abstract

In a general aspect, injecting synthetic anomalies into data is described. In some embodiments, a system identifies a base data set stored in a remote database system and a set of synthetic anomaly injection operations to apply to portions of the base data set. The system submits a set of instructions that are configured to cause the remote database system to perform operations including: creating one or more entries in a lookup table and rerouting received queries attempting to access the one or more portions of the base data set to instead access modified base data while the one or more entries are active. The system causes the remote database system to inactivate the one or more entries in the lookup table such that the remote database system ceases rerouting received queries.

Claims (69)

1 . A method performed by a computing system, the method comprising:

identifying a base data set stored in a first location of a remote database system, the base data set including one or more sets of structured data;

identifying a set of synthetic anomaly injection operations to apply to one or more portions of the base data set;

submitting a set of instructions to the remote database system, wherein the set of instructions are configured to cause the remote database system to perform operations including:

creating one or more entries in a lookup table, wherein the one or more entries represent the one or more portions of the base data set that are subject to the set of synthetic anomaly injection operations;

determining that the one or more entries are active; and

while the one or more entries are active, rerouting received queries attempting to access the one or more portions of the base data set to instead access modified base data, wherein the modified base data includes data resulting from applying the set of synthetic anomaly injection operations to the one or more portions of the base data set; and

causing the remote database system to inactivate the one or more entries in the lookup table, wherein while the one or more entries are inactive, the remote database system ceases rerouting the received queries attempting to access the one or more portions of the base data set to instead access the modified base data.

2 . The method of claim 1 , wherein the one or more entries identify the one or more portions of the base data set that are subject to the set of synthetic anomaly injection operations.

3 . The method of claim 1 , wherein the one or more entries indicate a storage location of the modified base data.

4 . The method of claim 1 , wherein the one or more entries indicate one or more instructions for generating the modified base data.

5 . The method of claim 1 , wherein rerouting the received queries includes rewriting the received queries to point to a storage location of the modified base data.

6 . The method of claim 1 , wherein the set of instructions are configured to cause the remote database system to perform operations including:

while the one or more entries are active, routing the received queries attempting to access one or more portions of the base data that are not subject to the set of synthetic anomaly injection operations to corresponding data of the base data set stored in the first location.

7 . The method of claim 1 , wherein the set of instructions are configured to cause the remote database system to perform operations including:

while the one or more entries are inactive, routing the received queries attempting to access the base data to corresponding data of the base data set stored in the first location.

8 . The method of claim 1 , comprising:

sending an instruction to the remote database system to inactivate the one or more entries.

9 . The method of claim 1 , comprising:

disconnecting from the remote database system, wherein disconnecting from the remote database system causes the remote database system to inactivate the one or more entries.

10 . The method of claim 1 , wherein causing the remote database system to inactivate the one or more entries includes causing the remote database system to perform one or more of the following operations:

deleting the one or more entries from the lookup table;

deleting the lookup table; and

deleting the modified base data.

11 . The method of claim 1 , wherein identifying the set of synthetic anomaly injection operations to apply to the one or more portions of the base data set includes determining one or more of:

selecting one or more predefined synthetic anomaly injection operations;

determining a fraction of the base data set that will be subject to the synthetic anomaly injection operations; and

selecting which portions of the base data set will be subject to the synthetic anomaly injection operations.

12 . The method of claim 1 , wherein identifying the set of synthetic anomaly injection operations to apply to the one or more portions of the base data set includes performing an iterative process that includes:

selecting one or more candidate synthetic anomaly injection operations; and

assessing a result of applying the one or more candidate synthetic anomaly injection operations to a candidate portion of the base data set.

13 . The method of claim 12 , wherein:

assessing the result of applying the one or more candidate synthetic anomaly injection operations includes determining whether the result is different from the candidate portion of the base data set;

performing the iterative process includes:

excluding the one or more candidate synthetic anomaly injection operations from the set of synthetic anomaly injection operations in response to a determination that the result is not different from the candidate portion of the base data set; and

including the one or more candidate synthetic anomaly injection operations in the set of synthetic anomaly injection operations in response to a determination that the result is different from the candidate portion of the base data set.

14 . The method of claim 1 , comprising:

performing data processing operations while the one or more entries in the lookup table are active, the data processing operations including submitting queries to the remote database system attempting to access the one or more portions of the base data set; and

determining a performance metric representing the impact that applying the synthetic anomaly injection operations to the base data set has on a performance of the data processing operations.

15 . The method of claim 14 , comprising:

performing data processing operations while the one or more entries in the lookup table are inactive, the data processing operations including submitting queries to the remote database system attempting to access the one or more portions of the base data set; and

wherein determining the performance metric is based on results of performing the data processing operations while the one or more entries are active and based on results of performing the data processing operations while the one or more entries are inactive.

16 . The method of claim 1 , wherein the set of instructions are configured to cause the remote database system to perform operations including:

applying the set of synthetic anomaly injection operations to the one or more portions of the base data to create the modified base data.

17 . The method of claim 16 , wherein the set of instructions are configured to cause the remote database system to perform operations including:

storing the modified base data at a second location of the remote database system different from the first location, wherein the base data set stored in the first location remains unmodified by the set of synthetic anomaly injection operations and by storage of the modified base data.

18 . The method of claim 1 , wherein the remote database system includes:

a database for storing data; and

a database connector that provides an interface for accessing the database.

19 . The method of claim 18 , wherein the lookup table is stored in the database connector.

20 . The method of claim 18 , wherein the modified base data is stored in the database.

21 . The method of claim 18 , wherein the modified base data is stored in memory in the database connector.

22 . The method of claim 1 , wherein the remote database system is a Structured Query Language (SQL) database.

23 . A system comprising:

one or more processors; and

a computer-readable medium storing instructions that are operable when executed by the one or more processors to perform operations comprising:

identifying a base data set stored in a first location of a remote database system, the base data set including one or more sets of structured data;

identifying a set of synthetic anomaly injection operations to apply to one or more portions of the base data set;

submitting a set of instructions to the remote database system, wherein the set of instructions are configured to cause the remote database system to perform operations including:

creating one or more entries in a lookup table, wherein the one or more entries represent the one or more portions of the base data set that are subject to the set of synthetic anomaly injection operations; and

while the one or more entries are active, rerouting received queries attempting to access the one or more portions of the base data set to instead access modified base data, wherein the modified base data includes data resulting from applying the set of synthetic anomaly injection operations to the one or more portions of the base data set; and

causing the remote database system to inactivate the one or more entries in the lookup table, wherein while the one or more entries are inactive, the remote database system ceases rerouting the received queries attempting to access the one or more portions of the base data set to instead access the modified base data.

24 . A non-transitory computer-readable medium storing instructions that are operable when executed by a data-processing apparatus to perform operations comprising:

identifying a base data set stored in a first location of a remote database system, the base data set including one or more sets of structured data;

identifying a set of synthetic anomaly injection operations to apply to one or more portions of the base data set;

submitting a set of instructions to the remote database system, wherein the set of instructions are configured to cause the remote database system to perform operations including:

creating one or more entries in a lookup table, wherein the one or more entries represent the one or more portions of the base data set that are subject to the set of synthetic anomaly injection operations; and

while the one or more entries are active, rerouting received queries attempting to access the one or more portions of the base data set to instead access modified base data, wherein the modified base data includes data resulting from applying the set of synthetic anomaly injection operations to the one or more portions of the base data set; and

causing the remote database system to inactivate the one or more entries in the lookup table, wherein while the one or more entries are inactive, the remote database system ceases rerouting the received queries attempting to access the one or more portions of the base data set to instead access the modified base data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: STANLEY, JEREMY; ANDONOVA, VIKTORIYA; JOO, JOHN; KOZEMCZAK, JASON; SHMUKLER, ELLIOT
To: ANOMALO, INC.
Reel/Frame 069521/0036 →
Continuity (2)
Provisional Application 63636568 · Apr 19, 2024
Related Publication 20250328506A1 · Oct 23, 2025
References Cited (17)
US 8887286B2 · Dupont et al. · 2014 [cited by applicant]
US 10191962B2 · Shkapenyuk et al. · 2019 [cited by applicant]
US 11030167B2 · Nath et al. · 2021 [cited by applicant]
US 11310250B2 · Kursun · 2022 [cited by applicant]
US 11449712B2 · Pai et al. · 2022 [cited by applicant]
US 11829365B2 · Haile · 2023 [cited by applicant]
US 11886399B2 · Joyce et al. · 2024 [cited by applicant]
US 11927925B2 · Drees et al. · 2024 [cited by applicant]
US 20250328505A1 · Stanley et al. · 2025 [cited by applicant]
WO 2025221286 · 2025 [cited by applicant]
WO 2025221287 · 2025 [cited by applicant]
Stanley, Jeremy , et al., “Automating Data Quality Monitoring Scaling Beyond Rules with Machine Learning”, O'Reilly Media, Inc., released Jan. 2024, (chapter 1 available as early as Mar. 8, 2023, chapter 2 available as … [cited by applicant]
YouTube , “How unsupervised machine learning can scale data quality monitoring in Databricks”, Transcript of Presentation available at https://youtu.be/SLINAuolfq4?si=hmklyKJt5uoDlqus, Jun. 30, 2022, 32 pages. [cited by applicant]
ISA, International Search Report and Written Opinion issued in PCT/US2024/048817 on Jan. 14, 2025, 11 pages. [cited by applicant]
ISA, International Search Report and Written Opinion issued in PCT/US2024/048925 on Dec. 17, 2024, 11 pages. [cited by applicant]
Stanley, et al., “Automating Data Quality Monitoring—Scaling Beyond Rules with Machine Learning”, O'Reilly Media, Inc; pp. 65-121, 162, XP002812699; Jan. 1, 2024; 72 pages. [cited by applicant]
Tatarowicz, et al., “Lookup Tables: Fine-Grained Partitioning for Distributed Databases”, 2012 IEEE 28th International Conference on Data Engineering, Apr. 1, 2012, pp. 102-113, 12 pages. [cited by applicant]