Memaksimalkan penggunaan kembali kode dengan DRY LookML: Menyesuaikan satu tampilan dasar untuk beberapa kasus penggunaan

Bayangkan Anda memiliki banyak pengguna yang berbagi satu Explore, tetapi memiliki kasus penggunaan yang berbeda bergantung pada tim atau wilayah mereka. Setiap pengguna hanya ingin melihat kolom yang berlaku untuk kasus penggunaan uniknya. Untuk memenuhi beragam kebutuhan pengguna, Anda dapat menggunakan penyempurnaan LookML untuk menyesuaikan tampilan dan Jelajah yang ada tanpa harus memodifikasi LookML asli. Kemudian, Anda dapat menyertakan tampilan dan Jelajah yang disempurnakan ini dalam file model khusus terpisah yang disesuaikan dengan berbagai kebutuhan pengguna Anda.

Halaman ini memberikan contoh penggunaan penyempurnaan LookML untuk menyesuaikan satu tampilan dasar dan membuat Jelajah yang berbeda untuk dua tim yang berbeda di perusahaan Anda. Contoh ini juga mencakup contoh cara menyembunyikan dan menambahkan kolom dalam konten yang disempurnakan.

Produk

Prasyarat

Contoh: Membuat beberapa Jelajah yang disesuaikan dari tampilan dasar yang sama

Misalkan Anda memiliki Eksplorasi Penjualan yang berisi data tentang pelanggan, pembelian, pengiriman, dan lokasi. Tim Pemasaran dan Logistik perusahaan Anda perlu mempelajari data ini, tetapi masing-masing berfokus pada kolom yang berbeda dalam bagian Jelajahi Penjualan.

Anda hanya ingin menampilkan kolom yang berguna bagi setiap tim di pemilih kolom Jelajahi agar penjelajahan lebih mudah. Untuk melakukannya, Anda dapat menentukan dua penajaman yang berbeda dari Eksplorasi Penjualan dan tampilan sales yang menjadi dasar. Tab Jelajah milik tim Pemasaran dapat menampilkan kolom yang berkaitan dengan pelanggan dan tren pembelian, sedangkan bagian Jelajah tim Logistik dapat menampilkan kolom yang berkaitan dengan pengiriman dan lokasi. Anda juga dapat menambahkan kolom baru ke setiap tampilan yang disempurnakan yang bersifat khusus untuk kebutuhan setiap tim.

Saat ini, alat pilih kolom untuk Jelajahi Penjualan menampilkan semua kolom dari tampilan Penjualan:

Tampilan Penjualan mencakup bidang untuk tanggal pembuatan, pengiriman, pengembalian, dan pengiriman, serta ID, laba, status, harga promo rata-rata dan total, serta hitungan.

Alat pilih kolom juga menampilkan semua kolom dari tampilan Pengguna yang digabungkan:

Tampilan Pengguna mencakup kolom untuk usia, kota, negara, tanggal dibuat, email, nama depan dan belakang, ID, negara bagian, kode pos, dan jumlah.

