Cloudera Impala 3.1+ e Cloudera Impala com controlador nativo

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:

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:

  1. 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.)
  2. 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
  1. 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 e US_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.

  2. Atualize JAVA_HOME e PATH em ~looker/.bash_profile para apontar para a instalação correta do Java e source ~/.bash_profile ou termine sessão e inicie-a novamente.

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

  4. Valide a variável de ambiente JAVA_HOME com echo $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
  1. Se krb5.conf não estiver em /etc/, use a variável de ambiente KRB5_CONFIG para indicar a respetiva localização.

  2. Execute o comando klist para se certificar de que existe um pedido válido na cache de pedidos do Kerberos.

  3. Se não existir nenhum pedido, execute kinit username@REALM ou kinit username para criar o pedido.

  4. 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

Recursos

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.