Memaksimalkan penggunaan kembali kode dengan DRY LookML: Menentukan daftar kolom yang dapat digunakan kembali dengan parameter yang ditetapkan

Salah satu cara untuk membuat project LookML Anda lebih efisien dan mudah dikelola adalah dengan parameter set LookML. Parameter set memungkinkan Anda mengelompokkan kolom yang mungkin sering diulang di seluruh project dalam parameter fields atau dalam kolom penelusuran. Jika Anda menggunakan set untuk mengelompokkan kolom berulang, Anda membuat satu tempat dalam model tempat kelompok kolom tersebut dapat dikelola.

Halaman ini mencakup contoh berikut tentang penggunaan set LookML untuk membuat project LookML Anda lebih efisien dan mudah dikelola:

Produk

Prasyarat

Contoh: Menambahkan kolom penelusuran yang sama ke beberapa ukuran

Misalnya, Anda ingin pengguna dapat melihat perincian untuk melihat detail pengguna yang lebih terperinci di mana pun mereka melihat metrik penjualan di Eksplorasi, Look, atau dasbor, sehingga memilih nilai untuk ukuran Jumlah di UI Eksplorasi akan membuka kueri pada kolom ID, Kota, Negara Bagian, dan Negara:

Memilih nilai untuk ukuran Jumlah akan membuka kueri pada kolom ID, Kota, Negara Bagian, dan Negara.

Anda dapat membuat set bernama user_details yang menyertakan kolom id, city, state, dan country, lalu merujuknya dalam beberapa ukuran agar pengguna dapat melihat perinciannya:


set: user_details {
  fields: [id, city, state, country]
}

Set user_details dapat digunakan untuk menentukan kolom penelusuran untuk ukuran count:


measure: count {
  type: count
  drill_fields: [user_details*]
}

Dalam contoh ini, sintaksis [set_name*] digunakan untuk menentukan bahwa kolom dalam user_details akan muncul dalam hasil kueri saat Anda melihat perincian metrik Jumlah.

Kemudian, Anda dapat menggunakan kembali set ini untuk membuat kolom penelusuran tambahan. Misalnya, Anda dapat menambahkan kode LookML drill_fields: [user_details*] ke ukuran order_count, total_sale_price, dan average_sale_price:


measure: order_count {
  view_label: "Orders"
  type: count_distinct
  description: "Number of orders"
  sql: ${order_id} ;;
  drill_fields: [user_details*]

}

measure: total_sale_price {
  type: sum
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [user_details*]
}

measure: average_sale_price {
  type: average
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [user_details*]
}

Seperti halnya ukuran Jumlah, saat pengguna memilih nilai untuk Jumlah Pesanan, Total Harga Penjualan, atau Harga Penjualan Rata-Rata di UI Jelajah, Looker akan membuka jendela yang berisi kueri pada kolom ID, Kota, Negara Bagian, dan Negara.

Jika Anda ingin mengubah apa pun tentang kolom penelusuran, seperti menambahkan atau menghapus kolom, Anda hanya perlu memperbarui set user_details.

Anda juga dapat mereferensikan set dalam parameter drill_fields dari tampilan untuk menentukan kolom penelusuran untuk semua ukuran dalam tampilan tersebut yang belum memiliki kolom penelusuran yang ditentukan di tingkat kolom.

Contoh: Menyertakan atau menghilangkan sekumpulan kolom dari Eksplorasi

Misalkan Anda ingin menyederhanakan pemilih kolom Jelajahi untuk pengguna dengan mengecualikan kolom yang tidak penting bagi pengguna tersebut.

Misalnya, Anda memiliki tampilan users yang berisi informasi tentang pelanggan Anda, termasuk kolom untuk ID, Nama Depan, Nama Belakang, Email, dan Usia, serta kolom lokasi seperti Kota, Negara Bagian, Negara, dan Kode Pos. Tampilan users digabungkan ke Jelajah orders:

Pemilih kolom untuk tampilan Pesanan mencakup semua kolom dari tampilan Pesanan dan Pengguna, termasuk kolom yang ingin Anda hilangkan.

Bagaimana jika Anda ingin mengecualikan kolom Nama Depan, Nama Belakang, Email, Usia, dan Gender dari Eksplorasi untuk pengguna Anda? Anda dapat membuat set bernama user_info yang mencantumkan kolom yang ingin Anda kecualikan dari Eksplorasi Pesanan:

Eksplorasi Pesanan Tanpa Data Pengguna mengecualikan kolom Nama Depan, Nama Belakang, Email, Usia, dan Gender dari pemilih kolom Eksplorasi.

LookML untuk set user_info akan terlihat seperti ini:


set: user_info {
  fields: [first_name, last_name, email, age, gender]
}

Untuk menentukan Eksplorasi Pesanan dengan label Pesanan Tanpa Data Pengguna, gabungkan tampilan users ke Eksplorasi orders. Tambahkan kode LookML fields: [ALL_FIELDS*, -users.user_info*] ke Eksplorasi orders untuk menyertakan semua kolom kecuali kolom dalam set user_info dari tampilan users:


explore: orders {
  fields: [ALL_FIELDS*, -users.user_info*]
  label: "Orders Without User Data"
  join: users {
    type: left_outer
    sql_on: ${orders.user_id} = ${users.id} ;;
    relationship: many_to_one
  }
}

Karena set user_details dikecualikan dari Jelajahi dengan sintaksis -users.user_details* dalam parameter fields dari Eksplorasi orders, tampilan Pesanan dalam Eksplorasi Pesanan Tanpa Data Pengguna menghilangkan kolom yang tercantum dalam set users_user.info dari pemilih kolom Eksplorasi.

Anda dapat menggunakan kembali set user_info untuk menghilangkan kolom ini dari UI Jelajah untuk Jelajah lain yang digabungkan dengan tampilan users. Jika Anda ingin mengubah apa pun tentang set user_info, seperti menambahkan atau menghapus kolom, Anda hanya perlu memperbarui set user_info.