Anda dapat menyaring tampilan sales untuk membuat dua Jelajah terpisah yang hanya berisi kolom yang menarik bagi tim Pemasaran dan Logistik dengan mengikuti langkah-langkah berikut:

  1. Buat file LookML baru, dalam contoh ini, file bernama base_analysis.lkml, yang berisi LookML untuk Jelajah Penjualan, yang didasarkan pada tampilan sales dan tampilan users gabungan. Karena Anda ingin menggunakan Jelajah sales dasar dan tampilan terkaitnya untuk membuat Jelajah yang disesuaikan untuk setiap tim, Anda dapat menentukan semua kolom dan properti bersama dalam satu lokasi, seperti dalam satu file.

    
    # base_analysis.lkml
    
    include: "views/sales.view.lkml"
    include: "views/inventory_items.view.lkml"
    include: "views/users.view.lkml"
    
    explore: sales {
      join: inventory_items {
        type: left_outer
        sql_on: ${sales.inventory_item_id} = ${inventory_items.id} ;;
        relationship: many_to_one
      }
    
      join: users {
        type: left_outer
        sql_on: ${sales.user_id} = ${users.id} ;;
        relationship: many_to_one
      }
    }
    
  2. Buat dua file terpisah untuk menyimpan penyempurnaan dari Jelajahi Penjualan yang akan Anda tentukan untuk setiap tim. Anda dapat memberi nama file marketing_analysis.lkml dan logistics_analysis.lkml. Kode LookML, yang ditampilkan selanjutnya, menyaring Jelajah sales dasar seperti yang ditentukan dalam file base_analysis.lkml, yang ditunjukkan sebelumnya, untuk menambahkan label Analisis Penjualan untuk Tim Pemasaran dalam file baru bernama marketing_analysis.lkml. Pernyataan include: "/base/base_analysis.lkml" membuat konten file base_analysis.lkml tersedia untuk referensi dalam file marketing_analysis.lkml.

    
    # marketing_analysis.lkml
    
    include: "/base/base_analysis.lkml"
    
    explore: +sales {
      label: "Sales Analysis for Marketing Team"
    }
    
    
  3. Buat file model terpisah untuk setiap tim, seperti ecommerce_marketing.model dan ecommerce_logistics.model. Dengan menampung berbagai peningkatan kualitas dalam model khusus yang berbeda untuk setiap tim, Anda dapat mengoptimalkan kumpulan tampilan dan Jelajah yang sama beberapa kali tanpa menimpa penyesuaian yang telah Anda buat untuk kasus penggunaan satu tim. Lihat halaman dokumentasi perbaikan LookML untuk informasi selengkapnya.

  4. Dengan parameter include, sertakan marketing_analysis.lkml dalam model ecommerce_marketing.model, dan sertakan logistics_analysis.lkml dalam model ecommerce_logistics.model.

  5. Tambahkan penyempurnaan tambahan ke file marketing_analysis.lkml dan logistics_analysis.lkml seperti yang diinginkan. Misalnya, Anda dapat menyembunyikan kolom yang tidak diperlukan dan menambahkan kolom baru ke bagian Jelajah yang disempurnakan untuk setiap tim.

Secara opsional, Anda dapat meminta admin Looker mengonfigurasi akses model untuk setiap model khusus guna memberikan akses tingkat Jelajah kepada tim tertentu.

Menyembunyikan kolom yang tidak diperlukan dari Explore yang disempurnakan

Anda dapat menyaring tampilan sales sebagai berikut di file marketing_analysis.lkml untuk menyembunyikan grup dimensi Dikembalikan, Dikirim, Terkirim, dan Dibuat, serta dimensi Status, karena kolom tersebut tidak digunakan oleh tim Pemasaran:


# marketing_analysis.lkml

include: "/base/base_analysis.lkml"

explore: +sales {
  label: "Sales Analysis for Marketing Team"
}

view: +sales
  dimension_group: returned {
    hidden: yes
  }

  dimension_group: shipped {
    hidden: yes
  }

  dimension_group: delivered {
    hidden: yes
  }

  dimension_group: created {
    hidden: yes
  }

  dimension: status {
    hidden: yes
  }
}

Demikian pula, Anda dapat menggunakan LookML berikut di file logistics_analysis.lkml untuk menyembunyikan kolom yang tidak diperlukan tim Logistik (seperti Laba, Harga Jual, dan Harga Jual Rata-Rata):


# logistics_analysis.lkml

include: "/base/base_analysis.lkml"

explore: +sales {
  label: "Sales Analysis for Logistics Team"
}

view: +sales {
  dimension: profit {
    hidden: yes
  }

  dimension: sale_price {
    hidden: yes
  }

  measure: average_sale_price {
    hidden: yes
  }
}

