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, atau pilih opsi All Queries di panel koneksi Snowflake untuk memastikan semua baris dijalankan (secara default, Snowflake hanya menjalankan baris yang dipilih):

Konsol Snowflake dengan kotak centang All Queries yang dipilih.

Sebaiknya tambahkan kata kunci ON FUTURE ke setiap pernyataan GRANT agar objek yang baru dibuat 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;

Jika ingin mengaktifkan Explore layanan mandiri di koneksi, Anda juga harus memberikan CREATE STAGE ke peran Looker:

GRANT CREATE STAGE ON SCHEMA looker_scratch TO ROLE looker_role;

Membuat koneksi Looker ke database Anda

Di bagian Admin di 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 Anda untuk mengetahui informasinya. Deskripsi setelan berikut berisi catatan khusus untuk Snowflake:

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

  • Database Settings - Authentication Method: Pilih salah satu metode autentikasi berikut:

    • Database Account hanya boleh digunakan oleh pelanggan lama yang memerlukan waktu untuk beralih ke metode autentikasi multi-faktor sebelum batas waktu Snowflake pada November 2025. Tentukan Username dan Password akun pengguna Snowflake yang akan digunakan untuk terhubung ke Looker.

    • Pasangan Kunci harus digunakan oleh pelanggan yang ingin menerapkan autentikasi pasangan kunci Snowflake untuk terhubung dengan database mereka. Tentukan akun pengguna yang akan digunakan untuk terhubung ke Snowflake di kolom Username. Upload file pasangan kunci berformat p8 yang dienkripsi atau tidak dienkripsi di kolom Key Pair File. Dokumentasi Snowflake menjelaskan cara membuat file kunci pribadi. Jika Anda mengupload file p8 terenkripsi, lakukan tindakan berikut:

      • Aktifkan tombol Pasangan Kunci Dienkripsi.
      • Tentukan sandi untuk file p8 di kolom Sandi Dekripsi File Pasangan Kunci.
    • OAuth harus digunakan oleh pelanggan yang tidak memerlukan tabel turunan persisten (PDT) dan ingin mengonfigurasi OAuth untuk koneksi.

  • Setelan Opsional - Parameter JDBC tambahan: Tambahkan parameter JDBC tambahan dari driver JDBC Snowflake. Lihat bagian Parameter JDBC yang didukung di halaman ini untuk mengetahui daftar parameter yang didukung.

    • 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 Additional JDBC parameters, misalnya: &AUTOCOMMIT=FALSE

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

  • Setelan Opsional - Aktifkan Penggantian PDT: Penggantian PDT didukung untuk koneksi Snowflake sehingga Anda dapat memasukkan parameter JDBC terpisah yang khusus untuk proses PDT, seperti host, port, database, nama pengguna, sandi, skema, parameter tambahan, dan nilai untuk kolom PDT Override After Connect Statements. Anda dapat menggunakan autentikasi pasangan kunci dalam penggantian PDT dengan melakukan hal berikut:

    • Upload file pasangan kunci berformat p8 yang dienkripsi atau tidak dienkripsi di kolom PDT Override Key Pair file. Dokumentasi Snowflake menjelaskan cara membuat file kunci pribadi.
    • Jika Anda mengupload file p8 terenkripsi, tentukan sandi untuk file p8 di kolom PDT Override Password.

Untuk memverifikasi bahwa koneksi berhasil, klik tombol Test Connection di bagian Status details di bagian bawah halaman Connections Settings.

Jika Looker menampilkan Can Connect, tekan Connect untuk membuat koneksi.

Koneksi database Anda kemudian akan ditambahkan ke daftar di halaman Admin Connections Looker.

Menetapkan warehouse Snowflake per grup atau per pengguna

Anda dapat menggunakan atribut pengguna Looker untuk menetapkan warehouse Snowflake terpisah ke pengguna atau grup Looker individual. 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 kecil kepada pengguna dengan kebutuhan yang lebih sedikit.

Untuk menetapkan gudang 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 yang akan memerlukan akses warehouse yang berbeda.

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

  4. Di kolom Additional JDBC parameters pada halaman Connection Settings, tambahkan parameter 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 melakukan sudo sebagai pengguna yang Anda tetapkan nilai nama warehouse-nya.

Mengelola fitur penangguhan otomatis Snowflake

