Zephyrnet Logosu

Amazon QuickSight'ta karşılaştırmalı ve kümülatif tarih/saat hesaplamaları ekleyin

Tarih:

Amazon QuickSight karşılaştırmalı (örneğin yıldan yıla) ve kümülatif (örneğin yıldan bugüne) dönem işlevleri için yakın zamanda eklenen yerel destek, bu hesaplamaları iş raporlamasında, trend analizinde ve zaman serisi analizinde kolayca uygulamanıza olanak tanır. Bu, QuickSight'taki yazarların, bu tür tarih-zamana duyarlı karşılaştırmalar elde etmek için hesaplamalarda karmaşık tarih ofsetlerini kullanmak zorunda kalmadan gelişmiş hesaplamaları uygulamalarına olanak tanır.

Bu gönderide, yeni dönem işlevlerini ve yeteneklerini tanıtıyoruz ve birkaç tipik kullanım örneğini gösteriyoruz. Ayrıca, daha gelişmiş durumlarda faydalı olacak dönem işlevlerinin kullanımını genişletmek için çeşitli senaryoları tartışıyoruz.

Yeni dönem fonksiyonları

Kullanım örneklerini göstermeden önce, yeni dönem işlev paketini gözden geçirelim ve şu anda hangi yeni işlevleri desteklediğimizi görelim. Periyot fonksiyonlarını iki ana gruba ayırabiliriz: kıyaslamalı (dönem üzerinden dönem) işlevleri ve birikimli (dönemden bugüne) işlevler.

Karşılaştırmalı (dönem üzerinden dönem) fonksiyonlar

Yıl, üç aylık dönem ve ay gibi farklı zaman dilimlerindeki ölçüleri karşılaştırmak için dönem üzeri işlevlerini kullanabilirsiniz. Örneğin, satışlarda yıldan yıla artış veya haftadan haftaya yüzde gelir değişiklikleri hesaplayabilirsiniz.

Tipik bir karşılaştırmalı dönem işlevi sözdizimine sahiptir periodOverPeriodDifference(measure, date, period, offset), iki isteğe bağlı bağımsız değişkenle: period ve offset.

Sen kullanabilirsiniz period hesaplamanın dönem ayrıntı düzeyini tanımlamak için işlevdeki bağımsız değişken. ayrıntı düzeyi YEAR yıldan yıla hesaplama anlamına gelir, Quarter çeyrek bölü çeyrek anlamına gelir, vb. Dönem bağımsız değişkeni boş bırakılırsa, görselde görüntülenmek üzere seçilen (alan kuyusunda) dönem ayrıntı düzeyine göre hesaplama değişir.

Ayrıca kullanabilirsiniz offset karşılaştırmayı hesaplamak istediğiniz nokta sayısını belirtmek için argüman. Örneğin, bir denkleştirme ile çeyreklik bir dönem 2 önceki iki çeyreğe göre karşılaştırmak anlamına gelir.

Bunu not et period ve offset her ikisi de belirtilmeli veya her ikisi de boş bırakılmalıdır. Bunlardan sadece birini belirtemezsiniz.

Aşağıdaki tablo, dönem boyunca kullanılabilen üç dönem işlevini özetlemektedir.

Fonksiyon adı Fonksiyon Tipi Açıklama
dönemOverPeriodFark Tablo Hesaplama Dönem ayrıntı düzeyi ve mahsup tarafından belirtildiği gibi iki farklı zaman periyodu üzerinden bir ölçünün farkını hesaplar.
dönemOverPeriodLastValue Tablo Hesaplama Dönem ayrıntı düzeyi ve mahsup tarafından belirtildiği gibi, önceki bir dönemden bir ölçünün son (önceki) değerini hesaplar.
dönemOverPeriodPercentFark Tablo Hesaplama Dönem ayrıntı düzeyi ve mahsup tarafından belirtildiği gibi, iki farklı zaman dönemi boyunca bir ölçünün yüzde farkını hesaplar.

