Toplulaştırma ve Aşağı Örnekleme
Varsayılan olarak bir widget ham satırlar alır: filtrelerine uyan her kayıt, en yenisi başta olmak üzere ve satır sınırına kadar. Bu, en son ölçümleri listeleyen bir tablo için tam olarak doğru, son altı ayı gösteren bir grafik içinse tam olarak yanlıştır — saniyede bir örnekleme yapan bir sensör bu pencerede 15 milyon satır üretir ve 600 piksel genişliğindeki bir grafik bunların ancak 600 tanesini çizebilir.
Toplulaştırma her iki sorunu da tek seferde çözer. Proje veritabanı eşleşen kayıtları zaman aralıklarına gruplar, aralık başına tek bir değer hesaplar ve widget’a yalnızca bu değerleri gönderir. Bir yıllık veri birkaç yüz noktaya iner; ham verinin yanıtlayamadığı sorular — saatlik ortalama sıcaklık, makine başına kayıt sayısı, bugünkü toplam enerji — sıradan bir widget yapılandırmasına dönüşür.
Her şey, veriler tarayıcıya ulaşmadan önce veritabanında gerçekleşir. Widget’ın içinde hiçbir şey hesaplanmaz; bu nedenle toplulaştırılmış widget’lar, arkalarında ne kadar geçmiş veri olursa olsun canlı ve hızlı kalır.
Toplulaştırmayı Açma
Toplulaştırma, filtrelerle aynı iletişim kutusunda bulunur — bir veri bağlamasının yanındaki filtre simgesinden açılan kutu. İletişim kutusunun bütünü için bkz. Veri Bağlama.
Kutunun içindeki Toplulaştırma bölümü iki seçenek sunar:
- Ham satırlar — varsayılan: kayıtlar saklandıkları biçimde döndürülür.
- Zaman içinde toplulaştırılmış — kayıtlar gruplanır ve grup başına tek bir değere indirgenir.
Zaman içinde toplulaştırılmış seçeneğine geçmek bir Yöntem seçicisini ve uygun olduğu durumlarda aşağıda anlatılan aralık boyutu denetimlerini görünür kılar. Her toplulaştırma üzerinde çalışacağı bir zaman penceresine ihtiyaç duyduğundan, widget’ın henüz bir zaman penceresi yoksa toplulaştırmayı açmak son 24 saati kapsayan varsayılan bir kayan pencere de doldurur — bunu hemen yukarıdaki Kayan zaman penceresi bölümünden ayarlayın.
Yöntemler
| Yöntem | Aralık başına sonuç | Çalıştığı sütunlar |
|---|---|---|
| Ortalama | Değerlerin aritmetik ortalaması | Sayısal sütunlar |
| Toplam | Değerlerin toplamı | Sayısal sütunlar |
| Sayı | Değeri olan kayıtların adedi | Her sütun |
| Minimum | En küçük değer | Sayısal, metin ve zaman damgası sütunları |
| Maksimum | En büyük değer | Yukarıdakilerin tümü |
| İlk değer | Aralıktaki en eski kaydın değeri | Her sütun |
| Son değer | Aralıktaki en yeni kaydın değeri | Her sütun |
Tek bir veri serisinin bütün değer sütunlarına tek bir yöntem uygulanır. Aynı ölçümün birden çok istatistiğini göstermek için — örneğin bir ortalama çizgisiyle birlikte minimum/maksimum bandı — her istatistik için bir veri serisi ekleyin. Bunlar tek bir veritabanı sorgusunu paylaşır; dolayısıyla ek seriler istek açısından hiçbir maliyet getirmez.
Ortalama, Toplam, Minimum ve Maksimum, sayı tutan bir sütun gerektirir. Bunları bir metin veya boolean sütununa yöneltmek açıklayıcı bir mesajla reddedilir. Sayı her şeyle çalışır; bu da onu “kaç kayıt var” sorularının yöntemi yapar.
Neler Toplulaştırılır
Toplulaştırılacak sütunları hiçbir zaman tek tek listelemezsiniz — platform bunları, widget için zaten yapılandırdığınız alan eşlemesinden türetir:
| Alan rolü | Toplulaştırmadaki anlamı |
|---|---|
x = tsp | Grafiğin bir zaman ekseni vardır: aralıklar zaman penceresini böler. |
| x = başka bir sütun | Grafiğin bir kategori ekseni vardır: kayıtları o sütun gruplar. |
| pivot | Sonucu, her ayrı değer için ayrı ayrı toplulaştırılan birer seriye böler. |
| y, r ve diğer değer alanları | Seçilen yöntemle toplulaştırılır. |
Bu, ham satırlar için kullandığınız eşlemenin aynen çalışmaya devam ettiği anlamına gelir: x’i zaman damgasına, y’yi temperature’a eşleyin, toplulaştırmayı açın; grafik her bir ölçümü tek tek çizmek yerine aralık başına ortalama sıcaklığı çizer.
Toplulaştırılmış Bir Widget’ın Üç Biçimi
1. Otomatik çözünürlüklü zaman serisi
En yaygın durum: x, tsp’ye eşlenmiştir ve aralık modu Otomatik — widget çözünürlüğüne uyar olarak bırakılmıştır. Platform bu durumda aralık boyutunu widget’ın ekranda kapladığı genişlikten seçer — 600 piksel genişliğindeki bir grafik, zaman penceresi ne olursa olsun yaklaşık 600’den fazla nokta almaz. Pencereyi bir günden bir yıla genişletin; aralıklar da genişler, ağ üzerinden geçen veri miktarı sabit kalır.
Aralık boyutunun kendisi bir anlam taşımıyorsa ve yalnızca bir eğilimin okunabilir, hızlı bir grafiğini istiyorsanız bunu seçin: “son bir aydaki sıcaklık”.
Bir widget’ı yeniden boyutlandırmak veriyi yeni çözünürlükte tekrar getirir, ancak yalnızca genişlik bir kademeyi aştığında — küçük sürüklemeler istek tetiklemez.
2. Sabit aralık boyutlu zaman serisi
Sabit aralık boyutu’nu seçip bir uzunluk ve bir birim belirtin — her 1 saat, her 15 dakika, her 6 saat. Aralığın bir görüntüleme ayrıntısı değil, sorunun kendisinin parçası olduğu her durumda bunu kullanın: “saat başına üretilen adet”, “gün başına tüketilen enerji”.
Sabit aralıklar tarayıcınızın saat diliminde doğal sınırlara hizalanır: 6 saatlik aralıklar yerel saatle 00:00, 06:00, 12:00 ve 18:00’de başlar; günlük aralıklar yerel gece yarısında bölünür; haftalık aralıklar pazartesi başlar.
Seçtiğiniz boyut, bir grafiğin makul biçimde gösterebileceğinden daha fazla aralık üretecekse (üst sınır 2000’dir), platform sorguyu reddetmek yerine aralıkları otomatik olarak istediğinizin bir katına genişletir — bir haftalık pencerede bir dakikalık aralıklar beş dakikalık aralıklara dönüşür. İletişim kutusu bunun ne zaman gerçekleştiğini ve fiilen hangi boyutun kullanıldığını size bildirir.
3. Kategori başına tek değer
x’i zaman damgası yerine bir sütuna eşleyin — bir makine adı, bir ürün tipi, bir saha — ve widget kategorik bir özete dönüşür: zaman penceresinin tamamı tek bir aralık olarak ele alınır ve o sütunun her ayrı değeri tam olarak bir toplulaştırılmış satır üretir.
Bu, “bugün makine başına kayıt sayısı” veya “bu hafta üretim hattı başına ortalama çevrim süresi” için doğru biçimdir. Seçilecek bir aralık boyutu yoktur — iletişim kutusu, aralık denetimlerini göstermek yerine bunu belirtir.
Kayıtları sayma: bir grubun satır sayısı, tsp zaman damgası sütununa uygulanan Sayıdır; çünkü her kaydın bir zaman damgası vardır. y’yi tsp’ye eşleyin; platform otomatik olarak Sayı yöntemini seçer — bir zaman damgası sütununun izin verdiği tek toplulaştırma budur.
x → machine_name (kayıtları gruplar)
y → tsp (sayılır → kayıt sayısı)
Yöntem: Sayı
Pencere: son 1 günSonuç, her makine için o makinenin son bir günde kaç kayıt ürettiğini gösteren birer çubuktur.
Toplulaştırılmış Tek Değerler
Skaler bağlamalar — bir KPI kartının değeri, bir gösterge, bir metin alanı — aynı seçimi bir Değer bölümü altında sunar:
- En son değer — eskiden olduğu gibi, en yeni kaydın değeri.
- Zaman penceresi üzerinden toplulaştırılmış — pencerenin tamamı üzerinden hesaplanan tek bir değer.
Bunu canlı manşet sayıları için kullanın: “bugün üretilen adet” (1 günlük pencerede tsp üzerinde Sayı), “bu vardiyadaki ortalama sıcaklık”, “bu ayki tepe güç”. Burada da bir aralık boyutu yoktur — pencerenin kendisi aralıktır. Yeni kayıtlar geldikçe değer tazelenir; bu yüzden widget’a elle yazılmış bir sayının aksine hiçbir zaman eskimez.
Filtreler, Pencereler ve Toplulaştırma Bir Arada
İletişim kutusundaki bölümler gösterildikleri sırayla uygulanır; bu aynı zamanda veritabanının onları uyguladığı sıradır:
- Kayan zaman penceresi / özel zaman aralığı — dönemi seçer.
- Filtreler — o dönem içindeki hangi kayıtların hesaba katılacağını seçer.
- Toplulaştırma — seçilen kayıtları aralık başına tek bir değere indirger.
- Satır sınırı — bir emniyet önlemi; aşağıya bakın.
Filtreler toplulaştırmadan önce çalıştığı için, her aralığa neyin gireceğini daraltırlar. machine = 'A' ile saatlik ortalamalar birleştiğinde A makinesinin saatlik ortalamasını verir. Filtre widget’larına veya yönlendirme segmentlerine bağlı filtreler, ham satırlarda olduğu gibi çalışır; böylece toplulaştırılmış bir grafik de diğer widget’lar gibi bir açılır menüyü veya sayfa URL’sini izler.
Takvim widget’ları da uyum içinde çalışır: kullanıcı bir tarih aralığı seçtiğinde bu aralık kayan pencerenin yerini alır ve toplulaştırma da onu izler.
Pencerenin ızgaraya hizalanması
Toplulaştırma etkinken, zaman ilerledikçe aralıkların yerinde kalması için pencerenin başlangıcı aralık ızgarasına hizalanır — bu olmasaydı her tazelemede bütün aralık sınırları hafifçe kayar ve grafiğin tamamı titrerdi. İletişim kutusu bunu “Pencere … adımlarında kayar.” ifadesiyle belirtir; çözümlenmiş başlangıç/bitiş önizlemesi ise her zaman fiilen sorgulanan aralığı gösterir.
Pencerenin sonu asla uzatılmaz: şu an biten bir pencere şu an bitmeye devam eder ve bir saat önce biten bir pencere o son saate hiçbir zaman uzanmaz.
Toplulaştırma altında satır sınırı
Satır sınırı görünür kalır, ama rolü değişir: aralık sayısı bu alandan değil, widget boyutundan veya belirlediğiniz sabit aralıktan türetilir. Yalnızca bir widget ham satırlara geri düşmek zorunda kaldığında geçerlidir — örneğin platform sürümü toplulaştırmadan eski olan, kendi barındırdığınız bir örnekte. Bu alanı makul bir değerde bırakmak, böyle bir widget’ı kullanılabilir tutar.
Verideki Boşluklar
Hiçbir kaydın eşleşmediği bir aralık sıfır olarak döndürülmez, sonuçtan çıkarılır. Ortalama için bu dürüst yanıttır — hiçliğin ortalaması yoktur — ama aralıklı gerçekleşen bir olayın Sayı grafiğinde bu, çizgi grafiğinin sessiz dönemde sıfıra inmek yerine düz bir çizgi çizmesi anlamına gelir. Çubuk grafikler boşluğu doğal olarak gösterir; çizgi grafiklerinde “veri yok” ile “sıfır” arasındaki farkı göz önünde bulundurun.
Canlı Güncellemeler
Toplulaştırılmış widget’lar canlı kalır. Kayıtlar geldikçe etkilenen aralıklar yeniden hesaplanır ve widget tazelenir — en fazla birkaç saniyede bir; böylece yüksek frekansla yayın yapan bir cihaz panoyu boğamaz. En yeni aralık genellikle hâlâ dolmakta olduğundan, aralık kapanana kadar değeri değişmeye devam eder; bu beklenen bir durumdur ve canlı bir grafiğin son noktasının Sayı ile Toplam yöntemlerinde çoğu zaman komşularından düşük görünmesinin nedenidir.
Performans ve Uzun Geçmişler
Uzun bir pencere üzerindeki toplulaştırmanın yine de arkasındaki kayıtları okuması gerekir. Düzenli olarak uzun pencereli grafikleri besleyen tablolar için bir uygulama, veri şemasında sürekli aşağı örnekleme bildirebilir — bkz. Veri Arka Ucu referansındaki downsample. Platform bu durumda tablonun önceden toplulaştırılmış bir kopyasını sürdürür ve uzun pencereli sorguları — genellikle kat kat daha hızlı biçimde — bu kopyadan yanıtlar; üstelik bu aşağı örneklenmiş geçmişi ham verinin kendisinden daha uzun süre saklayabilir — böylece ham kayıtlar silindikten sonra bile bir grafik iki yıllık saatlik ortalamaları gösterebilir.
Bu, pano açısından tamamen şeffaftır: widget yapılandırması değişmez ve önceden toplulaştırılmış kopyanın karşılayamadığı sorgular (çok ince aralıklar, kopyanın gruplamadığı sütunlar üzerindeki filtreler) otomatik olarak ham tabloya geri düşer.
Sınırlamalar
- Toplulaştırma tablolar için geçerlidir, dönüşüm tabloları için değil. Bunun yerine alttaki tabloyu toplulaştırın veya dönüşümün kendi SQL’i içinde önceden toplulaştırma yapın.
- Veri serisi başına tek yöntem. Bir sütunun birden çok istatistiği için birden çok veri serisi kullanın.
- Zaman damgaları yalnızca Sayı ile toplulaştırılır. Bir zaman damgasının
Ortalaması anlamlı değildir ve reddedilir. - Bir kategori ekseni ile bir zaman ekseni, tek bir veri serisi için birbirini dışlar — bir grafik ya “zaman içinde” ya da “kategori başına” olur. İkisini birden elde etmek için (makine başına saatlik ortalamalar)
x’itspüzerinde bırakın ve makine sütununu pivot’a koyun. - JSON alanları sıradan sütunlar gibi toplulaştırılabilir, ancak önceden toplulaştırılmış kopyadan yalnızca uygulamanın aşağı örnekleme için bildirdiği alanlar yararlanır; diğerleri ham tablodan hesaplanır.
Tarifler
| İstediğiniz | x | y | Yöntem | Aralık |
|---|---|---|---|---|
| Bir aylık sıcaklık eğilimi | tsp | temperature | Ortalama | Otomatik |
| Saat başına üretilen adet | tsp | tsp | Sayı | Sabit, 1 saat |
| Gün başına tüketilen enerji | tsp | kwh | Toplam | Sabit, 1 gün |
| Makine başına saatlik tepe güç | tsp | power (+ pivot machine) | Maksimum | Sabit, 1 saat |
| Bugün makine başına kayıt sayısı | machine | tsp | Sayı | — (kategori) |
| Bu hafta hat başına ortalama çevrim süresi | line | cycle_time | Ortalama | — (kategori) |
| Bugün üretilen adet (KPI kartı) | — | tsp | Sayı | — (tek değer) |
Özet
- Veritabanının kayıt göndermek yerine değer hesaplaması için filtre iletişim kutusunda bir bağlamayı Ham satırlar’dan Zaman içinde toplulaştırılmış’a geçirin.
xzaman damgasındayken bir zaman serisi elde edersiniz — eğilimler için otomatik çözünürlük, aralığın kendisi sorunun parçasıysa sabit bir aralık.xbaşka bir sütundayken kategori başına tek bir değer, skaler bir bağlamada ise tek bir canlı sayı elde edersiniz.- Kayıtları saymanın yolu,
tspsütununda Sayı yöntemidir. - Filtreler toplulaştırmadan önce uygulanır; boş aralıklar çıkarılır; satır sınırı bir yedek güvenlik önlemine dönüşür.
- Uzun geçmişler için uygulamalar
downsamplebildirebilir; böylece platform grafikleri önceden toplulaştırılmış bir kopyadan sunar ve bu geçmişi ham saklama penceresinin ötesinde tutabilir.