Configura el host de Looker para las conexiones
Todas las conexiones ADWC de Oracle requieren autenticación SSL y de certificado. Para que Looker se conecte a tu instancia de Oracle ADWC, debes descargar tus archivos de Oracle Wallet y, luego, instalarlos en el servidor de Looker. Si eres usuario de Looker alojado en un cliente, necesitarás un administrador del sistema con acceso al servidor de Looker para hacerlo. Si eres usuario alojado en Looker, comunícate con el equipo de asistencia de Looker.
Para instalar tu billetera de Oracle en el servidor de Looker, sigue estos pasos:
Descarga la billetera de Oracle en tu computadora local. Tendrás un archivo ZIP llamado
Wallet_databasename.zip
.En el servidor de Looker, crea un directorio para guardar el archivo ZIP de la billetera:
mkdir /home/looker/looker/credentials
Copia el archivo ZIP de la computadora local en el servidor de Looker. En este ejemplo, se usa
scp
y se coloca el archivo en/home/looker/looker/credentials
:scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
Descomprime el archivo ZIP de la Billetera. En este ejemplo, se usa el comando
unzip
:cd /home/looker/looker/credentials unzip Wallet_databasename.zip
Verifica el contenido de la billetera con el comando
ls
. Estos son los archivos que deberías tener:ls cwallet.sso keystore.jks sqlnet.ora truststore.jks ewallet.p12 ojdbc.properties tnsnames.ora
Looker se conecta a Oracle ADWC mediante Oracle Wallets con el controlador delgado 18.3 de JDBC. Para ello, necesitarás el alias de sustrato de red transparente (TNS) del nivel de servicio de Oracle ADWC para tu base de datos y la ruta de acceso a tus archivos de Oracle Wallet.
Para obtener el alias de TNS de tu base de datos, ejecuta este comando:
cat tnsnames.ora
Habrá tres alias de TNS para elegir:
dbname_high
,dbname_medium
ydbname_low
. Estos alias corresponden a diferentes niveles de servicio. El archivo contiene información sobre el protocolo, el host, el puerto, el nombre del servicio y la SSL. En este ejemplo, usaremosdbname_medium
.
Crea un usuario de Looker
Primero, crea un usuario designado de Looker:
-- connect / as sysdba;
CREATE USER LOOKER IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
A continuación, otórguele al usuario de Looker la capacidad de crear sesiones:
GRANT CREATE SESSION TO LOOKER;
Por último, otórgale al usuario de Looker los permisos SELECT
apropiados para las tablas de datos a las que planeas acceder desde Looker. Si desea acceder a tablas adicionales en el futuro, también deberá otorgar el permiso SELECT
en esas tablas.
GRANT SELECT ON -- <all tables that will be used by looker>;
Cómo asegurarse de que Looker pueda ver todas las tablas
Es posible que Looker no pueda identificar tablas (especialmente tablas vacías) sin primero recopilar estadísticas en Oracle. Si las tablas que necesita no aparecen en LookML o Runner de SQL generado, ejecute este comando:
EXEC DBMS_STATS.GATHER_DATABASE_STATS;
Para conocer otros métodos, consulta la documentación de Oracle.
Configurar objetos de la base de datos principal
Tu DBA de Oracle debe configurar los siguientes objetos y permisos en Oracle. Los siguientes comandos crean LOOKER_SESSION
y LOOKER_SQL
como sinónimos de V$SESSION
y V$SQL
.
Ejecuta los siguientes comandos como usuario raíz para completar esta configuración. En estos ejemplos, se supone que el nombre del usuario de Looker es 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 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='LOOKER';
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SESSION FOR LOOKER_SESSION;
GRANT SELECT ON LOOKER.LOOKER_SESSION TO LOOKER;
Cómo configurar agregaciones simétricas
Tu DBA de Oracle debe configurar la función LOOKER_HASH
para habilitar agregaciones simétricas. La función LOOKER_HASH
es un sinónimo de la función dbms_crypto.hash
de Oracle. La DBA también debe crear el sinónimo y los privilegios asociados. Los siguientes comandos suponen que el nombre del usuario de Looker es 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;
Según la configuración de tu base de datos de Oracle, el prefijo
SYS
puede serSYSDBA
,ADMIN
o innecesario.
Configura tablas derivadas persistentes
Para habilitar las Tablas derivadas persistentes, otórgale al usuario de Looker los permisos UNLIMITED TABLESPACE
y CREATE TABLE
. Los siguientes comandos suponen que el nombre del usuario de Looker es LOOKER
:
GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;
Configura el cierre de consultas
Para configurar la eliminación de consultas, el DBA de Oracle debe crear el procedimiento LOOKER_KILL_QUERY
como sinónimo de ALTER SYSTEM KILL SESSION
. Para ello, ejecute el siguiente 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 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,
'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;
La DBA también deberá ejecutar estos comandos relacionados:
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_KILL_QUERY FOR SYS.LOOKER_KILL_QUERY;
GRANT EXECUTE ON SYS.LOOKER_KILL_QUERY TO LOOKER;
Según la configuración de tu base de datos de Oracle, el prefijo
SYS
puede serSYSDBA
,ADMIN
o innecesario.
Crea la conexión de Looker a tu base de datos
En la sección Administrador de Looker, seleccione Conexiones y, luego, haga clic en Agregar conexión.
Completa los detalles de la conexión. La mayoría de las opciones de configuración son comunes en la mayoría de los dialectos de las bases de datos. Consulta la página de documentación Conecta Looker a tu base de datos para obtener más información. La siguiente configuración es específica de ADWC de Oracle:
- Dialecto: Oracle ADWC.
- Usa TNS: Habilita las conexiones del sustrato transparente de red (TNS).
- Host: Es el nombre de host o el alias de TNS. Para este ejemplo, es
dbname_medium
. - Puerto: Deja la opción predeterminada; Looker encontrará el puerto del archivo
tnsnames.ora
. - Service Name (Nombre del servicio): déjalo en blanco; Looker encontrará el nombre del servicio del archivo
tnsnames.ora
. - Nombre de usuario: Nombre de usuario de la base de datos o Base de datos temporal si las PDT están habilitadas.
- Contraseña: Contraseña de usuario de la base de datos
- Habilitar PDT: Usa este botón de activación para habilitar las tablas derivadas persistentes. Cuando las PDT están habilitadas, la ventana Connection muestra la configuración adicional de PDT y la sección Overrides PDT.
- Base de datos temporal: En Oracle, un usuario es un esquema, por lo que debe especificarse como el nombre del usuario de la base de datos. Para este ejemplo, usarías el valor de esquema temporal
LOOKER
. - Parámetros adicionales de JDBC: PATH para tu billetera de Oracle en el servidor de Looker. En este ejemplo, es
/home/looker/looker/credentials
.- En una implementación heredada alojada en Looker, este valor será
/home/lookerops/looker/credentials
. - En una implementación alojada en Looker en la próxima generación de hosting, este valor será
/app/credentials
.
- En una implementación heredada alojada en Looker, este valor será
- SSL y verificar SSL: Puede ignorar estos campos; Looker siempre usará SSL con Oracle ADWC.
Para verificar que la conexión se realice de forma correcta, haz clic en Probar. Consulta la página de documentación sobre cómo probar la conectividad de la base de datos para obtener información sobre la solución de problemas. Cuando hagas clic en Probar, Looker compilará una string de JDBC como la siguiente:
jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/home/looker/looker/credentials
Para guardar esta configuración, haz clic en Conectar.
Compatibilidad de características
Para que Looker admita algunas funciones, tu dialecto de base de datos también debe admitirlas.
Oracle ADWC admite las siguientes funciones a partir de Looker 23.8:
Atributo | ¿Es compatible? |
---|---|
Nivel de asistencia | Integración |
Looker (Google Cloud Core) | No |
Agregaciones simétricas | Sí |
Tablas derivadas | Sí |
Tablas derivadas de SQL persistente | Sí |
Tablas derivadas persistentes nativas | Sí |
Vistas estables | No |
Asesinato de consultas | Sí |
Pivotes basados en SQL | Sí |
Zonas horarias | Sí |
SSL | Sí |
Subtotales | Sí |
Parámetros adicionales de JDBC | No |
Distingue mayúsculas de minúsculas | Sí |
Tipo de ubicación | Sí |
Tipo de lista | Sí |
Percentil | Sí |
Percentil distintivo | No |
Procesos de Show del ejecutor de SQL | Sí |
Tabla de descripción del ejecutor de SQL | Sí |
Índices de SQL Runner Show | No |
Ejecutor de SQL Select 10 | Sí |
Recuento de ejecutores de SQL | Sí |
Explicación de SQL | No |
Credenciales de OAuth | No |
Comentarios de contexto | Sí |
Agrupación de conexiones | No |
Bocetos de HLL | No |
Reconocimiento global | Sí |
PDT incrementales | No |
Milisegundos | Sí |
Microsegundos | Sí |
Vistas materializadas | No |
Distinto del recuento aproximado | No |