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.