Menyesuaikan Blok Looker

Halaman ini memberikan ringkasan praktik terbaik dan contoh cara menyesuaikan Blok Looker Cortex Framework berikut dengan persyaratan bisnis spesifik Anda:

Penginstalan

Anda dapat menginstal Blok Looker Cortex Framework dengan beberapa cara, seperti yang dijelaskan dalam dokumentasi Men-deploy Blok Looker. Namun, sebaiknya buat fork repositori sebagai metode paling sederhana untuk menyesuaikan blok agar sesuai dengan kebutuhan bisnis Anda.

Blok Looker Cortex Framework telah dibuat dengan pendekatan berlapis, di mana setiap lapisan menambahkan bagian logika inkremental ke lapisan sebelumnya:

  • Lapisan Dasar: Tampilan LookML yang dibuat mesin yang mereferensikan tabel sumber.
  • Lapisan Inti: Perubahan yang ditulis tangan yang menambahkan kolom baru atau mengubah kolom lapisan dasar.
  • Lapisan Logis: Menjelajahi definisi dan gabungan di berbagai tampilan.

Penggunaan penyempurnaan adalah kunci untuk pendekatan berlapis ini dan untuk penyesuaian. Untuk mengikuti prinsip DRY (Do Not Repeat Yourself), ekstensi dan konstanta dimanfaatkan. Konten dinamis untuk label, pernyataan SQL, properti HTML, dan link properti dibuat menggunakan bahasa templating Liquid.

Praktik Terbaik Google Umum:

Organisasi file dan folder

Dalam Blok Looker, setiap folder mewakili kumpulan jenis objek (seperti tampilan, Jelajah, dasbor, dan lainnya). Setiap objek individual ditentukan dalam file terpisah. Root project berisi file kunci berikut:

  • File .model
  • File manifes
  • README dan file Markdown lainnya
  • File Marketplace (jika blok juga tersedia di Looker Marketplace)

File browser

Gambar 1. Contoh organisasi folder dalam Blok Looker.

Model

Pengelolaan file modular membuat file model project menjadi ramping dengan parameter berikut:

  1. koneksi
  2. include

    Jenis file yang disertakan adalah sebagai berikut:

    • Components (grup data, named_value_formats jika relevan)
    • Explores (jelajah tidak ditentukan dalam file model)
    • Dashboards

Pernyataan include untuk tampilan yang digunakan dalam Blok ditentukan dalam setiap file Jelajah individual, bukan di lokasi ini seperti yang ditunjukkan contoh berikut:

connection: "@{CONNECTION_NAME}"

include: "/components/**/*.lkml"
include: "/explores/**/*.explore"
include: "/dashboards/**/*.dashboard"

Manifes

File Manifes menentukan konstanta yang direferensikan di seluruh project. Beberapa contoh konstanta yang digunakan untuk blok kami adalah sebagai berikut:

  • Nama Koneksi
  • ID Project
  • Set Data Pelaporan

Blok Looker Cortex Framework juga menggunakan konstanta untuk menentukan hal berikut:

  • Label tampilan
  • Label kolom
  • Format HTML
  • Link URL
  • Nama dasbor

Tinjau konstanta yang ditentukan untuk Blok Looker dan ubah salah satu nilai agar sesuai dengan kebutuhan Anda. Perubahan akan diterapkan di mana pun konstanta direferensikan.

Atribut Pengguna

Beberapa Blok Looker memerlukan atribut pengguna yang ditentukan di instance Looker oleh administrator. Atribut pengguna untuk bahasa atau mata uang default ini memungkinkan Anda menyesuaikan tampilan dasbor per pengguna atau grup. Lihat ringkasan untuk setiap blok guna mengetahui informasi selengkapnya tentang atribut pengguna yang diperlukan.

Tampilan

