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 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. Beberapa setelan dijelaskan di bawah:

  • Dialek: Pilih PrestoDB atau Trino.

    PrestoSQL telah diubah mereknya 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 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 Akun Database atau OAuth:

    • Gunakan Akun Database untuk menentukan Nama Pengguna dan Sandi 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 Penggantian PDT untuk koneksi.

  • Database Sementara: 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.

  • Verifikasi SSL: Abaikan kolom ini. Semua koneksi SSL akan menggunakan Truststore Java default, kecuali jika diarahkan untuk melakukannya 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 Anda.

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 sementara. Contoh ini mengasumsikan bahwa konektor yang Anda gunakan adalah hive.

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

Berikut ini diperlukan karena Presto menyimpan hasil metastore Hive dalam cache, dan Looker harus dapat melihat tabel dengan segera:

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 mengizinkan 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, alih-alih menyematkan ID dan sandi database di beberapa tempat
  • Mencabut otorisasi untuk pengguna tertentu secara langsung melalui database

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

Perhatikan hal berikut untuk koneksi OAuth tingkat database:

  • Jika token OAuth pengguna berakhir, jadwal atau pemberitahuan apa pun yang dimilikinya akan terpengaruh. Untuk mencegah hal ini, Looker akan mengirimkan email notifikasi kepada pemilik setiap jadwal dan setiap pemberitahuan sebelum 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 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, 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 mengetahui informasi selengkapnya tentang caching, lihat halaman dokumentasi Menyimpan kueri ke dalam cache.
  • Tabel turunan persisten (PDT) tidak didukung untuk koneksi Trino dengan OAuth.
  • 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.
  • 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 menyetujui instance Looker Anda 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 Azure Portal dan login dengan kredensial Anda.
  2. Di kotak penelusuran Azure Portal, telusuri "Microsoft Entra ID" dan pilih dari hasilnya.
  3. Di layanan Microsoft Entra ID, klik New registration di bagian App registrations pada kategori Manage.
  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 Overview.
    • Jika Anda tidak mengetahui Client Secret, Anda harus membuatnya yang baru. Klik Certificates & secrets di bagian Manage, lalu klik New client secret.
  7. Klik Expose an API di bagian Manage.
  8. Di samping URI ID Aplikasi, klik Tambahkan.
  9. Masukkan Client ID Anda. Formatnya harus sebagai 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 menetapkan atau menerapkan izin apa pun. Pastikan Anda menyiapkan cakupan untuk hanya mengizinkan akses baca ke database Anda.

  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 Anda buat.

  8. Klik Tambahkan aplikasi.

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

  1. Di bagian Kelola, klik Izin API.
  2. Klik Tambahkan izin.
  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 Anda. (Ganti lima baris pertama variabel yang ditulis dengan huruf kapital 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, Look, 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 Account, klik Log In di bagian OAuth Connection Credentials.

Tindakan ini akan menampilkan dialog login. Masukkan kredensial Microsoft Entra ID Anda, lalu pilih Log In untuk memberikan akses Looker ke akun database Anda.

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

Referensi

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

Dukungan fitur

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

PrestoDB 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
Ya
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
Tidak
Komentar konteks
Ya
Penggabungan koneksi
Tidak
Sketsa HLL
Ya
Kesadaran agregat
Ya
PDT inkremental
Tidak
Milidetik
Ya
Mikrodetik
Tidak
Tampilan terwujud
Tidak
Ukuran dari periode ke periode
Tidak
Jumlah perkiraan berbeda
Ya

Trino 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
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
SQL Runner Show Processes
Ya
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
Tidak
Sketsa HLL
Ya
Kesadaran agregat
Ya
PDT inkremental
Tidak
Milidetik
Ya
Mikrodetik
Tidak
Tampilan terwujud
Tidak
Ukuran dari periode ke periode
Tidak
Jumlah perkiraan berbeda
Ya

Langkah berikutnya

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