Cloudera Impala 3.1+ y Cloudera Impala con controlador nativo

Dialectos que usan estas instrucciones

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

  • Cloudera Impala 3.1 y versiones posteriores
  • Cloudera Impala 3.1+ con controlador nativo
  • Cloudera Impala con controlador nativo

Encripta el 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 Habilita el acceso seguro a bases de datos.

Configura Looker para conectarte a Cloudera Impala

Looker se conecta a bases de datos a través de una conexión de JDBC. En el caso de las bases de datos de Impala, Looker se conecta de forma predeterminada al servidor que ejecuta el daemon impalad en el puerto 21050. Si deseas obtener más información, consulta la sección Configura Impala para que funcione con 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 use:

Conectarse a un clúster sin Kerberos o autenticación de usuario

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

  1. En la página Configuración de la conexión, deja los campos Nombre de usuario y Contraseña en blanco. (La * 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 string de conexión

Para verificar la cadena de conexión de JDBC en los archivos de registro, en el panel Admin de Looker, haz clic en Log en el menú de la izquierda. Luego, filtra el registro con un término como jdbc o noSasl. La línea de registro podría ser similar a la siguiente:

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

Si quieres obtener más información sobre la configuración de las bases de datos de Impala para que funcionen con JDBC, consulta la documentación en el sitio web externo de Cloudera.

Conectarse a un clúster que requiere autenticación LDAP

En el caso de un clúster que requiera 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 Looker tendrá acceso.

Conectarse a un clúster protegido con Kerberos, pero no usar Apache Sentry

Es posible que el equipo de analistas de Looker necesite ayudar a configurar esta conexión de forma correcta.

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

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

Establece la configuración del cliente de Kerberos

Primero, debes garantizar la instalación de varias piezas de software y la presencia de varios archivos en la máquina de Looker.

Cliente de Kerberos

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

Por ejemplo, en Red Hat/CentOS, sucedería lo siguiente:

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 los 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 Java Cryptography Extension (JCE) para Java 8 desde el sitio web de Oracle.

    • Ubica el directorio jre/lib/security de 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 con los archivos JAR incluidos en la descarga de archivos de políticas de jurisdicción de solidez ilimitada de JCE.

    Tal vez sea posible usar versiones de Java anteriores a Java 8 con el 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 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 este contenido:

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

Si es necesario para la prueba, se puede agregar debug=true 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 está en otra ubicación, eso debe indicarse en el entorno (KRB5_CONFIG en el entorno de shell).

Es posible que deba copiarlo desde 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 que contiene la secuencia de comandos de inicio looker) llamado lookerstart.cfg y 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 se encuentra 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 ningún ticket, ejecuta kinit username@REALM o kinit username para crearlo.

  4. Es probable que la cuenta que se use con Looker no tenga interfaz gráfica, por lo que puedes obtener un archivo keytab de Kerberos para almacenar la credencial y usarla 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

Configurar un trabajo cron que se ejecute de vez en cuando 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 la fecha de vencimiento de los tickets.

Crea 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: 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 ninguna base de datos para una tabla, esto se supone.

  • 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 las PDT están habilitadas, la ventana Conexión revela la configuración adicional de las PDT y la sección Anulaciones de PDT.

  • Base de datos temporal: Un esquema o una base de datos temporales para almacenar PDT. Esto se debe crear con anticipación.

  • Parámetros adicionales de JDBC: Son parámetros adicionales para la string de JDBC. Indica el principal de Kerberos aquí, por ejemplo, ;principal=impala/impala.company.com@REALM. Las principales de tres partes son estándares. El primero (impala) es generalmente el nombre del servicio y el último (REALM) suele ser el dominio.

  • SSL: marca esta opción para usar conexiones SSL. Si tu certificado SSL no fue emitido por 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 de 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, puede dejarse en blanco o establecerse en UTC.

