Praktik terbaik: Menulis LookML yang berkelanjutan dan mudah dikelola

Praktik terbaik ini mencerminkan rekomendasi yang disampaikan oleh tim lintas fungsi Looker yang berpengalaman. Insight ini berasal dari pengalaman bertahun-tahun dalam bekerja dengan pelanggan Looker, mulai dari penerapan hingga kesuksesan jangka panjang. Praktik ini ditulis agar sesuai untuk sebagian besar pengguna dan situasi; namun, seperti biasa, harap gunakan penilaian terbaik Anda saat menerapkan saran apa pun di halaman ini.

Halaman ini memberikan rekomendasi untuk menulis LookML yang berkelanjutan dan mudah dikelola. Rekomendasi ini dijelaskan lebih lanjut di bagian berikut:

Menggunakan operator substitusi

Operator substitusi harus digunakan di seluruh file LookML. Model LookML hanya boleh memiliki satu titik referensi ke objek apa pun dalam model data fisik. Setiap definisi selanjutnya yang perlu mereferensikan objek tersebut harus melakukannya dengan menunjuk ke objek LookML yang sudah ditentukan.

Gunakan sintaksis ${TABLE}.field_name saat mereferensikan tabel database pokok, untuk semua dimensi dasar yang menarik data langsung dari kolom database pokok. Jika skema atau nama tabel berubah, developer dapat memperbarui skema atau nama tabel di satu tempat (dalam parameter sql_table_name) dan menyebarkannya ke seluruh kode.

Gunakan sintaksis ${field_name} saat mereferensikan dimensi atau ukuran yang telah ditentukan dalam LookML. Jika nama kolom berubah, perubahan tersebut hanya perlu diperbarui di parameter sql dimensi atau ukuran dasar. Perubahan tersebut kemudian akan otomatis diterapkan ke semua kolom lain yang merujuk kolom tersebut. Misalnya, jika nama kolom dalam database Anda berubah dari usersid menjadi users_id, Anda perlu mengubah referensi di Looker. Menggunakan ${field_name} berarti Anda hanya perlu memperbarui satu baris.

Jika beberapa dimensi dan ukuran mereferensikan kolom LookML yang ada dengan ${TABLE}.field_name, banyak perubahan yang diperlukan. Misalnya, pertimbangkan ukuran this_week_count dan this_month_count dalam contoh kode LookML berikut:

dimension: usersid {
  type: number
  sql: ${TABLE}.usersid ;; # Change here
}

measure: this_week_count {
  type: count_distinct
  sql: ${TABLE}.usersid ;; # Change here
  filters: [created_date: "7 days"]
}

measure: this_month_count {
  type: count_distinct
  sql: ${TABLE}.usersid ;; # Change here
  filters: [created_date: "1 month"]
}

Karena this_week_count dan this_month_count menggunakan sintaksis ${TABLE}.usersid dalam parameter sql, parameter sql harus diperbarui untuk ketiga kolom tersebut.

Dengan referensi ${field_name}, hanya satu perubahan yang diperlukan:

dimension: usersid {
  type: number
  sql: ${TABLE}.usersid ;; # Change here
}

measure: this_week_count {
  type: count_distinct
  sql: ${usersid} ;;       #Using ${field_name} to reference the LookML field `usersid`
  filters: [created_date: "7 days"]
}

measure: this_month_count {
  type: count_distinct
  sql: ${usersid} ;;       #Using ${field_name} to reference the LookML field `usersid`
  filters: [created_date: "1 month"]
}

Untuk penggunaan operator substitusi lainnya, lihat halaman dokumentasi Menyertakan SQL dan merujuk ke objek LookML.

Menentukan kumpulan kolom

Gunakan set untuk mengelola daftar kolom yang dapat digunakan kembali dalam model. Setiap daftar kolom yang berulang, baik dengan parameter fields atau di dalam kolom penelusuran, harus digabungkan ke dalam set untuk membuat satu tempat dalam model tempat daftar kolom tersebut dapat diperbarui atau referensi kolom diubah. Anda dapat menemukan kumpulan lebih lanjut di halaman dokumentasi untuk parameter set.

Hindari pengulangan kode

Anggap objek LookML sebagai elemen penyusun, dan gunakan parameter extends untuk menggabungkan objek dengan berbagai cara tanpa mengulangi kode. Anda dapat menemukan informasi mendetail dan contoh penggunaan kembali kode di halaman dokumentasi Menggunakan kembali kode dengan diperluas. Anda dapat melihat contoh tambahan di halaman dokumentasi parameter extends (untuk tampilan) dan extends (untuk Jelajah) serta di Postingan komunitas Menggunakan ekstensi untuk menentukan penggabungan.

Pertahankan konsistensi di seluruh Jelajah dengan tidak mengulangi kode di beberapa tempat. Untuk mengetahui ide tambahan tentang cara melakukannya, lihat Postingan komunitas Looker tentang menghindari inkonsistensi di seluruh Jelajah.

Menggabungkan item seperti lapisan peta dan format nilai

Tentukan lapisan peta kustom secara terpusat dalam file LookML bernama map_layers.lkml, yang dapat Anda buat dengan mengikuti dokumentasi tentang file project Looker. File ini kemudian dapat disertakan sesuai kebutuhan di seluruh model. Atau, tambahkan file JSON langsung ke repositori dengan menarik lalu melepas file data ke project LookML Anda, dan mereferensikannya dalam model.

Misalnya, Anda memiliki file lapisan peta, map_layers.base.lkml, yang berisi kode LookML berikut:

map_layer: example_africa {
  file: "africa_file_name.json"
  property_key: "geounit"
}

map_layer: example_asia {
  file: "asia_file_name.json"
  property_key: "geounit"
}

map_layer: example_europe {
  file: "europe_file_name.json"
  property_key: "geounit"
}

Anda dapat menyertakan file lapisan peta map_layers.base.lkml dalam model apa pun dalam project dengan menambahkan kode LookML include: "map_layers.base.lkml" ke file model yang diinginkan.

Setel format nilai kustom secara terpusat dalam model. Gunakan parameter named_value_format untuk menetapkan format kustom apa pun dalam model, lalu referensikan format tersebut menggunakan parameter value_format_name dalam dimensi dan ukuran.

Membuat panduan pengembangan

Menentukan pedoman pengembangan untuk mempermudah pengembangan dan penskalaan model LookML. Lihat Postingan komunitas Looker tentang contoh pedoman pengembangan LookML untuk mengetahui panduan tentang contoh daftar panduan pengembangan. Pedoman umum mencakup persyaratan untuk:

  • Mengatur file LookML dengan jelas sehingga konsisten dan mudah dinavigasi
  • Menggunakan komentar di seluruh tampilan dan model untuk menambahkan konteks ke LookML yang ditulis
  • Membuat dokumentasi dalam Looker menggunakan file Markdown