Para conectar Looker a Snowflake, sigue estos pasos:
- Crea un usuario de Looker en Snowflake y aprovisiona el acceso.
- Configura una conexión de base de datos en Looker.
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.
Cómo crear un usuario de Looker en Snowflake
Te recomendamos que uses los siguientes comandos para crear el usuario de Looker. Asegúrate de ejecutar cada línea de forma individual o selecciona la opción All Queries en el panel de conexión de Snowflake para garantizar que se ejecuten todas las líneas (de forma predeterminada, Snowflake solo ejecuta las líneas seleccionadas):
Te recomendamos que agregues la palabra clave ON FUTURE
a cada instrucción GRANT
para que los objetos recién creados tengan los mismos permisos sin necesidad de realizar más acciones.
-- change role to ACCOUNTADMIN
use role ACCOUNTADMIN;
-- create role for looker
create role if not exists looker_role;
grant role looker_role to role SYSADMIN;
-- Note that we are not making the looker_role a SYSADMIN,
-- but rather granting users with the SYSADMIN role to modify the looker_role
-- create a user for looker
create user if not exists looker_user
password = <enter password here>;
grant role looker_role to user looker_user;
alter user looker_user
set default_role = looker_role
default_warehouse = looker_wh;
-- change role
use role SYSADMIN;
-- create a warehouse for looker (optional)
create warehouse if not exists looker_wh
-- set the size based on your dataset
warehouse_size = medium
warehouse_type = standard
auto_suspend = 1800
auto_resume = true
initially_suspended = true;
grant all privileges
on warehouse looker_wh
to role looker_role;
-- grant read only database access (repeat for all database/schemas)
grant usage on database <database> to role looker_role;
grant usage on schema <database>.<schema> to role looker_role;
-- rerun the following any time a table is added to the schema
grant select on all tables in schema <database>.<schema> to role looker_role;
-- or
grant select on future tables in schema <database>.<schema> to role looker_role;
-- create schema for looker to write back to
use database <database>;
create schema if not exists looker_scratch;
use role ACCOUNTADMIN;
grant ownership on schema looker_scratch to role SYSADMIN revoke current grants;
grant all on schema looker_scratch to role looker_role;
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. La mayoría de los parámetros de configuración son comunes en la mayoría de los dialectos de bases de datos. Consulta la página de documentación Cómo conectar Looker a tu base de datos para obtener más información. Las siguientes descripciones de la configuración contienen notas específicas de Snowflake:
Configuración de la base de datos: Host: Ingresa el nombre de host de Snowflake. Se verá de esta forma: <account_name>.snowflakecomputing.com
. Consulta los ejemplos de nombres de cuentas de Snowflake por región para asegurarte de usar el valor correcto para tu implementación.
Configuración de la base de datos: Método de autenticación: Selecciona uno de los siguientes métodos de autenticación:
La cuenta de base de datos solo debe ser utilizada por los clientes existentes que necesiten tiempo para realizar la transición a un método de autenticación de varios factores antes de la fecha límite de Snowflake de noviembre de 2025. Especifica el nombre de usuario y la contraseña de la cuenta de usuario de Snowflake que se usará para conectarse a Looker.
Los clientes que deseen implementar la autenticación con par de claves de Snowflake para conectarse con su base de datos deben usar Par de claves. Especifica la cuenta de usuario que se usará para conectarse a Snowflake en el campo Nombre de usuario. Sube un archivo de clave con formato p8 sin encriptar en el campo Archivo de par de claves; no se admiten archivos de claves encriptados. En la documentación de Snowflake se describe cómo crear un archivo de clave privada.
Los clientes que no necesiten tablas derivadas persistentes (PDT) y quieran configurar OAuth para la conexión deben usar OAuth.
Optional Settings - Enable PDTs: Las PDT no son compatibles con las conexiones de Snowflake que usan la autenticación de OAuth. Si se necesitan PDT, usa la opción de autenticación Par de claves.
Optional Settings - Additional JDBC parameters: Agrega parámetros JDBC adicionales del controlador JDBC de Snowflake.
- Agrega
warehouse=<YOUR WAREHOUSE NAME>
. Además, de forma predeterminada, Looker establecerá los siguientes parámetros de Snowflake en cada sesión:
TIMESTAMP_TYPE_MAPPING=TIMESTAMP_LTZ
JDBC_TREAT_DECIMAL_AS_INT=FALSE
TIMESTAMP_INPUT_FORMAT=AUTO
AUTOCOMMIT=TRUE
Puedes anular cada uno de estos parámetros configurando un valor alternativo en el campo Parámetros adicionales de JDBC, por ejemplo:
&AUTOCOMMIT=FALSE
Para verificar que la conexión se haya realizado correctamente, haz clic en Probar. Consulta la página de documentación Prueba la conectividad de la base de datos para obtener información sobre la solución de problemas.
Para guardar esta configuración, haz clic en Conectar.
Designar almacenes de Snowflake por grupo o por usuario
Puedes usar los atributos de usuario de Looker para asignar almacenes de Snowflake separados a usuarios o grupos individuales de Looker. Esto es útil, por ejemplo, si tienes usuarios que requieren diferentes niveles de potencia de procesamiento. Puedes asignar un almacén con más recursos de procesamiento solo a los usuarios que lo necesiten y asignar un almacén con menos recursos a los usuarios con menos necesidades.
Para designar almacenes por grupo o por usuario, sigue estos pasos:
- Agrega los grupos o los usuarios en Looker.
Define un atributo del usuario en Looker en el que se almacenarán los nombres del almacén de Snowflake. Puedes asignarle a este atributo cualquier nombre, como
snowflake_wh
.En el atributo de usuario que acabas de definir, asigna los valores de nombre del almacén a los grupos o usuarios que necesitarán un acceso diferente al almacén.
En el campo Parámetros JDBC adicionales de la página Configuración de conexión, agrega lo siguiente y reemplaza
snowflake_warehouse
por el nombre del atributo del usuario que definiste:warehouse={{ _user_attributes['snowflake_warehouse'] }}
Para probar la configuración de conexión individual, puedes usar sudo como un usuario al que le asignaste un valor de nombre de almacén.
Administra la función de suspensión automática de Snowflake
Los almacenes de Snowflake tienen una función de suspensión automática que está habilitada de forma predeterminada. Después de un período especificado, el almacén se suspenderá automáticamente. Si el almacén está suspendido, todas las consultas producirán un error. Este error no se ve en los paneles (normalmente, estos errores hacen que no se muestren datos), pero sí lo ve cualquier usuario que realice consultas con la página Explorar.
Por lo general, se usan dos métodos para administrar esto:
Snowflake tiene una función de reanudación automática que reanudará el almacén cuando se consulte. Sin embargo, reanudar el almacén puede tardar hasta cinco minutos, lo que hace que las consultas dejen de responder durante ese tiempo antes de que se devuelvan. La reanudación automática no se puede configurar en Looker. Habilita estas funciones en la pestaña Warehouses de la IU de Snowflake:
Si se habilitaron las tablas derivadas persistentes (PDT), el parámetro de configuración predeterminado de Looker es verificar la regeneración de la tabla derivada cada 5 minutos. Esta verificación mantendrá activos los almacenes de Snowflake. Sin embargo, es posible que desees que Snowflake suspenda los almacenes durante las horas no laborales para reducir los costos. Esto se puede lograr modificando el programa de regeneración de PDT, como se describe en la documentación del programa de mantenimiento.
Compatibilidad con PDT
Las PDT no son compatibles con las conexiones de Snowflake que usan OAuth.
Para admitir tablas derivadas persistentes, crea una cuenta de usuario de Snowflake para las PDT que tenga acceso de escritura a tu base de datos y al esquema temporal que Looker usará para crear PDT. En la página Configuración de conexiones de Looker, en la pestaña Configuración opcional de la sección Configuración de tablas derivadas persistentes (PDT), activa el botón de activación Habilitar PDT. Luego, en el campo Base de datos temporal, ingresa el nombre del esquema temporal que Looker usará para crear PDT.
Ten en cuenta que los reemplazos de PDT no están disponibles para las conexiones de Snowflake que usan la autenticación con pares de claves.
En el caso de las conexiones de Snowflake, Looker establece el valor del parámetro AUTOCOMMIT
de Snowflake en TRUE
, que es el valor predeterminado de Snowflake. AUTOCOMMIT
es obligatorio para los comandos de SQL que ejecuta Looker para mantener su sistema de registro de PDT.
Configura OAuth para las conexiones de Snowflake
Looker admite OAuth para las conexiones de Snowflake, lo que significa que cada usuario de Looker se autentica en la base de datos con su propia cuenta de usuario de OAuth.
OAuth permite a los administradores de bases de datos realizar las siguientes tareas:
- Audita qué usuarios de Looker ejecutan consultas en la base de datos
- Aplica controles de acceso basados en roles con permisos a nivel de la base de datos
- Usa tokens de OAuth para todos los procesos y acciones que accedan a la base de datos, en lugar de incorporar IDs y contraseñas de la base de datos en varios lugares.
- Revoca la autorización de un usuario determinado directamente a través de la base de datos
Con las conexiones de Snowflake que usan OAuth, los usuarios deben volver a acceder periódicamente cuando vencen sus tokens de OAuth. La antigüedad máxima de los tokens de OAuth de Snowflake se establece a través de Snowflake.
Ten en cuenta lo siguiente para las conexiones de OAuth a nivel de la base de datos:
- Las tablas derivadas persistentes (PDT) no son compatibles con las conexiones de Snowflake con OAuth.
- Si un usuario permite que venza su token de OAuth, se verán afectados todos los programas o alertas de Looker que le pertenezcan. Para evitar esto, Looker enviará un correo electrónico de notificación al propietario de cada programación y cada alerta 14 días, 7 días y 1 día antes de que venza el token. El usuario puede ir a su página de usuario de Looker para volver a autorizar el acceso de Looker a la base de datos y evitar interrupciones en sus programas y alertas. Consulta la página de documentación Personaliza la configuración de la cuenta de usuario para obtener más detalles.
- Dado que las conexiones de bases de datos que usan OAuth son "por usuario", las políticas de almacenamiento en caché también son por usuario y no solo por consulta. Esto significa que Looker usará los resultados almacenados en caché solo si el mismo usuario ejecutó la misma consulta dentro del período de almacenamiento en caché. Para obtener más información sobre el almacenamiento en caché, consulta la página de documentación Almacenamiento en caché de consultas.
- Cuando usas OAuth, no puedes cambiar a diferentes roles en la cuenta de usuario de Snowflake. Como se describe en la documentación de Snowflake, Snowflake usa el rol predeterminado de la cuenta del usuario de Snowflake, a menos que el rol predeterminado sea ACCOUNTADMIN o SECURITYADMIN. Como estos roles están bloqueados para OAuth, Snowflake usará el rol PUBLIC. Consulta la documentación de Snowflake para obtener más información.
- Cuando un administrador de Looker usa sudo como otro usuario, el administrador usará el token de acceso de OAuth de ese usuario. Si el token de acceso del usuario caducó, el administrador no puede crear un token nuevo en nombre del usuario con privilegios de sudo. Consulta la página de documentación de Usuarios para obtener información sobre el uso del comando
sudo
.
Cómo configurar una base de datos de Snowflake para OAuth con Looker
Para crear una conexión de Snowflake a Looker con OAuth, debes configurar la integración de OAuth en Snowflake. Esto requiere una cuenta de usuario de Snowflake con permiso de ACCOUNTADMIN.
Ejecuta el siguiente comando en Snowflake, en el que
<looker_hostname>
es el nombre de host de tu instancia de Looker:CREATE SECURITY INTEGRATION LOOKER TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = LOOKER OAUTH_REDIRECT_URI = 'https://<looker_hostname>/external_oauth/redirect';
Ejecuta el siguiente comando para obtener el ID y el secreto del cliente de OAuth:
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('LOOKER');
La respuesta tendrá un
OAUTH_CLIENT_ID
y unOAUTH_CLIENT_SECRET
que necesitarás más adelante en este procedimiento.En Looker, crea una conexión nueva con tu almacén de Snowflake, como se describe en la sección Cómo crear la conexión de Looker a tu base de datos de esta página. Cuando crees la conexión nueva, selecciona la opción OAuth en el campo Authentication. Cuando seleccionas la opción OAuth, Looker muestra los campos ID de cliente de OAuth y Secreto de cliente de OAuth.
Pega los valores
OAUTH_CLIENT_ID
yOAUTH_CLIENT_SECRET
que obtuviste de tu base de datos en un paso anterior de este procedimiento.Completa el resto del procedimiento para conectar Looker a tu base de datos.
Cómo probar la conexión de OAuth
Una vez que configures la conexión de Looker a tu base de datos, puedes probar la conexión de las siguientes maneras:
- Selecciona el botón Probar en la parte inferior de la página Configuración de conexiones, como se describe en la página de documentación Cómo conectar Looker a tu base de datos.
- Selecciona el botón Probar junto a la lista de la conexión en la página de administrador Conexiones, como se describe en la página de documentación Conexiones.
Además, puedes probar la conexión y, luego, implementarla en un modelo siguiendo estos pasos:
- En Looker, ve al Modo de desarrollo.
- Navega a los archivos del proyecto para un proyecto de Looker que use tu conexión de Snowflake.
- Abre un archivo de modelo y reemplaza el valor
connection
del modelo por el nombre de la nueva conexión de Snowflake. Luego, guarda el archivo del modelo. - Abre una de las exploraciones o los paneles del modelo y ejecuta una consulta. Cuando intentes ejecutar una consulta, Looker te pedirá que accedas a Snowflake.
- Sigue las indicaciones para acceder a Snowflake y, luego, ingresa tus credenciales de Snowflake.
Una vez que accedas correctamente a Snowflake, Looker te redireccionará a tu consulta. Si la consulta se ejecuta correctamente, puedes confirmar el nuevo valor de conexión y implementar los cambios en la producción.
Accede a Snowflake para ejecutar consultas
Una vez que se configure la conexión de Snowflake para OAuth, se les pedirá a los usuarios que accedan a Snowflake antes de ejecutar consultas. Esto incluye las consultas de Explorar, los paneles, los Looks y el Ejecutor de SQL.
Los usuarios también pueden acceder a Snowflake desde la sección Credenciales de conexión de OAuth en su página Cuenta.
Para acceder a tu cuenta de Snowflake con Looker, sigue estos pasos:
- Haz clic en el menú de usuario de Looker.
- Selecciona Cuenta.
- En la página Cuenta, ve a la sección Credenciales de conexión de OAuth y selecciona el botón Acceder para la base de datos de Snowflake correspondiente.
Si seleccionas Log In, aparecerá un diálogo de acceso a Snowflake. Ingresa tus credenciales de Snowflake y selecciona Acceder. Luego, selecciona Permitir para otorgarle acceso a Looker a tu cuenta de Snowflake.
Una vez que accedas a Snowflake a través de Looker, podrás salir de tu cuenta o volver a autorizar tus credenciales en cualquier momento a través de la página Cuenta, como se describe en la página de documentación Personaliza tu cuenta de usuario.
Compatibilidad de características
Para que Looker admita algunas funciones, tu dialecto de base de datos también debe admitirlas.
A partir de Looker 25.10, Snowflake admite 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 | Sí |
Parámetros adicionales de JDBC | Sí |
Distinción entre mayúsculas y minúsculas | Sí |
Tipo de ubicación | Sí |
Tipo de lista | Sí |
Percentil | Sí |
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 | Sí |
Comentarios contextuales | Sí |
Agrupación de conexiones | Sí |
Esbozos de HLL | Sí |
Conocimiento total | Sí |
PDT incrementales | Sí |
Milisegundos | Sí |
Microsegundos | Sí |
Vistas materializadas | No |
Medidas de comparación entre períodos | Sí |
Distinción de recuento aproximado | No |
Próximos pasos
Después de conectar tu base de datos a Looker, configura las opciones de acceso para tus usuarios.