Pemecahan masalah contoh kasus penggunaan lanjutan lanjutan

Halaman ini membahas topik lanjutan dan mengasumsikan bahwa pembaca telah memiliki pengetahuan yang kuat tentang LookML.

Extends adalah fitur LookML yang bermanfaat yang memungkinkan Anda mempertahankan kode LookML yang DRY (jangan diulangi sendiri). Di Looker, dasbor Jelajah, tampilan, dan dasbor LookML semuanya dapat diperluas dengan parameter extends dalam file model, seperti dalam contoh berikut:

explore: orders {
  view_name: orders
  join: users {
    type: left_outer
    sql_on: %{orders.user_id} = ${users.id} ;;
    relationship: many_to_one
  }
}

explore: transactions {
  extends: [orders]
}

Dalam contoh ini, parameter extends digunakan dalam definisi Jelajah transactions untuk memperluas Eksplorasi orders.

Halaman ini merujuk ke objek yang diperluas sebagai objek base, dan objek yang melakukan perluasan disebut sebagai objek extending.

Memperluas objek LookML adalah proses yang cukup mudah, seperti dijelaskan di halaman dokumentasi Menggunakan kembali kode dengan meluas. Namun, ada beberapa kasus penggunaan lanjutan yang dapat menyebabkan error referensi LookML dan duplikasi objek yang tidak diinginkan. Halaman ini memberikan contoh bagaimana meluaskan Explore berdasarkan tampilan yang memperluas tampilan lain dapat mengakibatkan error referensi LookML, serta tips yang dapat membantu mengeliminasi masalah tersebut.

Kasus penggunaan: Memperluas Jelajah berdasarkan tampilan yang diperluas

Misalnya Anda ingin memperluas Jelajah events, dan Anda menginginkan tampilan yang menjadi dasar Jelajah yang diperluas, untuk menggunakan kolom dari tampilan yang memperluas tampilan events dasar. Dalam contoh ini, Jelajah events_extended memperluas Jelajah extends, seperti ditunjukkan dalam contoh LookML berikut:

explore: events {
  view_name: events
  join: users {
    type: left_outer
    sql_on: ${events.user_id} = ${users.id} ;;
    relationship: many_to_one
  }
}

explore: events_extended {
  extends: [events]
  join: orders {
    sql_on: ${events_extended.test_id} = ${orders.id} ;;
    relationship: many_to_one
  }

Dalam contoh ini, tampilan users digabungkan dengan Jelajah events dasar, sedangkan tampilan orders digabungkan dengan Jelajah yang diperluas, events_extended. Namun, join yang ditentukan dalam referensi Jelajah events dasar, events.user_id, yang merupakan kolom dari tampilan events dasar. Sementara itu, join yang ditentukan dalam Explore events_extended yang diperluas mereferensikan kolom events_extended.test_id, dengan events_extended adalah nama tampilan yang diperluas berdasarkan tampilan events. Kolom test_id yang direferensikan dalam gabungan dalam definisi Jelajah events_extended ditentukan dalam tampilan events_extended yang diperluas sebagai berikut:

include: "events.view.lkml"
view: events_extended {
  extends: [events]

  dimension: test_id {}

Karena gabungan yang ditentukan dalam Jelajah events_extended merujuk ke nama tampilan yang diperluas, events_extended, Validator LookML menampilkan error inaccessible view.

Untuk mengatasinya, Anda dapat menambahkan parameter from ke LookML untuk Jelajah yang diperluas dan menetapkan nilainya ke nama tampilan yang diperluas, events_extended. Parameter from membuat alias nama tabel asli dalam SQL yang dihasilkan, sebagai FROM schema.name AS alias.

Ini adalah satu-satunya kasus penggunaan yang direkomendasikan untuk menerapkan parameter from di tingkat Explore.

Untuk mengambil dari tampilan yang diperluas (events_extended) tanpa memutus referensi join dari Explore dasar (events), Anda dapat menambahkan parameter from yang memetakan ke tampilan yang diperluas:

explore: events_extended {
  extends: [events]
  from: events_extended
  join: orders {
    relationship: many_to_one
    sql_on: ${events.test_id} = ${orders.id} ;;
  }
}

Dalam contoh ini, menerapkan from: events_extended LookML ke LookML untuk Explore yang diperluas memungkinkan Anda terus mereferensikan tampilan dasar (events) di Explore yang diperluas, sambil mengalihkan referensi tersebut untuk diambil dari versi yang diperluas dari tampilan tersebut (events_extended).

Dengan penggunaan parameter from, Anda dapat terus mereferensikan nama tampilan dasar events dalam awalan join, tetapi referensi ini akan mengambil dari tampilan yang diperluas events_extended, yang berisi semua kolom di events, ditambah kolom test_id baru.