Oracle

La asistencia de Looker para Oracle se implementó con implementaciones tradicionales de Oracle. Si tu base de datos de Oracle es una implementación de Oracle RAC, Looker puede integrarse de forma correcta, pero puede que tenga problemas para finalizar las consultas debido a una diferencia en los metadatos a fin de recuperar los ID de conexión de consulta de los nodos.

Encriptar el tráfico de red

Looker recomienda que se encripte el tráfico de red entre la aplicación de Looker y su base de datos. Considera una de las opciones que se describen en la página de documentación Habilita el acceso seguro a la base de datos.

Si te interesa usar la encriptación SSL, consulta la documentación de Oracle.

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, bríndale al usuario nuevo 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 SELECT en esas tablas nuevas.

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

Asegúrate de que Looker pueda ver todas las tablas

Es posible que Looker no pueda identificar tablas (especialmente tablas vacías) sin antes recopilar estadísticas en Oracle. Si las tablas que necesitas no aparecen en LookML o en el ejecutor de SQL generados, intenta ejecutar lo siguiente:

EXEC DBMS_STATS.GATHER_DATABASE_STATS;

Para ver métodos alternativos, consulta la documentación de Oracle.

Configura objetos de base de datos principales

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.

Ejecute 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=&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;

Configura 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 un sinónimo de la función dbms_crypto.hash de Oracle. El 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 ser SYSDBA, ADMIN o innecesario.

Configura tablas derivadas persistentes

Para habilitar las tablas persistentes derivadas, otorga 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 la eliminación de consultas

Sigue estas instrucciones para configurar la eliminación de consultas en una implementación tradicional de Oracle o en Amazon RDS.

Implementaciones tradicionales de Oracle

Para configurar la eliminación de consultas en implementaciones tradicionales de Oracle, 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 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;

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 ser SYSDBA, ADMIN o innecesario.

Implementaciones de Amazon RDS

En las implementaciones de Oracle en Amazon RDS, se usa el procedimiento rdsadmin.rdsadmin_util.kill para finalizar las consultas. Para usar este procedimiento, el usuario de la base de datos de Looker debe tener asignada la función DBA.

Dado que DBA es una función de base de datos elevada, puedes considerar omitir este paso y omitir la eliminación de consultas en Looker.

Para darle a la base de datos de Looker la capacidad de matar consultas, ejecuta lo siguiente:

GRANT DBA TO LOOKER;

Configura la conexión de Looker

En la sección Administrador de Looker, seleccione Conexiones y, luego, haga clic en Agregar conexión.

La mayoría de las opciones de configuración son comunes en la mayoría de los dialectos de la base de datos y se describen en la página de documentación Cómo conectar Looker a tu base de datos. La siguiente configuración es específica de Oracle o de la página de ejemplo Configuración de conexiones que se muestra arriba:

  • Nombre: Especifica el nombre de la conexión. Esta es la forma en que hará referencia a la conexión en los proyectos de LookML.
  • Dialecto: Oracle.
  • Usa TNS: Habilita las conexiones transparentes de sustrato de red (TNS).
  • Host: Nombre de host o alias de TNS.
  • Puerto: Es el puerto de la base de datos.
  • Base de datos: Es el nombre de la base de datos (si no usas TNS).
  • Nombre del servicio: es el nombre del servicio (si usas 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 de usuario de la base de datos
  • Persistent Derived Tables: Marque esta casilla para habilitar las tablas derivadas persistentes. Esto revela el campo Temp Database y la columna PDT Overrides.
  • 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, usaremos el valor de esquema temporal LOOKER.
  • Max PDT Builder Connections: especifica la cantidad de compilaciones PDT simultáneas posibles en esta conexión. Configurar este valor demasiado alto puede tener un impacto negativo en 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: Deja esto en blanco, ya que Oracle no admite parámetros JDBC adicionales.
  • Programa de mantenimiento de ADT y grupos de datos: Una expresión cron que indica cuándo Looker debe verificar grupos de datos y tablas derivadas persistentes Obtén más información sobre esta configuración en nuestra documentación de PDT y Programa de mantenimiento de grupos de datos.
  • SSL: marca esta opción para usar conexiones SSL.
  • Verificar la certificación de SSL: Ignora este campo. Oracle usará el Truststore de Java predeterminado para verificar SSL.
  • Cantidad máxima de conexiones: Puede dejarse en el valor predeterminado inicialmente. Obtén más información sobre esta configuración en la sección Max Connections de la página de documentación Cómo conectar Looker a tu base de datos.
  • Tiempo de espera del grupo de conexiones: En un principio, se puede dejar el valor predeterminado. Obtén más información sobre esta configuración en la sección Tiempo de espera del grupo de conexiones en la página de documentación Conecta Looker a tu base de datos.
  • Precaché de SQL Runner: para hacer que SQL Runner no cargue previamente la información de la tabla y cargue información de la tabla solo cuando se selecciona una tabla, desmarca esta opción. Obtén más información sobre esta configuración en la sección Caché previo de SQL Runner de la página de documentación Conecta Looker a tu base de datos.
  • Zona horaria de la base de datos (Database Time Zone): especifica la zona horaria de la base de datos. Deje este campo en blanco si no desea que la zona horaria se convierta. Consulta la página de documentación Usa la configuración de zona horaria para obtener más información.

Compatibilidad de características

Para que Looker admita algunas funciones, el dialecto de la base de datos también debe admitirlas.

En la versión más reciente de Looker, Oracle es compatible con las siguientes características de Looker:

Próximos pasos

Después de completar la configuración de la base de datos, conéctate a Looker desde la base de datos.