Snowflake

Untuk menghubungkan Looker ke Snowflake, ikuti langkah-langkah berikut:

  1. Buat pengguna Looker di Snowflake dan sediakan akses.
  2. Siapkan koneksi database di Looker.

Mengenkripsi traffic jaringan

Praktik terbaiknya adalah mengenkripsi traffic jaringan antara aplikasi Looker dan database Anda. Pertimbangkan salah satu opsi yang dijelaskan di halaman dokumentasi Mengaktifkan akses database yang aman.

Membuat pengguna Looker di Snowflake

Sebaiknya gunakan perintah berikut untuk membuat pengguna Looker. Pastikan untuk menjalankan setiap baris satu per satu, atau pilih opsi Semua Kueri di panel koneksi Snowflake untuk memastikan semua baris dijalankan (secara default, Snowflake hanya menjalankan baris yang dipilih):

Konsol Snowflake dengan kotak centang Semua Kueri dipilih.

Sebaiknya tambahkan kata kunci ON FUTURE ke setiap pernyataan GRANT sehingga objek yang baru dibuat akan memiliki izin yang sama tanpa perlu tindakan lebih lanjut.

-- change role to ACCOUNTADMIN
use role ACCOUNTADMIN;

-- create role for looker
create role if not exists looker_role;
grant role looker_role to role SYSADMIN;
    -- Note that we are not making the looker_role a SYSADMIN,
    -- but rather granting users with the SYSADMIN role to modify the looker_role

-- create a user for looker
create user if not exists looker_user
password = <enter password here>;
grant role looker_role to user looker_user;
alter user looker_user
set default_role = looker_role
default_warehouse = looker_wh;

-- change role
use role SYSADMIN;

-- create a warehouse for looker (optional)
create warehouse if not exists looker_wh

-- set the size based on your dataset
warehouse_size = medium
warehouse_type = standard
auto_suspend = 1800
auto_resume = true
initially_suspended = true;
grant all privileges
on warehouse looker_wh
to role looker_role;

-- grant read only database access (repeat for all database/schemas)
grant usage on database <database> to role looker_role;
grant usage on schema <database>.<schema> to role looker_role;

-- rerun the following any time a table is added to the schema
grant select on all tables in schema <database>.<schema> to role looker_role;
-- or
grant select on future tables in schema <database>.<schema> to role looker_role;

-- create schema for looker to write back to
use database <database>;
create schema if not exists looker_scratch;
use role ACCOUNTADMIN;
grant ownership on schema looker_scratch to role SYSADMIN revoke current grants;
grant all on schema looker_scratch to role looker_role;

Membuat koneksi Looker ke database Anda

Di bagian Admin Looker, pilih Connections, lalu klik Add Connection.

Isi detail koneksi. Sebagian besar setelan umum untuk sebagian besar dialek database. Lihat halaman dokumentasi Menghubungkan Looker ke database Anda untuk mengetahui informasi selengkapnya. Deskripsi setelan berikut berisi catatan khusus untuk Snowflake:

Setelan Database - Host: Masukkan nama host Snowflake. Hasilnya akan terlihat seperti <account_name>.snowflakecomputing.com. Periksa contoh nama akun Snowflake menurut wilayah untuk memastikan Anda menggunakan nilai yang tepat untuk deployment Anda.

Setelan Database - Metode Autentikasi: Pilih salah satu metode autentikasi berikut:

Setelan Opsional - Aktifkan PDT: PDT tidak didukung untuk koneksi Snowflake yang menggunakan autentikasi OAuth. Jika PDT diperlukan, gunakan opsi autentikasi Pasangan Kunci.

Setelan Opsional - Parameter JDBC tambahan: Tambahkan parameter JDBC tambahan dari driver JDBC Snowflake.

  • Tambahkan warehouse=<YOUR WAREHOUSE NAME>.
  • Selain itu, secara default, Looker akan menetapkan parameter Snowflake berikut pada setiap sesi:

    • TIMESTAMP_TYPE_MAPPING=TIMESTAMP_LTZ
    • JDBC_TREAT_DECIMAL_AS_INT=FALSE
    • TIMESTAMP_INPUT_FORMAT=AUTO
    • AUTOCOMMIT=TRUE

      Anda dapat mengganti setiap parameter ini dengan menetapkan nilai alternatif di kolom Parameter JDBC tambahan, misalnya: &AUTOCOMMIT=FALSE

Untuk memverifikasi bahwa koneksi berhasil, klik Uji. Lihat halaman dokumentasi Menguji konektivitas database untuk mengetahui informasi pemecahan masalah.

Untuk menyimpan setelan ini, klik Hubungkan.

