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+ con controlador nativo
- Cloudera Impala con controlador nativo
Cifrar el tráfico de red
Te recomendamos que cifres el tráfico de red entre la aplicación Looker y tu base de datos. Considera una de las opciones descritas en la página de documentación Habilitar el acceso seguro a la base de datos.
Configurar Looker para conectarse 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 Configurar Impala para que funcione con JDBC de la documentación del sitio web de Cloudera.
En la sección Administrar de Looker, selecciona Conexiones y, a continuación, haz clic en Añadir 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 la autenticación de usuarios
- Un clúster que requiera autenticación LDAP
- Un clúster protegido con Kerberos, pero que no usa Apache Sentry
Conectarse 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 usuario, sigue estos pasos:
- En la página Connection Settings (Configuración de conexión), deja en blanco los campos Username (Nombre de usuario) y Password (Contraseña). El símbolo
*
situado junto a los nombres de los campos indica que estos campos son obligatorios, pero no lo son. - En el campo Additional JDBC parameters (Parámetros JDBC adicionales), introduce
;auth=noSasl
.
Verificar la cadena de conexión
Para verificar la cadena de conexión JDBC en los archivos de registro, en el panel Administración de Looker, haga clic en Registro en el menú de la izquierda. A continuación, filtra el registro por un término como jdbc
o noSasl
. La línea de registro puede tener un aspecto similar al siguiente:
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 del 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 Connection Settings (Configuración de la conexión), introduce un Username (Nombre de usuario) y una Password (Contraseña) con acceso a los esquemas a los que accederá Looker.
Conectarse a un clúster protegido con Kerberos, pero sin usar Apache Sentry
Es posible que el equipo de analistas de Looker tenga que ayudarte a configurar esta conexión correctamente.
Normalmente, la autenticación Kerberos con entornos de Cloudera se gestiona a través de Apache Sentry. Consulta más información en la documentación de Cloudera.
Si quieres configurar Looker para que se conecte directamente a bases de datos de Impala mediante la autenticación Kerberos, sigue los pasos que se indican en esta página.
Configurar el cliente de Kerberos
Primero, debes asegurarte de que se hayan instalado varios programas y de que haya varios archivos en la máquina de Looker.
Cliente de Kerberos
Verifica que el cliente de Kerberos esté instalado en el equipo de Looker intentando 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, sería:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 debe estar instalado en el equipo de Looker y en los directorios PATH
y JAVA_HOME
del usuario de Looker. Si es necesario, instálalo de forma local en el directorio looker
.
Java Cryptography Extension
Descarga e instala Java Cryptography Extension (JCE) para Java 8 desde el sitio web de Oracle.
- Busca el directorio
jre/lib/security
de la instalación de Java. - Elimina los siguientes archivos JAR de este directorio:
local_policy.jar
yUS_export_policy.jar
. - Sustituye estos dos archivos por los archivos JAR incluidos en la descarga de archivos de políticas de jurisdicción de cifrado de intensidad ilimitada de JCE.
Es posible usar versiones de Java anteriores a Java 8 con JCE instalado, pero no es recomendable.
- 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 cierra sesión y vuelve a iniciarla.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 este contenido:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
Si es necesario para las pruebas, se puede añadir 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, debe indicarse en el entorno (KRB5_CONFIG
en el entorno de shell).
Puede que tengas que copiarlo de otro equipo cliente de Kerberos.
lookerstart.cfg
Para hacer referencia 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 añadir esta variable:
-Djava.security.krb5.conf=/path/to/krb5.conf
Para depurar, añade estas variables:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
A continuación, reinicia Looker con ./looker restart
.
Autenticarse 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 ninguna incidencia, ejecuta
kinit username@REALM
okinit username
para crearla.La cuenta que se usa con Looker probablemente no tenga interfaz, 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.
Renovar el ticket automáticamente
Configura un trabajo cron que se ejecute cada cierto tiempo 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 cuándo caducan las entradas.
Crear la conexión de Looker a tu base de datos
En la sección Administrar de Looker, selecciona Conexiones y, a continuación, haz clic en Añadir conexión.
Rellena los detalles de la conexión de la siguiente manera (consulta la página de documentación Conectar Looker a tu base de datos para obtener más información):
- Nombre: el nombre de la conexión. Así 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: el esquema o la base de datos predeterminados que se modelizarán. Si no se especifica ninguna base de datos para una tabla, se asumirá esta.
Nombre de usuario: deja este campo en blanco.
Contraseña: deja este campo en blanco.
Habilitar PDTs: usa este interruptor para habilitar las tablas derivadas persistentes. Cuando se habilitan los PDTs, en la ventana Conexión se muestran ajustes adicionales de PDTs y la sección Sustituciones de PDTs.
Base de datos temporal: un esquema o una base de datos temporal para almacenar PDTs. Debes crearla antes.
Parámetros JDBC adicionales: parámetros adicionales para la cadena JDBC. Indica el principal de Kerberos aquí, por ejemplo,
;principal=impala/impala.company.com@REALM
. Los principales de tres partes son estándar. El primero (impala
) suele ser el nombre del servicio y el último (REALM
) suele ser el dominio.SSL marca esta casilla para usar conexiones SSL. Si tu certificado SSL no lo ha emitido una autoridad de certificación reconocida y estás usando un certificado personalizado, tendrás que 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.
- Añade los siguientes parámetros al campo Parámetros JDBC adicionales:
sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword
Consulta la documentación de Cloudera para obtener más información sobre cómo formar las cadenas JDBC correctas para las bases de datos de Impala.
- Zona horaria de la base de datos: la zona horaria de los datos almacenados en tu base de datos. Normalmente, se puede dejar en blanco o definir como UTC.
Es una práctica recomendada 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 inverso de su dirección IP dé como resultado ese nombre. Sin embargo, el nombre del servidor debe ser el que aparezca 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 define como el nombre de host, y no como el nombre de dominio completo. En este caso, puede que sea necesario modificar los archivos /etc/hosts
y /etc/nsswitch.conf
para asegurarse de que las búsquedas inversas se resuelvan correctamente.
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 añadas la depuración a la configuración, la información de depuración adicional se incluirá en
looker/logs/looker.log
.
Recursos
- Habilitar la autenticación de Kerberos para Impala (documentación de Cloudera)
- Página del manual de kinit
- página del manual de klist
- Documentación de gss-jaas.conf
- Documentación de Krb5LoginModule
Permisos de PDTs
El usuario que se conecte al esquema de borrador de las tablas derivadas persistentes (PDTs) debe tener permisos de lectura y escritura.
Funciones admitidas
Para que Looker admita algunas funciones, el dialecto de tu 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 25.14:
Función | ¿Es compatible? |
---|---|
Nivel de asistencia | Compatible |
Looker (servicio principal de Google Cloud) | No |
Agregados simétricos | No |
Tablas derivadas | Sí |
Tablas derivadas de SQL persistentes | Sí |
Tablas derivadas nativas persistentes | Sí |
Vistas estables | Sí |
Eliminación de consultas | Sí |
Pivotes basados en SQL | Sí |
Zonas horarias | Sí |
SSL | Sí |
Subtotales | No |
Parámetros adicionales de JDBC | Sí |
Distingue entre mayúsculas y minúsculas | Sí |
Tipo de ubicación | Sí |
Tipo de lista | No |
Percentil | No |
Percentil de valores distintos | No |
SQL Runner Show Processes | No |
SQL Runner Describe Table | Sí |
SQL Runner Show Indexes | No |
SQL Runner Select 10 | Sí |
Recuento de SQL Runner | Sí |
Explicación de SQL | Sí |
Credenciales de OAuth 2.0 | No |
Comentarios contextuales | Sí |
Grupo de conexiones | No |
Esquemas HLL | No |
Notoriedad agregada | Sí |
PDTs incrementales | No |
Milisegundos | Sí |
Microsegundos | Sí |
Vistas materializadas | No |
Métricas de comparación con el periodo anterior | No |
Recuento aproximado de valores distintos | Sí |
Cloudera Impala 3.1 o versiones posteriores
Cloudera Impala 3.1+ admite las siguientes funciones a partir de Looker 25.14:
Función | ¿Es compatible? |
---|---|
Nivel de asistencia | Compatible |
Looker (servicio principal de Google Cloud) | Sí |
Agregados simétricos | Sí |
Tablas derivadas | Sí |
Tablas derivadas de SQL persistentes | Sí |
Tablas derivadas nativas persistentes | Sí |
Vistas estables | Sí |
Eliminación de consultas | Sí |
Pivotes basados en SQL | Sí |
Zonas horarias | Sí |
SSL | Sí |
Subtotales | No |
Parámetros adicionales de JDBC | Sí |
Distingue entre mayúsculas y minúsculas | Sí |
Tipo de ubicación | Sí |
Tipo de lista | No |
Percentil | No |
Percentil de valores distintos | No |
SQL Runner Show Processes | No |
SQL Runner Describe Table | Sí |
SQL Runner Show Indexes | No |
SQL Runner Select 10 | Sí |
Recuento de SQL Runner | Sí |
Explicación de SQL | Sí |
Credenciales de OAuth 2.0 | No |
Comentarios contextuales | Sí |
Grupo de conexiones | No |
Esquemas HLL | No |
Notoriedad agregada | Sí |
PDTs incrementales | No |
Milisegundos | Sí |
Microsegundos | Sí |
Vistas materializadas | No |
Métricas de comparación con el periodo anterior | No |
Recuento aproximado de valores distintos | Sí |
Cloudera Impala 3.1+ con controlador nativo
Cloudera Impala 3.1+ con controlador nativo admite las siguientes funciones a partir de Looker 25.14:
Función | ¿Es compatible? |
---|---|
Nivel de asistencia | Compatible |
Looker (servicio principal de Google Cloud) | No |
Agregados simétricos | Sí |
Tablas derivadas | Sí |
Tablas derivadas de SQL persistentes | Sí |
Tablas derivadas nativas persistentes | Sí |
Vistas estables | Sí |
Eliminación de consultas | Sí |
Pivotes basados en SQL | Sí |
Zonas horarias | Sí |
SSL | Sí |
Subtotales | No |
Parámetros adicionales de JDBC | Sí |
Distingue entre mayúsculas y minúsculas | Sí |
Tipo de ubicación | Sí |
Tipo de lista | No |
Percentil | No |
Percentil de valores distintos | No |
SQL Runner Show Processes | No |
SQL Runner Describe Table | Sí |
SQL Runner Show Indexes | No |
SQL Runner Select 10 | Sí |
Recuento de SQL Runner | Sí |
Explicación de SQL | Sí |
Credenciales de OAuth 2.0 | No |
Comentarios contextuales | Sí |
Grupo de conexiones | No |
Esquemas HLL | No |
Notoriedad agregada | Sí |
PDTs incrementales | No |
Milisegundos | Sí |
Microsegundos | Sí |
Vistas materializadas | No |
Métricas de comparación con el periodo anterior | No |
Recuento aproximado de valores distintos | Sí |
Pasos siguientes
Una vez que hayas conectado tu base de datos a Looker, configura las opciones de inicio de sesión para tus usuarios.