Membuat ekspresi Looker

Ekspresi Looker

Ekspresi Looker (terkadang disebut Lexp) digunakan untuk menjalankan kalkulasi untuk:

Ekspresi Looker dibuat dari kombinasi elemen berikut:

  • NULL: Nilai NULL menunjukkan bahwa tidak ada data, dan dapat berguna saat Anda ingin memeriksa apakah sesuatu kosong atau tidak ada.

  • Konstanta: Konstanta adalah nilai tetap yang Anda berikan. Angka seperti 7 atau string seperti Completed adalah konstanta.

  • Kolom Looker: Referensi ke kolom Looker, yang mencakup dimensi, ukuran, dan kalkulasi tabel.

  • Operator Looker: Ada beberapa jenis operator (yang tercantum di halaman dokumentasi Fungsi dan operator Looker):

    • Operator matematika (seperti +, -, *, dan /)
    • Operator perbandingan (seperti =, >, dan <=)
    • Operator logika (seperti AND, OR, dan NOT)
  • Fungsi Looker: Fungsi ini serupa dengan fungsi Excel. Fungsi memungkinkan Anda mentransformasi data atau merujuk data dengan cara yang kompleks. Semua fungsi yang tersedia tercantum di halaman dokumentasi Fungsi dan operator Looker.

Membuat ekspresi Looker

Kalkulasi tabel, kolom kustom, dan filter kustom menggunakan editor ekspresi Looker. Saat Anda mengetik ekspresi, Looker akan menampilkan fungsi, operator, dan nama kolom yang mungkin ingin Anda gunakan.

Melihat semua saran

Akses editor ekspresi Looker di Eksplorasi dengan membuat kalkulasi tabel, kolom kustom, atau filter kustom.

Ketik spasi untuk melihat daftar semua kolom, fungsi, dan operator yang dapat Anda pilih. Jika kolom saat ini dipilih di Jelajahi, Looker akan menampilkan titik hitam di sebelah kiri kolom dan menampilkan kolom di bagian atas daftar.

Mulai ketik di editor ekspresi Looker untuk memperpendek daftar ke item yang Anda minati.

Editor untuk kolom kustom menampilkan kolom Jelajah yang saat ini digunakan, jika kompatibel dengan fungsi kolom kustom.

Menambahkan kolom

Untuk menyertakan kolom Looker dalam ekspresi, mulai ketik nama kolom. Saat Anda mengetik, editor akan mempersempit penelusuran Anda ke daftar kolom dan fungsi yang berisi apa yang telah Anda ketik. Anda dapat mengetik nama kolom seperti yang muncul di halaman Jelajahi, atau Anda dapat menggunakan nama LookML-nya jika Anda mengetahuinya.

Saat Anda memilih kolom dari daftar, Looker akan menambahkannya ke ekspresi menggunakan nama LookML dalam bentuk ${view_name.field_name}. Hal ini memastikan bahwa semua kolom Anda memiliki nama unik dalam ekspresi Anda.

Menambahkan total

Jika Anda membuat ekspresi yang didasarkan pada Eksplorasi tempat Anda menampilkan total, Anda juga dapat menyertakan total kolom dan baris dalam ekspresi. Total kolom muncul di editor dengan kata Total di depan iterasi LookML dari nama kolom. Misalnya, untuk kolom bernama Count, Looker akan memberi total kolom untuk kolom tersebut nama Count - Total.

Nama LookML untuk total dalam bentuk ${view_name.field_name:total}, dengan :total ditambahkan di akhir nama kolom.

Untuk total baris, kata Total Baris muncul di depan nama kolom di editor; dan, di nama LookML kolom, :row_total ditambahkan di akhir nama kolom, seperti ${view_name.field_name:row_total}.

Menambahkan operator

Anda dapat menambahkan operator logika seperti AND, OR, dan NOT ke ekspresi Anda jika diperlukan. Biasanya, operator AND dievaluasi sebelum operator OR, tetapi Anda dapat mengganti perilaku ini dengan menggunakan tanda kurung. Anda juga dapat menggunakan operator perbandingan (seperti >, =, dan <=) dan operator matematika (seperti + dan *).

Saat Anda mengarahkan kursor ke operator, catatan untuk penggunaan yang tepat akan ditampilkan di panel informasi.

Menambahkan fungsi

Untuk menyertakan fungsi Looker dalam ekspresi, mulai ketik nama fungsi. Saat Anda mengetik, editor akan mempersempit penelusuran Anda ke daftar kolom dan fungsi yang berisi apa yang telah Anda ketik.

