Tüm Ürünler
Search
Belge Merkezi

Simple Log Service:Karşılaştırmalı dönem işlevleri

Son Güncelleme:Sep 30, 2026

Karşılaştırmalı dönem işlevleri, sorgu sonuçlarını zaman aralıkları arasında karşılaştırarak yıl bazında ve dönem bazında analiz yapılmasını sağlar.

Simple Log Service (SLS) aşağıdaki karşılaştırmalı dönem işlevlerini destekler.

Önemli

Analitik deyimlerde dizeler kullanmak istiyorsanız dizeleri tek tırnak içine ('') almanız gerekir. Tırnak içine alınmamış dizeler veya çift tırnak ("") içine alınmış dizeler alan adlarını veya sütun adlarını belirtir. Örneğin, 'status' status dizesini belirtirken status veya "status" status günlük alanını belirtir.

İşlev adı

Sözdizimi

Açıklama

SQL desteği

SPL desteği

compare işlevi

compare(x, n)

Mevcut zaman dilimi için hesaplanan sonucu n saniye önceki sonuçla karşılaştırır.

√

×

compare(x, n1, n2, n3...)

Mevcut zaman dilimi için hesaplanan sonucu n1, n2, n3... saniye önceki sonuçlarla karşılaştırır.

√

×

ts_compare işlevi

ts_compare(x, n)

Saatlik gibi hizalanmış bir zaman için mevcut dönemdeki sonucu n saniye önceki karşılık gelen zamandaki sonuçla karşılaştırır.

√

×

ts_compare(x, n1, n2, n3...)

Saatlik gibi hizalanmış bir zaman için mevcut dönemdeki sonucu n1, n2, n3... saniye önceki karşılık gelen zamanlardaki sonuçlarla karşılaştırır.

√

×

Önemli
  • ts_compare işlevi, tek bir zaman sütunu içeren bir GROUP BY yan tümcesi gerektirir.

  • compare ve ts_compare işlevleri iç içe kullanılamaz.

Compare işlevi

Mevcut zaman dilimi için hesaplanan sonucu bir veya daha fazla önceki dönemden gelen sonuçlarla karşılaştırır.

Sözdizimi

  • Mevcut zaman dilimi için hesaplanan sonucu n saniye önceki sonuçla karşılaştırır.

    compare(x, n)
  • Mevcut zaman dilimi için hesaplanan sonucu n1, n2, n3... saniye önceki sonuçlarla karşılaştırır.

    compare(x, n1, n2, n3...)

Parametreler


Parametre


Açıklama


x


Karşılaştırılacak değer. Değer double veya long türünde olmalıdır.


n


Saniye cinsinden zaman penceresi. Örnekler: 3600 (1 saat), 86400 (1 gün), 604800 (1 hafta) veya 31622400 (1 yıl).

Dönüş değeri

Bir dizi döndürür. Tek bir zaman farkı n için biçim [mevcut_sonuc, onceki_sonuc, oran] şeklindedir. Birden çok zaman farkı (n1, n2, ...) belirtildiğinde biçim [mevcut_sonuc, onceki_sonuc_1, onceki_sonuc_2, ..., oran_1, oran_2, ...] şeklindedir.

