Cloudera Impala 3.1+ e Cloudera Impala com driver nativo

Dialetos que usam estas instruções

O Looker se conecta aos seguintes bancos de dados do Impala:

  • Cloudera Impala 3.1+
  • Cloudera Impala 3.1+ com driver nativo
  • Cloudera Impala com driver nativo

Criptografar o tráfego de rede

É uma prática recomendada 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 Como ativar o acesso seguro ao banco de dados.

Configurar o Looker para se conectar ao Cloudera Impala

O Looker se conecta a bancos de dados por uma conexão JDBC. Para bancos de dados do Impala, o Looker se conecta por padrão ao servidor que está executando o daemon impalad na porta 21050. Para mais informações, consulte a seção Configurar o Impala para trabalhar com JDBC na documentação do site da Cloudera.

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

A configuração da conexão do Looker depende da segurança usada:

Como se conectar a um cluster sem Kerberos ou autenticação de usuário

Para configurar uma conexão que não usa Kerberos ou autenticação de usuário, siga estas etapas:

  1. Na página Configurações de conexão, deixe os campos Nome de usuário e Senha em branco. O * ao lado dos nomes dos campos implica que eles são obrigatórios, mas não são.
  2. No campo Parâmetros JDBC adicionais, insira ;auth=noSasl.

Verificar a string de conexão

Para verificar a string de conexão JDBC nos arquivos de registro, no painel Administrador do Looker, clique em Registro no menu à esquerda. Em seguida, filtre o registro em um termo como jdbc ou noSasl. A linha do registro pode ser semelhante a esta:

jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl

Para mais informações sobre como configurar bancos de dados do Impala para trabalhar com JDBC, consulte a documentação no site externo da Cloudera.

Conexão a um cluster que exige autenticação LDAP

Para um cluster que exige autenticação LDAP, incluindo um cluster com Apache Sentry e Kerberos, na página Configurações de conexão, insira um Nome de usuário e uma Senha com acesso aos esquemas que o Looker vai acessar.

Conectar-se a um cluster protegido com Kerberos, mas sem usar o Apache Sentry

A equipe de analistas do Looker pode precisar ajudar na configuração correta dessa conexão.

Normalmente, a autenticação do Kerberos com ambientes do Cloudera é processada pelo Apache Sentry. Consulte a documentação do Cloudera para mais detalhes.

Se você quiser configurar o Looker para se conectar diretamente aos bancos de dados do Impala usando a autenticação do Kerberos, siga as etapas nesta página.

Como configurar o cliente do Kerberos

Primeiro, verifique se vários softwares e arquivos estão instalados na máquina do Looker.

Cliente do Kerberos

Verifique se o cliente Kerberos está instalado na máquina do Looker tentando executar kinit. Se o cliente do Kerberos não estiver instalado, instale os binários dele.

Por exemplo, no Redhat/CentOS, seria:

sudo yum install krb5-workstation krb5-libs krb5-auth-dialog

Java 8

O Java 8 precisa estar instalado na máquina do Looker e nos PATH e JAVA_HOME do usuário do Looker. Se necessário, instale-o localmente no diretório looker.

Java Cryptography Extension
  1. Faça o download e instale a Java Cryptography Extension (JCE) para Java 8 no site da Oracle.

    • Localize o diretório jre/lib/security para a instalação do Java.
    • Remova os seguintes arquivos JAR deste diretório: local_policy.jar e US_export_policy.jar.
    • Substitua esses dois arquivos pelos arquivos JAR incluídos no download dos arquivos de política de jurisdição de força ilimitada do JCE.

    É possível usar versões do Java anteriores à 8 com a JCE instalada, mas isso não é recomendado.

  2. Atualize JAVA_HOME e PATH em ~looker/.bash_profile para apontar para a instalação correta do Java e source ~/.bash_profile ou saia e faça login de novo.

  3. Verifique a versão do Java com java -version.

  4. Verifique a variável de ambiente JAVA_HOME com echo $JAVA_HOME.

gss-jaas.conf

Crie um arquivo gss-jaas.conf no diretório looker com este conteúdo:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true;
};

Se necessário para testes, debug=true pode ser adicionado a esse arquivo desta forma:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true
    debug=true;
};
krb5.conf

O servidor que executa o Looker também precisa ter um arquivo krb5.conf válido. Por padrão, esse arquivo está em /etc/krb5.conf. Se ele estiver em outro local, isso precisa ser indicado no ambiente (KRB5_CONFIG no ambiente shell).

