constant

Penggunaan

constant: constant_name {
  value: "string"
  export: none | override_required | override_optional
}
Hierarki
constant
Nilai default
Tidak ada

Menerima
  • Subparameter value, yang menerima string yang menentukan nilai konstanta
  • Subparameter export, yang menentukan apakah konstanta harus diganti saat digunakan dalam mengimpor project

Definisi

Parameter constant menentukan konstanta LookML, sehingga Anda dapat menentukan nilai yang dapat digunakan kembali di seluruh project. Konstanta dapat dirujuk di mana saja dalam model yang menerima string dan dengan parameter model dan explore dari elemen dasbor LookML, sehingga membantu mengurangi pengulangan dalam kode LookML Anda.

Konstanta harus ditentukan dalam file manifes project. Konstanta kemudian dapat digunakan di seluruh project menggunakan sintaksis @{constant_name}.

Anda dapat menggunakan subparameter export dari constant untuk menentukan apakah developer harus mengganti nilai konstanta saat file yang mereferensikannya diimpor ke project lain.

export

Anda dapat menggunakan subparameter export dari constant untuk menentukan cara penggunaan konstanta saat file yang mereferensikan konstanta tersebut diimpor ke project lain.

Secara default, file yang diimpor yang mereferensikan konstanta menggunakan nilai yang ditentukan dalam file manifes project yang diimpor di project yang mengimpor. Parameter export menentukan apakah developer harus mengganti nilai konstanta dengan memberikan nilai baru untuk konstanta tersebut yang akan digunakan dalam mengimpor project. Parameter export memiliki kemungkinan nilai berikut:

  • none: Nilai default untuk export. Nilai konstanta tidak dapat diganti dalam project yang mengimpor. Project yang mengimpor menggunakan nilai konstanta yang ditentukan dalam file manifes project yang diimpor.
  • override_optional: Nilai konstanta dapat diganti secara opsional dalam project impor Anda. Jika nilai tidak diberikan dalam file manifes project yang diimpor, nilai asli dari project yang diimpor akan digunakan.
  • override_required: Project yang mengimpor harus mengganti nilai konstanta yang awalnya ditentukan dalam file manifes project yang diimpor. Jika nilai konstanta baru tidak diberikan dalam project yang diimpor, Looker akan menampilkan error.

Konstanta hanya tersedia untuk file dari project tempat konstanta tersebut awalnya ditentukan. Oleh karena itu, konstanta yang ditentukan dalam project yang file-nya telah Anda impor hanya dapat digunakan oleh file yang diimpor, dan bukan oleh file yang ditentukan dalam project pengimpor.

Jika Anda ingin menggunakan konstanta dalam file project yang diimpor, Anda harus menentukan konstanta baru dalam file manifes project yang diimpor. Konstanta yang ditentukan dengan cara ini hanya akan tersedia untuk file yang ditentukan dalam project yang mengimpor.

Saat mengimpor file yang mereferensikan konstanta ke project lain, Anda dapat menggunakan subparameter override_constant dari local_dependency atau remote_dependency dalam file manifes project yang mengimpor untuk memberikan nilai baru bagi konstanta yang memiliki export yang ditetapkan ke override_optional atau override_required.

Lihat halaman dokumentasi Mengimpor file dari project lain untuk mengetahui informasi selengkapnya dan contoh mengganti konstanta dalam mengimpor project.

Contoh

Berikut beberapa contoh cara menggunakan parameter constant untuk menentukan nilai yang dapat digunakan di seluruh project.

Memberi label pada Jelajah dengan parameter constant

Misalkan Anda ingin membuat dua Eksplorasi, yang diberi label Pengguna San Francisco dan Pesanan San Francisco di UI. Untuk melakukannya, Anda dapat menentukan konstanta city dengan nilai "San Francisco" dalam file manifest.lkml untuk project Anda:

constant: city {
  value: "San Francisco"
}

Konstanta ini kemudian dapat dirujuk di bagian mana pun dalam project Anda yang menerima string, menggunakan sintaksis @{city}. Dalam contoh ini, Anda dapat menentukan Eksplorasi users dan orders, dengan menentukan "@{city} Users" dan "@{city} Orders" sebagai nilai untuk parameter label, seperti dalam contoh berikut:


explore: users {
  label: "@{city} Users"
}

explore: orders {
  label: "@{city} Orders"
}

Dalam contoh ini, Looker menampilkan Pengguna San Francisco dan Pesanan San Francisco di menu Jelajahi dan di judul Eksplorasi, bukan label Pengguna dan Pesanan default.

Menggunakan parameter sql_table_name dengan konstanta

