Menyesuaikan Looker Block

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

Penginstalan

Anda dapat menginstal Blok Looker Framework Cortex 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 Framework Cortex telah dibuat dalam pendekatan berlapis, dengan setiap lapisan menambahkan bagian logika inkremental ke lapisan sebelumnya:

  • Lapisan Dasar: Tampilan LookML buatan mesin yang mereferensikan tabel sumber.
  • Lapisan Inti: Perubahan tulisan tangan yang menambahkan kolom baru atau mengubah kolom lapisan dasar.
  • Lapisan Logis: Jelajahi definisi dan join di berbagai tampilan.

Penggunaan peningkatan adalah kunci untuk pendekatan berlapis ini dan untuk penyesuaian. Selain itu, untuk mengikuti prinsip DRY (Do Not Repeat Yourself), ekstensi dan konstanta dioptimalkan. Konten dinamis untuk label, pernyataan SQL, html, dan properti link dibuat menggunakan bahasa template Liquid.

Praktik Terbaik Google Umum:

Pengaturan file dan folder

Dalam Blok Looker, setiap folder mewakili kumpulan jenis objek (seperti tampilan, Jelajah, dasbor, dan lainnya). Dan 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 marketplace Looker)

File browser

Gambar 1. Contoh pengaturan 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:

    • Komponen (grup data, named_value_formats jika relevan)
    • Jelajahi (eksplorasi tidak ditentukan dalam file model)
    • Dasbor

Pernyataan include untuk tampilan yang digunakan di Blok ditentukan dalam setiap file Jelajahi, 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 Framework Cortex juga menggunakan konstanta untuk menentukan hal berikut:

  • Melihat label
  • Label kolom
  • Format HTML
  • Link URL
  • Nama dasbor

Tinjau konstanta yang ditentukan untuk Blok Looker dan ubah nilai apa pun agar sesuai dengan kebutuhan Anda. Perubahan berlaku di mana pun konstanta direferensikan.

Atribut Pengguna

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

Dilihat

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

  • Mengganti Project ID dan nama Set data dengan konstanta.
  • Memindahkan tampilan berdasarkan Data Bertingkat ke dalam file terpisah.
  • Menghapus definisi kolom pengeboran yang tidak perlu.

Modifikasi signifikan pada tampilan ini seperti label, dimensi, dan ukuran baru telah dibuat di folder Core menggunakan peningkatan, ekstensi, atau tabel turunan.

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

  • _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 kolom referensi tampilan 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.

Kumpulan data berulang bertingkat

Untuk tabel pokok yang berisi kumpulan data berulang bertingkat, Looker akan membuat tampilan terpisah untuk membatalkan bertingkat kumpulan data ini. Misalnya, di Oracle EBS Looker Block, tabel sales_orders memiliki struct berulang bertingkat bernama lines. Looker memperlakukannya sebagai dua tampilan yang berbeda: sales_orders dan sales_orders__lines.

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

Perintah UNNEST

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

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

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

Melipat LookML

Gambar 5. Mengklik Lipat LookML.

Membentangkan LookML

Gambar 6. Mengklik untuk membentangkan LookML.

Lipat lagi

Gambar 7. Mengklik untuk melipat kembali LookML.

Kolom

Istilah field mengacu pada objek seperti dimension, measure, filter, atau parameter. Dalam blok yang lebih baru ini, kami mengikuti prinsip-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 memberinya nama yang mudah dipahami bisnis. Misalnya, dimensi bernama division_hdr_spart dapat diberi label sebagai "ID Divisi".
  3. Untuk tabel dengan banyak kolom, kolom disembunyikan secara default. Dengan menggunakan peningkatan tampilan, tetapkan properti hidden ke "tidak" untuk subset kolom yang akan ditampilkan di Jelajahi. Jika kolom tidak muncul seperti yang diharapkan, mengedit properti kolom ini dapat menyelesaikan masalah.
  4. Properti View_label dan group_label digunakan untuk mengatur kolom dalam Jelajahi, jika berlaku.
  5. Untuk kolom yang digunakan di beberapa tampilan, properti seperti label dibuat dalam tampilan "umum", yang kemudian diperluas ke tampilan lain. Pendekatan ini memusatkan definisi properti, sehingga mempromosikan penggunaan kembali. Setiap modifikasi yang diperlukan dikelola dalam tampilan "umum", yang memastikan bahwa perubahan tercermin 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, penajaman digunakan untuk menyembunyikan semua kolom secara default. Hal ini dilakukan dengan menetapkan properti fields_hidden_by_default ke "yes". Subkumpulan kolom yang relevan untuk dasbor LookML yang disertakan telah ditampilkan. Contoh berikut, mempertimbangkan tampilan dasar bernama sales_orders dengan dimensi yang disebut 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 hidden 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 EBS Oracle menggunakan file otc_common_parameters_xvw. Tampilan ini menampilkan label "🔍 Filter", yang ditentukan sebagai konstanta dalam file Manifes.

Untuk mengubah label ini:

  1. Temukan konstanta label_view_for_filters dalam file Manifes.
  2. Edit nilai konstanta ke label yang Anda pilih.
  3. Simpan file Manifes. Perubahan akan otomatis diterapkan 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 ukuran baru

Pengukuran baru dapat ditambahkan langsung ke perincian yang relevan. Contoh berikut menunjukkan ukuran baru yang ditambahkan ke perincian pesanan penjualan:

view: +sales_orders {

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

Menambahkan lapisan penajaman kedua

Penyempurnaan baru dapat dibuat berdasarkan penyempurnaan yang ada. Pertimbangkan peningkatan sales_orders dalam file sales_orders_rfn.view yang membuat pengukuran average_sales sebagai contoh berikut:

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

Untuk membuat file perincian kedua:

  1. Buat file perincian baru: Beri nama sales_orders_rfn2.view.
  2. Sertakan file perbaikan 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 "belanja rata-rata" 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 perincian kedua di Jelajahi: Tindakan ini akan menggabungkan semua definisi dan peningkatan dari sales_orders_rfn2 di Jelajahi.

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

Membuat lapisan penyempurnaan baru

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

Atau, buat file perincian baru:

  1. Buat file perincian 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 Jelajahi: Gunakan file baru di properti include, bukan penyempurnaan yang disediakan di Blok Looker Framework Cortex.

    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 di dasbor yang diberi 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 tampilkan properti 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 perubahan. Perubahan ini akan dibatasi untuk satu dasbor. Misalnya, untuk mengubah judul dan jenis UI serta 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 informasi selengkapnya tentang cara membuat dan mengubah dasbor LookML, lihat Membuat Dasbor LookML.