Elección de una tecnología de almacenamiento de macrodatos en Azure

Nota

El 29 de febrero de 2024 se retirará Azure Data Lake Storage Gen1. Para obtener más información, consulte el anuncio oficial. Si usa Azure Data Lake Storage Gen1, asegúrese de migrar a Azure Data Lake Storage Gen2 antes de esa fecha. Para saber cómo, consulte Migración de Azure Data Lake Storage de Gen1 a Gen2 con Azure Portal.

A menos que ya tenga una cuenta de Azure Data Lake Storage Gen1, no puede crear otras.

En este tema se comparan las opciones de almacenamiento de datos para soluciones de macrodatos, especialmente el almacenamiento de datos para la ingesta de datos masiva y el procesamiento por lotes, en lugar de los almacenes de datos analíticos o la ingesta de streaming en tiempo real.

¿Cuáles son las opciones al elegir el almacenamiento de datos en Azure?

Existen varias opciones para la ingesta de datos en Azure en función de sus necesidades:

Almacenamiento de archivos:

Bases de datos NoSQL:

Bases de datos analíticas:

Azure Data Explorer

Blobs de Azure Storage

Azure Storage es un servicio de almacenamiento administrado altamente disponible, seguro, duradero, escalable y redundante. Microsoft se encarga del mantenimiento y soluciona automáticamente los problemas críticos. Azure Storage es la solución de almacenamiento más ubicua que proporciona Azure, debido al número de servicios y herramientas que se pueden usar.

Hay diversos servicios de Azure Storage que puede usar para almacenar datos. La opción más flexible para almacenar blobs de varios orígenes de datos es Blob Storage. Los blobs son básicamente archivos. Almacenan imágenes, documentos, archivos HTML, discos duros virtuales (VHD), macrodatos (como registros), copias de seguridad de bases de datos, cualquier cosa. Los blobs se almacenan en contenedores, que son similares a las carpetas. Los contenedores proporcionan una agrupación de un conjunto de blobs. Una cuenta de almacenamiento puede contener un número ilimitado de contenedores y un contenedor puede almacenar un número ilimitado de blobs.

Azure Storage es una buena elección para soluciones de macrodatos y análisis debido a su flexibilidad, alta disponibilidad y bajo costo. Proporciona niveles de almacenamiento de acceso frecuente, esporádico y de archivo para distintos casos de uso. Para más información, consulte Azure Blob Storage: Niveles de almacenamiento de acceso frecuente, acceso esporádico y acceso de archivo.

Se puede acceder a Azure Blob Storage desde Hadoop (disponible a través de HDInsight). HDInsight puede usar un contenedor de blobs en Azure Storage como el sistema de archivos predeterminado para el clúster. Mediante una interfaz del sistema de archivos distribuido de Hadoop (HDFS) proporcionada por un controlador WASB, el conjunto completo de componentes de HDInsight puede operar directamente en datos estructurados o no estructurados almacenados como blobs. También es posible acceder a Azure Blob Storage a través de Azure Synapse Analytics con su característica PolyBase.

Otras características que hacen de Azure Storage una buena opción de almacenamiento son:

Azure Data Lake Storage Gen1

Azure Data Lake Storage Gen1 es un repositorio a hiperescala de nivel empresarial para cargas de trabajo de análisis de macrodatos. Data Lake permite capturar datos de cualquier tamaño, tipo y velocidad de ingesta en una única ubicación segura para realizar análisis exploratorios y operativos.

Azure Data Lake Storage Gen1 no impone ningún límite al tamaño de cuenta, el tamaño de archivo o la cantidad de datos que se pueden almacenar en un lago de datos. Los datos se almacenan de forma duradera mediante la realización de varias copias y no hay ningún límite al período de tiempo durante el que se pueden almacenar los datos en la instancia de Data Lake. Además de realizar varias copias de los archivos para protegerse contra errores inesperados, Data Lake propaga partes de un archivo entre varios servidores de almacenamiento individuales. Esto mejora el rendimiento de lectura cuando se lee el archivo en paralelo para realizar análisis de datos.

