Encriptación del tráfico de red
Se recomienda encriptar el tráfico de red entre la aplicación de Looker y tu base de datos. Considera una de las opciones que se describen en la página de documentación Cómo habilitar el acceso seguro a la base de datos.
Si te interesa usar la encriptación SSL, consulta la documentación de Oracle.
Cómo crear un usuario de Looker
Primero, crea un usuario de Looker designado:
-- connect / as sysdba;
CREATE USER LOOKER IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
A continuación, otorga al nuevo usuario de Looker la capacidad de crear sesiones:
GRANT CREATE SESSION TO LOOKER;
Por último, otorga al usuario de Looker los permisos SELECT
adecuados para las tablas de datos a las que planeas acceder desde Looker. Si deseas acceder a tablas adicionales en el futuro, también deberás otorgar permisos de SELECT
en esas tablas nuevas.
GRANT SELECT ON -- <all tables that will be used by looker>;
Cómo garantizar que Looker pueda ver todas las tablas
Es posible que Looker no pueda identificar tablas (especialmente las vacías) sin recopilar primero estadísticas en Oracle. Si las tablas que necesitas no aparecen en el LookML generado o en el Ejecutor de SQL, intenta ejecutar lo siguiente:
EXEC DBMS_STATS.GATHER_DATABASE_STATS;
Para conocer otros métodos, consulta la documentación de Oracle.
Configura los objetos principales de la base de datos
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 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;
Cómo configurar agregaciones simétricas
Tu DBA de Oracle debe configurar la función LOOKER_HASH
para habilitar los agregados simétricos. La función LOOKER_HASH
es sinónimo de la función dbms_crypto.hash
de Oracle. El DBA también debe crear el sinónimo y los privilegios asociados. En los siguientes comandos, se supone 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, otorga al usuario de Looker los permisos UNLIMITED TABLESPACE
y CREATE TABLE
. En los siguientes comandos, se supone que el nombre del usuario de Looker es LOOKER
:
GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;
Cómo configurar la cancelación de consultas
Sigue estas instrucciones para configurar la cancelación de consultas en una implementación estándar de Oracle o en una implementación de Amazon RDS.
Implementaciones estándar de Oracle
Para configurar la cancelación de consultas en las implementaciones estándar de Oracle, el DBA de Oracle debe crear el procedimiento LOOKER_KILL_QUERY
como sinónimo de ALTER SYSTEM KILL SESSION
. Para ello, ejecuta 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 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;
El 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.
Implementaciones de Amazon RDS
En las implementaciones de Amazon RDS Oracle, se usa el procedimiento rdsadmin.rdsadmin_util.kill
para detener las consultas. Para usar este procedimiento, el usuario de la base de datos de Looker debe tener asignado el rol DBA
.
Dado que DBA es un rol de base de datos elevado, puedes considerar omitir este paso y renunciar a la eliminación de consultas en Looker.
Para otorgarle al usuario de la base de datos de Looker la capacidad de detener consultas, ejecuta el siguiente comando:
GRANT DBA TO LOOKER;
Cómo crear la conexión de Looker a tu base de datos
En la sección Administrador de Looker, selecciona Conexiones y, luego, haz clic en Agregar conexión.
Completa los detalles de la conexión. La mayoría de los parámetros de configuración son comunes en la mayoría de los dialectos de bases de datos. Consulta la página de documentación Cómo conectar Looker a tu base de datos para obtener más información. Los siguientes parámetros de configuración son específicos de Oracle:
- Nombre: Especifica el nombre de la conexión. Así es como te referirás a la conexión en los proyectos de LookML.
- Dialect: Oracle.
- Usar TNS: Habilita las conexiones de Sustrato de red transparente (TNS).
- Host: Nombre de host o alias de TNS.
- Puerto: Puerto de la base de datos.
- Base de datos: Nombre de la base de datos (si no se usa TNS).
- Nombre del servicio: Nombre del servicio (si se usa TNS).
- Nombre de usuario: Nombre de usuario de la base de datos o Base de datos temporal si los PDT están habilitados
- Contraseña: Contraseña del usuario de la base de datos.
- Habilitar PDT: Usa este botón de activación para habilitar las tablas derivadas persistentes. Cuando los PDT están habilitados, la ventana Connection revela parámetros de configuración adicionales de PDT y la sección PDT Overrides.
- Base de datos temporal: En Oracle, un usuario es un esquema, por lo que se debe especificar como el nombre del usuario de la base de datos. Para este ejemplo, usarías el valor del esquema temporal
LOOKER
. - Cantidad máxima de conexiones del compilador de PDT: Especifica la cantidad de compilaciones de PDT simultáneas posibles en esta conexión. Si se establece un valor demasiado alto, se podría afectar negativamente los tiempos de consulta. Para obtener más información, consulta la página de documentación Conecta Looker a tu base de datos.
- Parámetros adicionales de JDBC: Deja este campo en blanco, ya que Oracle no admite parámetros adicionales de JDBC.
- Programa de mantenimiento: Es una expresión
cron
que indica cuándo debe verificar Looker los grupos de datos y las tablas derivadas persistentes. Obtén más información sobre este parámetro de configuración en la documentación de Programa de mantenimiento. - SSL: Marca esta opción para usar conexiones SSL.
- Verificar SSL: Ignora este campo. Oracle usará el almacén de confianza de Java predeterminado para verificar SSL.
- Máx. de conexiones por nodo: Inicialmente, este parámetro de configuración se puede dejar en el valor predeterminado. Obtén más información sobre este parámetro de configuración en la sección Max connections per node de la página de documentación Cómo conectar Looker a tu base de datos.
- Tiempo de espera del grupo de conexiones: Inicialmente, este parámetro de configuración se puede dejar en el valor predeterminado. Obtén más información sobre este parámetro de configuración en la sección Tiempo de espera del grupo de conexiones de la página de documentación Conecta Looker a tu base de datos.
- Almacenamiento previo en caché del Ejecutor de SQL: Para que el Ejecutor de SQL no cargue previamente la información de la tabla y la cargue solo cuando se selecciona una tabla, desmarca esta opción. Obtén más información sobre este parámetro de configuración en la sección SQL Runner Precache de la página de documentación Cómo conectar Looker a tu base de datos.
- Zona horaria de la base de datos: Especifica la zona horaria que se usa en la base de datos. Deja este campo en blanco si no deseas la conversión de zona horaria. Consulta la página de documentación Cómo usar la configuración de zona horaria para obtener más información.
Para verificar que la conexión se haya realizado correctamente, haz clic en Probar. Consulta la página de documentación Prueba la conectividad de la base de datos para obtener información sobre la solución de problemas.
Para guardar esta configuración, haz clic en Conectar. En la sección Administrador de Looker, selecciona Conexiones y, luego, haz clic en Agregar conexión.
Compatibilidad de características
Para que Looker admita algunas funciones, tu dialecto de base de datos también debe admitirlas.
A partir de Looker 25.10, Oracle admite las siguientes funciones:
Función | ¿Es compatible? |
---|---|
Nivel de asistencia | Admitido |
Looker (Google Cloud Core) | Sí |
Agregaciones simétricas | Sí |
Tablas derivadas | Sí |
Tablas derivadas persistentes basadas en SQL | Sí |
Tablas derivadas persistentes nativas | Sí |
Vistas estables | Sí |
Cancelación de consultas | Sí |
Tablas dinámicas basadas en SQL | Sí |
Zonas horarias | Sí |
SSL | Sí |
Subtotales | Sí |
Parámetros adicionales de JDBC | No |
Distinción entre mayúsculas y minúsculas | Sí |
Tipo de ubicación | Sí |
Tipo de lista | Sí |
Percentil | Sí |
Percentil de valores distintos | No |
Ejecutor de SQL: Mostrar procesos | Sí |
Ejecutor de SQL: Describe la tabla | Sí |
Ejecutor de SQL: Mostrar índices | Sí |
Seleccionar 10 en el Ejecutor de SQL | Sí |
Recuento del Ejecutor de SQL | Sí |
Explicación de SQL | No |
Credenciales de OAuth 2.0 | No |
Comentarios contextuales | Sí |
Agrupación de conexiones | No |
Esbozos de HLL | No |
Conocimiento total | Sí |
PDT incrementales | No |
Milisegundos | Sí |
Microsegundos | Sí |
Vistas materializadas | No |
Medidas de comparación entre períodos | No |
Distinción de recuento aproximado | No |