Snowflake

Ikuti langkah-langkah berikut untuk menghubungkan Looker ke Snowflake:

  1. Membuat pengguna Looker di Snowflake dan menyediakan akses.
  2. Menyiapkan koneksi database di Looker.

Mengenkripsi lalu lintas 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.

Secara opsional, tambahkan kata kunci ON FUTURE untuk mempertahankan pernyataan GRANT pada objek yang baru dibuat. Sebaiknya jalankan ini untuk tabel di semua skema yang akan digunakan Looker sehingga Anda tidak perlu menjalankan ulang pernyataan GRANT saat tabel baru dibuat.

-- 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;

Jika Anda menempelkan perintah sebelumnya sebagai batch ke dalam panel koneksi Snowflake, pilih kotak centang All Queries untuk memastikan bahwa semua baris dijalankan. Secara default, Snowflake hanya menjalankan baris yang dipilih.

Membuat koneksi Looker ke database Anda

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

Isi detail koneksi. Sebagian besar setelan bersifat umum untuk sebagian besar dialek database. Lihat halaman dokumentasi Menghubungkan Looker ke database untuk mendapatkan informasi. Beberapa setelan akan dijelaskan sebagai berikut:

  • Nama: Beri nama koneksi. Ini adalah cara model LookML akan mereferensikan koneksi.
  • Dialect: Pilih Snowflake.
  • Host: Masukkan nama host Snowflake. Nama tersebut akan terlihat seperti <account_name>.snowflakecomputing.com. Periksa contoh nama akun Snowflake berdasarkan region untuk memastikan Anda menggunakan nilai yang tepat untuk deployment Anda.
  • Port: Defaultnya adalah 443.
  • Database: Masukkan database default yang akan digunakan. Kolom ini peka huruf besar/kecil.
  • Schema: Masukkan skema default.
  • Authentication: Pilih Database Account atau OAuth:
    • Gunakan Database Account untuk menentukan Username dan Password akun pengguna Snowflake yang akan digunakan untuk terhubung ke Looker.
    • Gunakan OAuth jika Anda ingin mengonfigurasi OAuth untuk koneksi.
  • Aktifkan PDT: Gunakan tombol ini untuk mengaktifkan tabel turunan persisten (PDT). Jika PDT diaktifkan, kolom PDT tambahan dan bagian Penggantian PDT akan ditampilkan untuk koneksi.
  • Temp Database: Jika PDT diaktifkan, tetapkan kolom ini ke skema yang memberikan hak istimewa penuh kepada pengguna untuk membuat, menghapus, mengganti nama, dan mengubah tabel.
  • Koneksi maksimum per node: Setelan ini dapat dibiarkan pada nilai default di awal. Baca selengkapnya tentang setelan ini di bagian Koneksi maksimum per node di halaman dokumentasi Menghubungkan Looker ke database Anda.
  • Estimasi Biaya: Mengaktifkan estimasi biaya untuk kueri Jelajah, estimasi biaya untuk kueri SQL Runner, dan estimasi penghematan biaya untuk kueri awareness gabungan di koneksi.
  • Zona Waktu Database: Zona waktu yang digunakan database Snowflake untuk menyimpan tanggal dan waktu. Defaultnya adalah UTC. Tindakan tersebut bersifat opsional.
  • Zona Waktu Kueri: Zona waktu yang Anda inginkan untuk menampilkan kueri. Misalnya, US East (Amerika – New York). Tindakan tersebut bersifat opsional.
  • Parameter JDBC tambahan: Tambahkan parameter JDBC tambahan dari driver JDBC Snowflake.

    • Menambahkan warehouse=<YOUR WAREHOUSE NAME>.
    • Selain itu, secara default, Looker akan menetapkan parameter Snowflake berikut di 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 Test. Lihat halaman dokumentasi Menguji konektivitas database untuk 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 untuk satu per satu pengguna atau grup Looker. Hal ini berguna, misalnya, jika Anda memiliki pengguna yang memerlukan tingkat daya komputasi berbeda. Anda dapat menetapkan gudang dengan sumber daya komputasi yang lebih besar hanya kepada pengguna yang membutuhkannya, dan menetapkan gudang dengan sumber daya lebih rendah bagi pengguna yang kebutuhannya lebih rendah.

Untuk menetapkan gudang per grup atau per pengguna:

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

  3. Pada atribut pengguna yang baru saja Anda tentukan, tetapkan nilai nama warehouse ke grup atau pengguna.

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

      warehouse={{ _user_attributes['snowflake_warehouse'] }}
    

    Contoh:

  5. Untuk menguji setiap setelan koneksi, Anda dapat sudo sebagai pengguna yang diberi nilai nama warehouse.

Anda dapat melihat petunjuk yang lebih detail untuk prosedur ini di blog Red Pill Analytics.

Fitur penangguhan otomatis Snowflake

Gudang 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 tidak ada data yang ditampilkan), tetapi terlihat saat membuat kueri dengan halaman Eksplorasi.

Snowflake juga memiliki fitur resume otomatis yang akan melanjutkan gudang saat kueri tersebut diproses. Namun, melanjutkan warehouse dapat memerlukan waktu hingga lima menit, yang menyebabkan kueri tertunda selama lima menit sebelum kembali. Fitur ini tidak dapat dikonfigurasi di Looker. Aktifkan fitur ini di tab Warehouses di UI Snowflake.

Dukungan PDT

Untuk dukungan tabel turunan persisten, buat akun pengguna Snowflake untuk PDT yang memiliki akses tulis ke database Anda dan skema default. Di halaman Connections Settings Looker, aktifkan tombol Aktifkan PDT. Kemudian, di bagian Penggantian PDT, masukkan nama pengguna dan sandi pengguna PDT. Lihat halaman dokumentasi Menghubungkan Looker ke database untuk mengetahui informasi selengkapnya.

