Skip to Content
IoT Gösterge PanolarıToplulaştırma ve Aşağı Örnekleme

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.
Filtre iletişim kutusunun Toplulaştırma bölümü: Ham satırlar / Zaman içinde toplulaştırılmış seçimi, Ortalama yöntemi, otomatik veya sabit aralık boyutu ve türetilen toplulaştırılmış sütunlar

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öntemAralık başına sonuçÇalıştığı sütunlar
OrtalamaDeğerlerin aritmetik ortalamasıSayısal sütunlar
ToplamDeğerlerin toplamıSayısal sütunlar
SayıDeğeri olan kayıtların adediHer sütun
MinimumEn küçük değerSayısal, metin ve zaman damgası sütunları
MaksimumEn büyük değerYukarıdakilerin tümü
İlk değerAralıktaki en eski kaydın değeriHer sütun
Son değerAralıktaki en yeni kaydın değeriHer 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 = tspGrafiğin bir zaman ekseni vardır: aralıklar zaman penceresini böler.
x = başka bir sütunGrafiğin bir kategori ekseni vardır: kayıtları o sütun gruplar.
pivotSonucu, 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ün

Sonuç, 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:

  1. Kayan zaman penceresi / özel zaman aralığı — dönemi seçer.
  2. Filtreler — o dönem içindeki hangi kayıtların hesaba katılacağını seçer.
  3. Toplulaştırma — seçilen kayıtları aralık başına tek bir değere indirger.
  4. 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’i tsp ü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ğinizxyYöntemAralık
Bir aylık sıcaklık eğilimitsptemperatureOrtalamaOtomatik
Saat başına üretilen adettsptspSayıSabit, 1 saat
Gün başına tüketilen enerjitspkwhToplamSabit, 1 gün
Makine başına saatlik tepe güçtsppower (+ pivot machine)MaksimumSabit, 1 saat
Bugün makine başına kayıt sayısımachinetspSayı— (kategori)
Bu hafta hat başına ortalama çevrim süresilinecycle_timeOrtalama— (kategori)
Bugün üretilen adet (KPI kartı)tspSayı— (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.
  • x zaman 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.
  • x baş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, tsp sü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 downsample bildirebilir; böylece platform grafikleri önceden toplulaştırılmış bir kopyadan sunar ve bu geçmişi ham saklama penceresinin ötesinde tutabilir.
Last updated on