Menetapkan gudang Snowflake berdasarkan per grup atau per pengguna

Anda dapat menggunakan atribut pengguna Looker untuk menetapkan warehouse Snowflake terpisah kepada pengguna atau grup Looker individual. Hal ini berguna, misalnya, jika Anda memiliki pengguna yang memerlukan tingkat daya komputasi yang berbeda. Anda dapat menetapkan gudang dengan resource komputasi yang lebih besar hanya kepada pengguna yang membutuhkannya, sekaligus menetapkan gudang dengan resource yang lebih kecil kepada pengguna yang kurang membutuhkannya.

Untuk menetapkan gudang berdasarkan per grup atau per pengguna, ikuti langkah-langkah berikut:

  1. Tambahkan grup atau pengguna di Looker.
  2. Tentukan atribut pengguna di Looker tempat nama gudang Snowflake akan disimpan. Anda dapat memberikan nama apa pun untuk atribut ini, seperti snowflake_wh.

    Halaman Atribut Pengguna di Looker, yang menampilkan atribut pengguna gudang data Snowflake.

  3. Di atribut pengguna yang baru saja Anda tentukan, tetapkan nilai nama gudang ke grup atau pengguna yang akan memerlukan akses gudang yang berbeda.

    Halaman Atribut Pengguna di Looker, yang menampilkan atribut pengguna gudang data Snowflake dengan nilai yang ditetapkan ke grup.

  4. Di kolom Parameter JDBC tambahan di halaman Setelan Koneksi, tambahkan yang berikut, dengan mengganti snowflake_warehouse dengan nama atribut pengguna yang Anda tentukan:

      warehouse={{ _user_attributes['snowflake_warehouse'] }}
    
  5. Untuk menguji setelan koneksi individual, Anda dapat menggunakan sudo sebagai pengguna yang Anda tetapkan nilai nama gudangnya.

Mengelola fitur penangguhan otomatis Snowflake

Warehouse Snowflake memiliki fitur penangguhan otomatis yang diaktifkan secara default. Setelah periode tertentu, gudang akan ditangguhkan secara otomatis. Jika gudang ditangguhkan, semua kueri akan menghasilkan error. Error ini tidak terlihat di dasbor (biasanya error ini menyebabkan tidak ada data yang ditampilkan), tetapi terlihat oleh pengguna yang membuat kueri dengan halaman Jelajah.

Biasanya ada dua metode yang digunakan untuk mengelola hal ini:

  1. Snowflake memiliki fitur melanjutkan otomatis yang akan melanjutkan gudang saat dikueri. Namun, melanjutkan gudang dapat memerlukan waktu hingga lima menit, sehingga kueri berhenti merespons selama lima menit sebelum ditampilkan. Lanjutkan otomatis tidak dapat dikonfigurasi di Looker. Aktifkan fitur ini di tab Warehouses di UI Snowflake:

    Tab Gudang di UI Snowflake, yang menampilkan kotak centang penangguhan otomatis dan pelanjutan otomatis.

  2. Jika tabel turunan persisten (PDT) telah diaktifkan, setelan default Looker adalah memeriksa regenerasi tabel turunan setiap 5 menit. Pemeriksaan ini akan membuat gudang Snowflake tetap aktif. Namun, Anda mungkin ingin Snowflake menangguhkan gudang selama di luar jam kerja untuk mengurangi biaya. Hal ini dapat dilakukan dengan mengubah jadwal regenerasi PDT, seperti yang dijelaskan dalam dokumentasi jadwal pemeliharaan.

Dukungan PDT

PDT tidak didukung untuk koneksi Snowflake yang menggunakan OAuth.

Untuk dukungan tabel turunan persisten, buat akun pengguna Snowflake untuk PDT yang memiliki akses tulis ke database dan skema sementara yang akan digunakan Looker untuk membuat PDT. Di halaman Setelan Koneksi Looker, pada tab Setelan Opsional di bagian Setelan Tabel Turunan Persisten (PDT), aktifkan tombol Aktifkan PDT. Kemudian, di kolom Database sementara, masukkan nama skema sementara yang akan digunakan Looker untuk membuat PDT.

Perhatikan bahwa Penggantian PDT tidak tersedia untuk koneksi Snowflake yang menggunakan autentikasi Pasangan Kunci.

Untuk koneksi Snowflake, Looker menetapkan nilai untuk parameter AUTOCOMMIT Snowflake ke TRUE, yang merupakan nilai default Snowflake. AUTOCOMMIT diperlukan untuk perintah SQL yang dijalankan Looker untuk mempertahankan sistem pendaftaran PDT-nya.