Fungsi dapat dibuat dari argumen (atau variabel) yang memerlukan jenis tertentu, seperti kolom, angka, atau ya/tidak. Saat mengarahkan kursor ke fungsi, Anda dapat memeriksa catatan yang ditampilkan di samping ekspresi di panel informasi untuk memahami argumen yang perlu Anda berikan, dan jenisnya.

Anda dapat melihat daftar lengkap fungsi yang ditawarkan Looker di halaman dokumentasi Fungsi dan operator Looker.

Menggunakan petunjuk error dan panel informasi

Looker menampilkan panel informasi di samping editor ekspresi Looker. Panel ini memberikan dokumentasi dan saran, terutama jika Anda mengalami error dalam ekspresi.

Panel informasi di samping editor ekspresi memberikan informasi berikut:

  • Penyorotan error: Looker menggarisbawahi dengan warna merah bagian ekspresi yang belum benar.

  • Saran dan Detail error: Looker memberikan saran tentang apa yang harus ditambahkan berikutnya dalam ekspresi Anda. Jika ada error, error tersebut akan menjelaskan penyebabnya. Jika ada beberapa error, error yang ditampilkan kepada Anda didasarkan pada lokasi kursor Anda.

  • Dokumentasi: Looker menampilkan dokumentasi tentang fungsi atau operator yang sedang Anda gunakan, berdasarkan posisi kursor Anda. Misalnya, saat Anda mengetik argumen pertama fungsi if(), Looker memberikan informasi bahwa argumen pertama harus dievaluasi sebagai benar atau salah. Anda dapat mengklik nama fungsi untuk membuka dokumentasi fungsi tersebut.

Termasuk komentar

Anda dapat menyertakan komentar dalam ekspresi Looker dengan memulai baris komentar dengan # di editor ekspresi.

Menggunakan kolom

Terkadang Anda ingin menggunakan nilai kolom (dimensi, ukuran, atau penghitungan tabel) dalam ekspresi. Anda mungkin ingin menambahkan nilai kolom ke sesuatu yang lain, memeriksa apakah kolom memiliki nilai tertentu, menyertakannya dalam fungsi, atau banyak kemungkinan lainnya.

Seperti yang dijelaskan sebelumnya di halaman ini, Anda dapat mengetik nama kolom ke dalam editor ekspresi, dan Looker akan membantu Anda menemukan cara yang benar untuk mereferensikan kolom. Saat Anda menambahkan kolom ke ekspresi, Looker menggunakan ID LookML kolom, yang terlihat seperti ${view_name.field_name}. Ketik nama kolom seperti yang muncul di pemilih kolom dan editor ekspresi akan menampilkan nama pemilih kolom dan ID LookML secara bersamaan.

Ada beberapa cara untuk mengambil nilai:

  • Mendapatkan nilai dari baris yang sama: Cara paling dasar untuk menggunakan kolom adalah dengan mereferensikannya secara langsung. Misalnya, ekspresi Anda dapat menggunakan ${product.category}. Saat Anda melakukannya, Anda mengatakan "untuk setiap baris tertentu, ambil Kategori Produk dari baris tersebut".

  • Mendapatkan nilai dari baris yang berbeda: Anda juga bisa mendapatkan nilai kolom dari baris yang berbeda. Misalnya, Anda mungkin menginginkan logika "untuk setiap baris tertentu, ambil Kategori Produk dari baris sebelumnya". Untuk melakukannya, Anda dapat menggunakan fungsi offset (lihat daftar fungsi posisi ini). Fungsi offset mungkin terlihat seperti ini: offset(${product.category}, -1).

  • Mendapatkan nilai dari kolom yang di-pivot: Anda juga bisa mendapatkan nilai dari kolom yang di-pivot. Misalnya, Anda mungkin menginginkan logika "untuk setiap baris tertentu, ambil Total Penjualan dari kolom yang diputar pertama". Untuk menggunakan kolom yang diputar, Anda harus menggunakan fungsi pivot (lihat daftar fungsi pivot ini). Fungsi pivot mungkin terlihat seperti ini: pivot_index(${order.total_sales}, 1).

  • Mendapatkan total dari baris atau kolom: Jika Anda menambahkan total ke Eksplorasi, Anda bisa mendapatkan nilai total dari kolom atau baris dengan menambahkan :total (untuk total kolom) atau :row_total (untuk total baris) ke nama kolom, menggunakan format ${field_name:total}. Misalnya, jika Anda menginginkan persentase dari total jumlah Pesanan, Anda dapat membuat penghitungan tabel seperti ini: ${orders.count} / ${orders.count:total}.

