Kepingan Salju

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.

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 kembali 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 panel koneksi Snowflake, centang kotak Semua Kueri untuk memastikan semua baris dijalankan. Secara default, Snowflake hanya menjalankan baris yang dipilih.

Konsol Snowflake dengan kotak centang Semua Kueri dipilih.

Membuat koneksi Looker ke database Anda

Di bagian Admin di Looker, pilih Koneksi, lalu klik Tambahkan Koneksi.

Isi detail koneksi. Sebagian besar setelan bersifat umum untuk sebagian besar dialek database. Lihat halaman dokumentasi Menghubungkan Looker ke database Anda untuk mengetahui informasinya. Beberapa setelan akan dijelaskan di bawah ini:

  • Nama: Beri nama koneksi. Ini adalah cara model LookML mereferensikan koneksi.
  • Dialek: Pilih Snowflake.
  • Host: Masukkan nama host Snowflake. Tampilannya akan terlihat seperti <account_name>.snowflakecomputing.com. Lihat Contoh nama akun Snowflake menurut wilayah untuk memastikan Anda menggunakan nilai yang tepat untuk deployment.
  • Port: Defaultnya adalah 443.
  • Database: Masukkan database default yang akan digunakan. Kolom ini peka huruf besar/kecil.
  • Skema: Masukkan skema default.
  • Autentikasi: 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). Mengaktifkan PDT akan menampilkan kolom PDT tambahan dan bagian Penggantian PDT untuk koneksi.

  • Database Sementara: Jika PDT diaktifkan, tetapkan kolom ini ke skema tempat pengguna memiliki hak istimewa penuh untuk membuat, menghapus, mengganti nama, dan mengubah tabel.

  • Koneksi maksimum per node: Setelan ini dapat dibiarkan pada nilai default pada awalnya. Baca selengkapnya tentang setelan ini di bagian Koneksi maksimum per node di halaman dokumentasi Menghubungkan Looker ke database.

  • Perkiraan Biaya: Mengaktifkan perkiraan biaya untuk kueri Jelajah, perkiraan biaya untuk kueri SQL Runner, dan perkiraan penghematan komputasi untuk kueri awareness gabungan pada koneksi.

  • Zona Waktu Database: Zona waktu yang digunakan database Snowflake Anda untuk menyimpan tanggal dan waktu. Defaultnya adalah UTC. Tindakan tersebut bersifat opsional.

  • Zona Waktu Kueri: Zona waktu yang Anda inginkan untuk ditampilkan kueri. Misalnya, Timur AS (Amerika – New York). Tindakan tersebut bersifat 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 warehouse Snowflake berdasarkan per grup atau per pengguna

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

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 warehouse Snowflake akan disimpan. Anda dapat memberi atribut ini nama apa pun, seperti snowflake_wh.

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

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

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

  4. Di kolom Additional JDBC parameters di halaman Connection Settings, tambahkan kode berikut, dengan mengganti snowflake_warehouse dengan nama atribut pengguna yang Anda tentukan:

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

    Contoh:

    Halaman Setelan Koneksi di Looker, yang menampilkan kolom Parameter JDBC tambahan dengan parameter atribut pengguna warehouse.

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

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

Fitur penangguhan otomatis Snowflake

Warehouse Snowflake memiliki fitur penangguhan otomatis yang diaktifkan secara default. Setelah periode tertentu, penyimpanan akan otomatis ditangguhkan. Jika penyimpanan 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 Jelajahi.

Snowflake juga memiliki fitur lanjutkan otomatis yang akan melanjutkan penyimpanan saat dikueri. Namun, melanjutkan penyimpanan dapat memerlukan waktu hingga lima menit, sehingga kueri berhenti merespons selama lima menit sebelum ditampilkan kembali. Fitur ini tidak dapat dikonfigurasi di Looker. Aktifkan fitur ini di tab Warehouses di UI Snowflake.