Kümülatif (geçmişten bugüne) işlevler

Belirli bir dönemden bugüne kadar olan bir pencere içindeki metrikleri hesaplamak için dönemden tarihe işlevlerini kullanabilirsiniz. Kümülatif işlevlerin iki ana türü vardır.

  • Görseldeki her satır için tablo hesaplamaları ve dönüş çıktıları olan “OverTime” fonksiyonları.

Örneğin, kullanabilirsiniz periodToDateCountOverTime ile WEEK Müşteri etkileşimindeki dalgalanmayı izlemek için bir dizi haftalık yeni müşteri sayısını hesaplamak için ayrıntı düzeyi.

  • Sabit bir dönemden bugüne kadar olan bir zaman aralığı için toplu bir değer veren toplama işlevleri.

örneğin, periodtoDateSum ile YEAR ayrıntı düzeyi, yılın başından o tarihe kadar olan metriğin toplamı için tek bir değer döndürür. endDate formülde verilmiştir. Boş bırakılırsa, varsayılan endDate alır now(), kullanıcıların kontrol panelini yüklediği andır.

Aşağıdaki tablo, dönemden tarihe kadar olan işlevleri özetlemektedir.

Fonksiyon adı Fonksiyon Tipi Açıklama
dönemToDateAvgOverTime Tablo Hesaplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için bir zaman noktasına kadar bir ölçünün ortalamasını hesaplar.
dönemToDateCountOverTime Tablo Hesaplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için bir zaman noktasına kadar bir boyut veya hesaplamanın sayısını hesaplar.
dönemToDateMaxOverTime Tablo Hesaplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için bir zaman noktasına kadar bir ölçü veya tarihin maksimumunu hesaplar.
dönemToDateMinOverTime Tablo Hesaplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için bir zaman noktasına kadar bir ölçü veya tarihin minimum değerini hesaplar.
dönemToDateSumOverTime Tablo Hesaplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için bir zaman noktasına kadar bir ölçünün toplamını hesaplar.
dönemToDateAvg toplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için belirli bir ölçüdeki sayı kümesinin belirli bir zaman noktasına kadar ortalamasını alır.
Dönem Bitiş TarihiSayısı toplama nu hesaplar
Yinelenenler de dahil olmak üzere belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için bir boyut veya hesaplamadaki değer sayısı.
dönemToDateMax toplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için belirli bir zaman noktasına kadar belirtilen ölçünün maksimum değerini döndürür.
dönemToDateMedyan toplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için belirli bir zaman noktasına kadar belirtilen ölçünün medyan değerini döndürür.
dönemToDateMin toplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için belirli bir zaman noktasına kadar belirtilen ölçü veya tarihin minimum değerini döndürür.
periodToDateYüzdelik toplama Belirli bir zaman ayrıntı düzeyine (örneğin, çeyrek) kadar belirli bir zaman noktasına kadar ölçüdeki gerçek sayılara dayalı olarak yüzdelik dilimleri hesaplar.
periodToDatePercentileCont toplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için bir zaman noktasına kadar ölçüdeki sayıların sürekli dağılımına dayalı olarak yüzdelik dilimini hesaplar.
dönemToDateStDev toplama Bir örneğe dayalı olarak belirli bir zaman ayrıntı düzeyine (örneğin, çeyrek) kadar belirtilen ölçüdeki sayı kümesinin standart sapmasını hesaplar.
dönemToDateStDevP toplama Bir örneğe dayalı olarak belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için belirli bir ölçüdeki sayı kümesinin popülasyon standart sapmasını hesaplar.
dönemtoDateSum toplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için belirli bir ölçüdeki sayı kümesini belirli bir zaman noktasına kadar ekler.
dönemToDateVar toplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için belirli bir ölçüdeki sayı kümesinin örnek varyansını zaman içinde bir noktaya kadar hesaplar.
dönemToDateVarP toplama Belirli bir zaman ayrıntı düzeyi (örneğin, çeyrek) için belirli bir ölçüdeki sayı kümesinin popülasyon varyansını zaman içinde bir noktaya kadar hesaplar.

