Validator SQL Continuous Integration

Validator SQL Continuous Integration (CI) memverifikasi bahwa dimensi dalam Eksplorasi Anda berjalan dengan benar di database Anda. Untuk melakukannya, Validator SQL menjalankan serangkaian kueri di Eksplorasi dalam project LookML Anda.

Secara default, SQL Validator melakukan tugas-tugas berikut:

  1. Untuk setiap Explore dalam project Anda, Validator SQL menjalankan kueri Explore yang menyertakan setiap dimensi dalam Explore.
  2. Jika Looker menampilkan error untuk kueri Eksplorasi, Validator SQL akan menjalankan kueri Eksplorasi terpisah untuk setiap dimensi dalam Eksplorasi.

Jika tidak ingin Validator SQL menguji setiap dimensi di setiap Explore, Anda dapat melakukan satu atau beberapa hal berikut:

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 Validator SQL, lihat halaman dokumentasi Menjalankan suite Continuous Integration.

Di halaman hasil eksekusi, SQL Validator menampilkan setiap error SQL, yang dikategorikan berdasarkan dimensi dan Eksplorasi, dengan link ke LookML yang bermasalah dan link Explore from here untuk proses debug:

Halaman hasil Continuous Integration yang menampilkan temuan Validator SQL

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 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 oleh Validator SQL.

Mengecualikan dimensi dari validasi SQL

Anda mungkin ingin 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 dalam parameter tags 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 kolom sql LookML dimensi Anda, seperti yang ditunjukkan dalam contoh berikut:

    dimension: addresses {
      sql:
        -- ci: ignore
        ${TABLE}.addresses ;;
    }
    

Koneksi database OAuth dan Continuous Integration

Jika project LookML Anda menggunakan koneksi database yang dikonfigurasi untuk OAuth, pengguna akun layanan CI otomatis tidak dapat menyelesaikan alur OAuth interaktif yang diperlukan untuk melakukan autentikasi ke database. Hal ini menyebabkan Validator SQL gagal dengan error OAuth log in required.

Untuk menggunakan Validator SQL Continuous Integration, terapkan salah satu solusi berikut:

  • Konfigurasikan koneksi database untuk menggunakan akun layanan: Ubah setelan Autentikasi koneksi database untuk menggunakan akun layanan (seperti Kredensial Default Aplikasi), bukan OAuth.
  • Gunakan model non-OAuth untuk CI: Buat model LookML baru yang menggunakan koneksi database non-OAuth dan impor model Anda yang lain ke dalamnya. Pastikan pengguna Looker CI memiliki akses ke model baru ini.

Opsi Validator SQL

Anda dapat menentukan beberapa opsi saat membuat atau mengedit Continuous Integration suite untuk mengonfigurasi cara SQL Validator berjalan. Opsi tersebut dijelaskan di bagian berikut pada halaman ini:

Eksplorasi untuk membuat kueri

Secara default, SQL Validator akan menjalankan validasi SQL pada semua model dan Explore dalam project LookML Anda.

Anda dapat menggunakan kolom Explores to query untuk menentukan Eksplorasi dan model yang ingin Anda sertakan dalam validasi SQL.

Anda dapat menentukan Eksplorasi 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 di thelook.model.lkml, Anda harus memasukkan thelook.
  • Untuk explore_name, gunakan explore_name dari parameter LookML explore. Misalnya, untuk menentukan Eksplorasi yang didefinisikan sebagai explore: users dalam project LookML, Anda akan memasukkan users.
  • Anda dapat membuat daftar yang dipisahkan koma untuk menentukan beberapa Explore.
  • Anda dapat menggunakan karakter pengganti * di model_name atau explore_name.

Berikut beberapa contohnya:

  • Untuk menentukan hanya Eksplorasi Users yang ditentukan dengan explore: users dalam file thelook.model.lkml, Anda akan memasukkan hal berikut:

    thelook/users
    
  • Untuk menentukan Explore bernama users dan orders dalam file thelook.model.lkml, Anda harus memasukkan kode berikut:

    thelook/users, thelook/orders
    
  • Untuk menentukan semua Eksplorasi di thelook.model.lkml, Anda harus memasukkan kode berikut:

    thelook/*
    
  • Untuk menentukan setiap Eksplorasi bernama users di semua model dalam project, Anda harus memasukkan hal berikut:

    */users
    

