PrestoDB dan Trino

Halaman ini membahas cara menghubungkan Looker ke PrestoDB atau Trino.

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

  • Dialek: Pilih PrestoDB atau Trino.

    PrestoSQL telah berganti nama menjadi Trino. Jika Anda menggunakan versi Trino yang lebih lama dari 352, pilih PrestoSQL dari menu dialek Looker.

  • Host: Nama host database.

  • Port: Port database. Port default-nya adalah 8080.

  • Database: "Katalog" atau "konektor", dalam istilah Presto.

  • Nama pengguna: Nama pengguna pengguna yang akan menjalankan kueri.

    Informasi ini hanya dikirim ke server database jika SSL diaktifkan.

  • Sandi: Sandi untuk pengguna yang akan menjalankan kueri.

    Informasi ini hanya dikirim ke server database jika SSL diaktifkan.

  • Skema: Skema default yang akan digunakan jika tidak ada skema yang ditentukan.

  • Autentikasi: Pilih Database Account atau OAuth:

    • Gunakan Database Account untuk menentukan Username dan Password akun pengguna database 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). Tindakan ini akan menampilkan kolom PDT tambahan dan bagian PDT Overrides untuk koneksi.

  • Database Temp: Skema untuk menulis PDT. (Versi 3.50 menambahkan dukungan PDT ke Presto. Lihat bagian Mengonfigurasi PrestoDB atau Trino untuk PDT di halaman ini untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi Presto untuk dukungan PDT.)

  • Parameter JDBC tambahan: Parameter tambahan apa pun dari driver JDBC PrestoDB, driver JDBC Trino, atau driver JDBC Starburst.

  • SSL: Centang untuk mengaktifkan koneksi SSL.

  • Verify SSL: Abaikan kolom ini. Semua koneksi SSL akan menggunakan Java Truststore default, kecuali jika diarahkan untuk melakukan hal lain dengan parameter JDBC PrestoDB, driver JDBC Trino, atau driver JDBC Starburst. Masukkan parameter ini di kolom Additional JDBC parameters.

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

Untuk menyimpan setelan ini, klik Hubungkan.

Untuk mengetahui informasi selengkapnya tentang setelan koneksi, lihat halaman dokumentasi Menghubungkan Looker ke database.

Mengonfigurasi PrestoDB atau Trino untuk PDT

PDT tidak didukung untuk koneksi yang menggunakan OAuth.

Dukungan PDT bergantung pada konektor yang Anda gunakan dengan PrestoDB atau Trino . Bagian ini menjelaskan setelan konfigurasi yang diperlukan untuk database awal. Contoh ini mengasumsikan bahwa konektor yang Anda gunakan adalah hive.

File properti katalog Hive harus berisi beberapa properti konfigurasi, yang dijelaskan di bagian ini.

Hal berikut diperlukan karena Presto meng-cache hasil metastore Hive, dan Looker harus dapat langsung melihat tabel:

hive.metastore-cache-ttl = 0s

Kedua properti ini diperlukan karena Looker harus dapat menghapus dan mengganti nama PDT:

hive.allow-rename-table=true
hive.allow-drop-table=true

Sebagai referensi, di server pengujian Presto internal, kami menggunakan file hive.properties berikut, yang digunakan untuk semua skema Hive:

hive.s3.connect-timeout=1m
hive.s3.max-backoff-time=10m
hive.s3.max-error-retries=50
hive.metastore-cache-ttl = 0s
hive.metastore-refresh-interval = 5s
hive.s3.max-connections=500
hive.s3.max-client-retries=50
connector.name=hive-hadoop2
hive.s3.socket-timeout=2m
hive.s3.staging-directory=/mnt/tmp/
hive.s3.use-instance-credentials=true
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
hive.parquet.use-column-names=true
hive.allow-drop-table=true
hive.metastore.uri=thrift://<metastore-server>:9083
hive.storage-format=ORC
hive.allow-rename-table=true

Mengonfigurasi OAuth untuk koneksi Trino

Looker mendukung OAuth untuk koneksi Trino, yang berarti setiap pengguna Looker melakukan autentikasi ke database dan memberi otorisasi kepada Looker untuk menjalankan kueri di 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, bukan menyematkan ID dan sandi database di beberapa tempat
  • Mencabut otorisasi untuk pengguna tertentu melalui database secara langsung