Kullanım örneği 1: Sabit ve dinamik ayrıntı düzeyinde satış büyümesini analiz etmek için dönem üzerinden dönem işlevini kullanma

Dönemler arası işlevlerin tipik iş ve finansal kullanım durumlarını nasıl destekleyebileceğini inceleyelim. Aşağıdaki örnek kullanır dönemOverPeriodFark Yıllık satış büyümesini hesaplamak için. Çünkü bizde var Segment ve Region görselde, her segment ve bölge için yıllık satışlar hesaplanır.

Ölçüyü tanımlıyoruz YoYSales aşağıdaki formülle: YoYSales=periodOverPeriodDifference(sum(Sales),{Order Date},YEAR,1)

İlk argüman, sum(Sales), fonksiyona bu ölçüye göre hesaplama yapmasını söyler. İkinci argüman, Order Date, hangi tarih/saat sütununu belirtir Year bilgiler çıkarılır. Üçüncü argüman, YEAR, bu hesaplamanın ayrıntı düzeyini düzeltir. Bu isteğe bağlı argüman belirtildiğinde, bu ölçü, nasıl olursa olsun her zaman YY'yi (QoQ veya MoM değil) döndürür. Order Date (alan kuyusunda) görselde gösterilmek üzere seçilir. Dördüncü argüman, 1, karşılaştırmanın ofsetini belirtir. Bu örnekte, her sipariş tarihindeki satışları bir önceki yılın aynı tarihiyle karşılaştırmak istediğimiz anlamına gelir. Karşılaştırılacak önceki dönem olmadığından 2018 sipariş tarihleri ​​için ölçü boş döner.

Dönem fonksiyonları toplamlar ve alt toplamlarla çalışır. Sütunların toplamını görsele ekleyerek toplam satışları ve toplamı görebilirsiniz. YoYSales her bölge için.

İsteğe bağlı argümanı bırakırsanız period ayrıntı düzeyi boş, yani formülü şu şekilde değiştirin: PoPSales=periodOverPeriodDifference(sum(Sales),{Order Date})aşağıdaki örnekte gösterildiği gibi, hesaplamanın zaman periyodu daha sonra ayrıntı düzeyine göre belirlenir. Order Date görselde gösterilir. Aşağıdaki örnekte, Sipariş Tarihi çeyrek düzeyinde (saha kuyusunda) görüntülenecek şekilde seçilmiştir, bu nedenle PoPSales QoQ satış büyümesini dinamik olarak hesaplar. Değiştirme Order Date MoM'yi hesaplamak için ölçüyü aylık seviyeye günceller. İçin PoPSales, yalnızca 1'in ilk çeyreği boş döner çünkü bu, karşılaştırılacak bir önceki çeyreği olmayan tek çeyrektir.

eklersek YoYSales önceki örnekten bu görsele, çeyrek düzeyinde YY satış büyümesini hesaplar (1'un ilk çeyreği satışları ile 2019'in ilk çeyreğinin satışlarını karşılaştırır). Bu, sabit bir ayrıntı düzeyi ile dönem arası işlevlerin dinamik bir ayrıntı düzeyi arasındaki farkı gösterir.

Dönem içindeki dönem işlevleri, olumlu bir değişiklik (artış) ve olumsuz bir değişiklik (düşüş) arasında ayrım yapabilir. Bu nedenle görsele koşullu biçimlendirmeyi eklediğimizde her dönemin finansal performansını (yeşil iyi, kırmızı kötü) görmek çok kolay.

