Oracle Autonomous Data Warehouse di Cloud

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.

Menyiapkan host Looker untuk koneksi

Semua koneksi Oracle ADWC memerlukan SSL dan autentikasi sertifikat. Agar Looker dapat terhubung ke instance Oracle ADWC, Anda harus mendownload file dompet Oracle dan menginstalnya di server Looker. Jika Anda adalah pengguna Looker yang dihosting pelanggan, Anda memerlukan administrator sistem yang memiliki akses ke server Looker untuk melakukannya. Jika Anda adalah pengguna yang dihosting Looker, hubungi Dukungan Looker.

Untuk menginstal dompet Oracle di server Looker:

  1. Download dompet Oracle Anda ke komputer lokal. Anda akan memiliki file ZIP bernama Wallet_databasename.zip.

  2. Di server Looker, buat direktori untuk menyimpan file zip dompet:

    mkdir /home/looker/looker/credentials
    
  3. Salin file zip dompet dari komputer lokal Anda ke server Looker. Contoh ini menggunakan scp dan menempatkan file di /home/looker/looker/credentials:

    scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
    
  4. Ekstrak file zip dompet. Contoh ini menggunakan perintah unzip:

    cd /home/looker/looker/credentials
    unzip Wallet_databasename.zip
    
  5. Verifikasi konten dompet dengan perintah ls. Berikut adalah file yang harus Anda miliki:

     ls
    
     cwallet.sso  keystore.jks      sqlnet.ora    truststore.jks
     ewallet.p12  ojdbc.properties  tnsnames.ora
    

    Looker terhubung ke Oracle ADWC menggunakan Oracle Wallet dengan Driver JDBC Thin 18.3. Untuk ini, Anda memerlukan Alias Transparent Network Substrate (TNS) dari tingkat Layanan ADWC Oracle untuk database dan PATH ke file wallet Oracle Anda.

  6. Untuk mendapatkan Alias TNS database Anda, jalankan perintah ini:

    cat tnsnames.ora
    

    Akan ada tiga alias TNS yang dapat dipilih: dbname_high, dbname_medium, dan dbname_low. Alias ini sesuai dengan berbagai tingkat layanan. Protokol, host, port, nama layanan, dan informasi SSL disertakan dalam file ini. Untuk contoh ini, kita akan menggunakan dbname_medium.

Membuat pengguna Looker

Pertama, buat pengguna Looker yang ditetapkan:

  -- connect / as sysdba;
  CREATE USER LOOKER IDENTIFIED BY <password>
  DEFAULT TABLESPACE USERS
  TEMPORARY TABLESPACE TEMP;

Selanjutnya, beri pengguna Looker baru kemampuan untuk membuat sesi:

  GRANT CREATE SESSION TO LOOKER;

Terakhir, berikan izin SELECT yang sesuai kepada pengguna Looker untuk tabel data yang ingin Anda akses dari Looker. Jika ingin mengakses tabel tambahan pada masa mendatang, Anda juga harus memberikan SELECT pada tabel baru tersebut.

  GRANT SELECT ON -- <all tables that will be used by looker>;

Memastikan Looker dapat melihat semua tabel

Looker mungkin tidak dapat mengidentifikasi tabel (terutama tabel kosong) tanpa mengumpulkan statistik terlebih dahulu di Oracle. Jika tabel yang Anda perlukan tidak muncul di LookML atau SQL Runner yang dihasilkan, jalankan perintah ini:

  EXEC DBMS_STATS.GATHER_DATABASE_STATS;

Untuk metode alternatif, lihat dokumentasi Oracle Anda.

Menyiapkan objek database utama

DBA Oracle Anda harus menyiapkan objek dan izin berikut di Oracle. Perintah berikut membuat LOOKER_SESSION dan LOOKER_SQL sebagai sinonim untuk V$SESSION dan V$SQL.

Jalankan perintah berikut sebagai pengguna root untuk menyelesaikan penyiapan ini. Contoh ini mengasumsikan bahwa nama pengguna Looker adalah LOOKER.

