Estamos en medio de una revolución de datos no estructurados: es probable que el 80 % de los datos no estén estructurados para 2025, según IDC. El auge de la analítica avanzada y, en particular, de la inteligencia artificial/aprendizaje automático (AI/ML) ha permitido obtener inteligencia de la vasta reserva de texto libre, imágenes, grabaciones de voz, etc., que antes eran opacos y que las organizaciones conservan en grandes volúmenes.
Por supuesto, cierta estructura está presente en los metadatos que acompañan a cualquier archivo. Pero con el procesamiento AI/ML, se pueden derivar campos de datos estructurados adicionales a partir de un conjunto de datos.
Entonces, por ejemplo, una organización podría ejecutar AI/ML contra un conjunto de imágenes de anuncios de alquiler de apartamentos y buscar mapear patrones visuales a la cantidad de clics. Eso implica el análisis de datos de imágenes no estructurados para crear campos estructurados que se pueden unir a los datos existentes para su análisis y, en última instancia, para impulsar la toma de decisiones editoriales.
En este artículo, veremos algunas de las formas en que se accede a los datos no estructurados como si estuvieran estructurados o estructurados por S3 Select y Snowflake, y productos similares a bases de datos como MongoDB.
SQL, resumen estructurado
Primero, debemos recordar que los datos estructurados se basan en el uso de bases de datos SQL, que están configuradas con un esquema basado en tablas y los datos se mantienen en filas y columnas.
Este formato preestablecido permite una consulta extremadamente rápida de los datos, con una gran seguridad en términos de integridad de la transacción. Y así, las bases de datos SQL siguen estando en el corazón de las aplicaciones de mayor rendimiento y de misión crítica en uso.
Para que los datos existan en un formato estructurado, lo más probable es que hayan sido creados de esa manera por máquinas o con la ayuda de humanos en procesos bastante rígidos y dependientes de máquinas.
Aquí analizamos las formas en que los datos no estructurados se incorporan a entornos que permiten enfoques de análisis más estructurados.
S3 Select: S3 cumple con SQL
El almacenamiento de objetos es quizás lo más desestructurado posible. Para empezar, carece de la jerarquía rígida del almacenamiento del sistema de archivos. Todo está contenido en una estructura plana con un identificador único para ubicarlo. Y un objeto podría ser de casi cualquier tipo de datos.
El almacenamiento de objetos S3 de AWS también tipifica la afinidad del almacenamiento de objetos y la era de la nube en la que nos encontramos.
Pero es posible filtrar los datos de S3 mediante declaraciones de consulta SQL para elegir el subconjunto de datos en los que desea trabajar desde almacenes de objetos muy grandes. Los resultados de S3 Select pueden venir en formatos CSV, JSON y Apache Parquet y puede realizar consultas desde la consola de AWS, la línea de comandos o mediante interfaces de programación de aplicaciones (API).
Los casos de uso clave son aquellos en los que desea seleccionar datos de S3 para analizarlos en un cómputo local más rápido, mientras reduce los cargos de salida más grandes que pueden surgir de la descarga de un conjunto de datos más grande.
Pero no es realmente una base de datos. Y con los datos que vienen en formatos como CSV y JSON, necesitará algo de codificación para convertirlos en la herramienta de análisis que elija.
Copo de nieve: agregando orden con tablas de directorio
El enfoque de Snowflake para los datos no estructurados y proporcionarles una estructura se basa en análisis y AI/ML que aportan estructura a los elementos dentro de ellos. Estas capacidades se GA a principios de 2022.
Puede usar las API para almacenar datos en un “escenario” de Snowflake desde nubes externas (AWS, Azure, GCP) o traer su propio depósito S3 que contiene archivos no estructurados y montarlo en Snowflake. Luego, puede usar las API Rest basadas en URL para acceder a los datos y catalogarlos usando “tablas de directorio”.
Las tablas de directorio permiten buscar, ordenar, etc., a través de un catálogo de archivos creado a partir de metadatos y contenidos de archivos/objetos, cuando sea posible, y organizados en un formato estructurado. Entonces es posible agregar etiquetas o calcular columnas y unirlas a la tabla del directorio.
Puede obtener acceso analítico a archivos para obtener estructura de datos no estructurados a través de funciones programadas en Java, por ejemplo, con control de acceso y uso compartido también posible.
Las cargas de trabajo a las que se dirige Snowflake incluyen el reconocimiento óptico de caracteres de documentos, la extracción de datos de archivos PDF, el procesamiento de archivos AI/ML, con captura de firmas y análisis de imágenes de productos en comercio minorista y análisis de sentimientos en grabaciones de centros de llamadas, como ejemplos.
Snowflake también puede admitir tipos de datos semiestructurados como JSON, Avro y XML junto con datos relacionales mediante el aplanamiento de formatos anidados en tablas relacionales y luego consultas mediante SQL.
Google BigQuery: AI/ML crea tablas de objetos
El servicio de almacenamiento de datos BigQuery de Google permite consultar datos no estructurados y unirlos a datos estructurados a través de su funcionalidad de tablas de objetos.
Object Tables proporciona una interfaz de registro estructurado para datos no estructurados almacenados en Google Cloud Storage. Aquí puede ejecutar análisis y aprendizaje automático en imágenes, audio, documentos, etc., mediante SQL y funciones remotas en BigQuery, con seguridad, uso compartido y gobernanza integrados.
BigQuery admite un dialecto SQL estándar que cumple con ANSI. Para aplicar AI/ML a datos no estructurados y luego crear registros estructurados a partir de sus hallazgos, Google anunció AI Vision en su reciente evento Next, con reconocimiento de voz, análisis visual, traducción y más.
Microsoft Azure ofrece una funcionalidad similar en sus ofertas de Azure Synapse.
MongoDB
En MongoDB, una base de datos denominada NoSQL, los archivos de texto y otros activos no estructurados se almacenan como documentos con formato JSON.
De esta forma, no se aplica ninguna estructura rígida durante el procedimiento de guardado inicial. Eso deja los datos prácticamente intactos, por lo que se pueden estructurar para adaptarse a la forma en que el cliente elige acceder a ellos, sin cambiar el JSON subyacente. Eso significa que todo está disponible para operaciones futuras que pueden ser diferentes a las necesidades actuales.
Las imágenes, los archivos de audio, las películas, etc., se pueden almacenar en MongoDB utilizando la especificación GridFS, que almacena archivos dentro de las colecciones de MongoDB, junto con sus metadatos.