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
Se recomienda 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.
Configura 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 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:
- Un clúster que no usa Kerberos ni autenticación de usuarios
- Un clúster que requiere autenticación LDAP
- Un clúster protegido con Kerberos, pero que no usa Apache Sentry
Conéctate a un clúster sin autenticación de Kerberos ni de usuario
Para configurar una conexión que no use Kerberos ni autenticación de usuarios, sigue estos pasos:
- 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). - 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, en el panel Administrador de Looker, haz clic en Registro en el menú de la izquierda. 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.
Conéctate 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
Es posible que el equipo de analistas de Looker deba ayudarte a configurar esta conexión correctamente.
Por lo general, la autenticación de Kerberos con entornos de Cloudera se maneja 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, debes asegurarte de instalar varios tipos de software y de que haya varios archivos 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 Kerberos no está instalado, instala los archivos binarios del cliente Kerberos.
Por ejemplo, en Red Hat o CentOS, serí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 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
Descarga e instala la Java Cryptography Extension (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
yUS_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.
- Busca el directorio
Actualiza
JAVA_HOME
yPATH
en~looker/.bash_profile
para que apunten a la instalación correcta de Java ysource ~/.bash_profile
, o bien sal de tu cuenta y vuelve a acceder.Verifica la versión de Java con
java -version
.Verifica la variable de entorno
JAVA_HOME
conecho $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 el script 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
Si
krb5.conf
no está en/etc/
, usa la variable de entornoKRB5_CONFIG
para indicar su ubicación.Ejecuta el comando
klist
para asegurarte de que haya un ticket válido en la caché de tickets de Kerberos.Si no hay un ticket, ejecuta
kinit username@REALM
okinit username
para crear uno.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 los tickets.
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.
Dialect: Cloudera Impala 3.1+, Cloudera Impala 3.1+ with Native Driver o Cloudera Impala with Native Driver
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 supondrá 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 los PDT están habilitados, la ventana Connection revela parámetros de configuración adicionales de PDT y la sección PDT Overrides.
Base de datos temporal: Es una base de datos o un esquema temporal para almacenar PDT. Se debe crear de antemano.
Parámetros adicionales de JDBC: Son parámetros adicionales para la cadena de JDBC. Indica el principal de Kerberos aquí, por ejemplo,
;principal=impala/impala.company.com@REALM
. Los principios de tres partes son estándares. El primero (impala
) suele ser 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 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, 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 la búsqueda de DNS inversa de su dirección IP dé como resultado 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 configura 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
- Documentación de Cloudera sobre la depuración de problemas de autenticación de Impala
- Cuando agregues la depuración a la configuración, la información de depuración adicional terminará en
looker/logs/looker.log
.
Recursos
- Cómo habilitar la autenticación de Kerberos para Impala (documentación de Cloudera)
- Página de kinit man
- Página de klist man
- Documentación de gss-jaas.conf
- Documentación de Krb5LoginModule
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.
Compatibilidad de características
Para que Looker admita algunas funciones, tu dialecto de base de datos también debe admitirlas.
Cloudera Impala con controlador nativo
A partir de Looker 25.10, Cloudera Impala con Native Driver admite las siguientes funciones:
Función | ¿Es compatible? |
---|---|
Nivel de asistencia | Admitido |
Looker (Google Cloud Core) | No |
Agregaciones simétricas | No |
Tablas derivadas | Sí |
Tablas derivadas persistentes basadas en SQL | Sí |
Tablas derivadas persistentes nativas | Sí |
Vistas estables | Sí |
Cancelación de consultas | Sí |
Tablas dinámicas basadas en SQL | Sí |
Zonas horarias | Sí |
SSL | Sí |
Subtotales | No |
Parámetros adicionales de JDBC | Sí |
Distinción entre mayúsculas y minúsculas | Sí |
Tipo de ubicación | Sí |
Tipo de lista | No |
Percentil | No |
Percentil de valores distintos | No |
Ejecutor de SQL: Mostrar procesos | No |
Ejecutor de SQL: Describe la tabla | Sí |
Ejecutor de SQL: Mostrar índices | No |
Seleccionar 10 en el Ejecutor de SQL | Sí |
Recuento del Ejecutor de SQL | Sí |
Explicación de SQL | Sí |
Credenciales de OAuth 2.0 | No |
Comentarios contextuales | Sí |
Agrupación de conexiones | No |
Esbozos de HLL | No |
Conocimiento total | Sí |
PDT incrementales | No |
Milisegundos | Sí |
Microsegundos | Sí |
Vistas materializadas | No |
Medidas de comparación entre períodos | No |
Distinción de recuento aproximado | Sí |
Cloudera Impala 3.1 o versiones posteriores
A partir de Looker 25.10, Cloudera Impala 3.1 y versiones posteriores admiten las siguientes funciones:
Función | ¿Es compatible? |
---|---|
Nivel de asistencia | Admitido |
Looker (Google Cloud Core) | Sí |
Agregaciones simétricas | Sí |
Tablas derivadas | Sí |
Tablas derivadas persistentes basadas en SQL | Sí |
Tablas derivadas persistentes nativas | Sí |
Vistas estables | Sí |
Cancelación de consultas | Sí |
Tablas dinámicas basadas en SQL | Sí |
Zonas horarias | Sí |
SSL | Sí |
Subtotales | No |
Parámetros adicionales de JDBC | Sí |
Distinción entre mayúsculas y minúsculas | Sí |
Tipo de ubicación | Sí |
Tipo de lista | No |
Percentil | No |
Percentil de valores distintos | No |
Ejecutor de SQL: Mostrar procesos | No |
Ejecutor de SQL: Describe la tabla | Sí |
Ejecutor de SQL: Mostrar índices | No |
Seleccionar 10 en el Ejecutor de SQL | Sí |
Recuento del Ejecutor de SQL | Sí |
Explicación de SQL | Sí |
Credenciales de OAuth 2.0 | No |
Comentarios contextuales | Sí |
Agrupación de conexiones | No |
Esbozos de HLL | No |
Conocimiento total | Sí |
PDT incrementales | No |
Milisegundos | Sí |
Microsegundos | Sí |
Vistas materializadas | No |
Medidas de comparación entre períodos | No |
Distinción de recuento aproximado | Sí |
Cloudera Impala 3.1 o versiones posteriores con controlador nativo
Cloudera Impala 3.1 y versiones posteriores con Native Driver admiten las siguientes funciones a partir de Looker 25.10:
Función | ¿Es compatible? |
---|---|
Nivel de asistencia | Admitido |
Looker (Google Cloud Core) | No |
Agregaciones simétricas | Sí |
Tablas derivadas | Sí |
Tablas derivadas persistentes basadas en SQL | Sí |
Tablas derivadas persistentes nativas | Sí |
Vistas estables | Sí |
Cancelación de consultas | Sí |
Tablas dinámicas basadas en SQL | Sí |
Zonas horarias | Sí |
SSL | Sí |
Subtotales | No |
Parámetros adicionales de JDBC | Sí |
Distinción entre mayúsculas y minúsculas | Sí |
Tipo de ubicación | Sí |
Tipo de lista | No |
Percentil | No |
Percentil de valores distintos | No |
Ejecutor de SQL: Mostrar procesos | No |
Ejecutor de SQL: Describe la tabla | Sí |
Ejecutor de SQL: Mostrar índices | No |
Seleccionar 10 en el Ejecutor de SQL | Sí |
Recuento del Ejecutor de SQL | Sí |
Explicación de SQL | Sí |
Credenciales de OAuth 2.0 | No |
Comentarios contextuales | Sí |
Agrupación de conexiones | No |
Esbozos de HLL | No |
Conocimiento total | Sí |
PDT incrementales | No |
Milisegundos | Sí |
Microsegundos | Sí |
Vistas materializadas | No |
Medidas de comparación entre períodos | No |
Distinción de recuento aproximado | Sí |
Próximos pasos
Después de conectar tu base de datos a Looker, configura las opciones de acceso para tus usuarios.