Se recomienda que el nombre del servidor (impala.company.com en este ejemplo) sea el nombre canónico del servidor y que la búsqueda de DNS inversa de la dirección IP muestre ese nombre. Sin embargo, el nombre del servidor debe ser el que figure 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 está configurado como el nombre de host, y no el nombre de dominio completamente calificado. En este caso, es posible que sea necesario modificar los archivos /etc/hosts y /etc/nsswitch.conf para asegurarte de que las búsquedas inversas se resuelvan según lo previsto.

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

Depuración

Recursos

Permisos para PDT

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

Compatibilidad de características

Para que Looker admita algunas funciones, el dialecto de la 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 24.10:

Atributo ¿Es compatible?
Nivel de asistencia
Admitido
Looker (Google Cloud Core)
No
Agregados simétricos
No
Tablas derivadas
Tablas derivadas de SQL persistentes
Tablas derivadas persistentes nativas
Vistas estables
Cierre de consultas
Tablas dinámicas basadas en SQL
Zonas horarias
SSL
Subtotales
No
Parámetros adicionales de JDBC
Distingue mayúsculas de minúsculas
Tipo de ubicación
Tipo de lista
No
Percentil
No
Percentil distintivo
No
Procesos de presentación del ejecutor de SQL
No
Tabla de descripción del ejecutor de SQL
Índices de programas del ejecutor de SQL
No
Selección del ejecutor de SQL 10
Recuento de ejecutores de SQL
Explicación de SQL
Credenciales de OAuth
No
Comentarios contextuales
Agrupación de conexiones
No
Bocetos de HLL
No
Reconocimiento agregado
PDT incrementales
No
Milisegundos
Microsegundos
Vistas materializadas
No
Recuento aproximado de valores distintos

Cloudera Impala 3.1 y versiones posteriores

Cloudera Impala 3.1+ admite las siguientes funciones a partir de Looker 24.10:

Atributo ¿Es compatible?
Nivel de asistencia
Admitido
Looker (Google Cloud Core)
Agregados simétricos
Tablas derivadas
Tablas derivadas de SQL persistentes
Tablas derivadas persistentes nativas
Vistas estables
Cierre de consultas
Tablas dinámicas basadas en SQL
Zonas horarias
SSL
Subtotales
No
Parámetros adicionales de JDBC
Distingue mayúsculas de minúsculas
Tipo de ubicación
Tipo de lista
No
Percentil
No
Percentil distintivo
No
Procesos de presentación del ejecutor de SQL
No
Tabla de descripción del ejecutor de SQL
Índices de programas del ejecutor de SQL
No
Selección del ejecutor de SQL 10
Recuento de ejecutores de SQL
Explicación de SQL
Credenciales de OAuth
No
Comentarios contextuales
Agrupación de conexiones
No
Bocetos de HLL
No
Reconocimiento agregado
PDT incrementales
No
Milisegundos
Microsegundos
Vistas materializadas
No
Recuento aproximado de valores distintos

Cloudera Impala 3.1+ con controlador nativo

Cloudera Impala 3.1+ con Native Driver admite las siguientes funciones a partir de Looker 24.10:

Atributo ¿Es compatible?
Nivel de asistencia
Admitido
Looker (Google Cloud Core)
No
Agregados simétricos
Tablas derivadas
Tablas derivadas de SQL persistentes
Tablas derivadas persistentes nativas
Vistas estables
Cierre de consultas
Tablas dinámicas basadas en SQL
Zonas horarias
SSL
Subtotales
No
Parámetros adicionales de JDBC
Distingue mayúsculas de minúsculas
Tipo de ubicación
Tipo de lista
No
Percentil
No
Percentil distintivo
No
Procesos de presentación del ejecutor de SQL
No
Tabla de descripción del ejecutor de SQL
Índices de programas del ejecutor de SQL
No
Selección del ejecutor de SQL 10
Recuento de ejecutores de SQL
Explicación de SQL
Credenciales de OAuth
No
Comentarios contextuales
Agrupación de conexiones
No
Bocetos de HLL
No
Reconocimiento agregado
PDT incrementales
No
Milisegundos
Microsegundos
Vistas materializadas
No
Recuento aproximado de valores distintos

Próximos pasos

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