Snowflake Looker
Introducción
Snowflake, una plataforma de almacenamiento de datos basada en la nube, y Looker, una herramienta moderna de inteligencia empresarial y visualización de datos, son dos de las herramientas más populares para el análisis de datos en la actualidad. Integrar Snowflake y Looker permite a las organizaciones aprovechar el poder del almacenamiento de datos escalable y flexible de Snowflake con las capacidades intuitivas de exploración y creación de paneles de Looker.
En este artículo, cubriremos lo básico del uso de Snowflake con Looker, incluyendo cómo configurar la integración, gestionar usuarios y roles, implementar seguridad a nivel de fila, usar la capa de modelado LookML de Looker con Snowflake y aplicar las mejores prácticas de gobernanza de datos. Al final, tendrás una base sólida para construir una pila moderna de análisis con Snowflake y Looker.
Configuración de la Integración de Snowflake Looker
El primer paso es conectar tu cuenta de Snowflake a Looker.
Así es cómo:
- En Looker, ve a Admin > Conexiones y haz clic en “Nueva Conexión”.
- Selecciona “Snowflake” como el dialecto.
- Ingresa la URL de tu cuenta de Snowflake, nombre de usuario y contraseña.
- Selecciona la base de datos, el esquema y el almacén predeterminados a usar.
- Prueba la conexión y guarda.
Por ejemplo:
Nombre de Conexión: Mi Conexión Snowflake Dialect: snowflake Host: micuenta.snowflakecomputing.com Database: MYDB Schema: PUBLIC Warehouse: MYWH
Una vez que la conexión esté configurada, Looker puede ahora consultar los datos almacenados en tu cuenta de Snowflake. El siguiente paso es crear un proyecto LookML para modelar y explorar estos datos.
Modelado de Datos de Snowflake en Looker Usando LookML
LookML es el lenguaje de modelado de Looker para describir el esquema de tu base de datos de una manera controlable por versiones. En lugar de escribir consultas SQL, defines tu modelo de datos en LookML y dejas que Looker genere SQL optimizado para ti. Esto promueve la reutilización y consistencia en tu equipo de datos.
A continuación, se muestra un ejemplo de un simple view LookML para una tabla de usuarios en Snowflake:
view: users { sql_table_name: MYDB.PUBLIC.USERS ;; dimension: user_id { primary_key: yes type: number sql: ${TABLE}.ID ;; } dimension: name { type: string sql: ${TABLE}.NAME ;; } dimension: email { type: string sql: ${TABLE}.EMAIL ;; } measure: count { type: count } }
Este view se mapea a la tabla USERS en Snowflake y define dimensiones y medidas que pueden ser utilizadas en la sección Explore de Looker para construir gráficos y paneles.
Algunos conceptos clave de LookML para entender al modelar datos de Snowflake en Looker:
- Views se mapean a tablas o tablas derivadas
- Las Dimensiones se mapean a columnas y pueden ser usadas para agrupar y filtrar
- Las Medidas son agregaciones como COUNT, SUM, AVG
- Puedes definir relaciones entre views que Looker usará para unir automáticamente tablas
Looker maneja automáticamente la generación del dialecto SQL óptimo para la base de datos Snowflake a la que está conectado. Esto abstrae las complejidades de la base de datos subyacente y permite a los analistas enfocarse en hacer preguntas y obtener insights.
Gestión de Roles y Usuarios en Snowflake y Looker
Al configurar Snowflake Looker para tu organización, es crucial gestionar adecuadamente los roles y usuarios para asegurar que el acceso a los datos esté restringido de manera apropiada. Snowflake proporciona un extenso control de acceso basado en roles , y Looker te permite asignar roles y privilegios de Snowflake a grupos de Looker.
Roles en Snowflake
En Snowflake, los roles son la base para los privilegios y el control de acceso. Algunos conceptos clave:
- Los roles pueden asignarse privilegios a bases de datos, esquemas, tablas y vistas específicos
- Los roles pueden asignarse a usuarios y a otros roles
- Snowflake tiene varios roles definidos por el sistema como ACCOUNTADMIN, SYSADMIN, SECURITYADMIN
- Es una buena práctica crear roles personalizados específicos a las necesidades de tu organización
Por ejemplo, para crear un rol ANALYST que pueda leer datos en la base de datos MYDB:
USE ROLE SECURITYADMIN; CREATE ROLE ANALYST; GRANT USAGE ON DATABASE MYDB TO ROLE ANALYST; GRANT USAGE ON ALL SCHEMAS IN DATABASE MYDB TO ROLE ANALYST; GRANT SELECT ON ALL TABLES IN DATABASE MYDB TO ROLE ANALYST; GRANT SELECT ON FUTURE TABLES IN DATABASE MYDB TO ROLE ANALYST;
Este rol ahora puede ser asignado a usuarios o grupos de Snowflake que necesiten acceso de solo lectura a los datos en MYDB con fines de análisis.
Roles y Grupos en Looker
En Looker, asignas roles y privilegios a grupos, que son colecciones de usuarios de Looker. Los roles de Snowflake pueden ser mapeados a grupos de Looker para extender el control de acceso de Snowflake en la capa de Looker.
Para mapear un rol de Snowflake a un grupo de Looker:
- Ve a Admin > Grupos en Looker
- Crea un nuevo grupo o edita uno existente
- En Roles, selecciona la conexión de Snowflake y elige el rol de Snowflake a asignar
- Cualquier usuario añadido a este grupo de Looker ahora tendrá los privilegios del rol de Snowflake asignado cuando explore datos a través de Looker
Por ejemplo, podrías crear un grupo de Looker llamado “Business Analysts”, asignarle el rol de Snowflake ANALYST de antes y añadir a todos tus usuarios analistas de Looker a este grupo. Estarán restringidos a consultas de solo lectura sobre la base de datos MYDB.
La combinación de roles de Snowflake y grupos de Looker proporciona una poderosa forma de gestionar el acceso a los datos en tu pila de análisis de Snowflake Looker. Al adoptar un enfoque estratégico para configurar estos permisos, puedes garantizar que las personas correctas tengan acceso a los datos correctos.
Implementación de Seguridad a Nivel de Fila con Snowflake y Looker
La seguridad a nivel de fila restringe el acceso a los datos a nivel de fila individual basado en atributos de usuario. Esto es importante para asegurar que los usuarios solo vean los datos a los que están autorizados a acceder. Snowflake Looker soporta la seguridad a nivel de fila aprovechando las Secure Views en Snowflake y los User Attributes en Looker.
Secure Views en Snowflake
Secure Views en Snowflake son vistas que hacen referencia a otros objetos de la base de datos y aplican políticas de seguridad a nivel de fila usando predicados SQL.
Por ejemplo, supongamos que tenemos una tabla ORDERS y solo queremos que los usuarios puedan ver sus propias órdenes. Podríamos crear una vista segura como:
CREATE SECURE VIEW MY_ORDERS AS SELECT * FROM ORDERS WHERE USER_ID = CURRENT_USER();
La función CURRENT_USER() devuelve el nombre del usuario actualmente conectado en Snowflake. Esta vista segura solo devolverá filas de la tabla ORDERS donde la columna USER_ID coincida con el usuario actual.
Atributos de Usuario en Looker
Looker te permite definir Atributos de Usuario que son pares clave-valor asociados con cuentas de usuario. Estos atributos pueden ser pasados a consultas para filtrar dinámicamente datos basados en el usuario actual.
Para configurar un Atributo de Usuario en Looker:
- Ve a Admin > Atributos de Usuario
- Define un nuevo atributo, por ejemplo, “snowflake_user”
- Establece el valor de este atributo para cada usuario de Looker para que coincida con su nombre de usuario de Snowflake.
Ahora en tu modelo LookML, puedes referenciar este atributo de usuario en el SQL para tu vista:
view: orders { sql_table_name: MYDB.PUBLIC.ORDERS ;; dimension: user_id { type: number sql: ${TABLE}.USER_ID ;; } dimension: order_id { primary_key: yes type: number sql: ${TABLE}.ORDER_ID ;; } dimension: total_amount { type: number sql: ${TABLE}.TOTAL_AMOUNT ;; } dimension: order_date { type: date sql: ${TABLE}.ORDER_DATE ;; } measure: count { type: count } measure: total_sales { type: sum sql: ${total_amount} ;; } # Aquí añadimos un filtro basado en el atributo de usuario "snowflake_user" filter: user_filter { type: string sql: {% condition user_id %} ${user_id} {% endcondition %} ;; } }
Con esta configuración, Looker añadirá automáticamente una cláusula WHERE a cualquier consulta contra la vista ORDERS para filtrar los resultados basados en el valor del atributo de usuario “snowflake_user” del usuario actual. El resultado final es que los usuarios solo pueden ver sus propios datos de órdenes cuando exploran estos datos en Looker.
Al combinar Secure Views en Snowflake con atributos de usuario en Looker, puedes implementar políticas de seguridad a nivel de fila granulares y dinámicas en tus datos. Esta es una forma poderosa de asegurar el cumplimiento con regulaciones de privacidad de datos y proteger la información sensible.
Conclusión
Integrar Snowflake y Looker permite a las organizaciones construir una plataforma de análisis moderna y escalable. Al aprovechar las poderosas capacidades de almacenamiento de datos de Snowflake con la flexible capa de modelado y exploración de datos de Looker, los equipos de datos pueden proporcionar acceso seguro y autoservicio a los datos en toda la organización.
En este artículo, cubrimos los aspectos clave de usar Snowflake con Looker:
- Configuración de la conexión de Snowflake en Looker
- Modelado de datos de Snowflake usando LookML de Looker
- Gestión de usuarios y roles en Snowflake
- Implementación de seguridad a nivel de fila con Secure Views y atributos de usuario
Los ejemplos proporcionados sirven como referencia para implementar estos conceptos en tu propio entorno Snowflake Looker. Al configurar adecuadamente los roles, privilegios y la seguridad a nivel de fila, puedes asegurarte de que los datos se accedan de manera segura y apropiada en toda la organización.
Hay muchas más capacidades avanzadas de la integración Snowflake Looker, como usar las PDTs (tablas derivadas persistentes) de Looker, aprovechar la clonación sin copia de Snowflake para flujos de trabajo de desarrollo y optimizar el rendimiento de las consultas. Te animo a explorar estos temas más a fondo mientras construyes tu pila de análisis.
La combinación de Snowflake y Looker es una base poderosa para cualquier organización impulsada por datos. Siguiendo las mejores prácticas en torno al modelado de datos, seguridad y gobernanza, puedes empoderar a tu equipo para obtener insights valiosos rápida y seguramente.