Warehouse Snowflake memiliki fitur penangguhan otomatis yang diaktifkan secara default. Setelah periode yang ditentukan, warehouse akan ditangguhkan secara otomatis. Jika warehouse 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 mana pun yang membuat kueri dengan halaman Eksplorasi.

Dua metode yang biasanya digunakan untuk mengelola hal ini:

  1. Snowflake memiliki fitur auto-resume yang akan melanjutkan warehouse saat di-query. Namun, melanjutkan warehouse dapat memerlukan waktu hingga lima menit, sehingga menyebabkan kueri berhenti merespons selama lima menit sebelum ditampilkan. Auto-resume 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 auto-resume.

  2. Jika tabel turunan persisten (PDT) telah diaktifkan, setelan default Looker adalah memeriksa pembuatan ulang tabel turunan setiap 5 menit. Pemeriksaan ini akan membuat warehouse Snowflake tetap aktif. Namun, Anda mungkin ingin Snowflake menangguhkan warehouse selama jam non-kerja untuk mengurangi biaya. Hal ini dapat dilakukan dengan mengubah jadwal pembuatan ulang 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 Anda dan skema sementara yang akan digunakan Looker untuk membuat PDT. Di halaman Connections Settings Looker, pada tab Optional Settings di bagian Persistent Derived Table (PDT) Settings, aktifkan tombol Enable PDTs. Kemudian, di kolom Temp database, masukkan nama skema sementara yang akan digunakan Looker untuk membuat PDT.

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 mengelola sistem pendaftaran PDT-nya.

Mengonfigurasi OAuth untuk koneksi Snowflake

Looker mendukung OAuth untuk koneksi Snowflake, yang berarti setiap pengguna Looker melakukan autentikasi 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
  • Menggunakan 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 melalui database secara langsung

Dengan koneksi Snowflake yang menggunakan OAuth, pengguna harus login lagi secara berkala saat masa berlaku token OAuth mereka berakhir. Usia 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 pengguna membiarkan masa berlaku token OAuth-nya habis, jadwal atau pemberitahuan Looker yang mereka miliki 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 otorisasi ulang 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 tidak hanya per kueri. Artinya, Looker akan menggunakan hasil yang di-cache hanya jika pengguna yang sama telah menjalankan kueri yang sama dalam periode penyimpanan cache. Untuk informasi selengkapnya tentang caching, lihat halaman dokumentasi Meng-cache kueri.
  • Saat menggunakan OAuth, Anda tidak dapat beralih ke peran lain 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 administrator Looker melakukan sudo sebagai pengguna lain, administrator tersebut akan menggunakan token akses OAuth pengguna tersebut. Saat pengguna mengizinkan koneksi OAuth di Looker, dialog Authorize OAuth Connection akan memberi tahu mereka bahwa pengguna Looker yang memiliki hak istimewa, seperti administrator atau developer, mungkin dapat melihat data mereka. Jika masa berlaku token akses pengguna telah berakhir, administrator tidak dapat membuat token baru atas nama pengguna yang di-sudo. Lihat halaman dokumentasi Pengguna untuk mengetahui informasi tentang cara menggunakan 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> sebagai 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');
    

    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 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 Test di bagian bawah halaman Connections Settings, seperti yang dijelaskan di halaman dokumentasi Menghubungkan Looker ke database Anda.
  • Pilih tombol Test di samping listingan koneksi di halaman admin Connections, seperti yang dijelaskan di halaman dokumentasi Connections.

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 Eksplorasi atau dasbor model, lalu 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 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 Explore, 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 Authorize OAuth Connection di Looker yang memberi tahu Anda bahwa mengizinkan koneksi akan memungkinkan instance Looker mengakses data atas nama Anda, dan bahwa pengguna Looker yang memiliki hak istimewa, seperti administrator atau developer, mungkin memiliki visibilitas ke data Anda. Pilih Authorize untuk melanjutkan ke dialog login Snowflake. (Looker menyimpan izin ini di penyimpanan lokal browser Anda; jika Anda menghapus penyimpanan lokal, dialog akan muncul lagi saat Anda memulai alur otorisasi OAuth berikutnya.) Masukkan kredensial Snowflake Anda dan pilih Log In, lalu pilih Allow 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 Anda.

Komentar konteks untuk koneksi Snowflake

Untuk sebagian besar dialek database, Looker menambahkan komentar konteks SQL ke awal setiap kueri SQL keluar. Untuk koneksi Snowflake, Looker menambahkan komentar konteks ke akhir setiap kueri SQL, bukan di awal, karena Snowflake menghapus komentar di awal.

