Synthetic Data — MySQL
The Demo Factory dataset for MySQL contains a single table for testing the MySQL connection in Pirivision. Because MySQL has no generate_series, the date sequence is produced using a temporary table approach.
Created Table
The table is created in your current database with a demo_ prefix; it will not conflict with your application tables.
CREATE TABLE demo_vardiya_uretim (
ts DATE NOT NULL,
hat_id VARCHAR(20) NOT NULL,
makine_id VARCHAR(20) NOT NULL,
vardiya VARCHAR(10) NOT NULL,
urun_ailesi VARCHAR(20) NOT NULL,
uretim_adet INT NOT NULL,
hedef INT NOT NULL,
INDEX idx_demo_vardiya_ts (ts),
INDEX idx_demo_vardiya_hat (hat_id, ts)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Data Generation Logic
1. Temporary Date Table
Because MySQL has no generate_series, a 31-day date list is built by cross-joining the numbers 0–30:
CREATE TEMPORARY TABLE _seed_gunler (gun DATE);
INSERT INTO _seed_gunler (gun)
SELECT DATE_SUB(CURDATE(), INTERVAL t.n DAY)
FROM (
SELECT a.N + b.N * 10 AS n
FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7
UNION ALL SELECT 8 UNION ALL SELECT 9) a
CROSS JOIN (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2) b
WHERE (a.N + b.N * 10) <= 30
) t;
2. Data Generation
The date list is cross-joined with machine and shift lists to produce one row per combination:
INSERT INTO demo_vardiya_uretim
(ts, hat_id, makine_id, vardiya, urun_ailesi, uretim_adet, hedef)
SELECT
g.gun,
CASE WHEN m.idx <= 3 THEN 'HAT-1' ELSE 'HAT-2' END,
CONCAT('M0', m.idx),
v.vardiya,
ELT(1 + FLOOR(RAND() * 4), 'Product-A','Product-B','Product-C','Product-D'),
250 + FLOOR(RAND() * 200), -- production count 250–449
400 -- fixed target
FROM _seed_gunler g
CROSS JOIN (
SELECT 1 AS idx UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6
) m
CROSS JOIN (
SELECT 'V1' AS vardiya UNION ALL SELECT 'V2' UNION ALL SELECT 'V3'
) v;
Result: 31 days × 6 machines × 3 shifts = 558 rows
A verification query runs automatically when the script completes:
Loading into the Database
Run the SQL script against your database:
Running the script again is safe — the existing table is dropped first if it exists.
Adding to Pirivision
- Go to Port → New Data Source → MySQL.
- Enter the server, database, and credentials.
- Click Test and Save to store the connection.
Once saved, an example query you can write in Compass: