Snowflake es una tecnología en la nube que ya tiene 10 años y que ayuda a las empresas a tener sus datos bajo control. Pero con tantas tecnologías de datos en el mercado, ¿qué hace diferente a Snowflake?
Desde el primer día, Snowflake se ha distinguido de la inmensa mayoría de las demás bases de datos por su enfoque de SaaS completo y de gestión cero, y por algunas tecnologías clave como la compartición de datos, las microparticiones, la copia clonada cero y la disociación del procesamiento y la gestión de E/S. Aquí detallaremos algunas de estas características.
¿Qué es Snowflake?
Snowflake se fundó en California en 2012 y publica y distribuye la plataforma homónima Data Cloud, que se lanzó oficialmente en octubre de 2014.
Diseñada para la Nube y disponible únicamente en ella, la plataforma Snowflake permite gestionar volúmenes de datos muy grandes reduciendo al máximo las competencias tecnológicas necesarias.
El 16 de septiembre de 2020, apenas 8 años después de su creación, la empresa entra en el Nasdaq y se convierte en una de las mayores OPV del mundo del software. La plataforma Snowflake es utilizada actualmente por más de 6.300 clientes en todo el mundo y tiene un NRR (Net Retention Rate) de SaaS de casi el 174% en los últimos años.
¿De dónde viene Snowflake?
Los dos fundadores de Snowflake eran ingenieros franceses que trabajaban en Oracle como arquitectos de sistemas analíticos tradicionales. Con la llegada al mercado de los nuevos sistemas de big data, rápidamente compartieron la misma frustración y una limitación evidente de las llamadas arquitecturas de bases de datos clásicas que las existentes frente a las nuevas cargas de trabajo.
Decidieron crear una nueva plataforma de datos desde cero y, al percibir el impacto de la computación en la nube en el sector en 2012, decidieron que su base de datos sólo funcionaría en la nube. Se abstienen de las numerosas limitaciones y variantes de hardware para poder centrarse en las llamadas capas “altas” de su software.
Tras dos años de I+D, Snowflake estuvo disponible en 2014 en la plataforma Azure de Microsoft, cuando el Cloud Computing empieza a ser noticia.
¿Cuáles son las 4 principales características de Snowflake?
Como se ha mencionado anteriormente, hay varias características clave que ayudan a distinguir Snowflake de otras tecnologías de datos en el mercado. La tecnología sin servidor, las microparticiones, la separación de la E/S y el procesamiento, y la funcionalidad multi-nube dan a Snowflake su ventaja competitiva. Echemos un vistazo a esas características con más detalle:
- Una tecnología sin servidor
Snowflake es una tecnología denominada “sin servidor”, ya que todos los recursos informáticos necesarios (computación, almacenamiento, red) son gestionados y proporcionados por Snowflake bajo demanda. - Microparticiones
Una de las principales características de Snowflake, que le permite alcanzar niveles de alto rendimiento al tiempo que resuelve uno de los principales problemas de las plataformas en la nube, es su sistema de micropartición. Este sistema almacena verticalmente (es decir, por columna o grupo de columnas) en forma de una partición reducida de los datos, así como un conjunto de metadatos (rango de valores, número de valores distintos y otra información que permite acelerar las consultas y el procesamiento).
Todas las tablas se almacenan automáticamente con este sistema de micropartición y se particionan a medida que se alimentan.
- Separación de la E/S y el procesamiento
La segunda característica que hay que conocer de Snowflake es su arquitectura, que le permite separar el acceso a los datos del procesamiento de los mismos.
Así, es posible, a través de diferentes tipos de procesadores (Almacén Virtual), responder a un número prácticamente infinito de peticiones en paralelo, sea cual sea la naturaleza del procesamiento. Los almacenes virtuales no requieren ninguna administración, sólo la elección de una potencia que se denomina como la talla de una camiseta: de la XS a la 12XL.
Es en esta última característica en la que Snowflake se diferencia fundamentalmente de las arquitecturas tradicionales que deben tratar dentro del mismo servidor la gestión de la red/procesamiento/memoria.
Por estas razones, Snowflake entra en la categoría de las soluciones llamadas “Cloud Native”.
- Multi-nube
Snowflake está disponible en las tres principales plataformas en la nube
Snowflake funciona de la misma manera sea cual sea la plataforma en la nube y permite desde 2021 sincronizar en tiempo real y de forma transparente los entornos desplegados en dos proveedores de nube diferentes.
¿Cuáles son los casos de uso más conocidos de Snowflake?
Los casos de uso de Snowflake son muy numerosos y siguen evolucionando a un ritmo importante: Aplicaciones analíticas, Data lake, Data warehouse, Data Science, Aplicaciones de datos, en modo batch, micro-batch o en tiempo real.
- Aplicaciones analíticas
La arquitectura inicial de Snowflake se basa en el almacenamiento y el tratamiento de datos mediante SQL. Por tanto, es natural que las aplicaciones analíticas sean el caso de uso más extendido.
Cargar un volumen de datos muy grande, transformar los datos y proporcionar un conjunto de tablas y vistas para una herramienta de análisis o de informes avanzados.
La tecnología descrita en el capítulo anterior permite a los usuarios almacenar, procesar y analizar cantidades de datos prácticamente ilimitadas. De hecho, los límites de hardware inherentes a otras bases de datos se ven ampliamente superados, y no es raro dividir los tiempos de respuesta por múltiplos de 10.
- Data Lake/ Almacén de datos
El bajísimo coste de almacenamiento de los datos, la ausencia de escalonamiento de los mismos, dentro de Snowflake y su capacidad para procesar grandes volúmenes de datos le permiten implementar en la misma plataforma estos dos casos de uso que a menudo se manejan dentro de plataformas diferentes, utilizando tecnologías distintas. - Data Science
La implementación de los casos de uso de Data Science puede realizarse a través de diferentes enfoques:
Snowpark, un entorno de ejecución de código externo para procesar los datos almacenados en Snowflake (Scala, Java, Python)
Uso de una plataforma externa altamente integrada con Snowflake (como Dataiku o Datarobot)
Ejecución del modelo desde dentro de la plataforma mediante el uso de funciones externas definidas por el usuario (UDF)
- Compartir datos
Rápidamente, Snowflake propuso un servicio de compartición de datos que permite que dos despliegues de Snowflake de dos organizaciones diferentes compartan datos de forma segura y en tiempo real dentro de la misma plataforma Snowflake, sin tener que lidiar con flujos de intercambio de datos entre organizaciones costosos y complejos de mantener.
Los datos pueden ser compartidos públicamente y monetizados dentro del Data Marketplace. - En tiempo real
El tiempo real está disponible tanto en la ingesta de datos a través de la función Snowpipe, que permite integrar los datos en cuanto se detecta su presencia en un sistema de almacenamiento de archivos en la nube, como en forma de una API que permite consultar los datos presentes en la plataforma en REST. También está disponible un conector Kafka.
Partnership e inversiones
Para apoyar el desarrollo de su ecosistema, Snowflake ha creado una filial dedicada (Snowflake Ventures) que le permite invertir en soluciones externas reforzando la integración en su plataforma y garantizando a sus clientes comunes una relación a más largo plazo.
Este es el caso, en particular, del 20% de las empresas: Alation, Collibra, Dataiku, DataRobot, DataOps.Live, dbtLabs, ThoughtSpot, y muchas otras.
Participa en la Comunidad Devoteam
Para ver lo que nuestra comunidad de líderes tecnológicos dijo sobre la posición actual de Snowflake en el mercado, echa un vistazo a la edición más reciente del Devoteam TechRadar. Si te ha resultado útil este artículo, echa un vistazo a otras opiniones de nuestros expertos.