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. Kolom apa pun yang merujuk dimensi tersebut dapat rusak jika Anda lupa memperbaruinya, dan Looker akan menampilkan error:
Untuk membuat project LookML Anda lebih efisien dan lebih mudah dikelola, Anda dapat menentukan kolom di satu tempat dan menggunakan operator substitusi ($
) untuk mereferensikan kolom tersebut di tempat lain.
Halaman ini memberikan contoh penggunaan operator substitusi (dengan sintaksis ${field_name}
) untuk mereferensikan satu dimensi dalam definisi beberapa kolom LookML.
Produk
- Operator substitusi
- Parameter
dimension
LookML - Parameter
sql
LookML - Parameter
sql_table_name
LookML
Prasyarat
Contoh: Mereferensikan kolom database pokok hanya sekali untuk sebuah dimensi
Tentukan kolom tabel database di project LookML sekali menggunakan sintaksis ${TABLE}.field_name
di 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 Anda.
Sebagai contoh, Anda dapat menggunakan sintaksis ${TABLE}.sale_price
untuk menentukan dimensi dasar yang disebut sale_price
di 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 Anda 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 merujuk dimensi sale_price
.