DataSunrise está patrocinando AWS re:Invent 2024 en Las Vegas, por favor visítenos en el stand #2158 de DataSunrise

Snowflake Looker

Snowflake Looker

Imagen de contenido de 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:

  1. En Looker, ve a Admin > Conexiones y haz clic en “Nueva Conexión”.
  2. Selecciona “Snowflake” como el dialecto.
  3. Ingresa la URL de tu cuenta de Snowflake, nombre de usuario y contraseña.
  4. Selecciona la base de datos, el esquema y el almacén predeterminados a usar.
  5. 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.

Arquitectura de Snowflake Looker

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:

  1. Ve a Admin > Grupos en Looker
  2. Crea un nuevo grupo o edita uno existente
  3. En Roles, selecciona la conexión de Snowflake y elige el rol de Snowflake a asignar
  4. 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:

  1. Ve a Admin > Atributos de Usuario
  2. Define un nuevo atributo, por ejemplo, “snowflake_user”
  3. 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.

Siguiente

Gestión de Datos en Snowflake

Gestión de Datos en Snowflake

Más información

¿Necesita la ayuda de nuestro equipo de soporte?

Nuestros expertos estarán encantados de responder a sus preguntas.

Información general:
[email protected]
Servicio al Cliente y Soporte Técnico:
support.datasunrise.com
Consultas sobre Asociaciones y Alianzas:
[email protected]