Oracle

O suporte do Looker para a Oracle foi implementado usando implantações tradicionais da Oracle. Se o banco de dados Oracle for uma implantação do Oracle RAC, o Looker poderá ser integrado, mas poderá ter problemas ao encerrar consultas devido a uma diferença nos metadados para recuperar IDs de conexão da consulta dos nós.

Como criptografar o tráfego de rede

O Looker recomenda criptografar o tráfego de rede entre o aplicativo Looker e seu banco de dados. Considere uma das opções descritas na página de documentação Ativar o acesso seguro a banco de dados.

Se você tiver interesse em usar a criptografia SSL, consulte a documentação da Oracle.

Como criar um usuário do Looker

Primeiro, crie um usuário designado do Looker:

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

Em seguida, permita que o novo usuário do Looker crie sessões:

GRANT CREATE SESSION TO LOOKER;

Por fim, conceda ao usuário do Looker as permissões SELECT adequadas para as tabelas de dados que você planeja acessar no Looker. Se você quiser acessar outras tabelas no futuro, também será necessário conceder SELECT a essas novas tabelas.

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

Garantir que o Looker possa ver todas as tabelas

O Looker talvez não consiga identificar tabelas (especialmente tabelas vazias) sem primeiro coletar estatísticas no Oracle. Se as tabelas necessárias não aparecerem no LookML ou no SQL Runner gerado, tente executar:

EXEC DBMS_STATS.GATHER_DATABASE_STATS;

Para ver métodos alternativos, consulte a documentação da Oracle.

Como configurar objetos de banco de dados principais

Sua Oracle DBA precisa configurar os objetos e permissões a seguir na Oracle. Os comandos a seguir criam LOOKER_SESSION e LOOKER_SQL como sinônimos para V$SESSION e V$SQL.

Execute os comandos a seguir como o usuário raiz para concluir esta configuração. Nestes exemplos, supomos que o nome do usuário do Looker é 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;

Como configurar agregações simétricas

O Oracle DBA precisa configurar a função LOOKER_HASH para ativar agregações simétricas. A função LOOKER_HASH é um sinônimo da função dbms_crypto.hash do Oracle. O DBA também precisa criar o sinônimo e os privilégios associados. Os comandos a seguir presumem que o nome do usuário do Looker é 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;

Dependendo da configuração do banco de dados Oracle, o prefixo SYS pode ser SYSDBA, ADMIN ou desnecessário.

Como configurar tabelas derivadas permanentes

Para ativar tabelas derivadas permanentes, conceda ao usuário do Looker as permissões UNLIMITED TABLESPACE e CREATE TABLE. Os comandos a seguir presumem que o nome do usuário do Looker é LOOKER:

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

Como configurar o encerramento de consultas

Siga estas instruções para configurar o encerramento de consultas para uma implantação tradicional da Oracle ou para uma implantação do Amazon RDS.

Implantações tradicionais do Oracle

Para configurar a desativação de consultas em implantações Oracle tradicionais, a Oracle DBA precisa criar o procedimento LOOKER_KILL_QUERY como sinônimo de ALTER SYSTEM KILL SESSION. Para fazer isso, execute este 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;

O DBA também precisará executar estes comandos relacionados:

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_KILL_QUERY FOR SYS.LOOKER_KILL_QUERY;
GRANT EXECUTE ON SYS.LOOKER_KILL_QUERY TO LOOKER;

Dependendo da configuração do banco de dados Oracle, o prefixo SYS pode ser SYSDBA, ADMIN ou desnecessário.

Implantações do Amazon RDS

Nas implantações da Amazon RDS Oracle, o procedimento rdsadmin.rdsadmin_util.kill é usado para eliminar consultas. Para usar este procedimento, o usuário do banco de dados do Looker precisa ter o papel DBA atribuído.

Como o DBA é um papel de banco de dados elevado, talvez seja melhor pular esta etapa e deixar de usar a execução de consultas no Looker.

Para conferir as capacidades de encerramento das consultas do usuário no banco de dados do Looker, execute:

GRANT DBA TO LOOKER;

Como configurar a conexão do Looker

Na seção Administrador do Looker, selecione Conexões e, em seguida, clique em Adicionar conexão.

A maioria dessas configurações é comum para a maioria dos dialetos do banco de dados e estão descritas na página de documentação Como conectar o Looker ao banco de dados. As configurações a seguir são específicas da Oracle ou do exemplo de página Connections Settings mostrado acima:

  • Name: especifica o nome da conexão. É assim que você vai se referir à conexão em projetos LookML.
  • Dialeto: Oracle.
  • Usar TNS: ative conexões de Substrate de rede transparente (TNS).
  • Host: nome do host ou alias de TNS.
  • Porta: porta do banco de dados.
  • Banco de dados: nome do banco de dados (se não estiver usando TNS).
  • Nome do serviço: nome do serviço (se estiver usando TNS).
  • Nome de usuário: nome de usuário do banco de dados ou banco de dados temporário se os PDTs estiverem ativados.
  • Password: senha do usuário do banco de dados.
  • Tabelas derivadas permanentes: marque esta caixa para ativar tabelas derivadas permanentes. Isso revela o campo Temp Database e a coluna PDT Overrides.
  • Banco de dados temporário: no Oracle, um usuário é um esquema e precisa ser especificado como o nome do usuário do banco de dados. Neste exemplo, usamos o valor de esquema temporário LOOKER.
  • Max PDT Builder Connections: especifica o número de possíveis builds simultâneos de PDT nessa conexão. Definir um valor muito alto pode afetar negativamente os tempos de consulta. Para mais informações, consulte a página de documentação Como conectar o Looker ao seu banco de dados.
  • Parâmetros adicionais: deixe em branco, já que o Oracle não oferece suporte a parâmetros JDBC adicionais.
  • PDT e programação de manutenção do grupo de dados: uma expressão cron que indica quando o Looker precisa verificar grupos de dados e tabelas derivadas permanentes. Leia mais sobre essa configuração na documentação de Programação de manutenção do data center e do grupo de dados.
  • SSL: marque para usar conexões SSL.
  • Verificar SSL Cert: ignore o campo. A Oracle usará o Java Truststore padrão para verificar o SSL.
  • Máximo de conexões: pode ser deixado no valor padrão inicialmente. Leia mais sobre essa configuração na seção Max Connections da página de documentação Como conectar o Looker ao seu banco de dados.
  • Tempo limite do pool de conexões: pode ser deixado no valor padrão inicialmente. Saiba mais sobre essa configuração na seção Tempo limite do pool de conexões da página de documentação Como conectar o Looker ao seu banco de dados.
  • Pré-cache do SQL Runner: para fazer com que o SQL Runner não pré-carregue as informações da tabela e carregue informações da tabela somente quando uma tabela for selecionada, desmarque essa opção. Saiba mais sobre essa configuração na seção Pré-cache do executor do SQL da página de documentação Como conectar o Looker ao seu banco de dados.
  • Fuso horário do banco de dados: especifique o fuso horário usado no banco de dados. Deixe este campo em branco se não quiser uma conversão de fuso horário. Consulte a página de documentação Usar configurações de fuso horário para mais informações.

Suporte a recursos

Para que o Looker ofereça suporte a alguns recursos, seu dialeto do banco de dados também precisa aceitá-los.

Na versão mais recente do Looker, o Oracle é compatível com os seguintes recursos do Looker:

Próximas etapas

Depois de concluir a configuração do banco de dados, conecte-se ao banco de dados no Looker.