Se puede acceder a Azure Data Lake Storage Gen1 desde Hadoop (disponible a través de HDInsight) mediante las API de REST compatibles con WebHDFS. Puede utilizar esto como una alternativa a Azure Storage cuando los tamaños de archivo individuales o combinados superan lo que admite Azure Storage. Sin embargo, hay directrices de ajuste del rendimiento que se deben seguir cuando se usa Azure Data Lake Storage Gen1 como el almacenamiento principal para un clúster de HDInsight, con instrucciones específicas para Spark, Hive, MapReduce y Storm. Además, no olvide comprobar la disponibilidad regional de Azure Data Lake Storage Gen1, ya que no está disponible en tantas regiones como Azure Storage y debe estar ubicado en la misma región que el clúster de HDInsight.

Junto con Azure Data Lake Analytics, Azure Data Lake Storage Gen1 está diseñado para habilitar el análisis de los datos almacenados y está optimizado para el rendimiento en escenarios de análisis de datos. También es posible acceder a Azure Data Lake Storage Gen1 a través de Azure Synapse con su característica PolyBase.

Azure Cosmos DB

Azure Cosmos DB es un servicio de base de datos con varios modelos y de distribución global de Microsoft. Azure Cosmos DB garantiza una latencia inferior a 10 milisegundos el 99 % del tiempo en cualquier parte del mundo, ofrece varios modelos de coherencia totalmente definidos para ajustar el rendimiento y garantiza alta disponibilidad con funcionalidades multi-homing.

Azure Cosmos DB es independiente del esquema. Indexa todos los datos automáticamente sin que haya que ocuparse de la administración de esquemas ni de índices. Es también multimodelo, admite de forma nativa modelos de datos de documentos, pares clave-valor, grafos y en columnas.

Características de Azure Cosmos DB:

HBase en HDInsight

Apache HBase es una base de datos no SQL de código abierto construida sobre Hadoop y modelada según Google BigTable. HBase proporciona acceso aleatorio y alta coherencia para grandes cantidades de datos no estructurados y semiestructurados en una base de datos sin esquemas organizada por familias de columnas.

Los datos se almacenan en las filas de una tabla, mientras que los datos de una fila se agrupan por familia de columnas. HBase no tiene esquema en el sentido de que no es preciso que ni las columnas ni el tipo de datos almacenados en ellas se definan antes de usarlos. El código abierto se escala linealmente para controlar petabytes de datos en miles de nodos. Puede basarse en la redundancia de datos, el procesamiento por lotes y otras características proporcionadas por aplicaciones distribuidas en el ecosistema Hadoop.

La implementación de HDInsight aprovecha la arquitectura de escalabilidad horizontal de HBase para proporcionar particionamiento automático de tablas, alta coherencia para lecturas y escrituras y conmutación por error automática. Se mejora el rendimiento mediante el almacenamiento en caché de memoria para lecturas y streaming de alto rendimiento para escrituras. En la mayoría de los casos, deseará crear el clúster de HBase dentro de una red virtual para que otros clústeres y aplicaciones de HDInsight puedan tener acceso directo a las tablas.

Explorador de datos de Azure

Azure Data Explorer es un servicio de exploración de datos rápido y altamente escalable para datos de telemetría y de registro. Le ayuda a administrar los numerosos flujos de datos emitidos por las aplicaciones de software actuales para poder recopilar, almacenar y analizar los datos. El Explorador de datos de Azure resulta idóneo para analizar grandes volúmenes de datos diversos desde cualquier origen de datos, como sitios web, aplicaciones, dispositivos de IoT, etc. Estos datos se usan para el diagnóstico, la supervisión, la creación de informes, el aprendizaje automático y las funcionalidades de análisis adicionales. Azure Data Explorer simplifica el proceso de ingesta de estos datos y permite realizar consultas ad hoc complejas en los datos en cuestión de segundos.

Azure Data Explorer se puede escalar horizontalmente de forma lineal para aumentar el rendimiento de la ingesta y del procesamiento de consultas. Un clúster de Azure Data Explorer se puede implementar en una red virtual para habilitar redes privadas.

Principales criterios de selección

Para restringir las opciones, empiece por responder a estas preguntas:

  • ¿Necesita almacenamiento administrado de alta velocidad basado en la nube para cualquier tipo de datos de texto o binarios? En caso afirmativo, seleccione una de las opciones de almacenamiento de archivos o análisis.

  • ¿Necesita almacenamiento de archivos optimizado para cargas de trabajo de análisis en paralelo y alto IOPS y rendimiento? En caso afirmativo, elija una opción que se ajuste al rendimiento de cargas de trabajo de análisis.

  • ¿Necesita almacenar datos no estructurados o semiestructurados en una base de datos sin esquema? Si es así, seleccione una de las opciones no relacionales o de análisis. Compare las opciones de indexación y modelos de base de datos. Según el tipo de datos que necesite almacenar, los modelos de la base de datos principal pueden ser el factor más relevante.

  • ¿Puede utilizar el servicio en su región? Compruebe la disponibilidad regional para cada servicio de Azure. Consulte los Productos disponibles por región.

