Lyrebird · Realistic synthetic test databases, generated fully offline

PostgreSQL · Pagila

payment

Source rows
16,049
Synthetic rows
16,049
Broken foreign keys
0
Rows equal to a source row
0%

References: customer_id → customerstaff_id → staffrental_id → rental

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.

payment_idcustomer_idstaff_idrental_idamountpayment_date
Source database · 12 of 16,049 rows
16050269271.992022-06-21 07:41:50.707+00:00
160512691980.992022-01-29 01:58:52.222+00:00
1605226926786.992022-06-26 22:37:21.783+00:00
1605326927030.992022-03-02 19:51:40.813+00:00
1605426917504.992022-06-02 03:29:53.301+00:00
16055269210992.992022-05-20 15:54:02.174+00:00
1605627011931.992022-02-03 01:49:30.663+00:00
16057270110404.992022-05-11 09:27:17.752+00:00
16058271110968.992022-03-19 06:19:47.019+00:00
160592721330.992022-03-12 13:32:36.628+00:00
1606027214056.992022-03-18 01:40:43.327+00:00
16061272110416.992022-07-19 06:32:02.911+00:00
Synthetic database · 12 of 16,049 rows
1605071229852.992022-03-06 23:03:00.137+00:00
16051423131660.992022-07-05 17:25:32.050+00:00
1605290292250.992022-05-18 14:11:43.206+00:00
1605383218552.992022-05-04 20:25:09.202+00:00
16054113219288.992022-02-23 00:10:43.246+00:00
16055369171502.992022-07-12 10:59:30.049+00:00
16056182929510.992022-07-15 21:40:12.641+00:00
1605723527323.992022-01-30 05:42:15.817+00:00
160582181124860.992022-05-24 18:48:18.967+00:00
16059247131700.992022-05-07 05:56:11.224+00:00
1606058819050.992022-02-09 11:07:12.065+00:00
16061519152394.992022-05-11 10:18:55.822+00:00

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
payment_idinteger record key Numbers from the measured histogram S 0%
Y 0%
S 16,049
Y 16,049
S 16050 → 32098
Y 16050 → 32098
S —
Y —
0 KS
customer_idinteger record key Foreign key, from the measured relationship S 0%
Y 0%
S 599
Y 599
S 1 → 599
Y 1 → 599
S —
Y —
0.011 KS
staff_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 50.2% · 2 49.8%
Y 1 50.4% · 2 49.6%
0.002 KS
rental_idinteger record key Foreign key, from the measured relationship S 0%
Y 0%
S 16,044
Y 10,552
S 1 → 16049
Y 2 → 16044
S —
Y —
0.006 KS
amountnumeric(5,2) monetary amount Source values, at measured frequencies S 0%
Y 0%
S 19
Y 18
S 0 → 11.99
Y 0 → 11.99
S 4.99 23.6% · 2.99 22.1% · 0.99 18.6% · 5.99 8.1% · 6.99 7% · 3.99 6.9%
Y 4.99 24% · 2.99 21.7% · 0.99 18.3% · 5.99 8.1% · 6.99 7.5% · 3.99 6.6%
0.01 KS
payment_datetimestamp with time zone lifecycle timestamp Times from the measured distribution S 0%
Y 0%
S 16,049
Y 16,049
S 2022-01-23 13:03:52.212+00:00 → 2022-07-27 10:39:20.739+00:00
Y 2022-01-23 13:12:25.280+00:00 → 2022-07-27 10:33:56.310+00:00
S —
Y —
0.005 KS