Dialetos que usam essas instruções
O Looker se conecta aos seguintes bancos de dados do Impala:
- Cloudera Impala 3.1 ou mais recente
- Cloudera Impala 3.1+ com driver nativo
- Cloudera Impala com driver nativo
Como 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 Ativar o acesso seguro ao banco de dados.
Como configurar o Looker para se conectar ao Cloudera Impala
O Looker se conecta a bancos de dados por uma conexão JDBC. Nos bancos de dados 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 da documentação no 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:
- Um cluster não está usando o Kerberos ou a autenticação do usuário
- Um cluster que exige autenticação LDAP
- Um cluster protegido com Kerberos, mas não usando o Apache Sentry
Como se conectar a um cluster sem Kerberos ou autenticação do usuário
Para configurar uma conexão que não use o Kerberos ou a autenticação do usuário, siga estas etapas:
- 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 esses campos são obrigatórios, mas não são. - No campo Outros parâmetros do JDBC, insira
;auth=noSasl
.
Como 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 por um termo como jdbc
ou noSasl
. A linha de 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 Impala para funcionar com o JDBC, consulte a documentação no site externo da Cloudera (em inglês).
Como se conectar 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, digite 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 não usando o Apache Sentry
A equipe de analistas do Looker pode precisar de ajuda para configurar essa conexão corretamente.
Geralmente, a autenticação Kerberos com ambientes do Cloudera é processada pelo Apache Sentry. Consulte a documentação do Cloudera para saber mais.
Se você quiser configurar o Looker para se conectar diretamente aos bancos de dados do Impala usando a autenticação Kerberos, siga as etapas desta página.
Definir a configuração do cliente Kerberos
Primeiro, você precisa garantir a instalação de vários softwares e a presença de vários arquivos na máquina Looker.
Cliente Kerberos
Para verificar se o cliente Kerberos está instalado na máquina Looker, tente executar kinit
. Se o cliente Kerberos não estiver instalado, instale os binários dele.
Por exemplo, no Red Hat/CentOS, seria:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
O Java 8 precisa ser instalado na máquina Looker e no PATH
e JAVA_HOME
do usuário do Looker. Se necessário, instale-o localmente no diretório looker
.
Extensão de criptografia Java
Faça o download e instale a Java Cryptography Extension (JCE) para Java 8 no site da Oracle (link em inglês).
- Localize o diretório
jre/lib/security
da instalação do Java. - Remova os seguintes arquivos JAR deste diretório:
local_policy.jar
eUS_export_policy.jar
. - Substitua esses dois arquivos pelos arquivos JAR incluídos no download dos arquivos da política de jurisdição de segurança ilimitada do JCE.
É possível usar versões do Java anteriores ao Java 8 com o JCE instalado, mas isso não é recomendado.
- Localize o diretório
Atualize
JAVA_HOME
ePATH
em~looker/.bash_profile
para apontar para a instalação correta do Java e dosource ~/.bash_profile
ou saia e faça login novamente.Verifique a versão do Java com
java -version
.Verifique a variável de ambiente
JAVA_HOME
comecho $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, adicione debug=true
ao arquivo da seguinte forma:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
O servidor que está executando o Looker também precisa ter um arquivo krb5.conf
válido. Por padrão, esse arquivo fica em /etc/krb5.conf
. Se estiver em outro local, isso precisa ser indicado no ambiente (KRB5_CONFIG
no ambiente do shell).
Talvez seja necessário copiá-lo de outro computador cliente do Kerberos.
lookerstart.cfg
Aponte para os arquivos gss-jaas.conf
e krb5.conf
criando um arquivo no diretório looker
(o mesmo diretório 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
Se
krb5.conf
não estiver em/etc/
, use a variável de ambienteKRB5_CONFIG
para indicar a localização dele.Execute o comando
klist
para verificar se há um tíquete válido no cache do tíquete do Kerberos.Se não houver tíquetes, execute
kinit username@REALM
oukinit username
para criá-los.A conta usada com o Looker provavelmente será headless, então 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 acessar o tíquete do Kerberos.
Como renovar o tíquete automaticamente
Configure um cron job executado com frequência para manter um tíquete ativo no cache do tíquete do Kerberos. A frequência de execução depende da configuração do cluster. klist
precisa indicar o prazo de validade dos ingressos.
Como criar a conexão do Looker com o 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 maneira. Para mais informações, consulte a página de documentação Como conectar o Looker ao banco de dados:
- Nome: o nome da conexão. É assim que a conexão será referenciada 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 for especificado para uma tabela, isso será usado.
Nome de usuário: deixe em branco.
Senha: deixe em branco.
Ativar TDPs: use esse botã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. É preciso criar isso com antecedência.
Outros parâmetros do JDBC: outros parâmetros para a string JDBC. Indique o principal do Kerberos aqui, por exemplo,
;principal=impala/impala.company.com@REALM
. Os princípios 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 essa opção para usar conexões SSL. Se o certificado SSL não for emitido por uma autoridade certificadora amplamente reconhecida e você estiver usando um certificado personalizado, será necessário fazer o seguinte:
- Copie o arquivo de certificado para o servidor do Looker. Disponível apenas para implantações do Looker hospedadas pelo cliente.
- Adicione os seguintes parâmetros ao campo Outros parâmetros do JDBC:
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 os bancos de dados Impala.
- Fuso horário do banco de dados: o fuso horário dos dados armazenados no seu banco de dados. Geralmente, esse campo pode ser deixado em branco ou definido como UTC.
É uma prática recomendada que o nome do servidor (impala.company.com
, neste exemplo) seja o nome canônico do servidor e que a busca DNS reversa do endereço IP resulte nesse nome. No entanto, o nome do servidor deve 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 como o nome de domínio totalmente qualificado. Nesse caso, pode ser 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
- Documentação da Cloudera sobre depuração de problemas de autenticação do Impala.
- Quando você adiciona a depuração à configuração, as informações extras de depuração são exibidas em
looker/logs/looker.log
.
Recursos
- Como ativar a autenticação Kerberos para o Impala (documentação do Cloudera)
- página do manual do kinit
- Página de manual do klist (em inglês)
- Documentação do gss-jaas.conf
- Documentação do Krb5LoginModule
Permissões para PDTs
O usuário que se conectar ao esquema de rascunho para tabelas derivadas persistentes (PDTs) (em inglês) 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 oferecer suporte a eles.
Cloudera Impala com driver nativo
O Cloudera Impala com driver nativo oferece suporte aos seguintes recursos a partir do Looker 24.14:
Recurso | Compatível? |
---|---|
Nível de suporte | Compatível |
Looker (Google Cloud Core) | Não |
Agregações simétricas | Não |
Tabelas derivadas | Sim |
Tabelas derivadas de SQL persistentes | Sim |
Tabelas derivadas nativas nativas | Sim |
Visualizações estáveis | Sim |
Eliminação de consultas | Sim |
Pivots baseados em SQL | Sim |
Fusos horários | Sim |
SSL | Sim |
Subtotais | Não |
Parâmetros adicionais do JDBC | Sim |
Diferenciar maiúsculas e minúsculas | Sim |
Tipo de local | Sim |
Tipo de lista | Não |
Percentil | Não |
Percentil distinto | Não |
Processos de exibição do SQL Runner | Não |
Tabela de descrição do SQL Runner | Sim |
Índices de exibição do SQL Runner | Não |
Seleção do SQL Runner 10 | Sim |
Contagem de executores do SQL | Sim |
SQL Explain | Sim |
Credenciais OAuth | Não |
Comentários de contexto | Sim |
Pool de conexão | Não |
Esboços HLL | Não |
Agregar reconhecimento | Sim |
TDPs incrementais | Não |
Milissegundos | Sim |
Microssegundos | Sim |
Visualizações materializadas | Não |
Contagem aproximada diferente | Sim |
Cloudera Impala 3.1 ou superior
O Cloudera Impala 3.1+ oferece suporte aos seguintes recursos a partir do Looker 24.14:
Recurso | Compatível? |
---|---|
Nível de suporte | Compatível |
Looker (Google Cloud Core) | Sim |
Agregações simétricas | Sim |
Tabelas derivadas | Sim |
Tabelas derivadas de SQL persistentes | Sim |
Tabelas derivadas nativas nativas | Sim |
Visualizações estáveis | Sim |
Eliminação de consultas | Sim |
Pivots baseados em SQL | Sim |
Fusos horários | Sim |
SSL | Sim |
Subtotais | Não |
Parâmetros adicionais do JDBC | Sim |
Diferenciar maiúsculas e minúsculas | Sim |
Tipo de local | Sim |
Tipo de lista | Não |
Percentil | Não |
Percentil distinto | Não |
Processos de exibição do SQL Runner | Não |
Tabela de descrição do SQL Runner | Sim |
Índices de exibição do SQL Runner | Não |
Seleção do SQL Runner 10 | Sim |
Contagem de executores do SQL | Sim |
SQL Explain | Sim |
Credenciais OAuth | Não |
Comentários de contexto | Sim |
Pool de conexão | Não |
Esboços HLL | Não |
Agregar reconhecimento | Sim |
TDPs incrementais | Não |
Milissegundos | Sim |
Microssegundos | Sim |
Visualizações materializadas | Não |
Contagem aproximada diferente | Sim |
Cloudera Impala 3.1+ com driver nativo
A Cloudera Impala 3.1 ou mais recente com o driver nativo oferece suporte aos seguintes recursos a partir do Looker 24.14:
Recurso | Compatível? |
---|---|
Nível de suporte | Compatível |
Looker (Google Cloud Core) | Não |
Agregações simétricas | Sim |
Tabelas derivadas | Sim |
Tabelas derivadas de SQL persistentes | Sim |
Tabelas derivadas nativas nativas | Sim |
Visualizações estáveis | Sim |
Eliminação de consultas | Sim |
Pivots baseados em SQL | Sim |
Fusos horários | Sim |
SSL | Sim |
Subtotais | Não |
Parâmetros adicionais do JDBC | Sim |
Diferenciar maiúsculas e minúsculas | Sim |
Tipo de local | Sim |
Tipo de lista | Não |
Percentil | Não |
Percentil distinto | Não |
Processos de exibição do SQL Runner | Não |
Tabela de descrição do SQL Runner | Sim |
Índices de exibição do SQL Runner | Não |
Seleção do SQL Runner 10 | Sim |
Contagem de executores do SQL | Sim |
SQL Explain | Sim |
Credenciais OAuth | Não |
Comentários de contexto | Sim |
Pool de conexão | Não |
Esboços HLL | Não |
Agregar reconhecimento | Sim |
TDPs incrementais | Não |
Milissegundos | Sim |
Microssegundos | Sim |
Visualizações materializadas | Não |
Contagem aproximada diferente | Sim |
Próximas etapas
Depois de conectar seu banco de dados ao Looker, configure as opções de login para os usuários.