Matriz de funcionalidades

En las tablas siguientes se resumen las diferencias clave en cuanto a funcionalidades.

Funcionalidades de almacenamiento de archivos

Capacidad Azure Data Lake Storage Gen1 Contenedores de Azure Blob Storage
Propósito Almacenamiento optimizado para cargas de trabajo de análisis de macrodatos Almacén general de objetos para una amplia variedad de escenarios de almacenamiento
Casos de uso Datos en lotes, de análisis de streaming y de aprendizaje automático, como archivos de registro, datos de IoT, transmisiones de clic y conjuntos de datos grandes Cualquier tipo de texto o datos binarios, por ejemplo, back-end de aplicación, datos de copia de seguridad, almacenamiento multimedia para streaming y datos de propósito general
Estructura Sistema de archivos jerárquico Almacén de objetos con el espacio de nombres plano
Authentication Basado en las identidades de Azure Active Directory Basada en secretos compartidos: claves de acceso de cuenta, claves de firma de acceso compartido y control de acceso basado en rol de Azure (Azure RBAC)
Protocolo de autenticación OAuth 2.0. Las llamadas deben contener un JWT válido (token web JSON) emitido por Azure Active Directory Código de autenticación de mensajes basado en hash (HMAC). Las llamadas deben contener un hash SHA-256 codificado en Base64 en una parte de la solicitud HTTP.
Authorization Listas de control de acceso (ACL) de POSIX. Las ACL basadas en identidades de Azure Active Directory se pueden establecer en el nivel de archivo y el de carpeta. Para la autorización en el nivel de cuenta utilice claves de acceso de cuenta. Para la autorización de cuenta, contenedor o blob utilice las claves de firma de acceso compartido.
Auditoría Disponible. Disponible
Cifrado en reposo Transparente, en el servidor Transparente, en el servidor; cifrado en el cliente
SDK para desarrolladores .NET, Java, Python, Node.js .NET, Java, Python, Node.js, C++, Ruby
Rendimiento de cargas de trabajo de análisis Rendimiento optimizado para cargas de trabajo de análisis en paralelo, alto rendimiento e IOPS No está optimizado para cargas de trabajo de análisis
Límites de tamaño Sin límites para el tamaño de cuenta, de archivo o el número de archivos Los límites específicos se documentan aquí
Redundancia geográfica Con redundancia local (LRS), global (GRS), global de acceso de lectura (RA-GRS) y de zona (ZRS). Con redundancia local (LRS), global (GRS), global de acceso de lectura (RA-GRS) y de zona (ZRS). Más información aquí

Funcionalidades de bases de datos no SQL

Capacidad Azure Cosmos DB HBase en HDInsight
Modelo de la base de datos principal Almacenamiento de documentos, grafos, almacenamiento de clave-valor, almacenamiento de columnas anchas Almacenamiento de columnas anchas
Índices secundarios No
Compatibilidad con lenguaje SQL Sí (mediante el controlador JDBC Phoenix)
Coherencia Alta, de obsolescencia limitada, sesión, prefijo coherente, eventual Alta
Integración nativa con Azure Functions No
Distribución global automática No es posible configurar la replicación de clúster de HBase entre regiones con coherencia eventual
Modelo de precios Las unidades de solicitud (RU) escalables de manera flexible se cobran por segundo según sea necesario, almacenamiento escalable de forma elástica Precios del clúster de HDInsight (escalado horizontal de nodos) por minuto, almacenamiento

Funcionalidades de base de datos analítica

Capacidad Explorador de datos de Azure
Modelo de la base de datos principal Almacén relacional (de columnas), de telemetría y de series temporales
Compatibilidad con lenguaje SQL
Modelo de precios Instancias del clúster escalables de forma elástica
Authentication Basado en las identidades de Azure Active Directory
Cifrado en reposo Compatible con claves administradas por el cliente
Rendimiento de cargas de trabajo de análisis Rendimiento optimizado para cargas de trabajo de análisis en paralelo
Límites de tamaño Escalable de forma lineal

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal: