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 avere problemi a terminare le query a causa di una differenza nei metadati per il recupero degli ID connessione di 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 Abilitazione dell'accesso sicuro al database.
Se ti interessa utilizzare la crittografia SSL, consulta la documentazione 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;
Ora offri 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 prevedi di accedere. Se vuoi accedere a tabelle aggiuntive in futuro, dovrai concedere l'autorizzazione SELECT
anche per queste nuove tabelle.
GRANT SELECT ON -- <all tables that will be used by looker>;
Assicurarsi che Looker possa visualizzare 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 di cui hai bisogno non appaiono in LookML o SQL Runner generati, 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 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 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='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;
Configurare gli 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
. Inoltre, deve 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;
A seconda della configurazione del tuo database Oracle, il prefisso
SYS
può essereSYSDBA
,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 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 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,
'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à 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ò essereSYSDBA
,ADMIN
o non necessario.
Deployment su 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 nome commerciale (DBA) è un ruolo di database con un livello elevato, potresti saltare questo passaggio ed eliminare l'interruzione delle query in Looker.
Per fornire alle funzionalità di eliminazione delle query utente del database Looker, esegui:
GRANT DBA TO LOOKER;
Creazione della connessione di Looker al database
Nella sezione Admin (Amministrazione) di Looker, seleziona Connections (Connessioni) e fai clic su Add Connection (Aggiungi connessione).
Compila i dettagli della connessione. La maggior parte delle impostazioni è comune alla maggior parte dei dialetti di database. Per informazioni, consulta la pagina della documentazione Connessione di Looker al tuo database. Le seguenti impostazioni sono specifiche per Oracle:
- Name (Nome): specifica il nome della connessione. Questo è il modo in cui farai riferimento alla connessione nei progetti LookML.
- Dialect: ora 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: il nome del servizio (se utilizzi TNS).
- Nome utente: nome utente di database oppure Temp Database, se sono attivate le PDT.
- Password: la password utente del database.
- Abilita PDT: utilizza questo pulsante di attivazione/disattivazione per abilitare le tabelle derivate persistenti. Quando le PDT sono abilitate, la finestra Connection mostra le impostazioni PDT aggiuntive e la sezione PDT Overrides (Override PDT).
- Temp Database (Database temporaneo): in Oracle un utente è uno schema, deve essere specificato come nome dell'utente del database. Per questo esempio, utilizzerai il valore dello schema temporaneo
LOOKER
. - Numero massimo di connessioni del generatore di 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 della query. Per ulteriori informazioni, consulta la pagina della documentazione Connessione di Looker al tuo database.
- Ulteriori parametri JDBC: lascia vuoto questo campo, poiché Oracle non supporta parametri JDBC aggiuntivi.
- Pianificazione della manutenzione del gruppo di dati e della PDT: un'espressione
cron
che indica quando Looker deve controllare i gruppi di dati e le tabelle derivate permanenti. Per ulteriori informazioni su questa impostazione, consulta la documentazione relativa alla 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 il protocollo SSL.
- Numero massimo di connessioni per nodo: inizialmente è possibile lasciare il valore predefinito su questa impostazione. Scopri di più su questa impostazione nella sezione Max Connections per node (Numero massimo di connessioni per nodo) della pagina della documentazione Connessione di Looker al tuo database.
- Timeout del pool di connessioni: inizialmente questa impostazione può essere lasciata impostato sul valore predefinito. 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 (Pre-cache SQL Runner): per evitare che SQL Runner non precarichi le informazioni delle tabelle e le carichi solo quando viene selezionata una tabella, 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.
- Database Time Zone (Fuso orario database): specifica il fuso orario utilizzato nel database. Lascia questo campo vuoto se non vuoi che venga eseguita la conversione del fuso orario. Per ulteriori informazioni, consulta la pagina Documentazione relativa alle impostazioni del fuso orario.
Per verificare che la connessione sia riuscita, fai clic su Prova. Per informazioni sulla risoluzione dei problemi, consulta la pagina della documentazione Testare la connettività dei database.
Per salvare queste impostazioni, fai clic su Connetti. Nella sezione Admin (Amministrazione) di Looker, seleziona Connections (Connessioni) e fai clic su Add Connection (Aggiungi connessione).
Assistenza per le funzionalità
Affinché Looker supporti alcune funzionalità, anche il dialetto del tuo database deve supportarle.
A partire da Looker 23.8, Oracle supporta le seguenti funzionalità:
Funzionalità | Supportato? |
---|---|
Livello di assistenza | Richiesta supportata |
Looker (Google Cloud core) | Sì |
Aggregati simmetrici | Sì |
Tabelle derivate | Sì |
Tabelle derivate permanenti da SQL | Sì |
Tabelle derivate native permanenti | Sì |
Visualizzazioni stabili | Sì |
Termine query | Sì |
Pivot basati su SQL | Sì |
Fusi orari | Sì |
SSL | Sì |
Subtotali | Sì |
Parametri aggiuntivi JDBC | No |
Sensibilità alle maiuscole | Sì |
Tipo di località | Sì |
Tipo di elenco | Sì |
Percentile | Sì |
Distintivo percentile | No |
Processi di visualizzazione di SQL Runner | Sì |
Tabella di descrizione di SQL Runner | Sì |
Indici di SQL Runner | Sì |
SQL Runner Seleziona 10 | Sì |
Conteggio SQL Runner | Sì |
Spiegazione SQL | No |
Credenziali OAuth | No |
Commenti contestuali | Sì |
Pooling della connessione | No |
Disegni HLL | No |
Aggregate Awareness | Sì |
PDT incrementali | No |
Millisecondi | Sì |
Microsecondi | Sì |
Viste materializzate | No |
Conteggio approssimativo distinto | No |