Dengan koneksi Trino yang menggunakan OAuth, pengguna harus login lagi secara berkala saat token OAuth mereka habis masa berlakunya.

Perhatikan hal berikut untuk koneksi OAuth tingkat database:

  • Jika pengguna membiarkan token OAuth-nya habis masa berlakunya, jadwal atau pemberitahuan 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.
  • Tabel turunan persisten (PDT) tidak didukung untuk koneksi Trino 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.
  • Saat login ke Azure AD dari Looker menggunakan OAuth, Looker tidak menampilkan dialog izin pengguna yang eksplisit. Dengan menyiapkan OAuth dengan Looker, Anda secara implisit mengizinkan instance Looker mengakses data Trino Anda.

Mendaftarkan aplikasi

Untuk mengaktifkan OAuth untuk Trino, daftarkan aplikasi terlebih dahulu menggunakan penyedia identitas yang didukung. Looker hanya mendukung Microsoft Entra ID (sebelumnya dikenal sebagai Azure AD) untuk OAuth dengan Trino.

Prasyarat

  • Anda harus memiliki langganan Azure.
  • Anda harus memiliki izin administratif di Microsoft Entra ID.

Untuk mendaftarkan aplikasi, ikuti langkah-langkah berikut:

  1. Buka Portal Azure dan login dengan kredensial Anda.
  2. Di kotak penelusuran Azure Portal, telusuri "Microsoft Entra ID" dan pilih dari hasil.
  3. Di layanan Microsoft Entra ID, klik Pendaftaran baru di bagian Pendaftaran aplikasi pada kategori Kelola.
  4. Isi formulir pendaftaran sebagai berikut:
    • Nama: Berikan nama deskriptif untuk aplikasi, seperti Looker Trino Connection.
    • Jenis akun yang didukung: Pilih opsi yang sesuai berdasarkan cara Anda ingin membatasi akses. Untuk kasus penggunaan internal, Anda dapat memilih Accounts in this organizational directory only.
    • URI Pengalihan: Pilih platform Web, lalu masukkan URI pengalihan Looker Anda. Tampilannya akan terlihat seperti https://YOUR_LOOKER_HOSTNAME/external_oath/redirect.
  5. Klik Daftar.
  6. Kumpulkan Client ID, Tenant ID, dan Client Secret untuk dimasukkan ke koneksi Looker Anda nanti.
    • Anda dapat menemukan Client ID dan Tenant ID di halaman Ringkasan.
    • Jika tidak mengetahui Rahasia Klien, Anda harus membuat yang baru. Klik Certificates & secrets di bagian Manage, lalu klik New client secret.
  7. Klik Ekspos API di bagian Kelola.
  8. Di samping URI ID Aplikasi, klik Tambahkan.
  9. Masukkan Client ID Anda. URL tersebut seharusnya dalam format berikut: api://CLIENT_ID.

Selanjutnya, ikuti langkah-langkah berikut di Azure Portal untuk membuat cakupan baru yang akan digunakan dengan Looker:

  1. Klik Tambahkan cakupan di bagian Cakupan yang ditentukan oleh API ini.
  2. Tambahkan Nama Cakupan untuk cakupan baru. Looker mengharapkan nama cakupan Anda adalah: TrinoUsers.Read.All.

    Nama TrinoUsers.Read.All menyiratkan izin hanya baca, tetapi nama itu sendiri tidak benar-benar menetapkan atau menerapkan izin apa pun. Pastikan Anda menyiapkan cakupan untuk hanya mengizinkan akses baca ke database.

  3. Tambahkan Nama tampilan dan Deskripsi.

  4. Di pemilih Siapa yang dapat memberikan izin?, pilih Admin dan pengguna.

  5. Klik Tambahkan cakupan.

  6. Di bagian Aplikasi klien yang diizinkan, klik Tambahkan aplikasi klien.

  7. Masukkan Client-ID dan cakupan yang baru dibuat.

  8. Klik Tambahkan aplikasi.

Selanjutnya, untuk memberikan izin API yang diperlukan kepada Looker, ikuti langkah-langkah berikut:

  1. Di bagian Manage, klik API Permissions.
  2. Klik Add a permission.
  3. Pilih tab API Saya di bagian atas.
  4. Dalam daftar pendaftaran aplikasi, pilih pendaftaran yang baru saja Anda buat, seperti Looker Trino Connection.
  5. Centang kotak Izin yang didelegasikan.
  6. Centang kotak TrinoUsers.Read.All.
  7. Pilih Tambahkan izin.