Tab Warehouses di UI Snowflake, yang menampilkan kotak centang Autosuspend dan Autoresume

Dukungan PDT

Untuk dukungan tabel turunan persisten, buat akun pengguna Snowflake untuk PDT yang memiliki akses tulis ke database Anda dan skema sementara yang akan digunakan Looker untuk membuat PDT. Di halaman Setelan Koneksi Looker, di bagian Persistent Derived Tables (PDTs), aktifkan tombol Enable PDTs. Kemudian, di kolom Database sementara, masukkan nama skema sementara yang akan digunakan Looker untuk membuat PDT. Selanjutnya, di bagian PDT Overrides, 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 database dan memberikan otorisasi kepada Looker untuk menjalankan kueri di database dengan akun pengguna OAuth pengguna itu 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, bukan menyematkan ID dan sandi database di beberapa tempat
  • Mencabut otorisasi untuk pengguna tertentu melalui database secara langsung

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

Perhatikan hal berikut untuk koneksi OAuth tingkat database:

  • Jika pengguna membiarkan token OAuth-nya berakhir masa berlakunya, jadwal atau pemberitahuan Looker apa pun 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 aktif saat ini berakhir. Looker akan mengirim email notifikasi ini 14 hari, 7 hari, dan 1 hari sebelum masa berlaku token berakhir. Pengguna dapat membuka halaman pengguna Looker untuk memberikan otorisasi ulang kepada 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 penyimpanan dalam cache juga bersifat per pengguna, bukan hanya per kueri. Artinya, alih-alih menggunakan hasil yang di-cache setiap kali kueri yang sama dijalankan dalam periode penyimpanan dalam cache, Looker hanya akan menggunakan hasil yang di-cache jika pengguna yang sama telah menjalankan kueri yang sama dalam periode penyimpanan dalam cache. Untuk informasi selengkapnya tentang penyimpanan dalam cache, 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.

  • Tabel turunan persisten (PDT) tidak didukung untuk koneksi Snowflake dengan OAuth.

  • Saat admin Looker menggunakan sudo sebagai pengguna lain, admin akan menggunakan token akses OAuth pengguna tersebut. Jika masa berlaku token akses pengguna telah habis, admin tidak dapat membuat token baru atas nama pengguna yang menggunakan 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 client ID dan secret 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 warehouse Snowflake Anda, seperti yang dijelaskan di bagian Membuat koneksi Looker ke database Anda pada halaman ini. Saat membuat koneksi baru, pilih opsi OAuth di kolom Authentication. Saat Anda memilih opsi OAuth, Looker akan menampilkan kolom Client ID OAuth dan Rahasia Klien OAuth.

  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.

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

  • Pilih tombol Test di bagian bawah halaman Connections Settings, 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 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 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 mencakup kueri dari Jelajah, dasbor, Tampilan, dan SQL Runner.

UI Looker, yang menampilkan perintah login OAuth.

Pengguna juga dapat login ke Snowflake dari bagian Kredensial Koneksi OAuth di halaman Akun 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 Akun, buka bagian Kredensial Koneksi OAuth, lalu pilih tombol Login untuk database Snowflake yang sesuai.

Memilih Login akan menampilkan dialog login Snowflake. Masukkan kredensial Snowflake Anda dan 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 Anda kapan saja melalui halaman Akun, seperti yang dijelaskan di halaman dokumentasi Mempersonalisasi akun pengguna.

Dukungan fitur

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

Snowflake mendukung fitur berikut mulai Looker 24.20:

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 Tampilkan SQL Runner
Tidak
SQL Runner Describe Table
Ya
SQL Runner Show Indexes
Tidak
SQL Runner Select 10
Ya
Jumlah SQL Runner
Ya
SQL Explain
Ya
Kredensial Oauth
Ya
Komentar Konteks
Ya
Penggabungan Koneksi
Ya
Sketsa HLL
Ya
Kesadaran Agregat
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.