Ana içeriğe geç

Sentetik Veri — MSSQL

MSSQL için hazırlanan Demo Fabrika veri seti, Pirivision'da MSSQL bağlantısını denemek için tek bir tablo içerir. Kapsamlı analitik sorgular için PostgreSQL veri setini kullanabilirsiniz.


Oluşturulan Tablo

Tablo demo_fabrika adlı ayrı bir şemada açılır; mevcut veritabanı nesnelerinizle çakışmaz.

-- Şema yoksa oluşturulur
IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE name = 'demo_fabrika')
    EXEC ('CREATE SCHEMA demo_fabrika');
GO

CREATE TABLE demo_fabrika.vardiya_uretim (
    ts            date          NOT NULL,
    hat_id        nvarchar(20)  NOT NULL,
    makine_id     nvarchar(20)  NOT NULL,
    vardiya       nvarchar(10)  NOT NULL,
    urun_ailesi   nvarchar(20)  NOT NULL,
    uretim_adet   int           NOT NULL,
    hedef         int           NOT NULL
);

Verinin Üretim Mantığı

T-SQL'de generate_series olmadığından tarih dizisi recursive CTE ile oluşturulur. Üretilen satırlar makine listesi ve vardiyalarla CROSS JOIN yapılarak çoğaltılır.

;WITH gun_serisi AS (
    -- Başlangıç noktası: bugünden 30 gün önce
    SELECT CAST(DATEADD(day, -30, GETDATE()) AS date) AS gun
    UNION ALL
    -- Her adım bir gün ileri gider
    SELECT DATEADD(day, 1, gun)
    FROM gun_serisi
    WHERE gun < CAST(GETDATE() AS date)
),
makineler AS (
    SELECT idx FROM (VALUES (1),(2),(3),(4),(5),(6)) AS m(idx)
),
vardiyalar AS (
    SELECT v FROM (VALUES (N'V1'),(N'V2'),(N'V3')) AS x(v)
)
INSERT INTO demo_fabrika.vardiya_uretim
    (ts, hat_id, makine_id, vardiya, urun_ailesi, uretim_adet, hedef)
SELECT
    g.gun,
    CASE WHEN m.idx <= 3 THEN N'HAT-1' ELSE N'HAT-2' END,
    N'M0' + CAST(m.idx AS nvarchar(1)),
    v.v,
    -- NEWID() ile her satır için rassal ürün ailesi
    (SELECT TOP 1 u
     FROM (VALUES (N'Ürün-A'),(N'Ürün-B'),(N'Ürün-C'),(N'Ürün-D')) x(u)
     ORDER BY NEWID()),
    250 + ABS(CHECKSUM(NEWID())) % 200,   -- 250–449 arası üretim adedi
    400                                    -- sabit hedef
FROM gun_serisi g
CROSS JOIN makineler m
CROSS JOIN vardiyalar v
OPTION (MAXRECURSION 100);

Sonuç: 31 gün × 6 makine × 3 vardiya = 558 satır


Veritabanına Yükleme

SQL scriptini veritabanınıza çalıştırın:

sqlcmd -S <sunucu> -U <kullanici> -P <sifre> -d <veritabani> -i demo_fabrika_mssql.sql

Scripti tekrar çalıştırmak güvenlidir — başında mevcut tablo varsa önce silinir.


Pirivision'a Ekleme

  1. Port → Yeni Veri Kaynağı → MSSQL yolunu izleyin.
  2. Sunucu, veritabanı ve kimlik bilgilerini girin.
  3. Test and Save ile kaynağı kaydedin.

Kayıt tamamlandıktan sonra Compass'ta yazabileceğiniz örnek sorgu:

SELECT TOP 50
    ts, hat_id, makine_id, vardiya, urun_ailesi, uretim_adet
FROM demo_fabrika.vardiya_uretim
WHERE ts >= DATEADD(day, -7, GETDATE())
ORDER BY ts DESC, hat_id;