Cloudera Impala 3.1 y versiones posteriores, y Cloudera Impala con controlador nativo

Conecta tus bases de datos de Cloudera Impala a Looker para visualizar y analizar tus datos. Puedes configurar estas conexiones para varios dialectos de Impala. Looker admite las versiones 3.1 y posteriores de Cloudera Impala, incluidas las configuraciones de controladores estándar y nativos. No se admiten las conexiones a dialectos de Impala más antiguos que no tengan un número de versión o un controlador nativo. Las consultas a estos dialectos mostrarán un error.

Dialectos que usan estas instrucciones

Looker se conecta a las siguientes bases de datos de Impala:

  • Cloudera Impala 3.1 o versiones posteriores
  • Cloudera Impala 3.1 o versiones posteriores con controlador nativo
  • Cloudera Impala con controlador nativo

Encriptación del tráfico de red

Una práctica recomendada es encriptar el tráfico de red entre la aplicación de Looker y tu base de datos. Considera una de las opciones que se describen en la página de documentación Cómo habilitar el acceso seguro a la base de datos.

Cómo configurar Looker para que se conecte a Cloudera Impala

Looker se conecta a las bases de datos a través de una conexión JDBC. En el caso de las bases de datos de Impala, Looker se conecta de forma predeterminada al servidor que ejecuta el daemon de impalad en el puerto 21050. Para obtener más información, consulta la sección Configuring Impala to work with JDBC de la documentación en el sitio web de Cloudera.

En la sección Administrador de Looker, selecciona Conexiones y, luego, haz clic en Agregar conexión.

La configuración de la conexión de Looker depende de la seguridad que se utilice:

Conexión a un clúster sin Kerberos ni autenticación de usuario

Para configurar una conexión que no use Kerberos ni autenticación de usuarios, sigue estos pasos:

  1. En la página Configuración de conexión, deja en blanco los campos Nombre de usuario y Contraseña. (El * junto a los nombres de los campos implica que estos campos son obligatorios, pero no lo son).
  2. En el campo Parámetros adicionales de JDBC, ingresa ;auth=noSasl.

Cómo verificar la cadena de conexión

Para verificar la cadena de conexión JDBC en los archivos de registro, haz clic en Registro en el menú de la izquierda del panel Administrador de Looker. Luego, filtra el registro según un término como jdbc o noSasl. La línea de registro podría verse así:

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

Para obtener más información sobre cómo configurar bases de datos de Impala para que funcionen con JDBC, consulta la documentación en el sitio web externo de Cloudera.

Conexión a un clúster que requiere autenticación con LDAP

En el caso de un clúster que requiere autenticación LDAP, incluido un clúster con Apache Sentry y Kerberos, en la página Configuración de conexión, ingresa un Nombre de usuario y una Contraseña con acceso a los esquemas a los que accederá Looker.

Conexión a un clúster protegido con Kerberos, pero sin usar Apache Sentry

Por lo general, la autenticación Kerberos con entornos de Cloudera se controla a través de Apache Sentry. Consulta la documentación de Cloudera para obtener más detalles.

Si deseas configurar Looker para que se conecte directamente a las bases de datos de Impala con la autenticación de Kerberos, sigue los pasos que se indican en esta página.

Cómo configurar el cliente de Kerberos

Primero, verifica que el software requerido esté instalado y que los archivos necesarios estén presentes en la máquina de Looker.

Cliente de Kerberos

Para verificar que el cliente de Kerberos esté instalado en la máquina de Looker, intenta ejecutar kinit. Si el cliente de Kerberos no está instalado, instala los archivos binarios del cliente de Kerberos.

Por ejemplo, en Red Hat o CentOS, ejecuta el siguiente comando:

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

Java 8 debe estar instalado en la máquina de Looker y en PATH y JAVA_HOME del usuario de Looker. Si es necesario, instálalo de forma local en el directorio looker.

Extensión de criptografía de Java
  1. Descarga e instala la extensión de criptografía de Java (JCE) para Java 8 desde el sitio web de Oracle.

    • Busca el directorio jre/lib/security para la instalación de Java.
    • Quita los siguientes archivos JAR de este directorio: local_policy.jar y US_export_policy.jar.
    • Reemplaza estos dos archivos por los archivos JAR incluidos en la descarga de JCE Unlimited Strength Jurisdiction Policy Files.

    Es posible usar versiones de Java anteriores a Java 8 con JCE instalado, pero no se recomienda.

  2. Actualiza JAVA_HOME y PATH en ~looker/.bash_profile para que apunten a la instalación correcta de Java y source ~/.bash_profile, o bien sal de la cuenta y vuelve a acceder.

  3. Verifica la versión de Java con java -version.

  4. Verifica la variable de entorno JAVA_HOME con echo $JAVA_HOME.

gss-jaas.conf

Crea un archivo gss-jaas.conf en el directorio looker con el siguiente contenido:

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

