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 menggunakan kumpulan untuk mengelompokkan kolom berulang, Anda akan membuat satu tempat dalam model tempat grup kolom tersebut dapat dikelola.

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

Produk

Prasyarat

Contoh: Menambahkan kolom pengeboran yang sama ke beberapa ukuran

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

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

Anda dapat membuat set yang disebut user_details yang menyertakan kolom id, city, state, dan country, lalu mereferensikannya dalam beberapa ukuran untuk dipelajari pengguna:


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

Set user_details dapat digunakan untuk menentukan kolom perincian 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.

Anda kemudian dapat menggunakan kembali kumpulan ini untuk membuat kolom perincian 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 Promo, atau Rata-rata Harga Promo di UI Jelajahi, Looker akan membuka jendela yang berisi kueri pada kolom ID, Kota, Negara Bagian, dan Negara.

Jika ingin mengubah apa pun pada kolom perincian, seperti menambahkan atau menghapus kolom, Anda hanya perlu memperbarui kumpulan user_details.

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

Contoh: Menyertakan atau menghilangkan kumpulan kolom dari Pelajari

Misalnya, Anda ingin menyederhanakan alat pilih kolom Jelajahi untuk pengguna dengan mengecualikan kolom yang tidak penting bagi pengguna tersebut.

Misalnya, Anda memiliki tampilan users yang berisi informasi tentang pelanggan, 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 menyertakan semua kolom dari tampilan Pesanan dan Pengguna, termasuk kolom yang ingin Anda hapus.

Bagaimana jika Anda ingin mengecualikan kolom Nama Depan, Nama Belakang, Email, Usia, dan Jenis Kelamin dari Jelajahi untuk pengguna Anda? Anda dapat membuat set yang disebut user_info yang mencantumkan kolom yang ingin dikecualikan dari Jelajah Pesanan:

Jelajah Pesanan Tanpa Data Pengguna mengecualikan kolom Nama Depan, Nama Belakang, Email, Usia, dan Jenis Kelamin dari pemilih kolom Jelajah.

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 orders Jelajahi untuk menyertakan semua kolom kecuali kolom dalam user_info yang ditetapkan 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 Eksplorasi dengan sintaksis -users.user_details* di parameter fields dari Eksplorasi orders, tampilan Pesanan dalam Eksplorasi Pesanan Tanpa Data Pengguna akan menghapus kolom yang tercantum dalam set users_user.info dari pemilih kolom Eksplorasi.

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