Benzer şekilde, kullanabilirsiniz periodOverPeriodPercentDifference zaman içinde göreli satış büyümesini hesaplamak için. Boyutları içine ekleyebilirsiniz
Her iş segmentinin satış değişiminin çeyreğe göre dökümünü ve bunların toplam satış artışına katkısını analiz etmek gibi iş içgörülerine daha fazla dalmak için görsel. formülü kullanıyoruz PoPSales%=periodOverPeriodPercentDifference(sum(Sales),{Order Date}).

Kullanım durumu 2: YTD satışlarını tablo hesaplamalarında ve toplamalarda izlemek için tarihe kadar bir dönem işlevini kullanma

Dönemler arası işlevlere benzer şekilde, dönemden bugüne işlev paketi, yıldan bugüne (YTD) veya çeyrekten bugüne (QTD) ölçümleri hesaplamak için hızlı ve kolay bir yol sağlar. Aşağıdaki örnekte, formülünü kullanıyoruz YTDSumoverSales=periodToDateSumOverTime(sum(Sales),{Order Date},YEAR), ve YTDtotalcountSales=periodToDateSumOverTime(count(Sales),{Order Date},YEAR) YTD satışlarını ve YTD toplam işlem sayısını hesaplamak için.

Dönemler arası işlevlerin aksine, dönemden bugüne işlevlerin üçüncü argümanı, period, isteğe bağlı değildir. Bu nedenle, hesaplama ayrıntı düzeyi her zaman sabittir. Bu örnekte, ayrıntı düzeyi YEAR olarak tanımlandığında, bu ölçü QTD veya MTD yerine her zaman YTD'yi hesaplar. Çünkü Order Date aylık düzeyde görüntülenir, bu hesaplama her ayın YTD satışlarını verir ve bir sonraki yıl için Ocak ayında yeniden başlar. Sonuç tablosunda görüldüğü gibi, YTDSumoverSales Ocak 2018, Ocak 2018'in aylık satışlarıdır ve YTDSumoverSales Şubat 2018, Ocak 2018'in aylık satışları artı Şubat 2018'in aylık satışlarıdır. Ve YTDSumoverSales Ocak 2019, Ocak 2019'un aylık satışlarına geri dönüyor.

Hesaplamaları bir çizgi grafikte doldurarak ve analize daha fazla boyut ekleyerek ayrıntılara daha fazla dalabilirsiniz. Aşağıdaki örnek, son dört yıl boyunca her bölge için YTD haftalık satış büyüme trendini gösterir ve 2021 yılında AMER ile EMEA arasındaki bazı ilginç satış rekabetini ortaya çıkarır.

Tablo hesaplamalarına ek olarak, toplama dönemi işlevleri, YTD ölçümlerini gerçek zamanlı olarak değerlendirmek için KPI çizelgeleri oluşturmanız gerektiğinde özellikle yararlıdır. Aşağıdaki örnekte, YTD toplam satışlarını ve YTD toplam işlem sayısını izlemek için iki KPI grafiği oluşturmak için toplama döneminden bugüne kadar olan işlevleri kullanıyoruz. 26 Aralık 2021 tarihi için zaman damgası sonuçları, tablodaki 26 Aralık 2021 tarihi için ilgili tablo hesaplamalarıyla eşleşir. Aşağıdaki tablo formülleri özetlemektedir.

formül Formül Türü
YTDSumoverSales=periodToDateSumOverTime(sum(Sales),{Order Date},YEAR) Tablo Hesaplama
YTDtotalcountSales=periodToDateSumOverTime(count(Sales),{Order Date},YEAR) Tablo Hesaplama
YTDSumSales=periodToDateSum(Sales,{Order Date},YEAR) Toplama (KPI grafiği)
YTDCountSales=periodToDateCount(Sales,{Order Date},YEAR) Toplama (KPI grafiği)

Gelişmiş kullanım durumu 1: Dönem işlevleriyle tarih/saat farkındalığı

Dönem işlevlerinin tanımlanması ve okunması yalnızca daha kolay olmakla kalmaz, aynı zamanda tarih/saat farkındadır, yani işlevlerin sabit sayıda satır yerine tarih/saat tabanlı bir ofset temelinde hesaplandığı anlamına gelir. Daha önce ele alınması mümkün olmayan iki büyük sorunu çözebilir.

