Oracle

Crittografia del traffico di rete in corso...

Una best practice consiste nel criptare il traffico di rete tra l'applicazione Looker e il tuo database. Prendi in considerazione una delle opzioni descritte nella pagina della documentazione Abilitazione dell'accesso sicuro al database.

Se vuoi utilizzare la crittografia SSL, consulta la documentazione di Oracle.

Creazione di un utente Looker

Innanzitutto, crea un utente Looker designato:

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

Successivamente, concedi al nuovo utente di Looker la possibilità di creare sessioni:

GRANT CREATE SESSION TO LOOKER;

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

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

Assicurarsi che Looker possa visualizzare tutte le tabelle

Assicurarsi che Looker possa visualizzare tutte le tabelle

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

EXEC DBMS_STATS.GATHER_DATABASE_STATS;

Per conoscere metodi alternativi, consulta la documentazione di Oracle.

Configurazione degli oggetti di database principali

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

Esegui questi comandi come utente root per completare la configurazione. Questi esempi presuppongono che il nome utente di 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 comments below:
-- 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;

Impostazione degli aggregati simmetrici

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

A seconda della configurazione del database Oracle, il prefisso SYS potrebbe essere SYSDBA, ADMIN o non necessario.

Configurazione di tabelle derivate permanenti

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

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

Configurazione dell'interruzione delle query

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

Deployment Oracle standard

Per configurare l'eliminazione 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 questo 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;

A seconda della configurazione del database Oracle, il prefisso SYS potrebbe essere SYSDBA, ADMIN o non necessario.

Deployment di Amazon RDS

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

Poiché il DBA è un ruolo elevato di database, potresti considerare di saltare questo passaggio e di rinunciare all'interruzione delle query in Looker.

Per assegnare le funzionalità di terminazione delle query all'utente del database Looker, esegui questo comando:

GRANT DBA TO LOOKER;

Creazione della connessione Looker al tuo database

Nella sezione Admin (Amministrazione) di Looker, seleziona Connections (Connessioni) e quindi fai clic su Add Connection (Aggiungi connessione).

Compila i dettagli della connessione. La maggior parte delle impostazioni è comune alla maggior parte dei dialetti dei database. Per informazioni, consulta la pagina della documentazione Collegamento 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.
  • Utilizza TNS: attiva 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 le PDT: utilizza questa opzione per abilitare le tabelle derivate permanenti. Quando le PDT sono abilitate, la finestra Connection mostra le impostazioni PDT aggiuntive e la sezione PDT Overrides.
  • Database temporaneo: 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 possibili build di PDT simultanee su questa connessione. L'impostazione di questo valore troppo alto potrebbe influire negativamente sui tempi delle query. Per saperne di più, consulta la pagina della documentazione Connessione di Looker al tuo database.
  • Parametri JDBC aggiuntivi: lascia vuoto questo campo, poiché Oracle non supporta parametri JDBC aggiuntivi.
  • Pianificazione della manutenzione di PDT e gruppi di dati: un'espressione cron che indica quando Looker deve controllare i gruppi di dati e le tabelle derivate permanenti. Per saperne di più su questa impostazione, consulta la documentazione Pianificazione della manutenzione di PDT e gruppi di dati.
  • SSL: seleziona questa opzione per utilizzare le connessioni SSL.
  • Verifica SSL: ignora questo campo. Oracle utilizzerà il truststore Java predefinito per verificare la conformità SSL.
  • Numero massimo di connessioni per nodo: inizialmente questa impostazione può essere lasciata sul valore predefinito. Per saperne di più su questa impostazione, consulta la sezione Numero massimo di connessioni per nodo della pagina della documentazione Collegamento di Looker al tuo database.
  • Timeout del pool di connessioni: inizialmente è possibile lasciare il valore predefinito per questa impostazione. Per saperne di più su questa impostazione, consulta la sezione Timeout del pool di connessioni della pagina della documentazione Connessione di Looker al tuo database.
  • SQL Runner Precache: deseleziona questa opzione per fare in modo che SQL Runner non precarichi le informazioni della tabella e le carichi solo quando ne è selezionata una. Per saperne di più su questa impostazione, consulta la sezione SQL Runner Precache della pagina della documentazione Connessione di Looker al database.
  • Database Time Zone: specifica il fuso orario utilizzato nel database. Lascia vuoto questo campo se non vuoi eseguire la conversione del fuso orario. Per ulteriori informazioni, consulta la pagina della documentazione Utilizzo delle impostazioni del fuso orario.

Per verificare che la connessione sia andata a buon fine, fai clic su Test. Per informazioni sulla risoluzione dei problemi, consulta la pagina della documentazione relativa al test della connettività del database.

Per salvare queste impostazioni, fai clic su Connetti. Nella sezione Admin (Amministrazione) di Looker, seleziona Connections (Connessioni) e quindi fai clic su Add Connection (Aggiungi connessione).

Supporto delle funzionalità

Affinché Looker supporti alcune funzionalità, è necessario che anche il dialetto del tuo database le supporti.

Oracle supporta le seguenti funzionalità a partire da Looker 24.10:

Selezione delle Supportata?
Livello di assistenza
Supportato
Looker (Google Cloud core)
Aggregati simmetrici
Tabelle derivate
Tabelle derivate da SQL permanente
Tabelle derivate native permanenti
Viste stabili
Eliminazione delle query
Pivot basati su SQL
Fusi orari
SSL
Subtotali
Parametri aggiuntivi JDBC
No
Sensibilità alle maiuscole
Tipo di località
Tipo di elenco
Percentile
Percentile distinto
No
Processi SQL Runner Show
Tabella di descrizione di SQL Runner
SQL Runner Mostra indici
Selezione SQL Runner 10
Conteggio runner SQL
Spiegazione SQL
No
Credenziali OAuth
No
Commenti contestuali
Pooling di connessioni
No
Schizzi HLL
No
Consapevolezza aggregata
PDT incrementali
No
Millisecondi
Microsecondi
Viste materializzate
No
Conteggio approssimato distinto
No