Si es necesario para las pruebas, debug=true se puede agregar a este archivo de la siguiente manera:

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

El servidor que ejecuta Looker también debe tener un archivo krb5.conf válido. De forma predeterminada, este archivo se encuentra en /etc/krb5.conf. Si se encuentra en otra ubicación, se debe indicar en el entorno (KRB5_CONFIG en el entorno de shell).

Es posible que debas copiarlo de otra máquina cliente de Kerberos.

lookerstart.cfg

Para apuntar a los archivos gss-jaas.conf y krb5.conf, crea un archivo en el directorio looker (el mismo directorio que contiene la secuencia de comandos de inicio looker) llamado lookerstart.cfg que contenga las siguientes líneas:

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

Si el archivo krb5.conf no está en /etc/krb5.conf, también será necesario agregar esta variable:

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

Para la depuración, agrega estas variables:

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

Luego, reinicia Looker con ./looker restart.

Autenticación con Kerberos

Autenticación de usuarios
  1. Si krb5.conf no está en /etc/, usa la variable de entorno KRB5_CONFIG para indicar su ubicación.

  2. Ejecuta el comando klist para asegurarte de que haya un ticket válido en la caché de tickets de Kerberos.

  3. Si no hay un ticket, ejecuta kinit username@REALM o kinit username para crear uno.

  4. Es probable que la cuenta que se usa con Looker no tenga encabezado, por lo que puedes obtener un archivo keytab de Kerberos para almacenar la credencial para uso a largo plazo. Usa un comando como kinit -k -t looker_user.keytab username@REALM para obtener el ticket de Kerberos.

Renovación automática del ticket

Configura un trabajo cron que se ejecute con frecuencia para mantener un ticket activo en la caché de tickets de Kerberos. La frecuencia con la que se debe ejecutar depende de la configuración del clúster. klist debe indicar qué tan pronto vencen las entradas.

Cómo crear la conexión de Looker a tu base de datos

En la sección Administrador de Looker, selecciona Conexiones y, luego, haz clic en Agregar conexión.

Completa los detalles de la conexión de la siguiente manera (consulta la página de documentación Conecta Looker a tu base de datos para obtener más información):

  • Nombre: Es el nombre de la conexión. Así es como se hará referencia a la conexión en el modelo de LookML.
  • Dialecto: Cloudera Impala 3.1+, Cloudera Impala 3.1+ con controlador nativo o Cloudera Impala con controlador nativo.

  • Host: Es el nombre de host.

  • Puerto: Puerto de la base de datos (21050 de forma predeterminada).

  • Base de datos: Es el esquema o la base de datos predeterminados que se modelarán. Cuando no se especifica una base de datos para una tabla, se supone que es esta.

  • Nombre de usuario: Deja este campo en blanco.

  • Contraseña: Deja este campo en blanco.

  • Habilitar PDT: Usa este botón de activación para habilitar las tablas derivadas persistentes. Cuando se habilitan las PDT, la ventana Connection revela parámetros de configuración adicionales de las PDT y la sección PDT Overrides.

  • Base de datos temporal: Es un esquema o una base de datos temporal para almacenar PDT. Esto se debe crear de antemano.

  • Parámetros adicionales de JDBC: Agrega parámetros adicionales de JDBC. Consulta la sección Parámetros JDBC admitidos en esta página para obtener una lista de los parámetros admitidos.

  • SSL: Marca esta casilla para usar conexiones SSL. Si tu certificado SSL no lo emitió una autoridad certificadora ampliamente reconocida y usas un certificado personalizado, deberás hacer lo siguiente:

    • Copia el archivo de certificado en el servidor de Looker. Esta opción solo está disponible para las implementaciones de Looker alojadas por el cliente.
    • Agrega los siguientes parámetros al campo Parámetros adicionales de JDBC:
  sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword

Consulta la documentación de Cloudera para obtener más detalles sobre cómo formar las cadenas JDBC correctas para las bases de datos de Impala.

  • Zona horaria de la base de datos: Es la zona horaria de los datos almacenados en tu base de datos. Por lo general, este campo se puede dejar en blanco o establecer en UTC.

Se recomienda que el nombre del servidor (impala.company.com en este ejemplo) sea el nombre canónico del servidor y que los resultados de la búsqueda de DNS inversa de su dirección IP se muestren con ese nombre. Sin embargo, el nombre del servidor debe ser el que aparece en el controlador de dominio de Kerberos:

  nslookup servername  # get canonical server name and IP address

  nslookup ipaddress  # get the canonical name back

A veces, el nombre del servidor se establece como el nombre de host y no como el nombre de dominio completamente calificado. En este caso, es posible que sea necesario modificar los archivos /etc/hosts y /etc/nsswitch.conf para asegurarse de que las búsquedas inversas se resuelvan según lo previsto.

Prueba la conexión para asegurarte de que esté configurada correctamente.

