Pemvalidasi SQL Continuous Integration (CI) memverifikasi bahwa dimensi di Jelajah berjalan dengan benar terhadap database Anda. Untuk melakukannya, Validator SQL menjalankan serangkaian kueri pada Eksplorasi di project LookML Anda.
Secara default, Validator SQL melakukan tugas berikut:
- Untuk setiap Eksplorasi dalam project Anda, Validator SQL akan menjalankan kueri Eksplorasi yang menyertakan setiap dimensi dalam Eksplorasi.
- Jika Looker menampilkan error untuk kueri Jelajah, Validator SQL akan menjalankan kueri Jelajah terpisah untuk setiap dimensi dalam Jelajah.
Jika tidak ingin Validator SQL menguji setiap dimensi di setiap Eksplorasi, Anda dapat melakukan satu atau beberapa hal berikut secara opsional:
- Konfigurasikan SQL Validator untuk hanya membuat kueri Jelajah tertentu.
- Konfigurasikan Validator SQL untuk mengecualikan Eksplorasi tertentu.
- Konfigurasikan Validator SQL untuk mengabaikan dimensi LookML yang ditentukan dengan
hidden: yes
. - Tambahkan komentar atau tag
ci: ignore
ke LookML dimensi untuk mencegah Validator SQL menyertakan dimensi dalam kueri Jelajahnya.
Lihat bagian Opsi SQL Validator di halaman ini untuk mengetahui detail tentang opsi yang dapat Anda konfigurasi saat membuat atau mengedit suite CI. Untuk mengetahui informasi tentang cara menjalankan SQL Validator, lihat halaman dokumentasi Menjalankan suite Continuous Integration.
Di halaman hasil run, SQL Validator menampilkan setiap error SQL, yang dikategorikan menurut dimensi dan Jelajahi, dengan link ke LookML yang bermasalah dan link Jelajahi dari sini untuk proses debug:
Konsumsi sumber daya
Validator SQL dirancang untuk menggunakan resource paling sedikit dalam Looker dan dalam data warehouse Anda. Semua kueri Validator SQL menyertakan klausa LIMIT 0
dan WHERE 1=2
. Klausa ini secara efektif menginstruksikan perencana kueri di data warehouse Anda untuk tidak memproses data, tetapi untuk memeriksa validitas SQL.
Misalnya, dengan BigQuery, jenis kueri ini mirip dengan menjalankan kueri uji coba di BigQuery. Untuk BigQuery, kueri LIMIT 0
tidak memindai data, sehingga Anda tidak akan dikenai biaya untuk kueri yang dijalankan SQL Validator.
Mengecualikan dimensi dari validasi SQL
Anda dapat mengecualikan dimensi tertentu dari validasi SQL, seperti dimensi yang bergantung pada parameter, karena nilai parameter akan null selama validasi dan akan selalu menyebabkan error SQL.
Anda juga dapat mengecualikan dimensi yang tidak memiliki parameter sql
, seperti dimensi type: distance
, type: location
, atau type: duration
.
Untuk mengecualikan dimensi dari validasi SQL, Anda dapat mengubah LookML dimensi dengan salah satu dari dua cara berikut:
Anda dapat menambahkan pernyataan
ci: ignore
di parametertags
dari definisi LookML dimensi, seperti yang ditunjukkan dalam contoh berikut:dimension: addresses { sql: ${TABLE}.addresses ;; tags: ["ci: ignore"] }
Anda dapat menambahkan komentar
-- ci: ignore
ke kolomsql
di LookML dimensi, seperti yang ditunjukkan dalam contoh berikut:dimension: addresses { sql: -- ci: ignore ${TABLE}.addresses ;; }
Opsi Validator SQL
Anda dapat menentukan beberapa opsi saat membuat atau mengedit suite Continuous Integration untuk mengonfigurasi cara kerja SQL Validator. Opsi tersebut dijelaskan di bagian berikut pada halaman ini:
- Eksplorasi yang akan dikueri
- Jelajahi yang akan dikecualikan
- Gagal dengan cepat
- Abaikan yang tersembunyi
- Konkurensi kueri
- Validasi inkremental
Menjelajahi untuk membuat kueri
Secara default, Validator SQL akan menjalankan validasi SQL pada semua model dan Jelajah di project LookML Anda.
Anda dapat menggunakan kolom Explores to query untuk menentukan Jelajah dan model yang ingin Anda sertakan dalam validasi SQL.
Anda dapat menentukan Jelajah dalam format berikut: model_name/explore_name
Perhatikan hal berikut:
- Untuk
model_name
, gunakan nama file model tanpa ekstensi.model.lkml
. Misalnya, untuk menentukan model yang ditentukan dithelook.model.lkml
, Anda akan memasukkanthelook
. - Untuk
explore_name
, gunakanexplore_name
dari parameter LookMLexplore
. Misalnya, untuk menentukan Jelajah yang ditentukan sebagaiexplore: users
dalam project LookML, Anda harus memasukkanusers
. - Anda dapat membuat daftar yang dipisahkan koma untuk menentukan beberapa Jelajah.
- Anda dapat menggunakan karakter pengganti
*
dimodel_name
atauexplore_name
.
Berikut beberapa contohnya:
Untuk menentukan hanya Jelajah Pengguna yang ditentukan dengan
explore: users
dalam filethelook.model.lkml
, Anda akan memasukkan hal berikut:thelook/users
Untuk menentukan Jelajah yang bernama
users
danorders
dalam filethelook.model.lkml
, Anda harus memasukkan hal berikut:thelook/users, thelook/orders
Untuk menentukan semua Jelajah di
thelook.model.lkml
, Anda akan memasukkan hal berikut:thelook/*
Untuk menentukan setiap Jelajah yang bernama
users
di semua model dalam project, Anda harus memasukkan hal berikut:*/users
Eksplorasi yang akan dikecualikan
Secara default, Validator SQL akan menjalankan validasi SQL pada semua model dan Jelajah di project LookML Anda.
Anda dapat menggunakan kolom Explores to exclude untuk menentukan Jelajah dan model yang ingin Anda kecualikan dari validasi SQL.
Anda dapat menentukan Jelajah dalam format berikut: model_name/explore_name
Lihat bagian Jelajahi untuk membuat kueri untuk mengetahui informasi selengkapnya tentang cara menentukan Jelajahi untuk Validator SQL.
Gagal dengan cepat
Secara default, Validator SQL menjalankan satu kueri per Eksplorasi dengan semua dimensi dalam kueri. Jika kueri Jelajah gagal, Validator SQL akan melakukan kueri Jelajah untuk setiap dimensi di Jelajah satu per satu.
Untuk validasi yang lebih cepat, Anda dapat mengaktifkan opsi Gagal cepat sehingga Validator SQL hanya akan menjalankan kueri awal untuk Jelajah, yaitu kueri yang berisi semua dimensi sekaligus. Jika kueri tersebut menampilkan error, Validator SQL akan menampilkan error tersebut dalam hasil run CI, dan melanjutkan ke Eksplorasi berikutnya yang akan divalidasi.
Dengan mengaktifkan Gagal cepat, validasi biasanya akan selesai lebih cepat. Namun, hasil Validator SQL hanya akan menampilkan error pertama untuk setiap Eksplorasi, meskipun beberapa dimensi mungkin memiliki error. Artinya, setelah Anda memperbaiki error pertama, pengoperasian SQL Validator berikutnya mungkin akan menampilkan error tambahan.
Abaikan yang tersembunyi
Aktifkan kolom Abaikan tersembunyi jika Anda ingin SQL Validator mengabaikan dimensi LookML yang ditentukan developer Looker dengan hidden: yes
. Validator SQL akan menghapus dimensi ini dari kueri Jelajah selama validasi.
Konkurensi kueri
Secara default, Validator SQL menjalankan tidak lebih dari 10 kueri sekaligus untuk menghindari membebani instance Looker Anda. Anda dapat menggunakan kolom Query concurrency untuk menentukan jumlah maksimum kueri yang berbeda yang dapat dijalankan secara serentak oleh Validator SQL.
Nilai maksimum untuk kolom Konkurensi kueri dibatasi pada setelan Kueri serentak maksimum untuk koneksi ini pada koneksi database Anda.
Jika Anda melihat penurunan performa pada instance Looker saat menjalankan validasi SQL, Anda dapat mengurangi nilai ini.
Validasi inkremental
Validasi inkremental adalah metode untuk menemukan error yang unik untuk cabang pengembangan tertentu, error yang belum ada dalam produksi. Validasi inkremental membantu developer menemukan dan memperbaiki error yang menjadi tanggung jawab mereka tanpa terganggu oleh error yang ada dalam project, dan juga dapat mempercepat validasi, terutama untuk project LookML yang berisi banyak Eksplorasi.
Untuk validasi inkremental, Validator SQL hanya menjalankan kueri Jelajahi yang telah berubah antara versi pengembangan (referensi dasar) dan versi produksi (referensi target). Validator SQL hanya menampilkan error yang unik untuk versi pengembangan, meskipun versi produksi itu sendiri memiliki error.
Dalam hasil validator, Validator SQL menunjukkan setiap Eksplorasi yang dilewati karena tidak memiliki perubahan pada SQL yang dikompilasi di cabang atau commit yang sedang divalidasi. Lihat Melihat hasil validasi inkremental untuk contoh hasil validasi inkremental.
Anda dapat mengaktifkan validasi inkremental untuk SQL Validator dengan mengaktifkan kotak centang Hanya error inkremental di bagian SQL Validator saat membuat atau mengedit suite Continuous Integration.
Perhatikan hal berikut untuk validasi inkremental:
- Setelan validasi inkremental tidak berlaku saat SQL Validator memvalidasi cabang produksi itu sendiri, seperti dengan operasi manual di cabang produksi. Saat memvalidasi cabang produksi, SQL Validator menjalankan validasi penuh.
- Mode Fail fast tidak didukung untuk menjalankan validasi inkremental, karena setiap kueri dimensi diperlukan untuk mengekspos error inkremental yang khusus untuk cabang pengembangan project.