Misalkan Anda ingin membuat beberapa tampilan berdasarkan tabel dalam skema 02349_sfo. Agar tidak perlu menentukan nilai 02349_sfo beberapa kali, Anda membuat konstanta bernama schema dalam file manifest.lkml untuk project Anda, sebagai berikut:


constant: schema {
  value: "02349_sfo"
}

Kemudian, Anda dapat membuat tampilan berdasarkan skema 02349_sfo dengan menentukan @{schema}.view_name sebagai nilai untuk parameter sql_table_name:


view: users {
  sql_table_name: @{schema}.users ;;
}

Tindakan ini akan membuat tampilan bernama Users yang didasarkan pada tabel users dari skema 02349_sfo.

Menggunakan variabel Liquid dan HTML dengan konstanta

Bayangkan Anda ingin nilai data negatif ditampilkan dalam tanda kurung dan dengan font merah. Dengan menetapkan pemformatan ini sebagai nilai untuk konstanta LookML, Anda dapat menentukan pemformatan hanya sekali menggunakan variabel Liquid dan HTML. Kemudian, Anda dapat mereferensikan konstanta setiap kali Anda ingin menerapkan pemformatan tersebut ke kolom.

Misalnya, Anda dapat membuat konstanta negative_format untuk menerapkan format ini ke kolom:


constant: negative_format {
  value: "{% if value < 0 %}<p style='color:red;'>({{rendered_value}})</p>{% else %} {{rendered_value}} {% endif %}"
}

Hal ini akan membuat negative_format konstan yang menentukan bahwa nilai data negatif harus memiliki font merah dan diapit tanda kurung. Kemudian, Anda dapat menerapkan pemformatan ini ke dimensi dan ukuran dalam set data menggunakan parameter html.

Misalnya, Anda dapat membuat ukuran Total Jumlah dari type: sum dan menentukan @{negative_format} sebagai nilai untuk parameter html:


measure: total_amount {
  type: sum
  value_format_name: usd
  sql: ${amount} ;;
  html: @{negative_format} ;;
}

Dalam tabel Anda, nilai negatif untuk ukuran Jumlah Total akan diformat seperti yang ditentukan dalam definisi konstanta negative_format, dengan font merah dan diapit tanda kurung.

Menggunakan konstanta di dasbor LookML

Saat menentukan elemen dasbor untuk dasbor LookML, Anda dapat menggunakan konstanta LookML untuk menentukan model dan Eksplorasi yang menjadi dasar elemen.

Sebagai contoh, misalkan Anda telah menentukan konstanta model_name dan explore_name dalam file manifest.lkml untuk project Anda:


constant: model_name {
  value: "thelook"
}

constant: explore_name {
  value: "orders"
}

Dalam file dasbor, Anda dapat menetapkan nilai model ke "@{model_name}" dan menetapkan nilai explore ke "@{explore_name}" untuk elemen dasbor yang ingin didasarkan pada model thelook dan Eksplorasi orders.

Misalnya, Anda sedang mengedit LookML untuk elemen diagram kolom. Dalam file dasbor, Anda dapat menentukan nilai untuk parameter model dan explore sebagai berikut:


- dashboard: dashboard_name
  title: "dashboard title"
  layout: newspaper
  elements:
  - title: Element Title
    name: element_name
    model: "@{model_name}"
    explore: "@{explore_name}"
    type: looker_column

Yang perlu diketahui

Merujuk ke konstanta dalam definisi konstanta

Saat menentukan konstanta, Anda dapat mereferensikan konstanta lain yang ditentukan dalam file manifes untuk project Anda. Misalnya, Anda telah mendeklarasikan konstanta city:


constant: city {
  value: "San Francisco"
}

Kemudian, Anda dapat mendeklarasikan konstanta state yang mereferensikan konstanta city:


constant: city_state {
  value: "@{city}, California"
}

Konstanta state akan di-resolve ke string "San Francisco, California".

Sintaksis konstanta escaping

Jika ingin menulis string yang menyerupai sintaksis konstanta, tetapi Anda tidak ingin string tersebut dievaluasi sebagai konstanta, Anda dapat meng-escape sintaksis konstanta menggunakan karakter escape garis miring terbalik \ setelah karakter @. Contoh:


dimension: id {
  type: string
  label: "@\{id}"
  sql: ${TABLE}.id
}

Dalam contoh ini, parameter label menampilkan string @{id} sebagai label untuk dimensi id, bukan mengevaluasi konstanta id dan menampilkan nilainya.

Referensi konstanta tidak akan dievaluasi jika tanda kurung tidak ditutup, yang dalam hal ini sintaksis konstanta tidak perlu di-escape. Oleh karena itu, @{id dalam contoh berikut tidak akan dievaluasi sebagai konstanta.


dimension: id {
  type: string
  label: "@{id"
  sql: ${TABLE}.id
}