Revisión de Snowflake: un almacén de datos mejorado en la nube

Los almacenes de datos, también llamados almacenes de datos empresariales (EDW), son bases de datos SQL o NoSQL altamente paralelas diseñadas para análisis. Le permiten importar datos de múltiples fuentes y generar informes complicados rápidamente a partir de petabytes de datos.

La diferencia entre un almacén de datos y una despensa de datos es que, por lo general, una despensa de datos se limita a un solo tema y un solo departamento. La diferencia entre un almacén de datos y un lago de datos es que un lago de datos almacena datos en su formato natural, a menudo blobs o archivos, mientras que un almacén de datos almacena datos como una base de datos.

Copo de nieve en breve

Snowflake es un almacén de datos ANSI SQL completamente relacional que se creó desde cero para la nube. Su arquitectura separa la computación del almacenamiento para que pueda escalar hacia arriba y hacia abajo sobre la marcha, sin demoras ni interrupciones, incluso mientras se ejecutan consultas. Obtiene el rendimiento que necesita exactamente cuando lo necesita y solo paga por la computación que utiliza. Snowflake se ejecuta actualmente en Amazon Web Services y Microsoft Azure.

     Snowflake es una base de datos completamente en columnas con ejecución vectorizada, lo que la hace capaz de abordar incluso las cargas de trabajo analíticas más exigentes. La optimización adaptativa de Snowflake garantiza que las consultas obtengan automáticamente el mejor rendimiento posible, sin índices, claves de distribución o parámetros de ajuste que administrar.

     Snowflake puede admitir simultaneidad ilimitada con su exclusiva arquitectura de datos compartidos de múltiples clústeres. Esto permite que varios clústeres informáticos funcionen simultáneamente con los mismos datos sin degradar el rendimiento. Snowflake puede incluso escalar automáticamente para manejar las diferentes demandas de concurrencia con su función de almacén virtual de múltiples clústeres, agregando de forma transparente recursos informáticos durante los períodos de carga máxima y reduciendo la escala cuando las cargas disminuyen.

Competidores de copos de nieve

Entre los competidores de Snowflake en la nube se incluyen Amazon Redshift, Google BigQuery y Microsoft Azure SQL Data Warehouse. Otros competidores importantes, como Teradata, Oracle Exadata, MarkLogic y SAP BW / 4HANA, pueden instalarse en la nube, en las instalaciones y en los dispositivos.

Amazon Redshift

Amazon Redshift es un almacén de datos rápido y escalable que le permite analizar todos sus datos en su almacén de datos y su lago de datos de Amazon S3. Consulta Redshift utilizando SQL. Un almacén de datos de Redshift es un clúster que puede implementar y eliminar capacidad automáticamente con la carga de consultas simultáneas. Sin embargo, todos los nodos del clúster se aprovisionan en la misma zona de disponibilidad.

Almacén de datos SQL de Microsoft Azure

Microsoft Azure SQL Data Warehouse es un almacén de datos basado en la nube que utiliza el motor Microsoft SQL y MPP (procesamiento masivo en paralelo) para ejecutar rápidamente consultas complejas en petabytes de datos. Puede usar Azure SQL Data Warehouse como un componente clave de una solución de big data importando big data en SQL Data Warehouse con consultas sencillas de PolyBase T-SQL y luego utilizando el poder de MPP para ejecutar análisis de alto rendimiento.

Azure SQL Data Warehouse está disponible en 40 regiones de Azure de todo el mundo, pero un servidor de almacén determinado solo existe en una única región. Puede escalar el rendimiento de su almacén de datos a pedido, pero las consultas en ejecución se cancelarán y revertirán.

Google BigQuery

Google BigQuery es un almacén de datos en la nube sin servidor, altamente escalable y rentable con consultas GIS, un motor de BI en memoria y aprendizaje automático integrado. BigQuery ejecuta consultas SQL rápidas de gigabytes a petabytes de datos y hace que unirse al público sea muy sencillo. o conjuntos de datos comerciales con sus datos.

Puede establecer la ubicación geográfica de un conjunto de datos de BigQuery solo en el momento de la creación. Todas las tablas a las que se hace referencia en una consulta deben almacenarse en conjuntos de datos en la misma ubicación. Eso también se aplica a conjuntos de datos externos y depósitos de almacenamiento. Existen restricciones adicionales sobre la ubicación de los datos externos de Google Cloud Bigtable. De forma predeterminada, las consultas se ejecutan en la misma región que los datos.

Las ubicaciones pueden ser lugares específicos, como el norte de Virginia, o grandes áreas geográficas, como la UE o EE. UU. Para mover un conjunto de datos de BigQuery de una región a otra, debe exportarlo a un depósito de Google Cloud Storage en la misma ubicación que su conjunto de datos, copiar el depósito en la nueva ubicación y cargarlo en BigQuery en la nueva ubicación.

Arquitectura de copo de nieve

Snowflake utiliza instancias informáticas virtuales para sus necesidades informáticas y un servicio de almacenamiento para el almacenamiento persistente de datos. Snowflake no se puede ejecutar en infraestructuras de nube privada (en las instalaciones o alojadas).

No hay que realizar ninguna instalación ni configuración. Todo el mantenimiento y puesta a punto está a cargo de Snowflake.