Örnekler

  • Örnek 1: Mevcut saat ile önceki günün aynı saati arasındaki sayfa görüntüleme (PV) oranını hesaplayın.

    Sorgu ve analiz için zaman aralığını 1 Hour (Aligned Time) olarak ayarlayın ve aşağıdaki sorgu deyimini çalıştırın. Deyimde 86400 mevcut zaman eksi 86400 saniyeyi (1 gün) temsil eder ve log Logstore adını temsil eder.

    • Sonuçları dizi olarak görüntüleyin

      • Sorgu deyimi (Debug)

        * |
        SELECT
          compare(PV, 86400)
        FROM  (
            SELECT
              count(*) AS PV
            FROM      log
          )
      • Sorgu ve analiz sonuçları

        • 3337.0: Mevcut saat için PV'ler (örneğin, 25 Aralık 2020 tarihinde 14:00:00 ile 15:00:00 arasında).

        • 3522.0: Önceki günün aynı saati için PV'ler (örneğin, 24 Aralık 2020 tarihinde 14:00:00 ile 15:00:00 arasında).

        • 0.947473026689381: Mevcut saat ile önceki günün aynı saati arasındaki PV oranı.

    • Sonuçları ayrı sütunlarda görüntüleyin

      • Sorgu deyimi (Debug)

        * |
        SELECT
          diff [1] AS today,
          diff [2] AS yesterday,
          diff [3] AS ratio
        FROM  (
            SELECT
              compare(PV, 86400) AS diff
            FROM      (
                SELECT
                  count(*) AS PV
                FROM          log
              )
          )

        compare işlevi bir dizi döndürür; burada diff sonuç için bir takma addır ve diff [1] diziden ilk değeri alır.

      • Sorgu ve analiz sonuçları

        • 3337.0: Mevcut saat için PV'ler (örneğin, 25 Aralık 2020 tarihinde 14:00:00 ile 15:00:00 arasında).

        • 3522.0: Önceki günün aynı saati için PV'ler (örneğin, 24 Aralık 2020 tarihinde 14:00:00 ile 15:00:00 arasında).

        • 0.947473026689381: Mevcut saat ile önceki günün aynı saati arasındaki PV oranı.

  • Örnek 2: Mevcut saat için her bir istek durumu ve yöntemi kombinasyonundaki istekleri sayın ve sonucu önceki saatin sayısı ile karşılaştırın.

    Sorgu ve analiz için zaman aralığı olarak 1 Hour (Aligned Time) seçeneğini belirleyin ve aşağıdaki sorgu ve analiz deyimini çalıştırın. Deyimde 3600 mevcut zaman eksi 3600 saniyeyi (1 saat) temsil eder ve log Logstore adını temsil eder.

    • Sorgu deyimi (Debug)

      * |
      SELECT
        status,
        request_method,
        compare(PV, 3600)
      FROM  (
          SELECT
            status,
            request_method,
            count(*) AS PV
          FROM      log
          GROUP BY
            status,
            request_method
        )
      GROUP BY
        status,
        request_method
    • Sorgu ve analiz sonuçları: Sonuçlar status, request_method ve _col2 olmak üzere üç sütun içerir. _col2 sütunu, compare işlevi tarafından döndürülen ve [mevcut_dönem_değeri, önceki_dönem_değeri, oran] biçimindeki diziyi içerir. Örneğin, 501 durum kodu ve GET istek yöntemi için bir satır [39.0, 13.0, 3.0] değerini döndürür. Bu, mevcut dönem için 39 PV sayısı, önceki dönem için 13 PV sayısı ve dönem bazında 3,0 oranı olduğunu gösterir.

Ts_compare işlevi

Mevcut dönemde saatlik gibi hizalanmış bir zaman için hesaplanan sonucu önceki dönemlerdeki karşılık gelen zamanlardaki sonuçlarla karşılaştırır.

Önemli

ts_compare işlevi, tek bir zaman sütunu içeren bir GROUP BY yan tümcesi gerektirir.

Sözdizimi

  • Mevcut zaman diliminde hizalanmış bir zaman için hesaplanan sonucu n saniye önceki zaman dilimindeki karşılık gelen hizalanmış zamandaki sonuçla karşılaştırır.

    ts_compare(x, n)
  • Mevcut dönemde hizalanmış bir zaman için hesaplanan sonucu n1, n2, n3... saniye önceki karşılık gelen zamanlardaki sonuçlarla karşılaştırır.

    ts_compare(x, n1, n2, n3...)

Parametreler


Parametre


Açıklama


x


Karşılaştırılacak değer. Değer double veya long türünde olmalıdır.


n


Saniye cinsinden zaman penceresi. Örnekler: 3600 (1 saat), 86400 (1 gün), 604800 (1 hafta) veya 31622400 (1 yıl).

Dönüş değeri

Bir dizi döndürür. Tek bir zaman farkı n için biçim [mevcut_sonuc, onceki_sonuc, oran, onceki_unix_zaman_damgasi] şeklindedir. Birden çok zaman farkı (n1, n2, ...) belirtildiğinde biçim [mevcut_sonuc, onceki_sonuc_1, onceki_sonuc_2, ..., oran_1, oran_2, ..., onceki_unix_zaman_damgasi_1, onceki_unix_zaman_damgasi_2, ...] şeklindedir.

