Pengelompokan di Looker

Jika memiliki izin untuk membuat kolom kustom, Anda dapat membuat grup kustom ad hoc untuk dimensi tanpa menggunakan fungsi logika dalam ekspresi Looker atau mengembangkan logika CASE WHEN di parameter sql atau kolom type: case.
Anda juga dapat membuat kelompok kustom ad hoc untuk dimensi jenis numerik tanpa perlu menggunakan fungsi logika dalam ekspresi Looker atau perlu mengembangkan kolom LookML type: tier jika Anda memiliki izin untuk membuat kolom kustom.

Bucketing dapat sangat berguna untuk membuat dimensi pengelompokan kustom di Looker.

Ada tiga cara untuk membuat bucket di Looker:

  1. Menggunakan jenis dimension tier
  2. Menggunakan parameter case
  3. Menggunakan pernyataan CASE WHEN SQL dalam parameter SQL kolom LookML

Menggunakan tier untuk bucketing

Untuk membuat bucket bilangan bulat, kita cukup menentukan jenis dimension sebagai tier:

dimension: users_lifetime_orders_tier {
  type: tier
  tiers: [0,1,2,5,10]
  sql: ${users_lifetime_orders} ;;
}

Anda dapat menggunakan parameter style untuk menyesuaikan tampilan tingkat saat menjelajahi. Empat opsi untuk style adalah sebagai berikut:

  1. classic
  2. integer
  3. interval
  4. relational

Contoh:

dimension: age_tier {
  type: tier
  tiers: [0,10,20,30,40,50,60,70,80]
  style: integer
  sql: ${age} ;;
}

Parameter style classic adalah default dan menggunakan format Tx[x,x] dengan Tx yang menunjukkan nomor tingkat dan [x,x] yang menunjukkan rentang. Gambar berikut adalah tabel data Jelajahi dengan Jumlah Pengguna yang dikelompokkan menurut Usia Pengguna:

Tingkat Usia Pengguna teratas yang tersedia di tabel data adalah T02[10,20] yang menunjukkan jumlah 808 pengguna berusia 10 hingga 20 tahun.

Gambar berikutnya menunjukkan contoh opsi parameter style lainnya:

  • interval — Dengan format [x,x], yang menunjukkan nilai terendah dan nilai tertinggi tingkat
  • integer — Dengan format x to x, yang menunjukkan nilai terendah dan nilai tertinggi tingkat
  • relational — Dengan format >= x and <x, yang menunjukkan bahwa nilai lebih besar dari atau sama dengan nilai tingkat terendah dan kurang dari nilai tingkat tertinggi

Hal-hal yang perlu dipertimbangkan

Menggunakan tier bersama dengan pengisian dimensi dapat menghasilkan bucket tingkat yang tidak terduga.

Misalnya, dimensi type: tier, Tingkat Usia, akan menampilkan bucket tingkat untuk Di bawah 0 dan 0 hingga 9 saat pengisian dimensi diaktifkan, meskipun data tidak menyertakan nilai usia untuk bucket tersebut:

Jika pengisian dimensi dinonaktifkan untuk Tingkat Usia, bucket akan mencerminkan nilai usia yang tersedia dalam data dengan lebih akurat, dimulai dengan bucket 10 hingga 19:

Anda dapat mengaktifkan atau menonaktifkan pengisian dimensi dengan mengarahkan kursor ke nama dimensi di Jelajah, mengklik ikon roda gigi tingkat kolom, dan memilih Hapus Nilai Tingkat yang Diisi untuk menonaktifkan, atau Isi Nilai Tingkat yang Tidak Ada untuk mengaktifkan.

Cari tahu lebih lanjut tiers Looker di halaman dokumentasi Jenis dimensi, filter, dan parameter.

Menggunakan case untuk bucketing

Anda dapat menggunakan parameter case untuk membuat bucket bernama kustom dengan pengurutan kustom. Parameter case direkomendasikan untuk kumpulan bucket tetap, karena dapat membantu mengontrol cara nilai ditampilkan, diurutkan, dan digunakan dalam filter dan visualisasi UI. Misalnya, dengan case, pengguna hanya dapat memilih nilai bucket yang ditentukan dalam filter.

Untuk membuat bucket dengan case, Anda dapat menentukan dimensi, seperti bucket untuk jumlah pesanan:

  dimension: order_amount_bucket {
    case: {
      when: {
        sql: ${order_amount} <= 50;;
        label: "Small"
      }
      when: {
        sql: ${order_amount} > 50 AND ${order_amount} <= 150;;
        label: "Medium"
      }
      when: {
        sql: ${order_amount} > 150;;
        label: "Large"
      }
      else:"Unknown"
    }
  }

Parameter case biasanya akan mengurutkan nilai sesuai urutan bucket yang tercantum. Untuk dimensi order_amount_bucket, urutan bucket adalah Kecil, Sedang, dan Besar:

Jika Anda ingin mengurutkan secara alfanumerik, tambahkan parameter alpha_sort ke dimensi, seperti berikut:

  dimension: order_amount_bucket {
    alpha_sort: yes
    case: {
      when: {
        sql: ${order_amount} <= 50;;
        label: "Small"
      }
      when: {
        sql: ${order_amount} > 50 AND ${order_amount} <= 150;;
        label: "Medium"
      }
      when: {
        sql: ${order_amount} > 150;;
        label: "Large"
      }
      else:"Unknown"
    }
  }

Untuk dimensi yang menginginkan banyak nilai berbeda dalam output (hal ini mengharuskan Anda menentukan setiap output dengan pernyataan WHEN atau ELSE), atau jika Anda ingin menerapkan pernyataan ELSE yang lebih kompleks, sebaiknya gunakan CASE WHEN SQL, yang akan dibahas di bagian berikutnya.

Baca selengkapnya tentang parameter case di halaman dokumentasi Parameter kolom.

Menggunakan CASE WHEN SQL untuk bucketing

Pernyataan CASE WHEN SQL direkomendasikan untuk pengelompokan yang lebih kompleks, atau untuk penerapan pernyataan ELSE yang lebih terperinci.

Misalnya, Anda mungkin ingin menggunakan metode pengelompokan yang berbeda, bergantung pada tujuan pesanan. Pernyataan CASE WHEN SQL dapat digunakan untuk membuat dimensi bucket gabungan, dengan pernyataan THEN menampilkan dimensi, bukan string:

dimension: compound_buckets {
  sql:
    CASE
      WHEN ${orders.destination} = 'US' THEN ${us_buckets}
      WHEN ${orders.destination} = 'CA' THEN ${canada_buckets}
    ELSE ${intl_buckets}
    END ;;
}