Tampilan yang ditemukan di folder Dasar adalah tampilan yang otomatis dibuat menggunakan Buat Tampilan dari Tabel. File ini telah diubah secara minimal:

  • Mengganti ID Project dan nama Set Data dengan konstanta.
  • Memindahkan tampilan berdasarkan Catatan Bertingkat ke file terpisah.
  • Menghapus definisi kolom detail yang tidak diperlukan.

Perubahan signifikan pada tampilan ini seperti label, dimensi, dan metrik baru telah dibuat di folder Inti menggunakan penyempurnaan, ekstensi atau tabel turunan.

Dalam folder inti, tampilan diberi nama dengan akhiran yang menunjukkan jenis tampilannya:

  • _rfn untuk penyempurnaan.
  • _ext untuk tampilan yang memerlukan ekstensi.
  • _sdt untuk tabel turunan berbasis SQL.
  • _ndt untuk tabel turunan Native.
  • _pdt untuk tabel turunan Persisten.
  • _xvw untuk tampilan yang mereferensikan kolom dari beberapa tampilan.

Contoh akhiran

Gambar 2. Contoh akhiran yang menunjukkan jenis tampilan.

Setiap definisi tampilan dimulai dengan anotasi yang memberikan informasi latar belakang, termasuk deskripsi, sumber, referensi, kolom yang diperluas, dan catatan relevan lainnya.

Anotasi

Gambar 3. Contoh anotasi dalam definisi tampilan.

Catatan berulang bertingkat

Untuk tabel pokok yang berisi catatan berulang bertingkat, Looker membuat tampilan terpisah untuk membatalkan catatan ini. Misalnya, di Blok Looker Oracle EBS, tabel sales_orders memiliki struct berulang bertingkat bernama lines. Looker memperlakukan hal ini sebagai dua tampilan yang berbeda: sales_orders dan sales_orders__lines.

Untuk menggabungkan catatan yang tidak bertingkat ini dalam Jelajah, Anda harus menentukan gabungan menggunakan properti sql bersama dengan perintah UNNEST.

Perintah UNNEST

Gambar 4. Contoh gabungan menggunakan properti 'sql' bersama dengan perintah UNNEST.

Untuk mengetahui informasi selengkapnya, lihat Cara Memodelkan Data BigQuery Bertingkat di Looker.

Blok Looker Cortex Framework berisi komentar yang luas dalam tampilan dan objek lainnya. Untuk meningkatkan navigasi dan pemahaman kode, sebaiknya gunakan opsi Lipat LookML yang tersedia di lingkungan pengembangan LookML.

Melipat LookML

Gambar 5. Mengklik Lipat LookML.

Membuka LookML

Gambar 6. Mengklik untuk membuka LookML.

Lipat lagi

Gambar 7. Mengklik untuk melipat LookML lagi.

Kolom

Istilah field mengacu pada objek seperti dimension, measure, filter, atau parameter. Dalam blok yang lebih baru ini, kami mengikuti prinsip berikut:

  1. Dimensi diberi nama menggunakan snake_case (huruf kecil dan garis bawah di antara kata). Contoh: customer_name.
  2. Nama kolom dari tabel pokok digunakan untuk memberi nama dimensi. Label dapat diterapkan ke dimensi untuk memberikan nama yang mudah dipahami bisnis. Misalnya, dimensi bernama division_hdr_spart dapat diberi label "ID Divisi".
  3. Untuk tabel dengan banyak kolom, kolom disembunyikan secara default. Dengan menggunakan penyempurnaan tampilan, tetapkan properti hidden ke "no" untuk subset kolom yang akan ditampilkan di Jelajah. Jika kolom tidak muncul seperti yang diharapkan, mengedit properti kolom ini dapat mengatasi masalah tersebut.
  4. Properti View_label dan group_label digunakan untuk mengatur kolom dalam Jelajah, jika berlaku.
  5. Untuk kolom yang digunakan di beberapa tampilan, properti seperti label ditetapkan dalam tampilan "umum", yang selanjutnya diperluas ke tampilan lain. Pendekatan ini memusatkan definisi properti, sehingga meningkatkan penggunaan kembali. Setiap modifikasi yang diperlukan dikelola dalam tampilan "umum", sehingga perubahan akan ditampilkan di semua tampilan tempat tampilan "umum" diperluas.
  6. Parameter yang digunakan di beberapa Jelajah atau kolom yang mereferensikan beberapa tampilan ditentukan dalam tampilan khusus kolom dengan akhiran _xvw. Untuk mengetahui informasi selengkapnya, lihat Menghindari Inkonsistensi di seluruh Jelajah.

