Oracle

Criptare il traffico di rete

È una best practice criptare il traffico di rete tra l'applicazione Looker e il tuo database. Valuta una delle opzioni descritte nella pagina della documentazione Abilita l'accesso sicuro ai database.

Se ti interessa utilizzare la crittografia SSL, consulta la documentazione di Oracle.

Creare un utente Looker

Innanzitutto, crea un utente Looker designato:

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

Poi, consenti al nuovo utente Looker di creare sessioni:

GRANT CREATE SESSION TO LOOKER;

Infine, assegna all'utente Looker le autorizzazioni SELECT appropriate per le tabelle di dati a cui prevedi di accedere da Looker. Se in futuro vuoi accedere ad altre tabelle, dovrai concedere SELECT anche a queste nuove tabelle.

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

Assicurarsi che Looker possa vedere tutte le tabelle

Looker potrebbe non essere in grado di identificare le tabelle (soprattutto quelle vuote) senza prima raccogliere le statistiche in Oracle. Se le tabelle di cui hai bisogno non vengono visualizzate in LookML o SQL Runner, prova a eseguire:

EXEC DBMS_STATS.GATHER_DATABASE_STATS;

Per metodi alternativi, consulta la documentazione di Oracle.

Configurare gli oggetti di database principali

Il DBA Oracle deve configurare i seguenti oggetti e autorizzazioni in Oracle. I seguenti comandi creano LOOKER_SESSION e LOOKER_SQL come sinonimi di V$SESSION e V$SQL.

Esegui i seguenti comandi come utente root per completare questa configurazione. Questi esempi presuppongono che il nome dell'utente Looker sia 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='LOOKER';

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SQL FOR LOOKER_SQL;

GRANT SELECT ON LOOKER.LOOKER_SQL TO LOOKER;