Dönem işlevleri değişen dönem sürelerini işleyebilir

Günlük aylık satış artışını hesaplamak istiyorsanız, her ayın gün sayısı farklı olduğundan (Ocak için 31 gün ve Şubat için 28 veya 29 gün) her ay için sabit bir mahsup kullanamazsınız.

Dönem işlevleri, sabit bir ofset yerine takvim tarihlerine göre hesaplanır. Aşağıdaki örnekte, formülü kullanıyoruz MoMsalesDiff=periodOverPeriodDifference(sum(Sales),{Order Date},MONTH,1). Günlük MoM artışı, ayın gününe göre doğru hesaplanır. Ayın ilk gününe ait satışlar, bir önceki ayın ilk günü ile karşılaştırılır ve diğer tüm günler için de aynısı geçerlidir. (Görseller tanıtım amacıyla çoğaltılmıştır.)

Dönem işlevleri seyrek (eksik) veri noktalarını işleyebilir

Tüm veri kümeleri tam bir tarih kümesini garanti edemez. Önceki örnekte, 1 Ocak 2018 satış verileri eksik. 1 Şubat 2018'i 1 Ocak 2018 yerine farklı bir tarihle karşılaştırdığımız için, sabit bir uzaklığa dayalı geçici çözümü kullanmak burada bir soruna neden olabilir. Dönem işlevleri, yalnızca istenen tarihlerin karşılaştırılması için her zaman tarih/saat uzaklıklarına göre ölçümleri karşılaştırır. Önceki örnekte, MoMsalesDiff 1 Ocak 2018'in eksik verileri nedeniyle 1 Şubat 2018 için boş görünüyor.

Gelişmiş kullanım durumu 2: Diğer hesaplamalarla birlikte yerleştirme periyodu işlevleri

Artık hesaplanmış alanlar oluşturmak için dönem üzerinden dönem ve dönemden bugüne fonksiyonlarını kullanabileceğimize göre, daha gelişmiş analizler yapmak için bu fonksiyonları diğer hesaplamalarla iç içe geçirebiliriz.

Örneğin, her yıl için, haftadan haftaya satış büyümesi açısından yılın ilk 10 haftasının ne olduğunu bilmek isteyebilirsiniz. Bunu hesaplayarak yapabilirsiniz WoWSales ilk: WoWSales=periodOverPeriodDifference(sum(Sales), {Order Date}, WEEK, 1). Sonra onunla yuva yaparsın denseRank pencere işlevi: RankWoWSales=denseRank([WoWSales DESC],[{YEAR}]). Bu, hesaplanan alanlar yerine görsel hesaplamalar kullanılarak uygulanan sabit satır tabanlı geçici çözüm kullanılarak mümkün olmazdı. Aşağıdaki görselde, her yılın en yüksek satış artışına sahip ilk 10 haftası, RankWoWSales.

Nokta fonksiyonlarını diğer pe ile iç içe bile geçirebilirsiniz.
ilginç içgörüler oluşturmak için riod işlevleri. Örneğin, aylık YTD işlem sayısını temel alarak aylık bir YY büyüme hesaplayabilirsiniz. Aşağıdaki formül, bir YTD hesaplanan alanını bir YIL hesaplanan alanının içine yerleştirme yeteneğini gösterir:

YTDtotalsountSales=periodToDateSumOverTime(count(Sales),{Order Date},YEAR)
YoYYTDSalesCount=periodOverPeriodDifference(YTDtotalcountSales,{Order Date},YEAR,1)

Aşağıdaki görseldeki sonuçlar, mutlak aylık sayılar yerine YTD'nin birikmiş işlem sayısına dayalı bir yıllık büyümeyi göstermektedir.

Gelişmiş kullanım durumu 3: Kısmi dönem karşılaştırmaları