Talvez seja necessário copiar isso de outra máquina cliente do Kerberos.

lookerstart.cfg

Aponte para os arquivos gss-jaas.conf e krb5.conf criando um arquivo no diretório looker (o mesmo que contém o script de inicialização looker) chamado lookerstart.cfg com as seguintes linhas:

  JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
  LOOKERARGS=""

Se o arquivo krb5.conf não estiver em /etc/krb5.conf, também será necessário adicionar esta variável:

  -Djava.security.krb5.conf=/path/to/krb5.conf

Para depuração, adicione estas variáveis:

  -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true

Em seguida, reinicie o Looker com ./looker restart.

Como autenticar com o Kerberos

Autenticação do usuário
  1. Se krb5.conf não estiver em /etc/, use a variável de ambiente KRB5_CONFIG para indicar o local.

  2. Execute o comando klist para garantir que há um tíquete válido no cache de tíquetes do Kerberos.

  3. Se não houver um tíquete, execute kinit username@REALM ou kinit username para criar um.

  4. A conta usada com o Looker provavelmente será sem interface gráfica. Portanto, você pode receber um arquivo keytab do Kerberos para armazenar a credencial para uso a longo prazo. Use um comando como kinit -k -t looker_user.keytab username@REALM para receber o tíquete do Kerberos.

Renovação automática do tíquete

Configure um cron job que seja executado de tempos em tempos para manter um tíquete ativo no cache de tíquetes do Kerberos. A frequência de execução depende da configuração do cluster. klist precisa indicar quando os ingressos vão expirar.

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.

Preencha os detalhes da conexão da seguinte forma. Consulte a página de documentação Como conectar o Looker ao seu banco de dados para mais informações:

  • Nome: o nome da conexão. É assim que a conexão será referida no modelo LookML.
  • Dialeto: Cloudera Impala 3.1+, Cloudera Impala 3.1+ com driver nativo ou Cloudera Impala com driver nativo.

  • Host: nome do host.

  • Porta: porta do banco de dados (21050 por padrão).

  • Banco de dados: o esquema/banco de dados padrão que será modelado. Quando nenhum banco de dados é especificado para uma tabela, esse é o padrão.

  • Nome de usuário: deixe em branco.

  • Senha: deixe em branco.

  • Ativar TDPs: use essa opção para ativar as tabelas derivadas persistentes. Quando as TDPs estão ativadas, a janela Conexão revela outras configurações de TDP e a seção Substituições de TDP.

  • Banco de dados temporário: um esquema/banco de dados temporário para armazenar PDTs. Ele precisa ser criado antes.

  • Parâmetros JDBC adicionais: parâmetros extras para a string JDBC. Indique o principal do Kerberos aqui, por exemplo, ;principal=impala/impala.company.com@REALM. Os principais de três partes são padrão. O primeiro (impala) geralmente é o nome do serviço, e o último (REALM) geralmente é o domínio.

  • SSL: marque para usar conexões SSL. Se o certificado SSL não for emitido por uma autoridade de certificação amplamente reconhecida e você estiver usando um certificado personalizado, será necessário:

    • Copie o arquivo de certificado para o servidor do Looker. Essa opção só está disponível para implantações do Looker hospedadas pelo cliente.
    • Adicione os seguintes parâmetros ao campo Parâmetros JDBC adicionais:
  sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword

Consulte a documentação do Cloudera para mais detalhes sobre como formar as strings JDBC corretas para bancos de dados do Impala.

  • Fuso horário do banco de dados: o fuso horário dos dados armazenados no banco de dados. Normalmente, esse campo pode ser deixado em branco ou definido como UTC.

É recomendável que o nome do servidor (impala.company.com neste exemplo) seja o nome canônico do servidor e que busca DNS reversa do endereço IP resulte nesse nome. No entanto, o nome do servidor precisa ser o que está listado no controlador de domínio do Kerberos:

  nslookup servername  # get canonical server name and IP address

  nslookup ipaddress  # get the canonical name back

Às vezes, o nome do servidor é definido como o nome do host, e não o nome de domínio totalmente qualificado. Nesse caso, talvez seja necessário modificar os arquivos /etc/hosts e /etc/nsswitch.conf para garantir que as pesquisas inversas sejam resolvidas conforme o esperado.

Teste a conexão para verificar se ela está configurada corretamente.

Depuração

Recursos

Permissões para PDTs

O usuário que se conecta ao esquema temporário para tabelas derivadas permanentes (PDTs) precisa ter permissões de leitura/gravação.

Suporte a recursos

