Analisis jangka waktu versus jangka waktu menggunakan filter template

Untuk membandingkan metrik yang difilter menurut beberapa jangka waktu dalam Tampilan atau dasbor yang sama, Anda dapat menggunakan ukuran yang difilter. Tindakan yang difilter memungkinkan Anda menerapkan filter hardcode secara langsung ke ukuran, alih-alih menerapkan filter ke seluruh kueri.

Jika memiliki jumlah jangka waktu terbatas yang ingin Anda bandingkan, Anda dapat menentukan beberapa ukuran dengan filter jangka waktu hardcode (misalnya, "tahun ini" dan "tahun lalu") dan menampilkannya di Eksplorasi, Tampilan, atau dasbor. Anda juga dapat mengambil pendekatan ini selangkah lebih maju untuk membuat perbandingan jangka waktu menjadi dinamis — atau pengukuran yang berubah dengan jangka waktu yang ditentukan oleh pengguna di Penjelajahan, Tampilan, atau dasbor — dengan menggunakan filter template dalam tindakan yang difilter.

Ringkasan pola

Pada tingkat tinggi, pendekatan ini melibatkan tiga komponen:

  1. Tentukan filter template type: date untuk setiap jangka waktu yang akan muncul sebagai kolom khusus filter di Jelajahi, Tampilan, atau dasbor Anda.
  2. Buat dimensi jenis yesno untuk dikaitkan dengan filter template sehingga saat pengguna memilih nilai untuk kolom khusus filter, dimensi yesno akan menampilkan "ya" untuk data yang memenuhi kondisi filter.
  3. Buat ukuran yang difilter yang mereferensikan dimensi yesno dengan kondisi value = "yes". Hal ini memastikan bahwa pengukuran hanya menggabungkan catatan yang memenuhi kondisi jangka waktu yang ditentukan dalam filter yang ditentukan pada langkah 1.

Logika ini memungkinkan pengguna membuat analisis dan visualisasi yang membandingkan nilai dari jangka waktu yang berbeda, seperti Eksplorasi berikut:

Pengguna dapat mengubah nilai di filter Jangka Waktu A dan Jangka Waktu B serta hanya memengaruhi nilai untuk Jumlah Pesanan A dan Jumlah Pesanan B. Jumlah Pesanan A dan Jumlah Pesanan B adalah ukuran dengan filter yang mereferensikan kondisi jangka waktu dalam filter jangka waktu. Jangka waktu A memengaruhi nilai untuk Jumlah Pesanan A, dan Jangka Waktu B memengaruhi nilai untuk Jumlah Pesanan B.

Bagian berikut menyediakan LookML untuk contoh ini.

LookML

LookML berikut mengasumsikan bahwa Anda memiliki grup dimensi dengan jangka waktu raw bernama created_raw:

  dimension_group: created {
    type: time
    timeframes: [
      raw,
      time,
      date,
    ]
    sql: ${TABLE}.created_at ;;
  }
  

LookML untuk membandingkan ukuran jumlah — Orders Count A dan Orders Count B — difilter menurut dua jangka waktu dinamis — Timeframe A dan Timeframe B — berdasarkan created_raw akan terlihat seperti ini:

  ## filter determining time range for all "A" measures
  filter: timeframe_a {
    type: date_time
  }

## flag for "A" measures to only include appropriate time range dimension: group_a_yesno { hidden: yes type: yesno sql: {% condition timeframe_a %} ${created_raw} {% endcondition %} ;; }

## filtered measure A measure: count_a { type: count filters: [group_a_yesno: "yes"] }

## filter determining time range for all "B" measures filter: timeframe_b { type: date_time }

## flag for "B" measures to only include appropriate time range dimension: group_b_yesno { hidden: yes type: yesno sql: {% condition timeframe_b %} ${created_raw} {% endcondition %} ;; }

measure: count_b { type: count filters: [group_b_yesno: "yes"] }

Anda dapat menggunakan logika ini untuk membuat perbandingan jangka waktu sebanyak yang Anda butuhkan.

Memfilter seluruh kueri dengan jangka waktu dinamis

Tindakan yang difilter tidak menerapkan kondisi filter ke keseluruhan hasil kueri. Jika Anda ingin membatasi hasil kueri keseluruhan dalam jangka waktu yang ditentukan, Anda dapat:

  1. Buat dimensi yesno berikut
  2. Filter nilai dimensi menurut "ya" di Eksplorasi, Tampilan, atau dasbor:

  dimension: is_in_time_a_or_b {
    group_label: "Time Comparison Filters"
    type: yesno
    sql:
      {% condition timeframe_a %} ${created_raw} {% endcondition %} OR
      {% condition timeframe_b %} ${created_raw} {% endcondition %} ;;
  }

Hal ini mencegah database agar tidak memindai lebih banyak data daripada yang diperlukan untuk kueri — dan dapat membantu meningkatkan performa dan biaya kueri.