Ana içeriğe geç

windows_1w

windows_1w, Window Servisi tarafından üretilen haftalık (1W) pencere istatistiklerini saklar. Her satır bir cihaz-değişken çiftinin tek bir takvim haftasına ait finalize edilmiş pencere sonucunu temsil eder.

Haftalık pencereler doğrudan hesaplanmaz; windows_1d tablosundaki ilgili 7 günlük satır rollup edilerek türetilir. Eksik gün varsa yalnız o aralık ham kaynaktan tamamlanır. Bu sayede DB yükü minimize edilir ve büyük pencere hesapları windows_1d tutarlılığına dayanır.

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

FK Davranış Notları

FKON DELETEON UPDATENot
windows_1w.device_id -> devices.idCASCADECASCADECihaz silinirse tüm haftalı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ırHaftanın başlangıcı (Pazartesi 00:00:00 UTC+TZ)
window_endtimestamptzhayırHaftanın sonu (sonraki Pazartesi 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.

Hesaplama Kaynağı

Haftalık pencere doğrudan ham veri üzerinden değil, windows_1d rollup'ından türetilir. Bir günde windows_1d kaydı yoksa o aralık ham kaynaktan tamamlanı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": 2001,
"device_id": "400000011D081B70",
"variable_id": "vrms_a",
"window_start": "2026-04-06T00:00:00Z",
"window_end": "2026-04-13T00:00:00Z",
"anchor_time": "2026-04-06T00:00:00Z",
"finalized": true,
"calc_version": 1,
"sample_count": 672,
"expected_sample_count": 672,
"completeness_ratio": 1.0,
"quality_flags": {},
"sum": 153734.4,
"sum_sq": 35178441.6,
"min": 219.8,
"max": 233.5,
"mean": 228.7,
"stddev": 2.55,
"p10": 225.1,
"p50": 228.8,
"p90": 231.9,
"slope": -0.0001,
"r2": 0.04,
"first_value": null,
"last_value": null,
"delta_value": null,
"counter_reset_count": null,
"counter_rollover_count": null,
"created_at": "2026-04-13T00:06:30Z",
"updated_at": "2026-04-13T00:06:30Z"
}