No hace mucho tiempo, configurar un almacén de datos significaba comprar un dispositivo de hardware costoso y especialmente diseñado y ejecutarlo en tu centro de datos. Por el contrario, Snowflake es una plataforma nativa de la nube que elimina la necesidad de almacenes de datos, lagos de datos y mercados de datos separados, lo que permite compartir datos de forma segura en toda la organización. El CEO de Snowflake escribió en su blog corporativo que su empresa en realidad está generando interrupciones porque «solo estamos limitados por la imaginación de las personas y sus presupuestos, porque la tecnología no lo detendrá».
Snowflake es una de las herramientas de almacenamiento de datos más populares del mercado. Dado que la mayoría de las organizaciones generan petabytes de Big Data en varios formatos, es necesario encontrar formas de recopilar y administrar los datos para proporcionar información comercial significativa y procesable. Obtén información a continuación sobre Snowflake y cómo puede respaldar la inteligencia comercial dentro de tu organización.
Indice
¿Qué es la nube de datos Snowflake?
Snowflake se basa en la infraestructura de nube de Amazon Web Services, Microsoft Azure y Google. No es necesario seleccionar, instalar, configurar ni administrar hardware ni software, por lo que es ideal para organizaciones que no desean dedicar recursos a la configuración, el mantenimiento y la asistencia de servidores internos. Y los datos se pueden mover fácilmente a Snowflake usando una solución ETL.
Pero lo que distingue a Snowflake es su arquitectura y sus capacidades para compartir datos. La arquitectura Snowflake permite que el almacenamiento y la computación se escalen de forma independiente, de modo que los clientes puedan usar y pagar el almacenamiento y la computación por separado. Y la funcionalidad de uso compartido facilita que las organizaciones compartan rápidamente datos gobernados y seguros en tiempo real.
Ofrece a las organizaciones un sistema de almacenamiento flexible y escalable. Excelente para alojar datos que luego pueden ser consultados y accedidos por una solución de inteligencia comercial. A pesar de que está totalmente construido y alojado en la nube, se combina bien con las soluciones de BI tanto en la nube como en las instalaciones.
También ofrece almacenamiento elástico, aplicando técnicas de almacenamiento tanto en caliente como en frío para reducir costes y computación escalable, que evita los límites de concurrencia tradicionales de otras herramientas de almacenamiento de datos.
Cargas de trabajo incluidas
Snowflake proporciona una única plataforma unificada para administrar todos sus datos, incluidas las siguientes cargas de trabajo:
- Ingeniería de datos: Snowflake es compatible con una amplia gama de herramientas de procesamiento e integración de datos y, combinado con la capacidad de implementar almacenes virtuales en milisegundos y escalar instantáneamente la potencia de cómputo, lo convierte en una solución muy convincente para la ingeniería de datos de estilo ELT. Con pocas opciones de ajuste de rendimiento, es una plataforma de mantenimiento muy bajo y se cobra por completo mediante el pago por uso.
- Lago de datos: si bien la falla tecnológica de Hadoop le ha dado al concepto de lago de datos una mala reputación, las soluciones de lago de datos basadas en la nube claramente están ganando. La combinación de poder de cómputo infinito y almacenamiento de datos económico e ilimitado con la capacidad única de Snowflake para consultar datos semiestructurados mediante SQL hacen de esta una plataforma perfecta para un lago de datos.
- Almacén de datos: Snowflake claramente toma la delantera en la entrega de una plataforma de almacenamiento de datos en la nube y en 2009 Gartner lo reconoció como líder en el espacio por tercer año consecutivo. La administración de muy bajo mantenimiento y la capacidad de ingerir, transformar y consultar datos casi en tiempo real hacen de esta una solución excelente.
- Ciencia de datos: la capacidad de escalar el almacén virtual y procesar terabytes de datos con facilidad hacen de Snowflake una solución convincente para la ciencia de datos. Esto, combinado con la profunda integración con el aprendizaje automático y la extensa lista de socios de ciencia de datos, facilita la tarea de ofrecer soluciones de aprendizaje automático.
- Aplicaciones de datos: uno de los mayores desafíos a los que se enfrentan los arquitectos de soluciones que ofrecen aplicaciones con uso intensivo de datos es la capacidad de manejar con elegancia la concurrencia y la escala masiva. Los almacenes exclusivos multiclúster de Snowflake resuelven este problema y ofrecen un rendimiento excelente a pesar de las millas de consultas simultáneas.
- Intercambio de datos: se refiere a la capacidad de compartir e intercambiar datos con subsidiarias, socios o terceros. Snowflake Data Marketplace brinda acceso en vivo a datos listos para consultar con unos pocos clics. Simplifica el acceso a los datos a nivel mundial con unos pocos clics. Esto brinda a todas las empresas la oportunidad de monetizar sus datos.
Arquitectura
¿Recuerdas cuando comprar un servicio de televisión por cable significaba que la infraestructura y el contenido eran un paquete? Hoy, esas cosas son distintas y, en su mayor parte, las personas tienen más control sobre lo que usan y cómo lo pagan.
La arquitectura de Snowflake permite una flexibilidad similar con big data. Snowflake desacopla las funciones de almacenamiento y cómputo, lo que significa que las organizaciones que tienen demandas altas de almacenamiento pero menos necesidad de ciclos de CPU, o viceversa, no tienen que pagar por un paquete integrado que requiere que paguen por ambos. Los usuarios pueden escalar hacia arriba o hacia abajo según sea necesario y pagar solo por los recursos que utilizan. El almacenamiento se factura por terabytes almacenados por mes y el cómputo se factura por segundo.
De hecho, la arquitectura Snowflake consta de tres capas, cada una de las cuales es escalable de forma independiente: almacenamiento, cómputo y servicios.
Almacenamiento de base de datos
La capa de almacenamiento de la base de datos contiene todos los datos cargados en Snowflake, incluidos los datos estructurados y semiestructurados. Snowflake administra automáticamente todos los aspectos de cómo se almacenan los datos: organización, tamaño de archivo, estructura, compresión, metadatos y estadísticas. Esta capa de almacenamiento se ejecuta independientemente de los recursos informáticos.
Capa de cómputo
La capa de cómputo se compone de almacenes virtuales que ejecutan las tareas de procesamiento de datos necesarias para las consultas. Cada almacén virtual (o clúster) puede acceder a todos los datos en la capa de almacenamiento y luego trabajar de forma independiente, por lo que los almacenes no comparten ni compiten por los recursos informáticos.
Esto permite un escalado automático sin interrupciones, lo que significa que mientras se ejecutan las consultas, los recursos informáticos pueden escalar sin necesidad de redistribuir o reequilibrar los datos en la capa de almacenamiento.
Servicios en la nube
La capa de servicios en la nube utiliza ANSI SQL y coordina todo el sistema. Elimina la necesidad de gestión y ajuste manual del almacén de datos. Los servicios en esta capa incluyen:
- Autenticación
- Gestión de infraestructuras
- Gestión de metadatos
- Análisis y optimización de consultas
- Control de acceso
Requisitos de una nube de datos
Los requisitos exigidos a una nube de datos son:
Separación de la carga de trabajo
Uno de los mayores desafíos que enfrentan los arquitectos de soluciones en la actualidad es mantener el equilibrio de los recursos informáticos para varios de usuarios que compiten entre sí. El más obvio son los procesos de carga de ELT/ETL que necesitan extraer, transformar, limpiar y agregar los datos, y los usuarios finales que desean analizar los resultados para extraer valor. ¿A quién se debe dar prioridad?
Los procesos ELT tal vez ejecutan una carga por lotes regulares con múltiples procesos paralelos que causan un uso de CPU del 100 % y la carga de trabajo del analista es mucho más irregular. Este requisito es para separar estas cargas de trabajo y eliminar la contención entre grupos de usuarios.
Maximizar el rendimiento de carga de datos
Como se indicó anteriormente, necesitamos extraer, cargar y transformar rápidamente los datos, y esto significa que debemos maximizar el rendimiento: la cantidad total de trabajo completado, en lugar del rendimiento de una sola consulta. Para lograr esto, generalmente necesitamos ejecutar múltiples flujos de carga paralelos con un uso de CPU cercano al 100 %, y esto es un desafío junto con la necesidad de equilibrar estas demandas con la necesidad de un alto nivel de simultaneidad del usuario final.
Maximizar la concurrencia
Una plataforma típica de Analytics tiene una cantidad de usuarios ocupados que solo quieren hacer su trabajo. Quieren sus resultados lo más rápido posible, pero a menudo luchan por los recursos de la máquina con todos los demás. En resumen, necesitamos maximizar la concurrencia. La capacidad de manejar una gran cantidad de consultas de múltiples usuarios al mismo tiempo.
Casi todos los almacenes de datos, tanto en las instalaciones como en la nube, se basan en un solo principio. Tamaño para la mayor carga de trabajo y espera lo mejor. Si bien las soluciones como Google BigQuery y Amazon Redshift brindan cierta flexibilidad, al igual que todas las plataformas locales, eventualmente están restringidas por el tamaño de la plataforma. La realidad para la mayoría de los usuarios es que el rendimiento de las consultas suele ser deficiente y, al final del mes o del año, se convierte en una lucha para entregar resultados a tiempo.
En un mundo ideal, el almacén de datos se ampliaría automáticamente para agregar recursos informáticos adicionales sobre la marcha, según los desechos necesarios. Los recursos de hardware simplemente crecerían (y se reducirían) para satisfacer las demandas, y se facturaría a los usuarios por el tiempo de cómputo real que usaron, no una inversión monolítica cada cinco años con la promesa de un rendimiento excelente, por un tiempo.
Minimizar la latencia – Maximizar la velocidad
Los ejecutivos de C-Suite y los comerciantes de la oficina principal quieren tiempos de respuesta de menos de un segundo en sus tableros. No les preocupa el rendimiento de ETL ni el rendimiento de los informes por lotes; quieren una latencia extremadamente baja en las consultas del tablero. Una plataforma ideal tiene varios niveles de almacenamiento en caché, incluido el almacenamiento en caché de conjuntos de resultados para ofrecer un rendimiento inferior a un segundo en los paneles ejecutivos, al tiempo que segmenta las cargas de trabajo para que los informes grandes y complejos no se degraden el rendimiento.
Rápido tiempo de valor
Dado que los almacenes de datos fueron propuestos por primera vez por Ralph Kimball y Bill Inmon en la década de 1980, la arquitectura típica de carga de datos no ha cambiado. De hecho, los datos se extraen de los sistemas de origen durante la noche y los resultados se transforman y cargan en el almacén a tiempo para su análisis al comienzo del siguiente día laboral. En una economía cada vez más global que funciona las 24 horas del día, los 7 días de la semana, el procesamiento por lotes durante la noche ya no es una opción.
Con cadenas de suministro y clientes en todo el mundo, los sistemas que alimentan el almacén ya no se detienen y los datos deben alimentarse constantemente, casi en tiempo real. Los sistemas actualmente instalados necesitan combinar datos operativos (número de teléfono móvil del cliente) con patrones de uso por ubicación y volumen casi en tiempo real para identificar y proteger contra el uso fraudulento.
Un almacén de datos ideal proporcionaría instalaciones nativas para transmitir datos casi en tiempo real mientras mantiene la consistencia transaccional ACID completa, aumenta o reduce automáticamente los recursos informáticos necesarios y aísla los picos máximos masivos en la carga de trabajo de los usuarios finales.
Necesidad de manejar datos semiestructurados
El rápido aumento de las soluciones Hadoop y NoSQL se debe en gran medida a la necesidad de procesar datos semiestructurados y, en particular, el formato JSON. A diferencia de los datos estructurados tradicionales que vienen en una estructura predefinida (como una hoja de cálculo con filas y columnas), los datos JSON incluyen grupos de valores repetidos y la estructura puede cambiar con el tiempo.
Inicialmente utilizado por los sitios web para proporcionar un método de transferencia de datos estándar, JSON es ahora el método de transferencia de datos de facto para un gran volumen de tráfico basado en la web, y los sensores lo utilizan cada vez más para formatear y entregar datos como parte de la industria de Internet de las cosas. El desafío particular relacionado con el manejo de JSON es su naturaleza flexible, lo que significa que se espera que la estructura cambie con el tiempo con la adición de nuevos atributos, y un solo almacén de datos a menudo necesita tomar múltiples fuentes de una amplia variedad de fuentes, cada una en una estructura diferente.
Idealmente, el almacén de datos manejaría datos estructurados y semiestructurados de forma nativa. Sería posible simplemente cargar datos JSON o XML directamente en el almacén sin crear una canalización ETL para extraer los componentes clave. Luego podemos escribir consultas para combinar los datos estructurados (p. ej., transacciones de ventas), junto con los datos semiestructurados (p. ej., fuentes de redes sociales) desde la misma ubicación.
Rendimiento de inteligencia comercial
Relacionado con el rendimiento de carga de datos, este requisito se refiere a la comunidad de inteligencia comercial que a menudo necesita ejecutar informes grandes y complejos para brindar información comercial. A menudo, al trabajar con plazos exigentes, necesita el máximo rendimiento informático disponible, especialmente para los informes de fin de mes o fin de año.
Tamaño independiente
Una talla para todos ya no es un enfoque viable. Cualquier negocio tiene múltiples grupos independientes de usuarios, cada uno con diferentes requisitos de procesamiento. Debería ser posible ejecutar múltiples cargas de trabajo de análisis independientes en computadoras implementadas de forma independiente, cada una con el tamaño adecuado para las necesidades y el presupuesto de cada organización.
Beneficios de Snowflake para tu negocio
Snowflake está diseñado específicamente para la nube y está diseñado para abordar muchos de los problemas que se encuentran en los almacenes de datos basados en hardware más antiguos, como escalabilidad limitada, problemas de transformación de datos y demoras o fallas debido a grandes volúmenes de consultas. Aquí hay cinco formas en que Snowflake puede beneficiar a tu negocio.
Rendimiento y velocidad
La naturaleza elástica de la nube significa que si deseas cargar datos más rápido o ejecutar un gran volumen de consultas, puedes escalar su almacén virtual para aprovechar los recursos informáticos adicionales. Luego, puedes reducir el almacén virtual y pagar solo por el tiempo que utilizaste.
Almacenamiento y soporte de datos estructurados y semiestructurados
Puedes combinar datos estructurados y semiestructurados para el análisis y cargarlos en la base de datos en la nube sin necesidad de convertirlos o transformarlos primero en un esquema relacional fijo. Snowflake optimiza automáticamente cómo se almacenan y consultan los datos.
Concurrencia y accesibilidad
Con un almacén de datos tradicional y una gran cantidad de usuarios o casos de uso, podrías experimentar problemas de simultaneidad (como demoras o fallas) cuando demasiadas consultas compiten por los recursos.
Snowflake aborda los problemas de simultaneidad con su exclusiva arquitectura multiclúster: las consultas de un almacén virtual nunca afectan a las consultas de otro, y cada almacén virtual puede aumentar o disminuir según sea necesario. Los analistas de datos y los científicos de datos pueden obtener lo que necesitan, cuando lo necesitan, sin esperar a que se completen otras tareas de carga y procesamiento.
Intercambio de datos sin problemas
La arquitectura de Snowflake permite compartir datos entre los usuarios de Snowflake. También permite a las organizaciones compartir datos sin problemas con cualquier consumidor de datos, ya sea un cliente de Snowflake o no, a través de cuentas de lectores que se pueden crear directamente desde la interfaz de usuario. Esta funcionalidad le permite al proveedor crear y administrar una cuenta de Snowflake para un consumidor.
Disponibilidad y seguridad
Snowflake se distribuye en las zonas de disponibilidad de la plataforma en la que se ejecuta, ya sea AWS o Azure, y está diseñado para funcionar de forma continua y tolerar fallas de red y componentes con un impacto mínimo para los clientes. Tiene certificación SOC 2 Tipo II y niveles adicionales de seguridad, como compatibilidad con datos de PHI para clientes de HIPAA y cifrado en todas las comunicaciones de la red, están disponibles.
Limitaciones
Como todas las demás herramientas de software, Snowflake tiene sus limitaciones y áreas de mejora. Las siguientes son algunas quejas comunes de los usuarios:
- Snowflake tiene margen de mejora en sus casos de uso de análisis avanzado, especialmente la mejora de Scala, Java o Python para ejecutarse de forma nativa en sus almacenes virtuales.
- Según se informa, es algo poco intuitivo, especialmente para los clientes más comunes con las bases de datos relacionales, ya que algunos de sus conceptos son radicalmente diferentes del modo de operación RDBMS.
- Snowflake no es adecuado para varios casos de uso de bases de datos, como escenarios OLTP. Por supuesto, Snowflake no se creó para esto, pero los usuarios deben saber que no es compatible.
¿Cómo se puede utilizar Snowflake para Business Intelligence?
El almacenamiento de datos es una parte fundamental de cualquier operación de inteligencia comercial.
El uso de una herramienta como Snowflake permite a las organizaciones analizar una implementación más rápida de los almacenes de datos.
Puedes implementar un sistema basado en la nube en una fracción del tiempo necesario para las herramientas tradicionales de ETL, ya que estarán para definirse y automatizarse rápidamente y luego implementarse.
Con Snowflake también te beneficias de iteraciones y actualizaciones más sencillas de las soluciones de almacenamiento de datos, creando un sistema de administración de datos que está más alineado con las necesidades de los equipos de TI y análisis de datos.
Su consulta liviana y su arquitectura escalable hacen que la herramienta sea ideal para las empresas que exploran el modelo de negocios basado en datos. Estas organizaciones pueden mejorar con una herramienta de BI fácil e intuitiva que admite paneles, informes y análisis de datos no técnicos.
La flexibilidad y facilidad de uso de Snowflake lo hacen valiosos para organizaciones en crecimiento que buscan probar nuevos sistemas, crear modelos analíticos personalizados o aprovechar enfoques listos para usar para satisfacer sus necesidades analíticas y de BI.
Los usuarios pueden usar Snowflake para análisis ad-hoc ya que los usuarios pueden crear consultas. Su almacenamiento virtual también permite a los usuarios crear sus propias «bases de datos» utilizando datos almacenados en caché o en vivo para generar consultas más rápidas y conocimientos de BI casi en tiempo real.
Finalmente, los usuarios pueden incorporar análisis gracias a la elasticidad, flexibilidad y escalabilidad de Snowflake. Las aplicaciones de análisis integradas requieren estas tres características para un funcionamiento eficaz y eficiente.
Snowflake es una herramienta innovadora de almacenamiento de datos que tiene como objetivo la democratización de los datos para todos los usuarios de una organización. Provisto en su modelo de suscripción ( Almacén de datos como servicio ), su plataforma permite a los usuarios utilizar en sus proyectos de BI mientras acelera el rendimiento de la herramienta de BI elegida.
Conclusión
Snowflake ofrece algunas ventajas muy reales de rendimiento y ahorro de costes en comparación con los sistemas heredados más antiguos. Vale la pena considerar su plataforma de datos en la nube si tu organización se toma en serio abordar el caos de datos y los puntos débiles del procesamiento de datos. Snowflake ha creado un producto que brinda a los usuarios elasticidad y control. Elimina los dolores de cabeza y las limitaciones que a menudo vienen con el mantenimiento de los sistemas de datos locales. Cuando se implementa con una estrategia de datos sólida y se enfoca en la estructura de datos, puedes cambiar las reglas del juego para tu organización.