Eksplorasi yang akan dikecualikan

Secara default, SQL Validator akan menjalankan validasi SQL pada semua model dan Explore dalam project LookML Anda.

Anda dapat menggunakan kolom Explores to exclude untuk menentukan Eksplorasi dan model yang ingin Anda kecualikan dari validasi SQL.

Anda dapat menentukan Eksplorasi dalam format berikut: model_name/explore_name

Lihat bagian Eksplorasi yang akan dikueri untuk mengetahui informasi selengkapnya tentang cara menentukan Eksplorasi untuk Validator SQL.

Gagal dengan cepat

Secara default, Validator SQL menjalankan satu kueri per Eksplorasi dengan semua dimensi dalam kueri. Jika kueri Eksplorasi tersebut gagal, Validator SQL akan melakukan kueri Eksplorasi untuk setiap dimensi dalam Eksplorasi satu per satu.

Untuk validasi yang lebih cepat, Anda dapat mengaktifkan opsi Fail fast sehingga Validator SQL hanya akan menjalankan kueri awal untuk Eksplorasi, yaitu kueri yang berisi semua dimensi sekaligus. Jika kueri tersebut menampilkan error, SQL Validator akan menampilkan error tersebut di hasil operasi CI, dan melanjutkan ke Eksplorasi berikutnya yang divalidasi.

Jika Gagal cepat diaktifkan, validasi biasanya selesai lebih cepat. Namun, hasil Validator SQL hanya akan menampilkan error pertama untuk setiap Explore, meskipun beberapa dimensi mungkin memiliki error. Artinya, setelah Anda memperbaiki error pertama, eksekusi SQL Validator berikutnya mungkin akan menampilkan error tambahan.

Abaikan yang tersembunyi

Aktifkan kolom Ignore hidden jika Anda ingin Validator SQL mengabaikan dimensi LookML yang ditentukan oleh developer Looker Anda dengan hidden: yes. Validator SQL akan mengecualikan dimensi ini dari kueri Eksplorasi selama validasi.

Konkurensi kueri

Secara default, Validator SQL menjalankan tidak lebih dari 10 kueri sekaligus untuk menghindari kelebihan beban pada instance Looker Anda. Anda dapat menggunakan kolom Konkurensi kueri untuk menentukan jumlah maksimum kueri yang berbeda yang dapat dijalankan secara serentak oleh Validator SQL.

Nilai maksimum untuk kolom Query concurrency dibatasi oleh setelan Max concurrent queries for this connection pada koneksi database Anda.

Jika Anda melihat perlambatan pada instance Looker saat menjalankan validasi SQL, Anda dapat mengurangi nilai ini.

Validasi inkremental

Validasi inkremental adalah metode pencarian error yang hanya terjadi pada cabang pengembangan tertentu, yaitu error yang belum ada di 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 Eksplorasi 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, SQL Validator menunjukkan setiap Eksplorasi yang dilewati karena tidak ada perubahan pada SQL yang dikompilasi di cabang atau commit yang divalidasi. Lihat Melihat hasil untuk validasi inkremental untuk mengetahui contoh hasil validasi inkremental.

Anda dapat mengaktifkan validasi inkremental untuk Validator SQL dengan mencentang kotak Only incremental errors di bagian SQL Validator saat membuat atau mengedit Continuous Integration suite.

Perhatikan hal berikut untuk validasi inkremental:

  • Setelan validasi inkremental tidak berlaku saat Validator SQL memvalidasi cabang produksi itu sendiri, seperti pada operasi manual di cabang produksi. Saat memvalidasi cabang produksi, Validator SQL menjalankan validasi penuh.
  • Mode Fail fast tidak didukung untuk operasi validasi inkremental, karena kueri dimensi individual diperlukan untuk mengekspos error inkremental yang spesifik untuk cabang pengembangan project.