Para que o Looker ofereça suporte a alguns recursos, o dialeto do banco de dados também precisa ser compatível com eles.

Cloudera Impala com driver nativo

O Cloudera Impala com driver nativo é compatível com os seguintes recursos a partir do Looker 25.10:

Recurso Compatível?
Nível de suporte
Com suporte
Looker (Google Cloud Core)
Não
Agregações simétricas
Não
Tabelas derivadas
Sim
Tabelas derivadas persistentes com base em SQL
Sim
Tabelas derivadas nativas persistentes
Sim
Visualizações estáveis
Sim
Interrupção de consultas
Sim
Tabelas dinâmicas baseadas em SQL
Sim
Fusos horários
Sim
SSL
Sim
Subtotais
Não
Parâmetros adicionais do JDBC
Sim
Diferenciação entre maiúsculas e minúsculas
Sim
Tipo de local
Sim
Tipo de lista
Não
Percentil
Não
Percentil distinto
Não
Mostrar processos do SQL Runner
Não
Descrever tabela do SQL Runner
Sim
Mostrar índices do SQL Runner
Não
Selecionar 10 no SQL Runner
Sim
Contagem do SQL Runner
Sim
Explicação do SQL
Sim
Credenciais do OAuth 2.0
Não
Comentários de contexto
Sim
Pooling de conexão
Não
Esboços HLL
Não
Reconhecimento agregado
Sim
TDPs incrementais
Não
Milissegundos
Sim
Microssegundos
Sim
Visualizações materializadas.
Não
Medidas de comparação de períodos
Não
Contagem aproximada aproximada
Sim

Cloudera Impala 3.1+

O Cloudera Impala 3.1+ é compatível com os seguintes recursos a partir do Looker 25.10:

Recurso Compatível?
Nível de suporte
Com suporte
Looker (Google Cloud Core)
Sim
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas persistentes com base em SQL
Sim
Tabelas derivadas nativas persistentes
Sim
Visualizações estáveis
Sim
Interrupção de consultas
Sim
Tabelas dinâmicas baseadas em SQL
Sim
Fusos horários
Sim
SSL
Sim
Subtotais
Não
Parâmetros adicionais do JDBC
Sim
Diferenciação entre maiúsculas e minúsculas
Sim
Tipo de local
Sim
Tipo de lista
Não
Percentil
Não
Percentil distinto
Não
Mostrar processos do SQL Runner
Não
Descrever tabela do SQL Runner
Sim
Mostrar índices do SQL Runner
Não
Selecionar 10 no SQL Runner
Sim
Contagem do SQL Runner
Sim
Explicação do SQL
Sim
Credenciais do OAuth 2.0
Não
Comentários de contexto
Sim
Pooling de conexão
Não
Esboços HLL
Não
Reconhecimento agregado
Sim
TDPs incrementais
Não
Milissegundos
Sim
Microssegundos
Sim
Visualizações materializadas.
Não
Medidas de comparação de períodos
Não
Contagem aproximada aproximada
Sim

Cloudera Impala 3.1+ com driver nativo

O Cloudera Impala 3.1 ou mais recente com driver nativo é compatível com os seguintes recursos a partir do Looker 25.10:

Recurso Compatível?
Nível de suporte
Com suporte
Looker (Google Cloud Core)
Não
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas persistentes com base em SQL
Sim
Tabelas derivadas nativas persistentes
Sim
Visualizações estáveis
Sim
Interrupção de consultas
Sim
Tabelas dinâmicas baseadas em SQL
Sim
Fusos horários
Sim
SSL
Sim
Subtotais
Não
Parâmetros adicionais do JDBC
Sim
Diferenciação entre maiúsculas e minúsculas
Sim
Tipo de local
Sim
Tipo de lista
Não
Percentil
Não
Percentil distinto
Não
Mostrar processos do SQL Runner
Não
Descrever tabela do SQL Runner
Sim
Mostrar índices do SQL Runner
Não
Selecionar 10 no SQL Runner
Sim
Contagem do SQL Runner
Sim
Explicação do SQL
Sim
Credenciais do OAuth 2.0
Não
Comentários de contexto
Sim
Pooling de conexão
Não
Esboços HLL
Não
Reconhecimento agregado
Sim
TDPs incrementais
Não
Milissegundos
Sim
Microssegundos
Sim
Visualizações materializadas.
Não
Medidas de comparação de períodos
Não
Contagem aproximada aproximada
Sim

Próximas etapas

Depois de conectar seu banco de dados ao Looker, configure as opções de login para seus usuários.