Dialetos que usam estas instruções
O Looker estabelece ligação às seguintes bases de dados do Impala:
- Cloudera Impala 3.1 ou superior
- Cloudera Impala 3.1 ou superior com controlador nativo
- Cloudera Impala com controlador nativo
Encriptar o tráfego de rede
É uma prática recomendada encriptar o tráfego de rede entre a aplicação Looker e a sua base de dados. Considere uma das opções descritas na página de documentação Ativar o acesso seguro à base de dados.
Configurar o Looker para se ligar ao Cloudera Impala
O Looker liga-se a bases de dados através de uma ligação JDBC. Para bases de dados Impala, o Looker estabelece ligação por predefinição ao servidor que está a executar o daemon impalad
na porta 21050. Para mais informações, consulte a secção Configurar o Impala para funcionar com JDBC da documentação no Website da Cloudera.
Na secção Administração do Looker, selecione Ligações e, de seguida, clique em Adicionar ligação.
A configuração da ligação do Looker depende da segurança que está a ser usada:
- Um cluster que não usa o Kerberos nem a autenticação de utilizadores
- Um cluster que requer autenticação LDAP
- Um cluster protegido com Kerberos, mas que não usa o Apache Sentry
Estabelecer ligação a um cluster sem Kerberos nem autenticação de utilizadores
Para configurar uma ligação que não esteja a usar o Kerberos nem a autenticação do utilizador, siga estes passos:
- Na página Definições de ligação, deixe os campos Nome de utilizador e Palavra-passe em branco. (O
*
junto aos nomes dos campos implica que estes campos são obrigatórios, mas não são.) - No campo Parâmetros JDBC adicionais, introduza
;auth=noSasl
.
Validar a string de ligação
Para validar a string de ligação JDBC nos ficheiros de registo, no painel Administração do Looker, clique em Registo no menu do lado esquerdo. Em seguida, filtre o registo por um termo como jdbc
ou noSasl
. A linha do registo pode ter um aspeto semelhante a este:
jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl
Para mais informações sobre a configuração de bases de dados Impala para funcionar com JDBC, consulte a documentação no Website externo da Cloudera.
Estabelecer ligação a um cluster que requer autenticação LDAP
Para um cluster que requer autenticação LDAP, incluindo um cluster com Apache Sentry e Kerberos, na página Definições de ligação, introduza um Nome de utilizador e uma Palavra-passe com acesso aos esquemas aos quais o Looker vai aceder.
Estabelecer ligação a um cluster protegido com Kerberos, mas não usar o Apache Sentry
A equipa de analistas do Looker pode ter de ajudar a configurar esta ligação corretamente.
Normalmente, a autenticação Kerberos com ambientes Cloudera é processada através do Apache Sentry. Consulte a documentação do Cloudera para ver mais detalhes.
Se quiser configurar o Looker para estabelecer ligação diretamente a bases de dados do Impala através da autenticação Kerberos, siga os passos nesta página.
Configurar a configuração do cliente Kerberos
Primeiro, tem de garantir a instalação de vários elementos de software e a presença de vários ficheiros na máquina do Looker.
Cliente Kerberos
Verifique se o cliente Kerberos está instalado na máquina do Looker tentando executar kinit
. Se o cliente Kerberos não estiver instalado, instale os ficheiros binários do cliente Kerberos.
Por exemplo, no Redhat/CentOS, seria:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
O Java 8 tem de estar instalado na máquina do Looker e em PATH
e JAVA_HOME
do utilizador do Looker. Se necessário, instale-o localmente no diretório looker
.
Java Cryptography Extension
Transfira e instale a Java Cryptography Extension (JCE) para Java 8 a partir do Website da Oracle.
- Localize o diretório
jre/lib/security
para a instalação do Java. - Remova os seguintes ficheiros JAR deste diretório:
local_policy.jar
eUS_export_policy.jar
. - Substitua estes dois ficheiros pelos ficheiros JAR incluídos na transferência dos ficheiros de políticas de jurisdição de força ilimitada da JCE.
Pode ser possível usar versões do Java anteriores ao Java 8 com o JCE instalado, mas não é recomendado.
- Localize o diretório
Atualize
JAVA_HOME
ePATH
em~looker/.bash_profile
para apontar para a instalação correta do Java esource ~/.bash_profile
ou termine sessão e inicie-a novamente.Valide a versão do Java com
java -version
.Valide a variável de ambiente
JAVA_HOME
comecho $JAVA_HOME
.
gss-jaas.conf
Crie um ficheiro gss-jaas.conf
no diretório looker
com o seguinte conteúdo:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Se necessário para testes, pode adicionar debug=true
a este ficheiro 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á a executar o Looker também deve ter um ficheiro krb5.conf
válido. Por predefinição, este ficheiro encontra-se em /etc/krb5.conf
. Se estiver noutro local, tem de ser indicado no ambiente (KRB5_CONFIG
no ambiente de shell).
Pode ter de copiar esta informação de outra máquina cliente Kerberos.
lookerstart.cfg
Indique os ficheiros gss-jaas.conf
e krb5.conf
criando um ficheiro no diretório looker
(o mesmo diretório que contém o script de arranque looker
) denominado lookerstart.cfg
que contém 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 ficheiro krb5.conf
não estiver em /etc/krb5.conf
, também é necessário adicionar esta variável:
-Djava.security.krb5.conf=/path/to/krb5.conf
Para a depuração, adicione estas variáveis:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Em seguida, reinicie o Looker com ./looker restart
.
Autenticação com Kerberos
Autenticação do utilizador
Se
krb5.conf
não estiver em/etc/
, use a variável de ambienteKRB5_CONFIG
para indicar a respetiva localização.Execute o comando
klist
para se certificar de que existe um pedido válido na cache de pedidos do Kerberos.Se não existir nenhum pedido, execute
kinit username@REALM
oukinit username
para criar o pedido.A conta usada com o Looker vai provavelmente ser sem interface, pelo que pode obter um ficheiro keytab do Kerberos para armazenar a credencial para utilização a longo prazo. Use um comando como
kinit -k -t looker_user.keytab username@REALM
para obter a permissão Kerberos.
Renovação automática da autorização
Configure uma tarefa cron que seja executada com frequência para manter uma permissão ativa na cache de permissões Kerberos. A frequência com que esta ação deve ser executada depende da configuração do cluster. klist
deve indicar a data de validade dos bilhetes.
Criar a ligação do Looker à sua base de dados
Na secção Administração do Looker, selecione Ligações e, de seguida, clique em Adicionar ligação.
Preencha os detalhes da ligação da seguinte forma (consulte a página de documentação Associar o Looker à sua base de dados para mais informações):
- Nome: o nome da associação. É assim que a ligação vai ser referida no modelo LookML.
Dialeto: Cloudera Impala 3.1+, Cloudera Impala 3.1+ com controlador nativo ou Cloudera Impala com controlador nativo.
Anfitrião: nome do anfitrião.
Porta: porta da base de dados (21050 por predefinição).
Base de dados: o esquema/base de dados predefinido que vai ser modelado. Quando não é especificada nenhuma base de dados para uma tabela, esta é a base de dados assumida.
Nome de utilizador: deixe este campo em branco.
Palavra-passe: deixe este campo em branco.
Ativar PDTs: use este botão para ativar as tabelas derivadas persistentes. Quando os PDTs estão ativados, a janela Ligação revela definições de PDTs adicionais e a secção Substituições de PDTs.
Base de dados temporária: um esquema/base de dados temporário para armazenar PDTs. Tem de criar esta propriedade antecipadamente.
Parâmetros JDBC adicionais: parâmetros adicionais para a string JDBC. Indique o principal 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: selecione esta opção para usar ligações SSL. Se o seu certificado SSL não for emitido por uma autoridade de certificação amplamente reconhecida e estiver a usar um certificado personalizado, tem de:
- Copie o ficheiro de certificado para o servidor do Looker. Esta opção só está disponível para implementações do Looker alojadas 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 ver mais detalhes sobre como formar as strings JDBC corretas para bases de dados Impala.
- Fuso horário da base de dados: o fuso horário dos dados armazenados na sua base de dados. Normalmente, pode deixar este campo em branco ou defini-lo 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 pesquisa DNS inversa do respetivo endereço IP resulte nesse nome. No entanto, o nome do servidor deve ser o que estiver indicado no controlador de domínio do Kerberos:
nslookup servername # get canonical server name and IP address
nslookup ipaddress # get the canonical name back
Por vezes, o nome do servidor é definido como o nome do anfitrião e não o nome de domínio totalmente qualificado. Neste caso, pode ser necessário modificar os ficheiros /etc/hosts
e /etc/nsswitch.conf
para garantir que as pesquisas inversas são resolvidas conforme previsto.
Teste a associação para se certificar de que está configurada corretamente.
Depuração
- Documentação da Cloudera acerca da depuração de problemas de autenticação do Impala.
- Quando adiciona a depuração à configuração, as informações de depuração adicionais acabam em
looker/logs/looker.log
.
Recursos
- Ativar a autenticação Kerberos para o Impala (documentação do Cloudera)
- Página do manual kinit
- página do manual klist
- Documentação gss-jaas.conf
- Documentação do Krb5LoginModule
Autorizações para PDTs
O utilizador que se liga ao esquema temporário para tabelas derivadas persistentes (PDTs) tem de ter autorizações de leitura/escrita.
Suporte de funcionalidades
Para que o Looker suporte algumas funcionalidades, o dialeto da base de dados também tem de as suportar.
Cloudera Impala com controlador nativo
O Cloudera Impala com controlador nativo suporta as seguintes funcionalidades a partir do Looker 25.14:
Funcionalidade | Compatível? |
---|---|
Nível de apoio técnico | Suportado |
Looker (Google Cloud Core) | Não |
Dados agregados simétricos | Não |
Tabelas derivadas | Sim |
Tabelas derivadas SQL persistentes | Sim |
Tabelas derivadas nativas persistentes | Sim |
Vistas 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 JDBC adicionais | Sim |
Sensível a maiúsculas e minúsculas | Sim |
Tipo de localização | Sim |
Tipo de lista | Não |
Percentil | Não |
Percentil distinto | Não |
Execução de SQL Mostrar processos | Não |
Execução de SQL Describe Table | Sim |
Execução de SQL Mostrar índices | Não |
Execução de SQL Select 10 | Sim |
Contagem da execução de SQL | Sim |
SQL Explain | Sim |
Credenciais do OAuth 2.0 | Não |
Comentários de contexto | Sim |
Agrupamento de ligações | Não |
Esboços HLL | Não |
Notoriedade agregada | Sim |
PDTs incrementais | Não |
Milissegundos | Sim |
Microssegundos | Sim |
Vistas materializadas | Não |
Medidas de comparação de períodos | Não |
Contagem distinta aproximada | Sim |
Cloudera Impala 3.1 ou superior
O Cloudera Impala 3.1+ suporta as seguintes funcionalidades a partir do Looker 25.14:
Funcionalidade | Compatível? |
---|---|
Nível de apoio técnico | Suportado |
Looker (Google Cloud Core) | Sim |
Dados agregados simétricos | Sim |
Tabelas derivadas | Sim |
Tabelas derivadas SQL persistentes | Sim |
Tabelas derivadas nativas persistentes | Sim |
Vistas 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 JDBC adicionais | Sim |
Sensível a maiúsculas e minúsculas | Sim |
Tipo de localização | Sim |
Tipo de lista | Não |
Percentil | Não |
Percentil distinto | Não |
Execução de SQL Mostrar processos | Não |
Execução de SQL Describe Table | Sim |
Execução de SQL Mostrar índices | Não |
Execução de SQL Select 10 | Sim |
Contagem da execução de SQL | Sim |
SQL Explain | Sim |
Credenciais do OAuth 2.0 | Não |
Comentários de contexto | Sim |
Agrupamento de ligações | Não |
Esboços HLL | Não |
Notoriedade agregada | Sim |
PDTs incrementais | Não |
Milissegundos | Sim |
Microssegundos | Sim |
Vistas materializadas | Não |
Medidas de comparação de períodos | Não |
Contagem distinta aproximada | Sim |
Cloudera Impala 3.1 ou superior com controlador nativo
O Cloudera Impala 3.1 ou superior com controlador nativo suporta as seguintes funcionalidades a partir do Looker 25.14:
Funcionalidade | Compatível? |
---|---|
Nível de apoio técnico | Suportado |
Looker (Google Cloud Core) | Não |
Dados agregados simétricos | Sim |
Tabelas derivadas | Sim |
Tabelas derivadas SQL persistentes | Sim |
Tabelas derivadas nativas persistentes | Sim |
Vistas 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 JDBC adicionais | Sim |
Sensível a maiúsculas e minúsculas | Sim |
Tipo de localização | Sim |
Tipo de lista | Não |
Percentil | Não |
Percentil distinto | Não |
Execução de SQL Mostrar processos | Não |
Execução de SQL Describe Table | Sim |
Execução de SQL Mostrar índices | Não |
Execução de SQL Select 10 | Sim |
Contagem da execução de SQL | Sim |
SQL Explain | Sim |
Credenciais do OAuth 2.0 | Não |
Comentários de contexto | Sim |
Agrupamento de ligações | Não |
Esboços HLL | Não |
Notoriedade agregada | Sim |
PDTs incrementais | Não |
Milissegundos | Sim |
Microssegundos | Sim |
Vistas materializadas | Não |
Medidas de comparação de períodos | Não |
Contagem distinta aproximada | Sim |
Passos seguintes
Depois de associar a sua base de dados ao Looker, configure as opções de início de sessão para os seus utilizadores.