Mengonfigurasi OAuth untuk koneksi Snowflake

Looker mendukung OAuth untuk koneksi Snowflake, yang berarti setiap pengguna Looker mengautentikasi ke database dengan akun pengguna OAuth mereka sendiri.

OAuth memungkinkan administrator database melakukan tugas berikut:

  • Mengaudit pengguna Looker yang menjalankan kueri terhadap database
  • Menerapkan kontrol akses berbasis peran menggunakan izin tingkat database
  • Gunakan token OAuth untuk semua proses dan tindakan yang mengakses database, alih-alih menyematkan ID dan sandi database di beberapa tempat
  • Mencabut otorisasi untuk pengguna tertentu secara langsung melalui database

Dengan koneksi Snowflake yang menggunakan OAuth, pengguna harus login kembali secara berkala saat token OAuth mereka berakhir. Masa berlaku maksimum token OAuth Snowflake ditetapkan melalui Snowflake itu sendiri.

Perhatikan hal berikut untuk koneksi OAuth tingkat database:

  • Tabel turunan persisten (PDT) tidak didukung untuk koneksi Snowflake dengan OAuth.
  • Jika token OAuth pengguna berakhir, semua jadwal atau pemberitahuan Looker yang dimilikinya akan terpengaruh. Untuk mencegah hal ini, Looker akan mengirimkan email notifikasi kepada pemilik setiap jadwal dan setiap pemberitahuan 14 hari, 7 hari, dan 1 hari sebelum masa berlaku token berakhir. Pengguna dapat membuka halaman pengguna Looker untuk memberikan kembali otorisasi Looker ke database dan menghindari gangguan pada jadwal dan pemberitahuan mereka. Lihat halaman dokumentasi Mempersonalisasi setelan akun pengguna untuk mengetahui detailnya.
  • Karena koneksi database yang menggunakan OAuth bersifat "per pengguna", kebijakan caching juga bersifat per pengguna dan bukan hanya per kueri. Artinya, Looker hanya akan menggunakan hasil yang di-cache jika pengguna yang sama telah menjalankan kueri yang sama dalam periode penyimpanan dalam cache. Untuk mengetahui informasi selengkapnya tentang caching, lihat halaman dokumentasi Menyimpan kueri ke dalam cache.
  • Saat menggunakan OAuth, Anda tidak dapat beralih ke peran yang berbeda di akun pengguna Snowflake. Seperti yang dijelaskan dalam dokumentasi Snowflake, Snowflake menggunakan peran default akun pengguna Snowflake, kecuali jika peran defaultnya adalah ACCOUNTADMIN atau SECURITYADMIN. Karena peran ini diblokir untuk OAuth, Snowflake akan menggunakan peran PUBLIC. Lihat dokumentasi Snowflake untuk mengetahui informasinya.
  • Saat admin Looker melakukan sudo sebagai pengguna lain, admin akan menggunakan token akses OAuth pengguna tersebut. Jika masa berlaku token akses pengguna telah berakhir, admin tidak dapat membuat token baru atas nama pengguna yang di-sudo. Lihat halaman dokumentasi Pengguna untuk mengetahui informasi tentang penggunaan perintah sudo.

Mengonfigurasi database Snowflake untuk OAuth dengan Looker

Untuk membuat koneksi Snowflake ke Looker menggunakan OAuth, Anda harus menyiapkan integrasi OAuth di Snowflake. Tindakan ini memerlukan akun pengguna Snowflake dengan izin ACCOUNTADMIN.

  1. Jalankan perintah berikut di Snowflake, dengan <looker_hostname> adalah nama host instance Looker Anda:

    CREATE SECURITY INTEGRATION LOOKER
      TYPE = OAUTH
      ENABLED = TRUE
      OAUTH_CLIENT = LOOKER
      OAUTH_REDIRECT_URI = 'https://<looker_hostname>/external_oauth/redirect';
    
  2. Dapatkan ID dan rahasia klien OAuth dengan menjalankan perintah berikut:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('LOOKER');
    

    Respons akan memiliki OAUTH_CLIENT_ID dan OAUTH_CLIENT_SECRET yang akan Anda perlukan nanti dalam prosedur ini.

  3. Di Looker, buat koneksi baru ke gudang Snowflake Anda, seperti yang dijelaskan di bagian Membuat koneksi Looker ke database Anda di halaman ini. Saat Anda membuat koneksi baru, pilih opsi OAuth di kolom Authentication. Saat Anda memilih opsi OAuth, Looker akan menampilkan kolom OAuth Client ID dan OAuth Client Secret.

  4. Tempelkan nilai OAUTH_CLIENT_ID dan OAUTH_CLIENT_SECRET yang Anda dapatkan dari database sebelumnya dalam prosedur ini.

  5. Selesaikan prosedur lainnya untuk Menghubungkan Looker ke database Anda.