Mengonfigurasi database untuk menggunakan OAuth

Selanjutnya, untuk mengonfigurasi database Trino agar menggunakan OAuth, tambahkan baris berikut ke file config.properties Trino. (Ganti lima baris pertama variabel berhuruf besar dengan nilai Anda sendiri.)

  • YOUR_HTTPS_PORT
  • PATH_TO_YOUR_SSL_CERTIFICATE
  • YOUR_TENANT_ID
  • YOUR_CLIENT_ID
  • YOUR_SHARED_SECRET
# enable SSL for OAuth
http-server.https.enabled=true
http-server.https.port=YOUR_HTTPS_PORT
http-server.https.keystore.path=PATH_TO_YOUR_SSL_CERTIFICATE

# enable OAuth 2.0
http-server.authentication.type=oauth2
http-server.authentication.oauth2.issuer=https://sts.windows.net/YOUR_TENANT_ID/
http-server.authentication.oauth2.client-id=NA_required_but_not_used
http-server.authentication.oauth2.client-secret=NA_required_but_not_used

# turn off oidc discovery - Trino will inspect tokens locally instead
http-server.authentication.oauth2.oidc.discovery=false

# URLs that Trino requires for OAuth
http-server.authentication.oauth2.jwks-url=https://login.microsoftonline.com/common/discovery/v2.0/keys
http-server.authentication.oauth2.auth-url=NA_required_but_not_used
http-server.authentication.oauth2.token-url=NA_required_but_not_used

# add audience that matches the Azure AD's Application ID URI
http-server.authentication.oauth2.additional-audiences=api://YOUR_CLIENT_ID

# set shared-secret required for internal Trino communication when authentication is enabled, see: https://github.com/trinodb/trino/issues/12397
# can be generated with the following Linux command: openssl rand 512 | base64
internal-communication.shared-secret=YOUR_SHARED_SECRET

# optionally, allow some insecure http traffic
# http-server.authentication.allow-insecure-over-http=true

Login untuk menjalankan kueri

Setelah koneksi database disiapkan untuk menggunakan OAuth, pengguna akan diminta untuk login ke Microsoft Entra ID sebelum menjalankan kueri. Hal ini mencakup kueri dari Jelajah, dasbor, Tampilan, dan SQL Runner.

Pengguna juga dapat login ke Microsoft Entra ID dari bagian Kredensial Koneksi OAuth di halaman Akun mereka.

Untuk login ke Microsoft Entra ID menggunakan Looker:

  1. Klik menu pengguna Looker.
  2. Pilih Akun.
  3. Di halaman Akun, klik Login di bagian Kredensial Koneksi OAuth.

Tindakan ini akan menampilkan dialog login. Masukkan kredensial Microsoft Entra ID Anda dan pilih Login untuk memberikan akses Looker ke akun database Anda.

Setelah login ke Microsoft Entra ID 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.

Referensi

Untuk informasi selengkapnya tentang cara mengonfigurasi konektor Hive, lihat Konektor Hive PrestoDB, Konektor Hive Trino, atau Konektor Hive Starburst.

Dukungan fitur

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

PrestoDB 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
Ya
SQL Runner Describe Table
Ya
SQL Runner Show Indexes
Tidak
SQL Runner Select 10
Ya
Jumlah SQL Runner
Ya
SQL Explain
Ya
Kredensial Oauth
Tidak
Komentar Konteks
Ya
Penggabungan Koneksi
Tidak
Sketsa HLL
Ya
Kesadaran Agregat
Ya
PDT inkremental
Tidak
Milidetik
Ya
Mikrodetik
Tidak
Tampilan Terwujud
Tidak
Perkiraan Jumlah Berbeda
Ya

Trino 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
Tidak
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
Ya
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
Tidak
Sketsa HLL
Ya
Kesadaran Agregat
Ya
PDT inkremental
Tidak
Milidetik
Ya
Mikrodetik
Tidak
Tampilan Terwujud
Tidak
Perkiraan Jumlah Berbeda
Ya

Langkah berikutnya

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