CREATE OR REPLACE VIEW LOOKER_SQL
AS
  SELECT
    sql.SQL_ID,
    sql.SQL_TEXT
  FROM
    V$SQL sql,
    v$session sess
  WHERE
    sess.SQL_ADDRESS = sql.ADDRESS AND
    sess.username=&apos;LOOKER&apos;;

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SQL FOR LOOKER_SQL;

GRANT SELECT ON LOOKER.LOOKER_SQL TO LOOKER;

-- Pay special attention to the comments:
-- the following view will be different for clustered Oracle deployments
CREATE OR REPLACE VIEW LOOKER_SESSION
AS
  SELECT
    SID,
    USERNAME,
    TYPE,
    STATUS,
    SQL_ID,
    -- If using a single node Oracle ADWC deployment
    "SERIAL#",
    -- If using a clustered Oracle ADWC deployment
    (SERIAL# || ',' || INST_ID) AS "SERIAL#",
    AUDSID
  -- If using a single node Oracle ADWC deployment
  FROM V$SESSION
  -- If using a clustered Oracle ADWC deployment
  FROM GV$SESSION
  WHERE
    USERNAME=&apos;LOOKER&apos;;

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SESSION FOR LOOKER_SESSION;

GRANT SELECT ON LOOKER.LOOKER_SESSION TO LOOKER;

Menyiapkan agregat simetris

DBA Oracle Anda harus menyiapkan fungsi LOOKER_HASH untuk mengaktifkan agregat simetris. Fungsi LOOKER_HASH adalah sinonim untuk fungsi dbms_crypto.hash Oracle. DBA juga harus membuat sinonim dan hak istimewa terkait. Contoh berikut mengasumsikan bahwa nama pengguna Looker adalah LOOKER:

CREATE OR REPLACE FUNCTION LOOKER_HASH(bytes raw, prec number)
  RETURN raw AS
    BEGIN
  return(dbms_crypto.HASH(bytes, prec));
END;

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_HASH FOR LOOKER_HASH;

GRANT EXECUTE ON LOOKER.LOOKER_HASH TO LOOKER;

GRANT EXECUTE ON SYS.LOOKER_HASH TO LOOKER;

Bergantung pada konfigurasi database Oracle Anda, awalan SYS dapat berupa SYSDBA, ADMIN, atau tidak diperlukan.

Menyiapkan tabel turunan persisten

Untuk mengaktifkan tabel turunan persisten, berikan izin UNLIMITED TABLESPACE dan CREATE TABLE kepada pengguna Looker. Perintah berikut mengasumsikan bahwa nama pengguna Looker adalah LOOKER:

GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;

Menyiapkan penghentian kueri

Untuk menyiapkan penghentian kueri, DBA Oracle harus membuat prosedur LOOKER_KILL_QUERY sebagai sinonim ALTER SYSTEM KILL SESSION. Untuk melakukannya, jalankan perintah berikut:

CREATE OR REPLACE PROCEDURE LOOKER_KILL_QUERY(p_sid in varchar2,
                                              p_serial# in varchar2)
IS
  cursor_name pls_integer default dbms_sql.open_cursor;
  ignore pls_integer;

BEGIN
  SELECT
    COUNT(*) INTO IGNORE
  -- If using a single node Oracle ADWC deployment
  FROM V$SESSION
  -- If using a clustered Oracle ADWC deployment
  FROM GV$SESSION
  WHERE
    username = USER
    AND sid = p_sid
    -- If using a single node Oracle ADWC deployment
    AND serial# = p_serial#;
    -- If using a clustered Oracle ADWC deployment
    AND (SERIAL# || ',' || INST_ID) = p_serial#;

  IF (ignore = 1)
  THEN
    dbms_sql.parse(cursor_name,
                   &apos;ALTER SYSTEM KILL SESSION &apos;&apos;&apos;
                   || p_sid || &apos;,&apos; || p_serial# || &apos;&apos;&apos;&apos;,
                   dbms_sql.native);
    ignore := dbms_sql.execute(cursor_name);
  ELSE
    raise_application_error(-20001,
                            &apos;You do not own session &apos;&apos;&apos; ||
                            p_sid || &apos;,&apos; || p_serial# ||
                            &apos;&apos;&apos;&apos;);
  END IF;
END;

DBA juga harus menjalankan perintah terkait berikut:

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_KILL_QUERY FOR SYS.LOOKER_KILL_QUERY;
GRANT EXECUTE ON SYS.LOOKER_KILL_QUERY TO LOOKER;

Bergantung pada konfigurasi database Oracle Anda, awalan SYS dapat berupa SYSDBA, ADMIN, atau tidak diperlukan.

Membuat koneksi Looker ke database Anda

Ikuti langkah-langkah berikut untuk membuat koneksi dari Looker ke database Anda:

  1. Di bagian Admin di Looker, pilih Koneksi, lalu klik Tambahkan Koneksi.
  2. Isi detail koneksi. Sebagian besar setelan bersifat umum untuk sebagian besar dialek database. Lihat halaman dokumentasi Menghubungkan Looker ke database Anda untuk mengetahui informasinya. Setelan berikut khusus untuk Oracle ADWC:

    • Dialek: Oracle ADWC.
    • Gunakan TNS: Mengaktifkan koneksi Transparent Network Substrate (TNS).
    • Host: Nama host atau alias TNS. Untuk contoh ini, dbname_medium.
    • Port: Biarkan sebagai default; Looker akan menemukan port dari file tnsnames.ora.
    • Nama Layanan: Biarkan kosong; Looker akan menemukan nama layanan dari file tnsnames.ora.
    • Nama pengguna: Nama pengguna database atau Database Temp jika PDT diaktifkan.
    • Sandi: Sandi pengguna database.
    • Aktifkan PDT: Gunakan tombol ini untuk mengaktifkan tabel turunan persisten. Jika PDT diaktifkan, jendela Koneksi akan menampilkan setelan PDT tambahan dan bagian Penggantian PDT.
    • Temp Database: Di Oracle, pengguna adalah skema, sehingga harus ditentukan sebagai nama pengguna database. Untuk contoh ini, Anda akan menggunakan nilai skema sementara LOOKER.
    • Parameter JDBC Tambahan: JALAN ke dompet Oracle Anda di server Looker. Untuk contoh ini, parameternya adalah /home/looker/looker/credentials.
    • Pada deployment lama yang dihosting Looker, nilai ini akan menjadi /home/lookerops/looker/credentials.
    • Pada deployment yang dihosting Looker di hosting generasi berikutnya, nilai ini akan menjadi /app/credentials.
    • SSL dan Verifikasi SSL: Anda dapat mengabaikan kolom ini; Looker akan selalu menggunakan SSL dengan Oracle ADWC.
  3. Untuk memverifikasi bahwa koneksi berhasil, klik Uji. Lihat halaman dokumentasi Menguji konektivitas database untuk mengetahui informasi pemecahan masalah. Saat Anda mengklik Uji, Looker akan membuat string JDBC seperti ini:

    jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/home/looker/looker/credentials

  4. Untuk menyimpan setelan ini, klik Hubungkan.

Dukungan fitur

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

Oracle ADWC mendukung fitur berikut mulai Looker 24.20:

Fitur Didukung?
Level Dukungan
Integrasi
Looker (Google Cloud core)
Tidak
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
Tidak
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
Tidak
Kredensial Oauth
Tidak
Komentar Konteks
Ya
Penggabungan Koneksi
Tidak
Sketsa HLL
Tidak
Kesadaran Agregat
Ya
PDT inkremental
Tidak
Milidetik
Ya
Mikrodetik
Ya
Tampilan Terwujud
Tidak
Perkiraan Jumlah Berbeda
Tidak