Untuk mengetahui informasi selengkapnya tentang komentar konteks dan kolom yang disertakan, lihat Komentar konteks untuk kueri SQL.

Parameter JDBC yang didukung

Untuk Snowflake, Looker mendukung parameter JDBC berikut di kolom Additional JDBC parameters untuk koneksi. Lihat dokumentasi database Anda untuk mengetahui informasi tentang parameter ini.

  • account
  • allowUnderscoresInHost
  • application
  • authenticator
  • AUTOCOMMIT
  • CLEAR_BATCH_ONLY_AFTER_SUCCESSFUL_EXECUTION
  • CLIENT_SESSION_KEEP_ALIVE
  • db
  • disableGcsDefaultCredentials
  • disableOCSPChecks
  • disableSamlURLCheck
  • disableSocksProxy
  • ENABLE_WILDCARDS_IN_SHOW_METADATA_COMMANDS
  • enablePatternSearch
  • HTTP_CLIENT_CONNECTION_TIMEOUT
  • HTTP_CLIENT_SOCKET_TIMEOUT
  • IMPLICIT_SERVER_SIDE_QUERY_TIMEOUT
  • insecureMode
  • JDBC_DEFAULT_FORMAT_DATE_WITH_TIMEZONE
  • JDBC_GET_DATE_USE_NULL_TIMEZONE
  • jdbc_use_session_timezone
  • JDBC_TREAT_DECIMAL_AS_INT
  • loginTimeout
  • MAX_TLS_VERSION
  • maxHttpRetries
  • MIN_TLS_VERSION
  • MULTI_STATEMENT_COUNT
  • networkTimeout
  • nonProxyHosts: Untuk instance Looker publik, nilai untuk parameter nonProxyHosts harus berupa alamat IP publik instance.
  • oauthAuthorizationUrl: Untuk instance Looker publik, nilai untuk parameter oauthAuthorizationUrl harus berupa alamat IP publik instance.
  • oauthClientId
  • oauthClientSecret
  • oauthScope
  • oauthTokenRequestUrl: Untuk instance Looker publik, nilai untuk parameter oauthTokenRequestUrl harus berupa alamat IP publik instance.
  • ocspFailOpen
  • OWNER_ONLY_STAGE_FILE_PERMISSIONS_ENABLED
  • passcode
  • passcodeInPassword
  • password
  • private_key
  • private_key_base64
  • private_key_pwd
  • privatekey
  • proxyHost: Untuk instance Looker publik, nilai untuk parameter proxyHost harus berupa alamat IP publik instance.
  • proxyPassword
  • proxyPort
  • proxyProtocol
  • proxyUser
  • QUERY_TAG
  • queryTimeout
  • QUOTED_IDENTIFIERS_IGNORE_CASE
  • ROLE
  • schema
  • STATEMENT_QUEUED_TIMEOUT_IN_SECONDS
  • STATEMENT_TIMEOUT_IN_SECONDS
  • stringsQuotedForColumnDef
  • TIMESTAMP_INPUT_FORMAT
  • TIMESTAMP_TYPE_MAPPING
  • TIMEZONE
  • token
  • tracing
  • useProxy
  • user
  • warehouse
  • WEEK_OF_YEAR_POLICY
  • WEEK_START
  • workloadIdentityProvider

Dukungan fitur

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

Snowflake mendukung fitur berikut mulai Looker 26.20:

Fitur Didukung?
Looker (Google Cloud core)
Agregat simetris
Tabel turunan
Tabel turunan SQL persisten
Tabel turunan berbasis persisten
Tampilan stabil
Penghentian kueri
Pivot berbasis SQL
Zona waktu
SSL
Subtotal
Parameter tambahan JDBC
Peka huruf besar/kecil
Jenis lokasi
Jenis daftar
Persentil
Persentil berbeda
SQL Runner Show Processes
SQL Runner Describe Table
SQL Runner Show Indexes
SQL Runner Select 10
SQL Runner Count
SQL Explain
Kredensial OAuth 2.0
Komentar konteks
Penggabungan koneksi
Sketsa HLL
Aggregate awareness
PDT inkremental
Milidetik
Mikrodetik
Tampilan terwujud
Pengukuran dari periode ke periode
Jumlah perkiraan berbeda
Model analisis dalam database
Kalender kustom

Langkah berikutnya

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