-- Pay special attention to the following 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 deployment
    "SERIAL#",
    -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
    (SERIAL# || ',' || INST_ID) AS "SERIAL#",
    AUDSID
  -- If using a single node Oracle deployment
  FROM V$SESSION
  -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
  FROM GV$SESSION
  WHERE
    USERNAME='LOOKER';

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SESSION FOR LOOKER_SESSION;

GRANT SELECT ON LOOKER.LOOKER_SESSION TO LOOKER;

Configurare gli aggregati simmetrici

Il DBA Oracle deve configurare la funzione LOOKER_HASH per abilitare gli aggregati simmetrici. La funzione LOOKER_HASH è un sinonimo della funzione dbms_crypto.hash di Oracle. Il DBA deve anche creare il sinonimo e i privilegi associati. I seguenti comandi presuppongono che il nome dell'utente Looker sia 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;

Configurare le tabelle derivate permanenti

Per abilitare le tabelle derivate permanenti, assegna all'utente Looker le autorizzazioni UNLIMITED TABLESPACE e CREATE TABLE. I seguenti comandi presuppongono che il nome dell'utente Looker sia LOOKER:

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

Configurare l'interruzione delle query

Segui queste istruzioni per configurare l'interruzione delle query per un deployment Oracle standard o un deployment Amazon RDS.

Deployment Oracle standard

Per configurare l'interruzione delle query nei deployment Oracle standard, il DBA Oracle deve creare la procedura LOOKER_KILL_QUERY come sinonimo di ALTER SYSTEM KILL SESSION. Per farlo, esegui il seguente comando:

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 deployment
  FROM V$SESSION
  -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
  FROM GV$SESSION
  WHERE
    username = USER
    AND sid = p_sid
    -- If using a single node Oracle deployment
    AND serial# = p_serial#;
    -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
    AND (SERIAL# || ',' || INST_ID) = p_serial#;

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

Il DBA dovrà anche eseguire questi comandi correlati:

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

Deployment Amazon RDS

Nei deployment Oracle di Amazon RDS, la procedura rdsadmin.rdsadmin_util.kill viene utilizzata per interrompere le query. Per utilizzare questa procedura, all'utente del database Looker deve essere assegnato il ruolo DBA.

Per consentire all'utente del database Looker di interrompere le query, esegui il seguente comando:

GRANT DBA TO LOOKER;

Creare la connessione Looker al database

Nella sezione Amministrazione di Looker, seleziona Connessioni e poi fai clic su Aggiungi connessione.

Compila i dettagli della connessione. La maggior parte delle impostazioni è comune alla maggioranza dei dialetti di database. Per informazioni, consulta la pagina della documentazione Connessione di Looker al tuo database. Le seguenti impostazioni sono specifiche di Oracle:

  • Nome: specifica il nome della connessione. Questo è il modo in cui farai riferimento alla connessione nei progetti LookML.
  • Dialetto: Oracle.
  • Usa TNS: abilita le connessioni TNS (Transparent Network Substrate).
  • Host: nome host o alias TNS.
  • Porta: porta del database.
  • Database: nome del database (se non utilizzi TNS).
  • Nome servizio: nome del servizio (se utilizzi TNS).
  • Nome utente: nome utente del database o Temp Database se le PDT sono abilitate.
  • Password: password dell'utente del database.
  • Abilita PDT: utilizza questo pulsante di attivazione/disattivazione per abilitare le tabelle derivate permanenti. Quando le PDT sono abilitate, la finestra Connessione mostra impostazioni PDT aggiuntive e la sezione Override PDT.
  • Temp Database: in Oracle un utente è uno schema, quindi deve essere specificato come nome dell'utente del database. Per questo esempio, utilizzerai il valore dello schema temporaneo LOOKER.
  • Numero massimo di connessioni del builder di PDT: specifica il numero di build PDT simultanee possibili su questa connessione. L'impostazione di un valore troppo alto potrebbe influire negativamente sui tempi di query. Per saperne di più, consulta la pagina della documentazione Connessione di Looker al tuo database.
  • Parametri JDBC aggiuntivi: lascia questo campo vuoto, poiché Oracle non supporta parametri JDBC aggiuntivi.
  • Programma di manutenzione: un'espressione cron che indica quando Looker deve controllare i gruppi di dati e le tabelle derivate permanenti. Scopri di più su questa impostazione nella documentazione relativa al programma di manutenzione.
  • SSL: seleziona questa opzione per utilizzare le connessioni SSL.
  • Verifica SSL: ignora questo campo. Oracle utilizzerà il Truststore Java predefinito per verificare SSL.
  • Numero massimo di connessioni per nodo: inizialmente puoi lasciare questa impostazione al valore predefinito. Scopri di più su questa impostazione nella sezione Numero massimo di connessioni per nodo della pagina della documentazione Connessione di Looker al tuo database.
  • Timeout del pool di connessioni: inizialmente puoi lasciare questa impostazione al valore predefinito. Scopri di più su questa impostazione nella sezione Timeout del pool di connessioni della pagina della documentazione Connessione di Looker al tuo database.
  • SQL Runner Precache: per impedire a SQL Runner di precaricare le informazioni sulle tabelle e di caricare le informazioni sulle tabelle solo quando viene selezionata una tabella, deseleziona questa opzione. Scopri di più su questa impostazione nella sezione SQL Runner Precache della pagina della documentazione Connessione di Looker al tuo database.
  • Fuso orario database: specifica il fuso orario utilizzato nel database. Lascia vuoto questo campo se non vuoi la conversione del fuso orario. Per saperne di più, consulta la pagina della documentazione Utilizzare le impostazioni del fuso orario.

Per verificare che la connessione sia riuscita, fai clic su Test. Per informazioni sulla risoluzione dei problemi, consulta la pagina della documentazione Testare la connettività del database.

Per salvare queste impostazioni, fai clic su Connetti. Nella sezione Amministrazione di Looker, seleziona Connessioni e poi fai clic su Aggiungi connessione.

Funzionalità supportate

Affinché Looker supporti alcune funzionalità, anche il dialetto del database deve supportarle.

A partire da Looker 25.20, Oracle supporta le seguenti funzionalità:

Funzionalità Supportata?
Looker (Google Cloud core)
Aggregati simmetrici
Tabelle derivate
Tabelle derivate SQL permanenti
Tabelle derivate permanenti native
Visualizzazioni stabili
Interruzione delle query
Pivot basati su SQL
Fusi orari
SSL
Subtotali
Parametri JDBC aggiuntivi
Maiuscole/minuscole
Tipo di località
Tipo di elenco
Percentile
Percentile valori distinti
SQL Runner Mostra processi
SQL Runner Descrivi tabella
SQL Runner Mostra indici
SQL Runner Seleziona 10
SQL Runner Count
Spiega SQL
Credenziali OAuth 2.0
Commenti di contesto
Pool di connessioni
Schizzi HLL
Riconoscimento degli aggregati
PDT incrementali
Millisecondi
Microsecondi
Viste materializzate
Misure in base al periodo
Conteggio approssimato valori distinti