Definisi kolom LookML dapat berubah dari waktu ke waktu. Misalnya, nama kolom database dapat berubah, atau Anda mungkin perlu mengubah definisi kolom LookML karena alasan lain.
Jika menggunakan sintaksis {TABLE}.field_name
untuk mereferensikan kolom database secara langsung di beberapa tempat, Anda harus memperbarui setiap referensi secara manual. Setiap kolom yang mereferensikan dimensi tersebut dapat rusak jika Anda lupa mengupdatenya, dan Looker akan menampilkan error:
Agar project LookML lebih efisien dan mudah dikelola, Anda dapat menentukan kolom di satu tempat dan menggunakan operator penggantian ($
) untuk mereferensikan kolom tersebut di tempat lain.
Halaman ini memberikan contoh penggunaan operator penggantian (dengan sintaksis ${field_name}
) untuk mereferensikan satu dimensi dalam definisi beberapa kolom LookML.
Produk
- Operator penggantian
- Parameter
dimension
LookML - Parameter
sql
LookML - Parameter
sql_table_name
LookML
Prasyarat
Contoh: Mereferensikan kolom database yang mendasari hanya sekali untuk dimensi
Tentukan kolom tabel database dalam project LookML satu kali menggunakan sintaksis ${TABLE}.field_name
dalam parameter sql
dimensi. Kemudian, referensikan dimensi menggunakan sintaksis ${field_name}
atau ${view_name.field_name}
di tempat lain dalam project Anda. Hal ini memungkinkan Anda mempertahankan definisi LookML kolom database di satu tempat (dimensi ${TABLE}.field_name
asli), yang berguna jika Anda perlu mereferensikannya di beberapa tempat dalam project.
Sebagai contoh, Anda dapat menggunakan sintaksis ${TABLE}.sale_price
untuk menentukan dimensi dasar yang disebut sale_price
dalam tampilan yang disebut order_items
:
dimension: sale_price {
type: number
value_format_name: usd
sql: ${TABLE}.sale_price ;;
description: "The price at which an item is set to sell."
}
Saat menentukan kolom lain yang mereferensikan dimensi sale_price
, Anda dapat menggunakan sintaksis ${sale_price}
dalam tampilan order_items
(atau menggunakan sintaksis ${order_items.sale_price}
untuk mereferensikan dimensi sale_price
di tampilan lain).
dimension: profit {
type: number
value_format_name: usd
sql: ${sale_price} - ${inventory_items.cost} ;;
description: "The difference between an item's sale price and an item's cost."
}
dimension: item_gross_margin {
type: number
value_format_name: percent_2
sql: 1.0 * ${profit}/NULLIF(${sale_price},0) ;;
}
measure: total_sale_price {
type: sum
value_format_name: usd
sql: ${sale_price} ;;
}
Dalam contoh ini, jika nama kolom untuk dimensi sale_price
berubah, Anda hanya perlu memperbarui referensi ${TABLE}.sale_price
satu kali, dalam definisi dimensi sale_price
dasar. Perubahan ini kemudian akan otomatis diterapkan ke kolom profit
, item_gross_margin
, dan total_sale_price
, serta semua kolom lain yang mereferensikan dimensi sale_price
.