Oracle

Il supporto di Looker per Oracle è stato implementato utilizzando i deployment Oracle tradizionali. Se il tuo database Oracle è un deployment Oracle RAC, Looker può integrarsi correttamente, ma potrebbe riscontrare problemi nell'interruzione delle query a causa di una differenza nei metadati per il recupero degli ID connessione delle query dai nodi.

Crittografia del traffico di rete

Looker consiglia di criptare il traffico di rete tra l'applicazione Looker e il tuo database. Valuta una delle opzioni descritte nella pagina della documentazione relativa all'abilitazione dell'accesso sicuro al database.

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

Creazione di un utente di Looker

Prima di tutto, crea un utente Looker designato:

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

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

GRANT CREATE SESSION TO LOOKER;

Infine, assegna all'utente Looker le autorizzazioni SELECT appropriate per le tabelle di dati a cui intendi accedere da Looker. Se in futuro vorrai accedere a tabelle aggiuntive, dovrai concedere l'accesso a SELECT anche a queste nuove tabelle.

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

Verificare che Looker possa vedere tutte le tabelle

Looker potrebbe non essere in grado di identificare le tabelle, in particolare quelle vuote, senza prima raccogliere statistiche in Oracle. Se le tabelle necessarie non vengono visualizzate nel codice LookML o SQL Runner generato, prova a eseguire:

EXEC DBMS_STATS.GATHER_DATABASE_STATS;

Per informazioni sui metodi alternativi, consulta la documentazione di Oracle.

Configurazione degli oggetti del database principale

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

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

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SESSION FOR LOOKER_SESSION;

GRANT SELECT ON LOOKER.LOOKER_SESSION TO LOOKER;

Impostazione di aggregati simmetrici

Il 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 dell'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 tuo database Oracle, il prefisso SYS può essere SYSDBA, ADMIN o non necessario.

Configurazione delle 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 di Looker sia LOOKER:

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

Impostazione della terminazione delle query

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

Deployment Oracle tradizionali

Per configurare l'interruzione delle query nei deployment Oracle tradizionali, 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,
                   &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;

Il DBA dovrà inoltre eseguire i seguenti 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 tuo database Oracle, il prefisso SYS può essere SYSDBA, ADMIN o non necessario.

Deployment Amazon RDS

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

Poiché il DBA ha un ruolo di database elevato, puoi prendere in considerazione l'idea di saltare questo passaggio ed evitare di terminare le query in Looker.

Per fornire al cluster Looker le funzionalità di eliminazione delle query degli utenti, esegui:

GRANT DBA TO LOOKER;

Configurazione della connessione di Looker

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

La maggior parte di queste impostazioni è comune alla maggior parte dei dialetti dei database e è descritta nella pagina della documentazione Connessione di Looker al tuo database. Le seguenti impostazioni sono specifiche per Oracle o per la pagina di esempio Connections Settings (Impostazioni connessioni) mostrata sopra:

  • Name (Nome): specifica il nome della connessione. Ecco come fare 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 Database temporaneo se le PDT sono abilitate.
  • Password: la password utente del database.
  • Persistent Derived Tables (Tabelle derivate permanenti): seleziona questa casella per abilitare le tabelle derivate permanenti. Vengono visualizzati il campo Temp Database (Database temporaneo) e la colonna PDT Overrides (Override PDT).
  • Temp Database (Database temporaneo): in Oracle un utente è uno schema, quindi deve essere specificato come il nome dell'utente del database. Per questo esempio, utilizzeremmo il valore schema schema LOOKER.
  • Max PDT Builder Connections (Numero massimo di connessioni a generatore PDT): specifica il numero di possibili build di PDT simultanee su questa connessione. L'impostazione di un valore troppo elevato potrebbe influire negativamente sui tempi delle query. Per ulteriori informazioni, consulta la pagina della documentazione dedicata alla connessione di Looker al tuo database.
  • Additional Params (Parametri aggiuntivi): lascia vuoto questo campo, poiché Oracle non supporta parametri JDBC aggiuntivi.
  • PDT And Datagroup Manutenzione Schedule (Pianificazione manutenzione PDT e gruppi di dati): un'espressione di cron che indica quando Looker deve controllare i datagroups e le tabelle derivate permanenti. Scopri di più su questa impostazione nella nostra documentazione relativa a PDT and Datagroup Scheduling Schedule.
  • SSL: seleziona questa opzione per utilizzare le connessioni SSL.
  • Verifica certificato SSL: ignora questo campo. Oracle utilizzerà il Truststore Java predefinito per verificare SSL.
  • Max Connections (Numero massimo di connessioni): inizialmente può essere mantenuto al valore predefinito. Scopri di più su questa impostazione nella sezione Max Connections (Numero massimo di connessioni) della pagina della documentazione Connessione di Looker al tuo database.
  • Connection Pool Timeout (Timeout del pool di connessioni): può essere lasciato inizialmente al valore predefinito. Scopri di più su questa impostazione nella sezione Connection Pool Timeout (Timeout del pool di connessioni) della pagina della documentazione relativa alla connessione di Looker al tuo database.
  • SQL Runner Precache (Pre-cache SQL Runner): per impedire a SQL Runner di non precaricare le informazioni sulle tabelle e di caricarle solo quando è selezionata, deseleziona questa opzione. Scopri di più su questa impostazione nella sezione SQL Runner Precache (Pre-cache SQL Runner) della pagina della documentazione Connessione di Looker al tuo database.
  • Fuso orario del database: 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 Utilizzo delle impostazioni del fuso orario.

Supporto delle funzionalità

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

Nella versione più recente di Looker, Oracle supporta le seguenti funzionalità di Looker:

Passaggi successivi

Dopo aver completato la configurazione del database, connettiti al database da Looker.