Son olarak, üçüncü bir gelişmiş kullanım durumunu tartışıyoruz: kısmi dönem karşılaştırması. 15 Kasım 2021'in (46'in son çeyreğinin 2021. günü) olduğunu ve hesaplamak istediğinizi hayal edin. 4 Bu çeyreğin performansını geçmiş çeyreklerle karşılaştırmak, ancak tüm çeyreğin tamamı yerine yalnızca her çeyreğin ilk 46 gününü kullanmak. Bu, kullanılarak hesaplanmış bir alan gerektirir periodOverPeriodDifference ile iç içe sumIf() pencere işlevi.

Aşağıdaki örnek, bu kullanım örneğini ele almak için iç içe hesaplanmış bir alan kullanmayı gösterir:

QuarterToDate=periodToDateSumOverTime(sum(Sales), {Order Date}, QUARTER)
PartialQTDSales=sumIf(Sales, dateDiff(truncDate("Q", {Order Date}), {Order Date}, "HH") <= dateDiff(truncDate("Q", now()), now(), "HH"))
PartialQoQQTDSales=periodOverPeriodDifference(sumif(Sales, {Order Date} <= addDateTime(dateDiff(truncDate("Q", now()), now(), "HH"), "HH", truncDate("Q", {Order Date}))), {Order Date}, QUARTER, 1)

PartialQTDSales bu çeyreğin başlangıcından geçerli tarihe kadar kaç saat olduğunu hesaplar ve kullanır sumIf() her çeyreğin o dönemin toplam satışlarını hesaplamak için. partialQoQQTDSales sonra yuva yapar periodOverPeriodDifference ile çalışmak PartialQTDSales kısmi QoQ farklarını bulmak için. Kısmi bir döneme dayalı böyle bir karşılaştırma, yeni tarih/zamana duyarlı dönem işlevleri olmadan mümkün değildir.

Sonuç

Bu blogda, hızlı ve güçlü tarih/saat tabanlı hesaplamalar sağlayan yeni QuickSight periyodu işlevlerini tanıttık. Karşılaştırmalı ve kümülatif dönem işlevlerini inceledik (yani dönem üzerinden dönem ve dönemden bugüne kadar), iki ana kullanım örneğini (sabite karşı dinamik ayrıntı düzeyi ve tablo hesaplamaya karşı toplama) tartıştık ve kullanımı üç gelişmiş kullanım örneğine genişlettik. Dönem işlevleri artık desteklenen tüm QuickSight Bölgelerinde genel kullanıma sunulmuştur.

Bu hesaplamaları iş ihtiyaçlarınız için nasıl uyguladığınıza ilişkin geri bildirimlerinizi ve hikayelerinizi bekliyorum.


Yazarlar Hakkında

Emily Zhu AWS'nin bulutta yerel, tam olarak yönetilen SaaS BI hizmeti olan Amazon QuickSight'ta Kıdemli Ürün Yöneticisidir. QuickSight temel analitik ve hesaplama yeteneğinin geliştirilmesine öncülük ediyor. AWS'ye katılmadan önce, birkaç yıl boyunca Amazon Prime Air drone teslimat programında ve Boeing şirketinde kıdemli strateji uzmanı olarak çalıştı. Emily, bulut tabanlı BI çözümlerinin potansiyelleri konusunda tutkulu ve müşterilerin veriye dayalı strateji oluşturmalarında ilerlemelerine yardımcı olmayı dört gözle bekliyor.

Rajkumar Haridoss AWS QuickSight için Kıdemli Yazılım Geliştirme Mühendisidir. Sorgu Oluşturma ekibinde baş mühendistir ve QuickSight'ta arka uç hesaplamaları, sorgu planlaması ve sorgu oluşturma katmanı üzerinde çalışır. İş dışında ailesiyle ve 4 yaşındaki çocuğuyla kaliteli zaman geçirmeyi seviyor.

spot_img

En Son İstihbarat

spot_img