Skip to main content

windows_1d

windows_1d, Window Servisi tarafından üretilen takvim günü (1D) pencere istatistiklerini saklar. Her satır bir cihaz-değişken çiftinin tek bir takvim gününe ait finalize edilmiş veya devam eden pencere sonucunu temsil eder.

Bu tablo üç pencere tablosunun en yüksek büyüme hızına sahip olanıdır. Günlük kayıt üretildiği için windows_1w ve windows_1m tablolarına kıyasla ~7x ve ~30x daha hızlı büyür. 1W ve 1M pencereleri bu tablodaki kayıtlar rollup edilerek türetilir; bu nedenle windows_1d Window Servisinin birincil yazma hedefidir.

window_type kolonu yoktur; tablo adından örtük olarak 1D olarak bilinir.

FK Davranış Notları

FKON DELETEON UPDATENot
windows_1d.device_id -> devices.idCASCADECASCADECihaz silinirse tüm günlük pencere istatistikleri de silinir.

Kolonlar

KolonTipNullAçıklama
idbiginthayırOtomatik artan birincil anahtar
device_idvarchar(21)hayırCihaz kimliği
variable_idvarchar(30)hayırDeğişken kimliği (örn. vrms_a, ae_tot)
window_starttimestamptzhayırTakvim günü başlangıcı (00:00:00 UTC+TZ)
window_endtimestamptzhayırTakvim günü sonu (sonraki günün 00:00:00)
anchor_timetimestamptzevetGrid hizalama referans zamanı
finalizedbooleanhayırtrue ise pencere kapanmış, artık sadece Replay Worker güncelleyebilir
calc_versionintegerhayırHesaplama algoritması versiyonu (varsayılan: 1)
sample_countintegerhayırPencereye giren geçerli örnek sayısı
expected_sample_countintegerhayırTeorik beklenen örnek sayısı
completeness_ratiodouble precisionhayırsample_count / expected_sample_count
quality_flagsjsonbhayırGap/reset/rollover/outlier işaretleri
sumdouble precisionevetΣ x_i
sum_sqdouble precisionevetΣ x_i²
mindouble precisionevetPencere içi minimum
maxdouble precisionevetPencere içi maksimum
meandouble precisionevetsum / sample_count
stddevdouble precisionevetStandart sapma
p10double precisionevet10. yüzdelik dilim
p50double precisionevet50. yüzdelik dilim (medyan)
p90double precisionevet90. yüzdelik dilim
sum_tdouble precisionevetΣ t_i — trend için zaman indeks toplamı
sum_vdouble precisionevetΣ v_i — trend için değer toplamı
sum_tvdouble precisionevetΣ (t_i × v_i)
sum_t2double precisionevetΣ t_i²
slopedouble precisionevetLineer trend eğimi
r2double precisionevetTrend uyum katsayısı
first_valuedouble precisionevetPencere başındaki sayaç değeri (yalnız sayaç değişkenlerde)
last_valuedouble precisionevetPencere sonundaki sayaç değeri (yalnız sayaç değişkenlerde)
delta_valuedouble precisionevetlast_value - first_value, reset/rollover düzeltmeli
counter_reset_countintegerevetSayaç reset sayısı (yalnız sayaç değişkenlerde)
counter_rollover_countintegerevetSayaç taşma sayısı (yalnız sayaç değişkenlerde)
created_attimestamptzhayırKayıt oluşturulma zamanı
updated_attimestamptzhayırSon güncelleme zamanı
Sayaç Alanları

first_value, last_value, delta_value, counter_reset_count, counter_rollover_count yalnız variable_type = counter olan değişkenler için anlam taşır. Ölçüm değişkenlerinde bu alanlar NULL kalır.

İndeksler

İndeksTürAmacı
UNIQUE(device_id, variable_id, window_start)UniqueIdempotent upsert anahtarı
(device_id, variable_id, window_end DESC)B-treeSon pencereyi hızlı bulmak
(device_id, window_start DESC)B-treeCihaz bazlı zaman sıralı okuma

Örnek Kayıtlar

{
"id": 10001,
"device_id": "400000011D081B70",
"variable_id": "vrms_a",
"window_start": "2026-04-12T00:00:00Z",
"window_end": "2026-04-13T00:00:00Z",
"anchor_time": "2026-04-12T00:00:00Z",
"finalized": true,
"calc_version": 1,
"sample_count": 96,
"expected_sample_count": 96,
"completeness_ratio": 1.0,
"quality_flags": {},
"sum": 21964.8,
"sum_sq": 5025432.96,
"min": 221.4,
"max": 232.1,
"mean": 228.8,
"stddev": 2.31,
"p10": 225.5,
"p50": 228.9,
"p90": 231.6,
"slope": 0.0004,
"r2": 0.12,
"first_value": null,
"last_value": null,
"delta_value": null,
"counter_reset_count": null,
"counter_rollover_count": null,
"created_at": "2026-04-13T00:05:12Z",
"updated_at": "2026-04-13T00:05:12Z"
}