Oracle

Como criptografar o tráfego de rede

É recomendável 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 ao banco de dados.

Se você quiser usar a criptografia SSL, consulte a documentação do Oracle.

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 precisará conceder SELECT a elas.

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

Como garantir que o Looker possa acessar todas as tabelas

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

EXEC DBMS_STATS.GATHER_DATABASE_STATS;

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

Configurar os principais objetos do banco de dados

O DBA do Oracle precisa configurar os objetos e permissões a seguir no Oracle. Os comandos a seguir criam LOOKER_SESSION e LOOKER_SQL como sinônimos de V$SESSION e V$SQL.

Execute os comandos a seguir como usuário raiz para concluir a configuração. Esses exemplos pressupõem que o nome do usuário do Looker seja 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;

Configurar agregados simétricos

O DBA do Oracle precisa configurar a função LOOKER_HASH para ativar os agregados simétricos. 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 as tabelas derivadas persistentes, 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 padrão do Oracle ou do Amazon RDS.

Implantações padrão do Oracle

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

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 do Amazon RDS Oracle, o procedimento rdsadmin.rdsadmin_util.kill é usado para interromper consultas. Para usar esse procedimento, o usuário do banco de dados do Looker precisa ter a função DBA atribuída.

Como o DBA é uma função de banco de dados elevada, considere pular esta etapa e evitar o encerramento de consultas no Looker.

Para dar ao banco de dados do Looker a capacidade de matar consultas do usuário, execute o seguinte comando:

GRANT DBA TO LOOKER;

Criar a conexão do Looker com seu banco de dados

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

Preencher os detalhes de conexão. A maioria das configurações é comum para a maioria dos dialetos de banco de dados. Consulte a página de documentação Como conectar o Looker ao seu banco de dados para mais informações. As configurações a seguir são específicas do Oracle:

  • Nome: especifique o nome da conexão. É assim que você vai se referir à conexão nos projetos do LookML.
  • Dialecto: Oracle.
  • Usar TNS: ative as conexões de sub-rede de rede transparente (TNS, na sigla em inglês).
  • Host: nome de host ou alias do TNS.
  • Porta: porta do banco de dados.
  • Banco de dados: nome do banco de dados (se não estiver usando o TNS).
  • Nome do serviço: nome do serviço (se estiver usando o TNS).
  • Nome de usuário: nome de usuário do banco de dados ou banco de dados temporário se os PDTs estiverem ativados.
  • Senha: senha do usuário do banco de dados.
  • Ativar TDPs: use essa opção para ativar as TDPs. Quando os TDPs estão ativados, a janela Conexão mostra outras configurações de TDP e a seção Substituições de TDP.
  • Banco de dados temporário: no Oracle, um usuário é um esquema, então isso precisa ser especificado como o nome do usuário do banco de dados. Neste exemplo, você usaria o valor do esquema temporário LOOKER.
  • Número máximo de conexões do builder da TDP: especifique o número de builds simultâneos possíveis da TDP nessa conexão. Definir esse 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 JDBC adicionais: deixe em branco, porque o Oracle não oferece suporte a parâmetros JDBC adicionais.
  • Programação de manutenção de grupos de dados e PDT: uma expressão cron que indica quando o Looker precisa verificar grupos de dados e tabelas derivadas persistentes. Leia mais sobre essa configuração na documentação Programação de manutenção de grupos de dados e PDT.
  • SSL: verifique se as conexões SSL estão sendo usadas.
  • Verificar SSL: ignore esse campo. O Oracle vai usar o armazenamento de confiança Java padrão para verificar o SSL.
  • Conexões máximas por nó: essa configuração pode ser deixada com o valor padrão inicialmente. Leia mais sobre essa configuração na seção Conexões máximas por nó da página de documentação Como conectar o Looker ao seu banco de dados.
  • Tempo limite do pool de conexões: essa configuração pode ser deixada com o valor padrão inicialmente. Leia mais sobre essa configuração na seção Connection Pool Timeout da página de documentação Como conectar o Looker ao seu banco de dados.
  • Pré-cache do SQL Runner: desmarque essa opção para que o SQL Runner não pré-carregue as informações da tabela e as carregue apenas quando uma tabela for selecionada. Leia mais sobre essa configuração na seção SQL Runner Precache 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 esse campo em branco se você não quiser a conversão de fuso horário. Consulte a página de documentação Como usar as configurações de fuso horário para mais informações.

Para verificar se a conexão foi bem-sucedida, clique em Testar. Consulte a página de documentação Teste de conectividade do banco de dados para informações sobre solução de problemas.

Para salvar essas configurações, clique em Conectar. Na seção Administrador do Looker, selecione Conexões e clique em Adicionar conexão.

Suporte a recursos

Para que o Looker ofereça suporte a alguns recursos, o dialeto do banco de dados também precisa oferecer suporte a eles.

O Oracle é compatível com os seguintes recursos a partir do Looker 25.0:

Recurso Compatível?
Nível de suporte
Compatível
Looker (Google Cloud Core)
Sim
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas SQL persistentes
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Sim
Consulta de interrupção
Sim
Pivots baseados em SQL
Sim
Fusos horários
Sim
SSL
Sim
Subtotais
Sim
Parâmetros adicionais do JDBC
Não
Diferenciar maiúsculas e minúsculas
Sim
Tipo de local
Sim
Tipo de lista
Sim
Percentil
Sim
Percentil distinto
Não
SQL Runner Show Processes
Sim
Tabela de descrição do SQL Runner
Sim
Índices de exibição do SQL Runner
Sim
SQL Runner Select 10
Sim
Contagem do SQL Runner
Sim
SQL Explain
Não
Credenciais do OAuth
Não
Comentários de contexto
Sim
Pooling de conexão
Não
Esboços HLL
Não
Conscientização agregada
Sim
PDTs incrementais
Não
Milissegundos
Sim
Microssegundos
Sim
Visualizações materializadas
Não
Contagem aproximada de valores distintos
Não