Hoy en día, las empresas producen y gestionan cantidades ingentes de datos sin estructurar. Estos datos abarcan desde imágenes y vídeos hasta copias de seguridad, archivos de registro y grandes conjuntos de datos para analíticas. Para almacenar, gestionar y acceder de forma eficaz a estos archivos diversos y, a menudo, muy grandes, se necesitan soluciones de almacenamiento especializadas. El almacenamiento de objetos binarios grandes (BLOB) se ha convertido en una tecnología clave para abordar estos retos, ya que proporciona una forma escalable y rentable de gestionar datos no estructurados.
Los sistemas de almacenamiento de objetos binarios grandes están diseñados para ofrecer una escalabilidad masiva y una alta durabilidad, además de ayudar a reducir los costes, lo que les permite almacenar grandes volúmenes de datos sin estructurar.
Para entender bien el almacenamiento de objetos binarios grandes, es útil definir primero sus componentes principales: el almacenamiento de objetos y el objeto binario grande (BLOB) en sí.
El almacenamiento de objetos es una arquitectura de almacenamiento de datos que gestiona los datos como unidades independientes, llamadas objetos. A diferencia de los sistemas de archivos, que organizan los datos en una estructura de directorios jerárquica (carpetas y archivos), o del almacenamiento en bloques, que gestiona los datos como bloques de tamaño fijo, los sistemas de almacenamiento de objetos tratan cada fragmento de datos como un objeto independiente.
Cada objeto suele incluir lo siguiente:
Un BLOB (binary large object) es una colección de datos binarios almacenados como una sola entidad. El término "binario" significa que los datos pueden ser de cualquier tipo, no se limitan a texto o formatos específicos. Puede ser un archivo ejecutable, una imagen, contenido de audio o vídeo, un archivo comprimido, una copia de seguridad de una base de datos o cualquier otro tipo de información digital. La parte "large" del nombre indica que los BLOBs se suelen usar para archivos que son demasiado grandes para almacenarse de forma cómoda o eficiente directamente en un campo de base de datos tradicional junto con datos estructurados.
Por tanto, el almacenamiento de objetos binarios grandes consiste básicamente en almacenar estos BLOBs como objetos individuales en un sistema de almacenamiento de objetos. Por ejemplo, en lugar de insertar un archivo de vídeo grande directamente en un registro de base de datos, almacenarías el archivo de vídeo en un sistema de almacenamiento de objetos y, después, guardarías una referencia (el identificador único o la URL del objeto) a ese BLOB en tu base de datos.
El proceso de usar el almacenamiento de objetos binarios grandes suele implicar algunos pasos clave, que facilita el sistema de almacenamiento de objetos:
Cuando un usuario o una aplicación necesita almacenar un archivo binario de gran tamaño, envía los datos, junto con los metadatos asociados, al sistema de almacenamiento de objetos mediante una llamada a la API (normalmente, APIs RESTful a través de HTTP/S). El sistema de almacenamiento recibe estos datos.
El sistema de almacenamiento de objetos toma los datos binarios subidos y sus metadatos, y los encapsula en un "objeto". A continuación, asigna un identificador único a este nuevo objeto. Este identificador es crucial porque es la forma en la que se hará referencia al objeto y se recuperará más adelante.
El sistema almacena el objeto, a menudo distribuyéndolo y replicándolo en varios dispositivos de almacenamiento físico e incluso en distintos centros de datos. Este enfoque distribuido mejora la durabilidad de los datos (protegiéndolos frente a fallos de hardware) y la disponibilidad. La estrategia de replicación específica puede variar en función de la clase de almacenamiento elegida o de las políticas del proveedor.
Los metadatos asociados al BLOB se indexan. Esto permite buscar o categorizar objetos en función de sus etiquetas de metadatos, incluso si tiene miles de millones de objetos.
Cuando un usuario o una aplicación necesita acceder al BLOB, envía una solicitud al sistema de almacenamiento de objetos usando el identificador único del objeto. El sistema localiza el objeto y transmite los datos binarios al solicitante.
Los sistemas de almacenamiento de objetos proporcionan mecanismos para controlar quién puede leer, escribir o eliminar BLOBs. Normalmente, esto se gestiona mediante políticas de gestión de identidades y accesos (IAM), listas de control de acceso (LCA) o URLs firmadas que conceden acceso temporal.
El uso del almacenamiento de objetos binarios grandes ofrece ventajas significativas para gestionar datos no estructurados:
Escalabilidad
Los sistemas de almacenamiento de objetos están diseñados para escalar hasta exabytes y más, lo que permite almacenar grandes cantidades de datos y objetos. Por eso, puede ser adecuado para aplicaciones que generan grandes volúmenes de datos.
Rentabilidad
Almacenar grandes cantidades de datos a los que no se accede con frecuencia en sistemas de archivos o bases de datos tradicionales de alto rendimiento puede resultar caro. El almacenamiento de objetos suele ofrecer opciones por niveles con costes variables en función de la frecuencia de acceso y los requisitos de durabilidad, lo que permite optimizar los costes.
Durabilidad y disponibilidad
Los servicios de almacenamiento de objetos líderes pueden ofrecer altos niveles de durabilidad de los datos, a menudo almacenando objetos de forma redundante en varios dispositivos o ubicaciones geográficas. De esta forma, se puede minimizar el riesgo de pérdida de datos por fallos de hardware y se puede ofrecer una alta disponibilidad.
Metadatos enriquecidos
La posibilidad de asociar metadatos personalizados y exhaustivos a cada BLOB permite organizar mejor los datos, facilitar las búsquedas y disfrutar de funciones de gestión y analíticas de datos más sofisticadas.
Acceso simplificado de datos
Acceder a BLOBs mediante APIs HTTP estándar puede simplificar la integración con aplicaciones web, aplicaciones móviles y otros servicios en la nube. Los identificadores únicos de cada objeto permiten acceder directamente a ellos sin tener que navegar por rutas de archivo complejas.
Desvinculación
Almacenar BLOBs externamente a las bases de datos o los servidores de aplicaciones puede mejorar el rendimiento y la escalabilidad de esos sistemas principales. Las bases de datos se liberan de la gestión de tipos de datos grandes y difíciles de manejar, y las aplicaciones pueden descargar la entrega de contenido estático.
Los servicios de almacenamiento de objetos que alojan BLOBs suelen ofrecer diferentes clases o niveles de almacenamiento, categorizados por su frecuencia de acceso, tiempos de recuperación y coste. Estos niveles pueden ayudar a las empresas a optimizar los costes de almacenamiento en función de cómo se usen los datos. Entre los tipos más habituales se incluyen los siguientes:
Diseñado para datos a los que se accede con frecuencia y que requieren baja latencia y alto rendimiento. Este nivel puede ser adecuado para el contenido activo de sitios web, los datos de aplicaciones móviles o los datos que se están procesando activamente mediante cargas de trabajo de analíticas. Suele tener costes de almacenamiento más altos, pero puede ayudar a reducir los costes de acceso.
Está pensada para datos a los que se accede con menos frecuencia (por ejemplo, una vez al mes), pero que deben estar disponibles rápidamente cuando se soliciten. Puede ofrecer costes de almacenamiento más bajos que el almacenamiento estándar, pero puede tener costes de acceso o tarifas por recuperación ligeramente más altos. Es ideal para copias de seguridad a largo plazo, archivado de datos en los que se necesita un acceso rápido ocasional o archivos de recuperación tras fallos.
Se ha diseñado para el archivado, la conservación y el cumplimiento de normativas de datos a largo plazo, en los que se accede a los datos con poca frecuencia (por ejemplo, una vez al año o menos). Este nivel puede ofrecer costes de almacenamiento bajos. Los tiempos de recuperación pueden ser más largos, desde minutos hasta horas, y los costes de acceso pueden ser más altos. Esta clase de almacenamiento es adecuada para archivos reglamentarios o datos que deben conservarse con fines históricos, pero que no son necesarios para las operaciones diarias.
Algunos proveedores ofrecen incluso niveles más fríos para los datos a los que se accede muy raramente y que pueden tolerar tiempos de recuperación más largos (por ejemplo, muchas horas). Estos niveles ofrecen los costes de almacenamiento más bajos.
La versatilidad y la escalabilidad del almacenamiento de BLOBs hacen que sea adecuado para una amplia gama de aplicaciones en diversos sectores:
Casos prácticos | Función |
Distribución de contenido multimedia | Almacenar y servir imágenes, vídeos, archivos de audio y otros medios enriquecidos para sitios web, servicios de streaming y aplicaciones móviles. |
Data lakes y analíticas | Almacenar grandes cantidades de datos en bruto en un data lakehouse (estructurados, semiestructurados y sin estructurar) de diversas fuentes en su formato nativo para el procesamiento de Big Data, el entrenamiento de modelos de aprendizaje automático y la inteligencia empresarial. |
Almacenamiento de archivos de registro | Almacenar registros de servidores de aplicaciones, registros de seguridad y registros de auditoría para solucionar problemas, analizar la seguridad y cumplir normativas. |
Sistemas de gestión de documentos | Almacenar y gestionar grandes volúmenes de documentos, PDFs, imágenes escaneadas y otros registros empresariales. |
Alojamiento de sitios web estáticos | Alojar los recursos estáticos (HTML, CSS, JavaScript, imágenes) de un sitio web directamente desde el almacenamiento de objetos, que puede ser muy escalable y rentable. |
Distribución de software | Almacenar y distribuir grandes paquetes de software, actualizaciones e instaladores. |
Gestión de datos sanitarios | Almacenar imágenes médicas (radiografías, resonancias magnéticas), historiales de pacientes y datos genómicos de forma segura y conforme a las normativas. |
Investigación científica | Almacenar grandes conjuntos de datos de experimentos, simulaciones y redes de sensores para analizarlos y colaborar en ellos. |
Casos prácticos
Función
Distribución de contenido multimedia
Almacenar y servir imágenes, vídeos, archivos de audio y otros medios enriquecidos para sitios web, servicios de streaming y aplicaciones móviles.
Data lakes y analíticas
Almacenar grandes cantidades de datos en bruto en un data lakehouse (estructurados, semiestructurados y sin estructurar) de diversas fuentes en su formato nativo para el procesamiento de Big Data, el entrenamiento de modelos de aprendizaje automático y la inteligencia empresarial.
Almacenamiento de archivos de registro
Almacenar registros de servidores de aplicaciones, registros de seguridad y registros de auditoría para solucionar problemas, analizar la seguridad y cumplir normativas.
Sistemas de gestión de documentos
Almacenar y gestionar grandes volúmenes de documentos, PDFs, imágenes escaneadas y otros registros empresariales.
Alojamiento de sitios web estáticos
Alojar los recursos estáticos (HTML, CSS, JavaScript, imágenes) de un sitio web directamente desde el almacenamiento de objetos, que puede ser muy escalable y rentable.
Distribución de software
Almacenar y distribuir grandes paquetes de software, actualizaciones e instaladores.
Gestión de datos sanitarios
Almacenar imágenes médicas (radiografías, resonancias magnéticas), historiales de pacientes y datos genómicos de forma segura y conforme a las normativas.
Investigación científica
Almacenar grandes conjuntos de datos de experimentos, simulaciones y redes de sensores para analizarlos y colaborar en ellos.
Proteger los objetos binarios grandes es importante, sobre todo cuando se trata de datos sensibles o esenciales. Las estrategias de seguridad eficaces suelen incluir varias capas de seguridad:
Cifrado
El cifrado en tránsito usa HTTPS (TLS/SSL) para todas las solicitudes de API. El cifrado en reposo garantiza que los BLOBs se cifren en el almacenamiento, con opciones de cifrado del lado del servidor (claves gestionadas por el proveedor) o claves gestionadas o proporcionadas por el cliente (CMEK/CSEK) para un mayor control.
Gestión de identidades y accesos (IAM):
Implementa políticas de control de acceso detallado para definir quién (usuarios, grupos o cuentas de servicio) puede realizar qué acciones (leer, escribir, eliminar o listar) en BLOBs concretos o colecciones de BLOBs (a menudo denominados segmentos o contenedores). Sigue el principio de mínimos accesos, concediendo solo los permisos necesarios.
Listas de control de acceso (LCA)
Las listas de control de acceso pueden proporcionar otra capa de control, ya que permiten conceder permisos específicos a usuarios o grupos concretos para objetos o segmentos individuales. Pueden ser más adecuadas para necesidades de control detallado que para la gestión a gran escala, ya que ofrecen un enfoque granular para ajustes de permisos específicos y detallados.
URL firmadas o prefirmadas
Las URLs firmadas son un mecanismo seguro para los casos en los que necesites conceder acceso temporal y limitado a un blob específico (por ejemplo, para permitir que un usuario descargue un archivo que ha comprado). Estas URLs conceden permisos de duración limitada para realizar una acción específica sin que el usuario tenga que tener credenciales completas.
Gestión de versiones
Habilita la gestión de versiones de objetos para conservar varias versiones de un BLOB. Esto puede protegerte frente a las sobreescrituras o eliminaciones accidentales, ya que puedes restaurar versiones anteriores si es necesario.
Registros de auditoría
Habilita el registro de auditoría para hacer un seguimiento de las solicitudes de acceso y las acciones que se realizan en tus BLOBs y tus segmentos de almacenamiento. Esto ayuda en el análisis de seguridad, los informes de cumplimiento y la identificación de cualquier intento de acceso no autorizado.
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.