Mengedit contoh

Bagian ini memberikan contoh penyesuaian umum.

Menampilkan kolom

Tampilan dasar mencakup semua dimensi dari tabel pokok. Jika sebagian besar dimensi tidak perlu terlihat, penyempurnaan digunakan untuk menyembunyikan semua kolom secara default. Hal ini dilakukan dengan menetapkan properti fields_hidden_by_default ke "yes". Subset kolom yang relevan untuk dasbor LookML yang disertakan telah ditampilkan. Contoh berikut mempertimbangkan tampilan dasar bernama sales_orders dengan dimensi bernama item_posnr.

view: sales_order {
  sql_table_name: reporting.sales_order ;;

  dimension: item_posnr {
    type: string
    sql: ${TABLE}.Item_POSNR
  }
}

Penyempurnaan tampilan ini ditentukan dalam file dengan akhiran _rfn. Penyempurnaan menetapkan properti tampilan fields_hidden_by_default ke "yes", yang berarti semua kolom awalnya disembunyikan. Untuk menampilkan kolom item_posnr dalam tampilan, tetapkan properti tersembunyi ke "no".

view: +sales_order {
   fields_hidden_by_default: yes

   dimension: item_posnr {
     hidden: no
   }
}

Mengubah label tampilan parameter

Beberapa Blok Looker menggunakan kumpulan parameter bersama yang ditentukan dalam file mandiri. Misalnya, Blok Oracle EBS menggunakan file otc_common_parameters_xvw. Tampilan ini menampilkan label "🔍 Filters", yang ditentukan sebagai konstanta dalam file Manifes.

Untuk mengubah label ini:

  1. Temukan konstanta label_view_for_filters di file Manifes.
  2. Edit nilai konstanta ke label yang Anda pilih.
  3. Simpan file Manifes. Perubahan akan otomatis ditampilkan di mana pun konstanta label_view_for_filters direferensikan.
Manifest

constant: label_view_for_filters {
  value: "My Filters"
}

Atau, buka tampilan otc_common_parameters_xvw dan edit properti "label" ke nilai yang dipilih.

view: otc_common_parameters_xvw {
  label: "My Filters"
}

Menambahkan metrik baru

Metrik baru dapat ditambahkan langsung ke penyempurnaan yang relevan. Contoh berikut menunjukkan metrik baru yang ditambahkan ke penyempurnaan pesanan penjualan:

view: +sales_orders {

  measure: customer_count {
    type: count_distinct
    sql: ${customer_id}
   }
}

Menambahkan lapisan penyempurnaan kedua

Penyempurnaan baru dapat dibuat berdasarkan penyempurnaan yang ada. Pertimbangkan penyempurnaan dari sales_orders dalam file sales_orders_rfn.view yang membuat metrik average_sales seperti contoh berikut:

include: "/views/base/sales_orders"
view: +sales_orders {
  measure: average_sales {
    type: average
    sql: ${order_value}
  }
}

