Analisis jangka waktu versus jangka waktu menggunakan filter dengan template

Untuk membandingkan metrik yang difilter menurut beberapa jangka waktu di Tampilan atau dasbor yang sama, Anda dapat menggunakan ukuran yang difilter. Dengan ukuran yang difilter, Anda dapat menerapkan filter hardcode langsung ke ukuran, bukan menerapkan filter ke seluruh kueri.

Jika memiliki 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 Jelajahi, Tampilan, atau dasbor. Anda juga dapat menggunakan pendekatan ini lebih lanjut untuk membuat perbandingan jangka waktu menjadi dinamis — atau ukuran yang berubah dengan jangka waktu yang ditentukan oleh pengguna di Jelajahan, Tampilan, atau dasbor — dengan menggunakan filter template dalam ukuran 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, Lihat, atau dasbor.
  2. Buat dimensi jenis yesno untuk dikaitkan dengan filter dengan template sehingga saat pengguna memilih nilai untuk kolom khusus filter, dimensi yesno akan menampilkan "ya" untuk catatan yang memenuhi kondisi filter.
  3. Buat ukuran yang difilter yang mereferensikan dimensi yesno dengan kondisi value = "yes". Hal ini memastikan bahwa ukuran hanya menggabungkan data 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 Jelajah berikut:

Pengguna dapat mengubah nilai di filter Rentang Waktu A dan Rentang Waktu B dan 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. Rentang Waktu A memengaruhi nilai untuk Jumlah Pesanan A, dan Rentang 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 — yang difilter menurut dua jangka waktu dinamis — Timeframe A dan Timeframe B — berdasarkan created_raw 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 diperlukan.

Memfilter seluruh kueri dengan jangka waktu dinamis

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

  1. Buat dimensi yesno berikut
  2. Filter nilai dimensi berdasarkan "ya" di Jelajah, 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 memindai lebih banyak data daripada yang diperlukan untuk kueri — dan dapat membantu performa serta biaya kueri.