Menguji koneksi OAuth

Setelah mengonfigurasi koneksi Looker ke database, Anda dapat menguji koneksi itu sendiri dengan melakukan salah satu hal berikut:

  • Pilih tombol Uji di bagian bawah halaman Setelan Koneksi, seperti yang dijelaskan di halaman dokumentasi Menghubungkan Looker ke database Anda.
  • Pilih tombol Uji berdasarkan listingan koneksi di halaman admin Koneksi, seperti yang dijelaskan di halaman dokumentasi Koneksi.

Selain itu, Anda dapat menguji koneksi dan men-deploy-nya pada model dengan mengikuti langkah-langkah berikut:

  1. Di Looker, buka Mode Pengembangan.
  2. Buka file project untuk project Looker yang menggunakan koneksi Snowflake Anda.
  3. Buka file model dan ganti nilai connection model dengan nama koneksi Snowflake baru, lalu simpan file model.
  4. Buka salah satu Jelajah atau dasbor model, lalu jalankan kueri. Saat Anda mencoba menjalankan kueri, Looker akan meminta Anda untuk login ke Snowflake.
  5. Ikuti petunjuk login untuk Snowflake dan masukkan kredensial Snowflake Anda.

Setelah Anda berhasil login ke Snowflake, Looker akan mengalihkan Anda kembali ke kueri Anda. Jika kueri Anda berjalan dengan benar, Anda dapat melakukan perubahan pada nilai koneksi baru dan men-deploy perubahan ke produksi.

Login ke Snowflake untuk menjalankan kueri

Setelah koneksi Snowflake disiapkan untuk OAuth, pengguna akan diminta untuk login ke Snowflake sebelum menjalankan kueri. Hal ini mencakup kueri dari Jelajah, dasbor, Look, dan SQL Runner.

UI Looker, yang menampilkan perintah login OAuth.

Pengguna juga dapat login ke Snowflake dari bagian OAuth Connection Credentials di halaman Account mereka.

Untuk login ke akun Snowflake menggunakan Looker, ikuti langkah-langkah berikut:

Halaman Akun di Looker, yang menampilkan bagian Kredensial Koneksi OAuth.

  1. Klik menu pengguna Looker.
  2. Pilih Akun.
  3. Di halaman Account, buka bagian OAuth Connection Credentials, lalu pilih tombol Log In untuk database Snowflake yang sesuai.

Memilih Log In akan menampilkan dialog login Snowflake. Masukkan kredensial Snowflake Anda, pilih Log In, lalu pilih Allow untuk memberikan akses Looker ke akun Snowflake Anda.

Setelah login ke Snowflake melalui Looker, Anda dapat logout atau mengotorisasi ulang kredensial Anda kapan saja melalui halaman Akun, seperti yang dijelaskan di halaman dokumentasi Mempersonalisasi akun pengguna Anda.

Dukungan fitur

Agar Looker mendukung beberapa fitur, dialek database Anda juga harus mendukungnya.

Snowflake mendukung fitur berikut mulai Looker 25.10:

Fitur Didukung?
Level dukungan
Didukung
Looker (Google Cloud core)
Ya
Agregat simetris
Ya
Tabel turunan
Ya
Tabel turunan SQL persisten
Ya
Tabel turunan native persisten
Ya
Tampilan stabil
Ya
Penghentian kueri
Ya
Pivot berbasis SQL
Ya
Zona waktu
Ya
SSL
Ya
Subtotal
Ya
Parameter tambahan JDBC
Ya
Peka huruf besar/kecil
Ya
Jenis lokasi
Ya
Jenis daftar
Ya
Persentil
Ya
Persentil berbeda
Tidak
SQL Runner Show Processes
Tidak
SQL Runner Describe Table
Ya
Tampilkan Indeks SQL Runner
Tidak
SQL Runner Select 10
Ya
Jumlah SQL Runner
Ya
Penjelasan SQL
Ya
Kredensial OAuth 2.0
Ya
Komentar konteks
Ya
Penggabungan koneksi
Ya
Sketsa HLL
Ya
Kesadaran agregat
Ya
PDT inkremental
Ya
Milidetik
Ya
Mikrodetik
Ya
Tampilan terwujud
Tidak
Ukuran dari periode ke periode
Ya
Jumlah perkiraan berbeda
Tidak

Langkah berikutnya

Setelah menghubungkan database ke Looker, konfigurasi opsi login untuk pengguna Anda.