Pembuatan bucket di Looker

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

Pengelompokan 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 pada kolom LookML

Menggunakan tier untuk pengelompokan

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 menjelajah. Keempat 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-nya dan menggunakan format Tx[x,x] dengan Tx menunjukkan nomor tingkat dan [x,x] menunjukkan rentang. Gambar berikut adalah tabel data Eksplorasi dengan Jumlah Pengguna yang dikelompokkan berdasarkan Usia Pengguna:

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

Gambar berikutnya menampilkan 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 lebih kecil 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 datanya tidak menyertakan nilai usia untuk bucket tersebut:

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

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

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

Menggunakan case untuk pengelompokan

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 pencantuman bucket. Untuk dimensi order_amount_bucket, urutan bucket adalah Kecil, Sedang, dan Besar:

Jika Anda ingin mengurutkan berdasarkan 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 (Anda harus menentukan setiap output dengan pernyataan WHEN atau ELSE), atau jika ingin mengimplementasikan pernyataan ELSE yang lebih kompleks, sebaiknya gunakan SQL CASE WHEN, yang dibahas di bagian berikutnya.

Baca selengkapnya tentang parameter case di halaman dokumentasi Parameter kolom.

Menggunakan SQL CASE WHEN untuk pengelompokan

Pernyataan CASE WHEN SQL direkomendasikan untuk bucketing yang lebih kompleks, atau untuk implementasi pernyataan ELSE yang lebih spesifik.

Misalnya, Anda mungkin ingin menggunakan metode bucketing 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 ;;
}