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

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

Halaman ini memberikan contoh penggunaan peningkatan LookML untuk menyesuaikan satu tampilan dasar dan membuat Jelajah yang berbeda untuk dua tim yang berbeda dalam perusahaan Anda. Panduan ini juga mencakup contoh menyembunyikan dan menambahkan kolom dalam konten yang difilter.

Produk

Prasyarat

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

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

Anda hanya ingin menampilkan kolom yang berguna bagi setiap tim di pemilih kolom Jelajahi untuk mempermudah eksplorasi. Untuk melakukannya, Anda dapat menentukan dua penyempurnaan berbeda dari Jelajah Penjualan dan tampilan sales yang menjadi dasarnya. Jelajah tim Pemasaran dapat menampilkan kolom yang terkait dengan pelanggan dan tren pembelian, sedangkan Jelajah tim Logistik dapat menampilkan kolom yang terkait dengan pengiriman dan lokasi. Anda juga dapat menambahkan kolom baru ke setiap tampilan yang dipertajam yang spesifik untuk kebutuhan setiap tim.

Saat ini, pemilih kolom untuk Jelajah Penjualan menampilkan semua kolom dari tampilan Penjualan:

Tampilan Penjualan mencakup kolom untuk tanggal dibuat, dikirim, dikembalikan, dan dikirim, serta ID, laba, status, harga jual rata-rata dan total, serta jumlah.

Pemilih kolom juga menampilkan semua kolom dari tampilan Pengguna yang tergabung:

Tampilan Pengguna menyertakan kolom untuk usia, kota, negara, tanggal pembuatan, 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 yang digabungkan. Karena Anda ingin menggunakan Eksplorasi sales dasar dan tampilan yang sesuai untuk membuat Eksplorasi yang disesuaikan untuk setiap tim, Anda dapat menentukan semua kolom dan properti bersama di 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 peningkatan Jelajah Penjualan yang akan Anda tentukan untuk setiap tim. Anda dapat menamai file marketing_analysis.lkml dan logistics_analysis.lkml. Kode LookML, yang ditampilkan di samping, menyaring Jelajahi sales dasar seperti yang ditentukan dalam file base_analysis.lkml, yang ditampilkan sebelumnya, untuk menambahkan label Analisis Penjualan untuk Tim Pemasaran dalam file baru yang disebut marketing_analysis.lkml. Pernyataan include: "/base/base_analysis.lkml" membuat konten file base_analysis.lkml tersedia untuk direferensikan 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 menempatkan berbagai penyesuaian dalam model khusus terpisah untuk setiap tim, Anda dapat meningkatkan kualitas kumpulan tampilan dan Jelajahi yang sama beberapa kali tanpa menimpa penyesuaian yang telah Anda buat untuk kasus penggunaan satu tim. Lihat halaman dokumentasi Peningkatan LookML untuk mengetahui 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 sesuai keinginan. Misalnya, Anda dapat menyembunyikan kolom yang tidak diperlukan dan menambahkan kolom baru ke Jelajah yang dioptimalkan untuk setiap tim.

Secara opsional, Anda dapat meminta admin Looker mengonfigurasi akses model untuk setiap model khusus guna memberi tim tertentu akses tingkat Jelajahi.

Menyembunyikan kolom yang tidak perlu dari Eksplorasi yang difilter

Anda dapat menyaring tampilan sales sebagai berikut dalam file marketing_analysis.lkml untuk menyembunyikan grup dimensi Returned, Shipped, Delivered, dan Created, 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 dalam file logistics_analysis.lkml untuk menyembunyikan kolom yang tidak diperlukan tim Logistik (seperti Profit, Sale Price, dan Average Sale Price):


# 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 tentang pelanggan, seperti nama, usia, atau alamat email mereka, Anda juga dapat menambahkan perincian untuk tampilan users yang digabungkan dalam file logistics_analysis.lkml untuk menyembunyikan kolom ini dari Jelajahi:

  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 Eksplorasi yang difilter

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

Tampilan Penjualan mencantumkan ID, Laba, Harga Promo, dan Jumlah, serta kolom Harga Promo Rata-Rata, Pembelanjaan Rata-Rata per Pengguna, dan Total Harga Promo yang baru.

Anda dapat menggunakan LookML berikut untuk menambahkan kolom ini ke tampilan sales yang difilter dalam 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*]
  }
}

Jelajah Pemasaran yang Anda buat akan berisi kolom baru di bagian tampilan Penjualan selain kolom di tampilan Pengguna yang digabungkan. Grup dimensi Dikirim Kembali, 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 Rata-rata Waktu Pengiriman:

Jelajahi tim Logistik kini mencantumkan kolom Bucket Waktu Pengiriman dan Waktu Pengiriman Rata-Rata yang baru, beserta kolom lokasi pengguna dan pengiriman lainnya.

Anda dapat menggunakan LookML berikut untuk menambahkan kolom ini ke tampilan sales yang difilter dalam 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 di bagian tampilan Penjualan selain kolom di tampilan Pengguna yang digabungkan. Kolom Keuntungan, Harga Promo, dan Harga Promo Rata-Rata dari tampilan Penjualan dan kolom Usia, Email, Nama Depan, Nama Belakang, dan Dibuat dari Jelajah Pengguna disembunyikan karena tim Logistik tidak memerlukannya.

Setiap tim kini memiliki Jelajah yang lebih disesuaikan dengan kebutuhan spesifik mereka. Meskipun pendekatan ini memerlukan sedikit penyiapan di awal, dengan menyimpan data inti di satu tempat, Anda dapat mempermudah pencarian dan penggunaannya.