Menggunakan operator

Ekspresi Looker dapat mencakup operator logis, perbandingan, dan matematika untuk membuat kondisi yang berbeda:

  • Operator logika (seperti AND, OR, dan NOT)
  • Operator perbandingan (seperti > dan <)
  • Operator matematika (seperti + dan -)

Kecuali jika Anda menentukan lain dengan tanda kurung, logika AND dipertimbangkan sebelum logika OR. Ekspresi berikut tanpa tanda kurung tambahan:

if (
  ${order_items.days_to_process}>=4 OR
  ${order_items.shipping_time}>5 AND
  ${order_facts.is_first_purchase},
"review", "okay")

dievaluasi sebagai:

if (
  ${order_items.days_to_process}>=4 OR
  (${order_items.shipping_time}>5 AND ${order_facts.is_first_purchase}),
"review", "okay")

Di Looker, Anda harus menggunakan yes dan no, bukan true dan false. Konstanta logis ini tidak sama dengan kata "yes" dan "no", yang diapit dalam tanda kutip. Lihat deskripsi konstanta logis untuk mengetahui detail selengkapnya.

Menggunakan fungsi

Ekspresi Looker sering kali menyertakan satu atau beberapa fungsi, yang membantu Anda mengambil data tertentu atau menghitung hal-hal tertentu. Fungsi ini serupa dengan fungsi Excel.

Fungsi berbentuk nama yang diikuti dengan dua tanda kurung, seperti ini: my_function(). Anda mungkin perlu memberikan informasi dalam tanda kurung tersebut, yang dipisahkan dengan koma. Informasi ini disebut "argumen" dan terlihat seperti ini: my_function(argument_1, argument_2).

Misalnya, fungsi now tidak memerlukan argumen apa pun, dan memberikan tanggal dan waktu saat ini. Anda menggunakannya seperti ini: now().

Fungsi round menggunakan satu argumen, yaitu angka. Anda menggunakannya seperti ini: round(3.2). Hasilnya adalah 3.

Ada dua cara untuk mengetahui argumen yang perlu Anda berikan, jika ada:

  • Panel informasi yang muncul di samping editor ekspresi memberikan beberapa dokumentasi tentang fungsi yang Anda tulis. Anda dapat mengklik nama fungsi untuk membuka dokumentasinya.
  • Anda juga dapat membuka langsung halaman dokumentasi Fungsi dan operator Looker serta mencari fungsi yang ingin Anda gunakan.

Pertimbangkan fungsi contains, yang memiliki dokumentasi seperti ini:

Fungsi Sintaks Tujuan
berisi contains(string, search_string) Menampilkan Yes jika string berisi search_string, dan No jika tidak

Anda dapat melihat bahwa dua argumen diperlukan. Keduanya memiliki nama string dan search_string, tetapi bukan berarti Anda harus mengetik kata "string" dan "search_string" persis seperti itu ke dalam fungsi. Ini hanyalah nama untuk argumen yang akan Anda ganti dengan sesuatu. Dengan membaca tujuannya, kita melihat bahwa string harus berupa kolom atau nilai lain yang ingin kita telusuri di, sedangkan search_string adalah hal yang ingin kita telusuri untuk. Contohnya adalah:

contains(${customer.feedback_text}, "great")

Jika kata "bagus" muncul dalam masukan pelanggan, fungsi ini akan memberikan hasil Yes. Jika tidak, hasilnya adalah No.

Anda dapat menempatkan fungsi di dalam fungsi lain untuk menangani logika yang kompleks. Selama hasil fungsi dalam sesuai untuk argumen fungsi luar, fungsi tersebut akan berfungsi. Contoh:

contains(
  if(
    is_null(${customer.feedback_text}),
    ${customer.comment_text},
    ${customer.feedback_text}
  ),
"great")

Fungsi is_null disarangkan di dalam fungsi if, yang sendiri berada di dalam fungsi contains. Cara kerjanya seperti ini:

  1. Fungsi is_null() memeriksa teks masukan pelanggan.
  2. Selanjutnya, fungsi if() menggunakan hasil tersebut dan menampilkan teks masukan pelanggan jika ada, atau menampilkan teks komentar pelanggan jika tidak ada.
  3. Terakhir, fungsi contains() menggunakan teks yang ditampilkan oleh fungsi if() dan menelusurinya untuk menemukan kata "great".

Secara logis, ekspresi ini berarti: "Jika ada masukan pelanggan, telusuri di dalamnya. Jika tidak, telusuri di komentar pelanggan. Dalam kedua kasus tersebut, cari kata 'hebat' ".