Lyrebird · Realistic synthetic test databases, generated fully offline

PostgreSQL · Pagila

customer

Source rows
599
Synthetic rows
599
Broken foreign keys
0
Rows equal to a source row
0%

References: address_id → addressstore_id → store

Rows

Both databases, first rows by primary key, in one table: scrolling sideways moves them together. Rows at the same position are unrelated, unless the table holds kept reference data. Long values are cut at 60 characters.

customer_id keystore_idfirst_namelast_nameemailaddress_idactiveboolcreate_datelast_updateactive
Source database · 12 of 599 rows
11MARYSMITHMARY.SMITH@sakilacustomer.org5true2022-02-142022-02-15 09:57:20+00:001
21PATRICIAJOHNSONPATRICIA.JOHNSON@sakilacustomer.org6true2022-02-142022-02-15 09:57:20+00:001
31LINDAWILLIAMSLINDA.WILLIAMS@sakilacustomer.org7true2022-02-142022-02-15 09:57:20+00:001
42BARBARAJONESBARBARA.JONES@sakilacustomer.org8true2022-02-142022-02-15 09:57:20+00:001
51ELIZABETHBROWNELIZABETH.BROWN@sakilacustomer.org9true2022-02-142022-02-15 09:57:20+00:001
62JENNIFERDAVISJENNIFER.DAVIS@sakilacustomer.org10true2022-02-142022-02-15 09:57:20+00:001
71MARIAMILLERMARIA.MILLER@sakilacustomer.org11true2022-02-142022-02-15 09:57:20+00:001
82SUSANWILSONSUSAN.WILSON@sakilacustomer.org12true2022-02-142022-02-15 09:57:20+00:001
92MARGARETMOOREMARGARET.MOORE@sakilacustomer.org13true2022-02-142022-02-15 09:57:20+00:001
101DOROTHYTAYLORDOROTHY.TAYLOR@sakilacustomer.org14true2022-02-142022-02-15 09:57:20+00:001
112LISAANDERSONLISA.ANDERSON@sakilacustomer.org15true2022-02-142022-02-15 09:57:20+00:001
121NANCYTHOMASNANCY.THOMAS@sakilacustomer.org16true2022-02-142022-02-15 09:57:20+00:001
Synthetic database · 12 of 599 rows
11ERICMORGANeric.morgan340@notes.example1true2022-02-142022-02-15 09:57:20+00:001
21BROOKLYNGRAYbrooklyn.gray702@yazi.defter.test2true2022-02-142022-02-15 09:57:20+00:001
31AUBREYLEEaubrey.lee303@bluefinch.example3true2022-02-142022-02-15 09:57:20+00:001
41TYLERELLIStyler.ellis434@notes.example4true2022-02-142022-02-15 09:57:20+00:001
51RYANWATSONryan.watson761@redkite.test5true2022-02-142022-02-15 09:57:20+00:001
61NIKLASARNOLDniklas.arnold746@pineledger.test6true2022-02-142022-02-15 09:57:20+00:001
71AUSTINCAMPBELLaustin.campbell967@mail.northwind.test7true2022-02-142022-02-15 09:57:20+00:000
81PAULOWENSpaul.owens896@oaklane.test8true2022-02-142022-02-15 09:57:20+00:001
91CHARLESTAYLORcharles.taylor790@notes.example9true2022-02-142022-02-15 09:57:20+00:001
101PATRICKHERRERApatrick.herrera293@example.net10true2022-02-142022-02-15 09:57:20+00:001
111SCARLETTPETERSONscarlett.peterson792@notes.example11true2022-02-142022-02-15 09:57:20+00:000
121BELLASTEWARTbella.stewart37@example.org12true2022-02-142022-02-15 09:57:20+00:001

Column by column

Each figure is computed from all rows of both databases in the same way. S is the source, Y the synthetic copy. Difference runs from 0 (same distribution) to 1 (no overlap): Kolmogorov-Smirnov for numbers and times, total variation for columns with few values. Personal columns are meant to differ, so they show how many values also appear in the source instead. Lyrebird draws names from built-in lists, not from the source, so common names can match.

Column Model read it as How it was generated Empty Distinct Range or length Most common Difference
customer_idinteger record key New key values S 0%
Y 0%
S 599
Y 599
S 1 → 599
Y 1 → 599
S —
Y —
—
store_idinteger record key Foreign key, from the measured relationship S 0%
Y 0%
S 2
Y 2
S 1 → 2
Y 1 → 2
S 1 54.4% · 2 45.6%
Y 1 54.4% · 2 45.6%
0 KS
first_nametext first namepersonal New text in the measured format S 0%
Y 0%
S 591
Y 241
S 5.7 chars avg
Y 5.6 chars avg
S —
Y —
50.9% in source
last_nametext last namepersonal New text in the measured format S 0%
Y 0%
S 599
Y 178
S 6.2 chars avg
Y 5.8 chars avg
S —
Y —
95.3% in source
emailtext emailpersonal New text in the measured format S 0%
Y 0%
S 599
Y 599
S 31.9 chars avg
Y 31.3 chars avg
S —
Y —
0% in source
address_idinteger record key Foreign key, from the measured relationship S 0%
Y 0%
S 599
Y 599
S 5 → 605
Y 1 → 603
S —
Y —
0.007 KS
activeboolboolean boolean flag Source values, at measured frequencies S 0%
Y 0%
S 1
Y 1
S 4 chars avg
Y 4 chars avg
S True 100%
Y True 100%
0 TVD
create_datedate lifecycle timestamp Times from the measured distribution S 0%
Y 0%
S 1
Y 1
S 2022-02-14 → 2022-02-14
Y 2022-02-14 → 2022-02-14
S 2022-02-14 100%
Y 2022-02-14 100%
0 KS
last_updatetimestamp with time zone lifecycle timestamp Times from the measured distribution S 0%
Y 0%
S 1
Y 1
S 2022-02-15 09:57:20+00:00 → 2022-02-15 09:57:20+00:00
Y 2022-02-15 09:57:20+00:00 → 2022-02-15 09:57:20+00:00
S 2022-02-15 09:57:20+00:00 100%
Y 2022-02-15 09:57:20+00:00 100%
0 KS
activeinteger boolean flag Source values, at measured frequencies S 0%
Y 0%
S 2
Y 2
S 0 → 1
Y 0 → 1
S 1 97.5% · 0 2.5%
Y 1 97% · 0 3%
0.005 KS