PDT tidak didukung untuk koneksi Snowflake yang menggunakan OAuth.

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

Mengonfigurasi OAuth untuk koneksi Snowflake

Looker mendukung OAuth untuk koneksi Snowflake, yang berarti setiap pengguna Looker melakukan autentikasi ke Snowflake dan mengizinkan Looker untuk menjalankan kueri di database dengan akun pengguna Snowflake mereka sendiri.

Dengan OAuth, administrator database dapat:

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

Dengan koneksi Snowflake yang menggunakan OAuth, pengguna harus login lagi secara berkala saat masa berlaku token OAuth mereka berakhir. Durasi validitas untuk token OAuth Snowflake ditetapkan melalui Snowflake itu sendiri.

Perhatikan hal berikut untuk Snowflake dengan OAuth:

  • Jika pengguna membiarkan masa berlaku token Snowflake berakhir, semua jadwal atau pemberitahuan yang mereka miliki akan terpengaruh. Untuk mencegah hal ini, Looker akan mengirim email notifikasi kepada pemilik setiap jadwal dan setiap pemberitahuan sebelum masa berlaku token OAuth Snowflake yang aktif saat ini habis. Looker akan mengirimkan email notifikasi ini 14 hari, 7 hari, dan 1 hari sebelum masa berlaku token berakhir. Pengguna dapat membuka halaman pengguna Looker untuk mengizinkan kembali Looker ke database, serta menghindari gangguan pada jadwal dan pemberitahuan mereka. Lihat halaman dokumentasi Mempersonalisasi setelan akun pengguna untuk mengetahui detailnya.
  • Karena koneksi Snowflake yang menggunakan OAuth adalah "per pengguna", kebijakan penyimpanan dalam cache juga berlaku per pengguna, bukan hanya per kueri. Artinya, Looker tidak akan menggunakan hasil yang di-cache setiap kali kueri yang sama dijalankan dalam periode cache, tetapi Looker akan menggunakan hasil yang di-cache hanya jika pengguna yang sama telah menjalankan kueri yang sama dalam periode cache. Untuk informasi selengkapnya tentang penyimpanan dalam cache, lihat halaman dokumentasi Kueri 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 peran defaultnya adalah ACCOUNTADMIN atau securityADMIN. Karena peran ini diblokir untuk OAuth, Snowflake akan menggunakan peran PUBLIK. Lihat dokumentasi Snowflake untuk mendapatkan informasi.
  • Tabel turunan persisten (PDT) tidak didukung untuk koneksi Snowflake dengan OAuth.
  • Admin, ketika melakukan sudo sebagai pengguna lain, akan menggunakan token akses OAuth pengguna tersebut. Jika masa berlaku token akses pengguna berakhir, admin tidak akan dapat membuat token baru atas nama pengguna dengan sudo; pengguna harus login ke Snowflake dan memberikan otorisasi ulang ke Looker. Lihat halaman dokumentasi Pengguna untuk 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 client ID dan rahasia klien OAuth dengan menjalankan perintah berikut:

      SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('LOOKER');
    

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

  3. Di Looker, buat koneksi baru ke warehouse Snowflake, seperti yang dijelaskan di halaman dokumentasi Menghubungkan Looker ke database Anda. Saat membuat koneksi baru, pilih opsi OAuth di kolom Authentication. Jika Anda memilih opsi OAuth, Looker akan menampilkan kolom Client ID OAuth dan Rahasia Klien OAuth.

  4. Tempel nilai OAUTH_CLIENT_ID dan OAUTH_CLIENT_SECRET yang Anda dapatkan dari database Anda di awal prosedur ini.

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

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

  • Pilih tombol Uji di bagian bawah halaman Setelan Koneksi, seperti yang dijelaskan di halaman dokumentasi Menghubungkan Looker ke database Anda.
  • Pilih tombol Uji di samping 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 melakukan hal berikut:

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

Setelah berhasil login ke Snowflake, Looker akan mengembalikan Anda ke kueri. Jika kueri berjalan dengan benar, Anda dapat melakukan commit 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 termasuk kueri dari Jelajah, dasbor, Look, dan SQL Runner.

Pengguna juga dapat masuk ke Snowflake dari bagian Kredensial Koneksi OAuth di halaman Akun.

Untuk login ke akun Snowflake menggunakan Looker:

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

Tindakan ini akan menampilkan jendela pop-up login Snowflake. Masukkan kredensial Snowflake, lalu pilih Login, lalu pilih Izinkan untuk memberi Looker akses ke akun Snowflake Anda.

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

Dukungan fitur

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

Snowflake mendukung fitur berikut mulai Looker 24.6:

Fitur Didukung?
Level Dukungan
Didukung
Looker (Google Cloud core)
Ya
Agregat Simetris
Ya
Tabel Turunan
Ya
Tabel Turunan SQL Persisten
Ya
Tabel Turunan Berbasis 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
Proses Tampilan Runner SQL
Tidak
Tabel Deskripsi Runner SQL
Ya
Indeks Tampilan Runner SQL
Tidak
Pilihan Runner SQL 10
Ya
Jumlah Runner SQL
Ya
Penjelasan SQL
Ya
Kredensial OAuth
Ya
Komentar Konteks
Ya
Penggabungan Koneksi
Ya
Sketsa HLL
Ya
Awareness Gabungan
Ya
PDT inkremental
Ya
Milidetik
Ya
Mikrodetik
Ya
Tampilan Terwujud
Tidak
Perkiraan Jumlah Berbeda
Tidak

Langkah berikutnya

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