Untuk membuat file penyempurnaan kedua:

  1. Buat file penyempurnaan baru: Beri nama sales_orders_rfn2.view.
  2. Sertakan file penyempurnaan pertama: Tindakan ini akan menggabungkan semua definisi dari sales_orders_rfn ke dalam sales_orders_rfn2.
  3. Edit properti label: Ubah properti label dari average_sales menjadi "average spend" atau label lain yang dipilih.
  4. Tambahkan dimensi baru: Sertakan kode untuk dimensi baru dalam file sales_orders_rfn2.view.

    include: "/views/core/sales_orders_rfn.view"
    view: +sales_orders {
    
      measure: average_sales {
        label: "Average Spend"
      }
    
      dimension: customer_name_with_id {
        type: string
        sql: CONCAT(${customer_id},' ',${customer_name})
      }
    }
    
  5. Sertakan file penyempurnaan kedua di Jelajah: Tindakan ini akan menggabungkan semua definisi dan peningkatan dari sales_orders_rfn2 di Jelajah.

    include: "/views/core/sales_orders_rfn2.view"
    explore: sales_orders {
    }
    

Membuat lapisan penyempurnaan baru

Penyempurnaan tampilan dasar apa pun yang ditentukan dalam Blok Looker Cortex Framework dapat diganti jika tidak memenuhi persyaratan spesifik Anda. File _rfn dapat langsung diedit untuk menghapus definisi kolom yang tidak diperlukan atau menambahkan yang baru.

Atau, buat file penyempurnaan baru:

  1. Buat file penyempurnaan baru: Beri nama sales_invoices_rfn dan simpan.
  2. Sertakan tampilan dasar: Tindakan ini akan menggabungkan semua definisi dari tampilan dasar sales_invoices ke dalam sales_invoices_rfn.
  3. Tambahkan penyesuaian yang dipilih: Pastikan untuk juga menentukan dimensi sebagai kunci utama.

    include: "/views/base/sales_invoices.view"
    
    view: +sales_invoices {
    
      fields_hidden_by_default: yes
    
      dimension: invoice_id {
        hidden: no
        primary_key: yes
        value_format_name: id
      }
    
      dimension: business_unit_name {
        hidden: no
        sql: CONCAT(${business_unit_id}, ":",${TABLE}.BUSINESS_UNIT_NAME) ;;
      }
    }
    
  4. Sertakan penyempurnaan baru di Jelajah: Gunakan file baru di properti include bukan penyempurnaan yang disediakan di Blok Looker Cortex Framework.

    include: "/views/my_customizations/sales_invoices_rfn.view"
    
    explore: sales_invoices {
    }
    

Mengedit filter dasbor LookML

Kumpulan filter dasbor umum yang digunakan di beberapa dasbor LookML ditentukan dalam dasbor yang diberi nama dengan akhiran _template dan diperluas ke setiap dasbor. Setelah diperluas, objek filter dapat diubah sesuai kebutuhan untuk dasbor tertentu.

Mengedit untuk semua dasbor

Untuk mengubah jenis filter untuk semua dasbor, temukan file template yang menentukan filter. Edit jenis ui_config dan properti tampilan ke setelan yang dipilih. Perubahan ini akan berlaku untuk semua dasbor yang memperluas template. Berikut adalah contoh otc_template.dashboard:

- dashboard: otc_template
  extension: required

  filters:
  - name: customer_country
    title: "Sold to Customer: Country"
    type: field_filter
    default_value: ''
    allow_multiple_values: true
    required: false
    ui_config:
      type: dropdown_menu
      display: popover
    explore: countries_md
    field: countries_md.country_name_landx

Mengedit untuk dasbor tertentu

Untuk mengubah filter di dasbor tertentu, temukan file dasbor dan sertakan nama filter beserta properti pilihan yang memerlukan modifikasi. Perubahan ini akan terbatas pada satu dasbor. Misalnya, untuk mengubah judul, jenis UI, dan tampilan filter customer_country untuk otc_order_status.dashboard, hanya properti ini yang akan disertakan dalam file dasbor. Properti yang tersisa akan diwarisi dari template yang diperluas.

- dashboard: otc_order_status
  title: Order Status
  extends: otc_template

  filters:
  - name: customer_country
    title: "Customer Country"
    ui_config:
      type: dropdown_menu
      display: inline

Untuk mengetahui informasi selengkapnya tentang cara membuat dan mengubah dasbor LookML, lihat Membangun Dasbor LookML.