Depuración

Recursos

Permisos para PDT

El usuario que se conecta al esquema de trabajo para las tablas derivadas persistentes (PDT) debe tener permisos de lectura y escritura.

Parámetros de JDBC admitidos

En el caso de Cloudera Impala, Looker admite los siguientes parámetros de JDBC en el campo Parámetros de JDBC adicionales de la conexión. Consulta la documentación de tu base de datos para obtener información sobre estos parámetros.

  • AllowSelfSignedCerts
  • auth
  • AuthMech
  • CAIssuedCertNamesMismatch
  • httpPath
  • KrbHostFQDN
  • KrbRealm
  • KrbServiceName
  • principal
  • PWD
  • SocketTimeout
  • SSL
  • transportMode
  • UID
  • UseNativeQuery
  • UseSasl

Compatibilidad de funciones

Para que Looker admita algunas funciones, tu dialecto de base de datos también debe admitirlas.

Cloudera Impala con controlador nativo

Cloudera Impala con controlador nativo admite las siguientes funciones a partir de Looker 26.18:

Función ¿Es compatible?
Looker (Google Cloud Core)
Agregaciones simétricas
Tablas derivadas
Tablas derivadas persistentes de SQL
Tablas derivadas persistentes nativas
Vistas estables
Cancelación de consultas
Tablas dinámicas basadas en SQL
Zonas horarias
SSL
Subtotales
Parámetros adicionales de JDBC
Distingue mayúsculas de minúsculas
Tipo de ubicación
Tipo de lista
Percentil
Percentil de valores distintos
Ejecutor de SQL: Mostrar procesos
Ejecutor de SQL: Describe la tabla
Ejecutor de SQL: Mostrar índices
Seleccionar 10 en el Ejecutor de SQL
Recuento del Ejecutor de SQL
Explicación de SQL
Credenciales de OAuth 2.0
Comentarios contextuales
Agrupación de conexiones
Esbozos de HLL
Reconocimiento agregado
PDT incrementales
Milisegundos
Microsegundos
Vistas materializadas
Medidas comparativas entre períodos
Distinción de recuento aproximado
Modelos analíticos integrados en la base de datos
Calendarios personalizados

Cloudera Impala 3.1 o versiones posteriores

A partir de Looker 26.18, Cloudera Impala 3.1 y versiones posteriores admiten las siguientes funciones:

Función ¿Es compatible?
Looker (Google Cloud Core)
Agregaciones simétricas
Tablas derivadas
Tablas derivadas persistentes de SQL
Tablas derivadas persistentes nativas
Vistas estables
Cancelación de consultas
Tablas dinámicas basadas en SQL
Zonas horarias
SSL
Subtotales
Parámetros adicionales de JDBC
Distingue mayúsculas de minúsculas
Tipo de ubicación
Tipo de lista
Percentil
Percentil de valores distintos
Ejecutor de SQL: Mostrar procesos
Ejecutor de SQL: Describe la tabla
Ejecutor de SQL: Mostrar índices
Seleccionar 10 en el Ejecutor de SQL
Recuento del Ejecutor de SQL
Explicación de SQL
Credenciales de OAuth 2.0
Comentarios contextuales
Agrupación de conexiones
Esbozos de HLL
Reconocimiento agregado
PDT incrementales
Milisegundos
Microsegundos
Vistas materializadas
Medidas comparativas entre períodos
Distinción de recuento aproximado
Modelos analíticos integrados en la base de datos
Calendarios personalizados

Cloudera Impala 3.1 o versiones posteriores con controlador nativo

Cloudera Impala 3.1 y versiones posteriores con controlador nativo admiten las siguientes funciones a partir de Looker 26.18:

Función ¿Es compatible?
Looker (Google Cloud Core)
Agregaciones simétricas
Tablas derivadas
Tablas derivadas persistentes de SQL
Tablas derivadas persistentes nativas
Vistas estables
Cancelación de consultas
Tablas dinámicas basadas en SQL
Zonas horarias
SSL
Subtotales
Parámetros adicionales de JDBC
Distingue mayúsculas de minúsculas
Tipo de ubicación
Tipo de lista
Percentil
Percentil de valores distintos
Ejecutor de SQL: Mostrar procesos
Ejecutor de SQL: Describe la tabla
Ejecutor de SQL: Mostrar índices
Seleccionar 10 en el Ejecutor de SQL
Recuento del Ejecutor de SQL
Explicación de SQL
Credenciales de OAuth 2.0
Comentarios contextuales
Agrupación de conexiones
Esbozos de HLL
Reconocimiento agregado
PDT incrementales
Milisegundos
Microsegundos
Vistas materializadas
Medidas comparativas entre períodos
Distinción de recuento aproximado
Modelos analíticos integrados en la base de datos
Calendarios personalizados

Próximos pasos

Después de conectar tu base de datos a Looker, configura las opciones para acceder de tus usuarios.