Snowflake utiliza un repositorio de datos central para los datos persistentes al que se puede acceder desde todos los nodos informáticos del almacén de datos. Al mismo tiempo, Snowflake procesa las consultas utilizando MPP (procesamiento masivo en paralelo) clústeres de cómputo donde cada nodo del clúster almacena una parte de todo el conjunto de datos localmente.

Cuando los datos se cargan en Snowflake, Snowflake reorganiza esos datos en su formato de columnas comprimido interno. Los objetos de datos internos solo son accesibles a través de consultas SQL. Puede conectarse a Snowflake a través de su interfaz de usuario web, a través de una CLI (SnowSQL), a través de controladores ODBC y JDBC de aplicaciones como Tableau, a través de conectores nativos para lenguajes de programación y a través de conectores de terceros para herramientas de BI y ETL.

Copo de nieve

Características del copo de nieve

Seguridad y protección de datos. Las características de seguridad que se ofrecen en Snowflake varían según la edición. Incluso la edición estándar ofrece cifrado automático de todos los datos y compatibilidad con la autenticación multifactor y el inicio de sesión único. La incorporación de Enterprise agrega el reingreso periódico de datos cifrados, y la edición Enterprise for Sensitive Data agrega soporte para HIPAA y PCI DSS. Puede elegir dónde se almacenan sus datos, lo que ayuda a cumplir con las regulaciones de GDPR de la UE.

Soporte SQL estándar y extendido. Snowflake admite la mayoría de DDL y DML definidos en SQL: 1999, además de transacciones, algunas funciones avanzadas de SQL y partes de las extensiones analíticas de SQL: 2003 (funciones de ventana y conjuntos de agrupación). También admite vistas laterales y materializadas, funciones agregadas, procedimientos almacenados y funciones definidas por el usuario.

Herramientas e interfaces. En particular, Snowflake le permite controlar sus almacenes virtuales desde la GUI o la línea de comandos. Eso incluye crear, redimensionar (sin tiempo de inactividad), suspender y eliminar almacenes. Cambiar el tamaño de un almacén mientras se está ejecutando una consulta es muy conveniente, especialmente cuando necesita acelerar una consulta que está tomando demasiado tiempo. A mi leal saber y entender, no está implementado en ningún otro software de EDW.

Conectividad Snowflake tiene conectores y / o controladores para Python, Spark, Node.js, Go, .Net, JDBC, ODBC y dplyr-snowflakedb, una extensión de paquete dplyr de código abierto que se mantiene en GitHub.

Importación y exportación de datos. Snowflake puede cargar una amplia gama de datos y formatos de archivo. Eso incluye archivos comprimidos; archivos de datos delimitados; Formatos JSON, Avro, ORC, Parquet y XML; Fuentes de datos de Amazon S3; y archivos locales. Puede realizar carga masiva y descarga dentro y fuera de tablas, así como carga masiva continua desde archivos.

Compartir datos. Snowflake tiene soporte para compartir datos de forma segura con otras cuentas de Snowflake. Esto se simplifica mediante el uso de clones de tablas de copia cero.

Copo de nieve

Tutoriales de copos de nieve

Snowflake ofrece bastantes tutoriales y videos. Algunos lo ayudan a comenzar, algunos exploran temas específicos y algunos demuestran características.

Recomiendo trabajar con la descripción general práctica que se describe en la Guía práctica de laboratorio para la prueba gratuita de Snowflake). Me tomó menos de una hora y costó menos de cinco créditos. Eso dejó otros 195 créditos en la prueba gratuita, lo que debería ser suficiente para importar algunos datos reales y probar algunas consultas.

El tutorial hace un uso intensivo de las hojas de trabajo de Snowflake, una forma conveniente de ejecutar comandos y SQL dentro de la interfaz de usuario web. Cubre, entre otras cosas, la carga de datos; consultas, almacenamiento en caché de resultados y clonación; datos semiestructurados; y viajes en el tiempo para restaurar objetos de bases de datos.

En general, creo que Snowflake es bastante impresionante. Esperaba que fuera torpe, pero ese no es el caso en absoluto. De hecho, muchas de sus operaciones de almacenamiento de datos van mucho más rápido de lo que esperaba, y cuando hay una que parece arrastrarse, puedo intervenir y aumentar el tamaño del almacén de datos sin interrumpir lo que está sucediendo.

Gran parte del escalado se puede automatizar. Al crear un almacén de datos (vea la captura de pantalla anterior), hay una opción para permitir múltiples clústeres, una opción para establecer la política de escalado, una opción para suspender automáticamente y una opción para reanudar automáticamente. El período de suspensión automática predeterminado es de 10 minutos, lo que evita que el almacén consuma recursos cuando está inactivo durante más tiempo. La reanudación automática es casi instantánea y se produce cada vez que hay una consulta en el almacén.

Dado que Snowflake ofrece una prueba gratuita de 30 días con un crédito de $ 400, y no es necesario instalar nada, debería poder determinar si Snowflake se adaptará a sus propósitos sin ningún desembolso de efectivo. Recomiendo darle una vuelta.

-

Costo: $ 2 / crédito más $ 23 / TB / mes de almacenamiento, plan estándar, almacenamiento prepago. Un crédito equivale a un nodo * hora, facturado por segundo. Los planes de nivel superior son más caros.

Plataformas: Amazon Web Services, Microsoft Azure