Örnekler

  • Örnek 1: Bugünün saatlik sayfa görüntülemelerini (PV) önceki gün ve iki gün önceki aynı saatlerle karşılaştırın.

    Sorgu ve analiz için zaman aralığını Today (Aligned Time) olarak ayarlayın ve aşağıdaki sorgu deyimini çalıştırın. Bu deyimde 86400 mevcut zaman eksi 86400 saniyeyi (1 gün) temsil eder, 172800 mevcut zaman eksi 172800 saniyeyi (2 gün) temsil eder, log Logstore adını temsil eder ve date_trunc('hour',__time__ ) date_trunc işlevini kullanarak zamanı saate hizalamayı temsil eder.

    • Sonuçları dizi olarak görüntüleyin

      • Sorgu deyimi (Debug)

        * |
        SELECT
          time,
          ts_compare(PV, 86400, 172800) as diff
        FROM  (
            SELECT
              count(*) as PV,
              date_trunc('hour', __time__) AS time
            FROM      log
            GROUP BY
              time
          )
        GROUP BY
          time
        ORDER BY
          time
      • Sorgu ve analiz sonuçları

        • 1174.0: Mevcut zaman dilimi için PV'ler (örneğin, 22 Eylül 2022 tarihinde 00:00 ile 01:00 arasında).

        • 1191.0: Önceki günün aynı zaman dilimi için PV'ler (örneğin, 21 Eylül 2022 tarihinde 00:00 ile 01:00 arasında).

        • 1253.0: İki gün önceki aynı zaman dilimi için PV'ler (örneğin, 20 Eylül 2022 tarihinde 00:00 ile 01:00 arasında).

        • 0.9857262804366079: Mevcut saat ile önceki günün aynı saati arasındaki PV oranı.

        • 0.936951316839585: Mevcut saat ile iki gün önceki aynı saat arasındaki PV oranı.

        • 1663689600.0: 21 Eylül 2022 tarihinde 00:00 için UNIX zaman damgası.

        • 1663603200.0: 20 Eylül 2022 tarihinde 00:00 için UNIX zaman damgası.

        Not

        Sonuçlardaki zaman damgaları sorguyu çalıştırdığınız zamana bağlı olarak değişebilir.

    • Sonuçları ayrı sütunlarda görüntüleyin

      • Sorgu deyimi (Debug)

        * |
        SELECT
          time,
          diff [1] AS day1,
          diff [2] AS day2,
          diff [3] AS day3,
          diff [4] AS ratio1,
          diff [5] AS ratio2
        FROM  (
            SELECT
              time,
              ts_compare(PV, 86400, 172800) AS diff
            FROM      (
                SELECT
                  count(*) as PV,
                  date_trunc('hour', __time__) AS time
                FROM          log
                GROUP BY
                  time
              )
            GROUP BY
              time
            ORDER BY
              time
          )
      • Sorgu ve analiz sonuçları: Sonuç tablosundaki her satır bir saatlik veriyi temsil eder. time saatlik zaman damgasıdır. day1, day2 ve day3 sırasıyla mevcut gün, önceki gün ve iki gün önceki PV sayılarıdır. ratio1 mevcut gün ile önceki gün arasındaki oranı, ratio2 ise mevcut gün ile iki gün önceki gün arasındaki oranı gösterir. 1,0'a yakın bir değer küçük bir değişikliği ifade eder.

  • Örnek 2: Bugün için saatlik sayfa görüntüleme (PV) değişimini hesaplayın.

    Sorgu ve analiz için zaman aralığını Today (relative) olarak ayarlayın ve aşağıdaki sorgu deyimini çalıştırın. Bu deyimde 3600 mevcut zaman eksi 3600 saniyeyi (1 saat) temsil eder, log Logstore adıdır ve date_trunc('hour',__time__ ) date_trunc işlevini kullanarak zamanı saate hizalar.

    • Sorgu deyimi (Debug)

      * |
      SELECT
        time,
        ts_compare(PV, 3600) AS data
      FROM(
          SELECT
            date_trunc('hour', __time__) AS time,
            count(*) AS PV
          FROM      log
          GROUP BY
            time
          ORDER BY
            time
        )
      GROUP BY
        time
    • Sorgu ve analiz sonuçları time ve data olmak üzere iki sütun içerir. Örneğin, time 2021-01-27 00:00:00.000 olduğunda data [1160.0,10034.0,0.11560693641618497,1611673200.0] değerindedir. time 2021-01-27 01:00:00.000 olduğunda data [10177.0,1160.0,8.773275862068966,1611676800.0] değerindedir. time 2021-01-27 02:00:00.000 olduğunda data [26804.0,10177.0,2.633782057580195,1611680400.0] değerindedir.

      Not

      Sonuçlardaki zaman damgaları sorguyu çalıştırdığınız zamana bağlı olarak değişebilir.