Karena tim Logistik tidak perlu melihat informasi pribadi pelanggan, seperti nama, usia, atau alamat email mereka, Anda juga dapat menambahkan penajaman untuk tampilan users yang digabungkan dalam file logistics_analysis.lkml untuk menyembunyikan kolom ini dari Jelajah:

  view: +users {
    dimension: age {
    hidden: yes
  }

  dimension: email {
    hidden: yes
  }

  dimension: first_name {
    hidden: yes
  }

  dimension: last_name {
    hidden: yes
  }

  dimension_group: created {
    hidden: yes
  }
}

Menambahkan kolom baru ke Jelajah yang disempurnakan

Anda juga dapat membuat kolom baru yang menarik bagi tim Pemasaran dalam tampilan sales yang disempurnakan. Misalnya, Anda dapat menambahkan kolom untuk Harga Jual Rata-Rata, Total Harga Jual, dan Pembelanjaan Rata-Rata per Pengguna dalam tampilan sales yang dipersempit:

Tampilan Penjualan mencantumkan ID, Laba, Harga Jual, dan Jumlah, ditambah kolom Harga Jual Rata-Rata, Belanja Rata-Rata per Pengguna, dan Total Harga Jual yang baru.

Anda dapat menggunakan LookML berikut untuk menambahkan kolom ini ke tampilan sales yang disempurnakan di file marketing_analysis.lkml:


# marketing_analysis.lkml

view: +sales {
  measure: average_sale_price {
    type: average
    value_format_name: usd
    sql: ${sale_price} ;;
    drill_fields: [detail*]
  }

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

  measure: average_spend_per_user {
    type: number
    value_format_name: usd
    sql: 1.0 * ${total_sale_price} / NULLIF(${users.count},0) ;;
    drill_fields: [detail*]
  }
}

Eksplorasi Pemasaran yang Anda buat akan berisi kolom baru pada tampilan Penjualan selain kolom di tampilan Pengguna yang digabungkan. Grup dimensi Dikembalikan, Dikirim, Dikirim, dan Dibuat serta dimensi Status disembunyikan karena tim Pemasaran tidak memerlukannya.

Demikian pula, untuk tim Logistik, Anda dapat membuat kolom baru yang akan berguna bagi tim Logistik, seperti Bucket Waktu Pengiriman dan Waktu Pengiriman Rata-Rata:

Tim Logistik Explore kini mencantumkan kolom Waktu Pengiriman dan Waktu Pengiriman Rata-Rata yang baru, beserta kolom pengiriman dan lokasi pengguna lainnya.

Anda dapat menggunakan LookML berikut untuk menambahkan kolom ini ke tampilan sales yang disempurnakan di file logistics_analysis.lkml:


# logistics_analysis.lkml

view: +sales {
  dimension: shipping_time_buckets {
    case: {
      when: {
        sql: ${shipping_time} <= 7 ;;
        label: "One Week"
      }
      when: {
        sql: ${shipping_time} > 7 AND ${shipping_time} <= 14 ;;
        label: "Two Weeks"
      }
      when: {
        sql:  ${shipping_time} > 14 ;;
        label: "Over Two Weeks"
      }
      else: "Note Shipped"
    }
  }

  measure: average_shipping_time {
    type: average
    value_format_name: decimal_4
    sql: ${shipping_time} ;;
  }
}

Eksplorasi Logistik yang Anda buat akan berisi kolom baru pada tampilan Penjualan selain kolom di tampilan Pengguna yang digabungkan. Kolom Laba, Harga Penjualan, dan Harga Penjualan Rata-Rata dari tampilan Penjualan serta kolom Usia, Email, Nama Depan, Nama Belakang, dan Dibuat dari Eksplorasi Pengguna disembunyikan karena tim Logistik tidak memerlukannya.

Setiap tim kini memiliki Jelajah yang lebih disesuaikan dengan kebutuhan spesifik mereka. Meskipun pendekatan ini melibatkan lebih banyak penyiapan di awal, dengan menyimpan data inti di satu tempat, Anda dapat membuatnya lebih mudah ditemukan dan digunakan.