
El mar de documentos digitales que existen actualmente proviene de muchas y diversas fuentes de información, los cuales pueden ser clasificados dependiendo de las características que posean. Los datos pueden ser clasificados como:
- Estructurados
- Semiestructurados
- Sin estructura
- Transmisión automática también conocidos como “streaming”.
Les adjunto acá un infográfico donde puede visualizar la clasificación de los tipos de datos y las opciones para almacenamiento.
Quienes tengan experiencia en el desarrollo de sistemas de software, que usen aplicaciones para dar mantenimiento a bases de datos relacionales como SQL posiblemente tengan un mayor acercamiento con los datos estructurados, conocidos como datos relacionales; estos forman parte del mundo que se adhiere a un esquema estricto, almacenado por medio de tablas donde las tuplas o registros de datos tienen los mismos campos o propiedades, usualmente están almacenados como tablas con filas, columnas, llaves y relaciones de unas tablas con otras para garantizar la integridad referencial. Se procura mantener buenas prácticas en la organización de la base de datos implementando reglas para la protección de los datos, buscando organizar la base de datos al menos a la tercera forma normal de Codd.
Con la evolución de SQL se han agregado funcionalidades para otros formatos que han crecido en popularidad como por ejemplo, los formatos de marcado XML, JSON o YAML. Estos datos pertenecen a la categoría de datos semiestructurados, los cuales son más flexibles que los datos relacionales y se conforman de etiquetas que se encargan de presentar la organización y jerarquía de los datos utilizando pares ordenados de llave y valor. También se les conoce como no relacionales o “Non-SQL”. Son muy utilizados para intercambio de datos entre sistemas. JSON recientemente se ha vuelto muy popular por ser un formato más legible para el usuario que XML. En Azure, es muy común encontrar archivos para la automatización de configuraciones en formatos como JSON o YAML.
Los datos de trasmisión automática es otro conjunto que en la actualidad genera gran cantidad de datos a nivel mundial, se caracteriza porque continuamente fluyen de un lugar a otro. Este tipo de flujo es una oportunidad para consumir datos y realizar análisis más fácilmente. Algunas fuentes conocidas de ”streaming” son por ejemplo los dispositivos IOT como sensores de temperatura o dispositivos de automatización de manufactura, datos enviados por satélites de GPS o tan comunes como smartphones o pulseras inteligentes.
Existe otro conjunto de datos que son conocidos por simplemente no tener estructura tales como: tweets, correos y sus adjuntos, archivos de texto, bitácoras, fotos, videos, música o audios por mencionar algunos.
Buscando almacenamiento adecuado según la necesidad operacional
Una vez identificado la clasificación de los datos, se puede ubicar el tipo de destino que puede servir de almacenamiento según las necesidades de operación que tenga la organización, con la posibilidad de utilizarse inclusive múltiples fuentes según el caso del tratamiento que se le desea dar a los datos:
- Azure Blob Storage: es un objeto de almacenamiento optimizado para almacenar montos masivos de datos sin estructura como textos o archivos binarios. Sirven para almacenar datos transmitidos o “streaming” de video y/o audio. Se pueden acceder desde cualquier ubicación por medio de los protocolos HTTP o HTTPS. También las aplicaciones los pueden acceder mediante API, Azure PowerShell o Azure CLI (Command Line Interface). El bajo costo es un factor para considerar, así como si se tratan de datos que solamente se requieren almacenar, pero que de momento a nivel de negocio no se tiene planeado analizar ni aplicarle consultas, o sea, datos en reposo, los cuales son aquellos que no son consultados de manera frecuente. En Azure se le llaman “Cool Storage”, tienen un bajo costo de almacenamiento, pero se paga un poco más al recuperar el archivo o los datos. Por lo contrario, los datos calientes son llamados “Hot storage”, los cuales están siempre disponibles para ser accedidos.
- Azure Data Lake Storage Gen1: es un repositorio para análisis de cargas de big data y es construido sobre Azure Blog Storage. Permite capturar datos de cualquier tamaño, tipo y de rápida ingesta en un solo lugar para análisis operacionales y exploratorios.
- Azure Data Lake Storage Gen2: es un conjunto de capacidades dedicada al análisis de “big data”. Este se construye sobre Azure Data Lake Storage Gen1 que permiten la creación de espacios de nombre jerárquicos usando directorios y subdirectorios por su compatibilidad con Hadoop. Se usa cuando los datos no son estructurados, pero se requieren para análisis de datos y de “bigdata”, brindando capacidad para montos masivos de datos. Se puede también usar para albergar gran variedad de datos.
- Azure Cosmos DB: es el servicio de base de datos Microsoft multimodal distribuido globalmente. Soporta datos “Non-SQL”. El nombre “Cosmos” está directamente relacionado a que permite replicar datos en cualquier lugar del mundo, dando la posibilidad de replicar a centros de datos que estén cerca de los clientes para reducir los tiempos de latencia de las aplicaciones. Ofrece distintas interfaces y protocolos para trabajar con bases de datos de código libre tales como Cassandra, MongoDB, Gremlin o las propias tablas de Azure Table Storage.
- Azure SQL Database: es el servicio de Azure para el manejo de bases de datos relacionales en la nube. Se usa cuando se debe dar soporte a sistemas OTLP, soporta la conexión de gran cantidad de usuarios, se puede acoplar con Machine Learning y es escalable. El manejo de Azure SQL Database como servicio (PaaS) incluye funciones de administración tales como actualizaciones, aplicación de parches, respaldo y monitoreo sin involucrar al usuario. Tiene la ventaja que la base de datos siempre corre en la última versión del motor de la base de datos y bajo una disponibilidad del 99.99%.
- SQL Synapse Analytics: es la solución en la nube que ofrece Microsoft para “data warehouse” de índole empresarial. Tiene la capacidad de escalar a nivel de “Petabytes”, usa procesamiento masivo paralelo (MPP), con capacidad de tener nodos independientes para cálculos y para almacenamiento, coordinando el transporte de datos como sea necesario. Su uso va relacionado a resolver cálculos complejos, se tiene gran cantidad de datos y pocos usuarios, se ocupa procesamiento masivo para análisis de “big data” y ofrece integración para machine Learning y Power BI. El costo por procesamiento de cálculo y el almacenamiento se generan de forma independiente entre ellos.
- Azure Streaming Analytics: examina y analiza eventos de transmisión de datos de múltiples fuentes par IOT. Las fuentes de entrada puede ser dispositivos, sensores, redes sociales o aplicaciones. Puede dar inicio a flujos de trabajo para iniciar, por ejemplo, alertas antes patrones anómalos en los datos.
- HDInsight: provee herramientas para ingesta, procesamiento y análisis de big data. Permite procesar datos masivos. Admite el uso de marcos de trabajo de código libre como lo son Hadoop, Spark, Hive, Kafka y R entre otros. Se puede usar en escenarios de datos para extracción y homogenización de datos estructurados y no estructurados en escenarios de ETL, Data Warehousing o IOT entre otros.
- Azure Databricks: es una plataforma optimizada basada en Apache Spark. El diseño incluye espacios de trabajo para permitir la colaboración entre científicos de datos, ingenieros de datos y analistas de negocio. Dado que posee librerías nativas de Machine Learning tiene la capacidad de generar conocimiento innovador a partir de los datos que utilice como fuente. Apache Spark es un motor de análisis unificado para el procesamiento de datos a gran escala que permite combinar datos, machine learning e inteligencia artificial en un mismo marco de trabajo
.e inteligencia artificial en un mismo marco de trabajo.
Recomendaciones
Si en su organización se está planteando una solución basada en Azure tome en cuenta lo siguiente:
- Elabore un inventario de los tipos de datos que se generan o que se intercambian en las aplicaciones que tiene la organización. Identifique la fuente de datos y clasifique en estructurados, semiestructurados, streaming o sin estructura.
- Ubique, según la clasificación de los datos, la necesidad operacional que requiere la gestión de los datos para asignarle un tipo de almacenamiento según los descritos previamente.
- Realice una cotización de costos de cada tipo de almacenamiento para tener un criterio comparativo entre las opciones existentes. De esta manera podría evaluar y analizar criterios de viabilidad y costos para su organización de una eventual migración. Existen almacenamiento de bajo costo, como Azure Blog Storage, pero algunas otras opciones son de mayor costo, como Synapse o Databricks, por mencionar algunos escenarios. Mucho de la inversión va a depender de la cantidad de datos a almacenar y del tipo de procesamiento, así como los cálculos que se desea aplicar sobre los datos.