Buscar documentos e imágenes almacenados en Object Storage mediante OpenSearch, OCI Vision, reconocimiento de texto

Para las soluciones de Big Data, los usuarios prefieren almacenar documentos en un sistema de almacenamiento de bajo costo como Oracle Cloud Infrastructure Object Storage. Cuando hay un gran número de documentos con Terrabytes de datos, los usuarios requieren una opción fácil y escalable para buscar y encontrar la información relevante. Estos usuarios también pueden tener requisitos para indexar documentos personalizados con pasos específicos para obtener mejores resultados de búsqueda.

En esta arquitectura de referencia se describe cómo utilizar herramientas con poco código para desarrollar un programa con el fin de buscar documentos e imágenes almacenados en Oracle Cloud Infrastructure Object Storage mediante un motor de búsqueda diseñado con Oracle Visual Builder. Puede agregar seguridad en el nivel de archivo según la seguridad OpenSearch o etiquetas asociadas a los documentos.

Esta arquitectura de referencia proporciona las siguientes funciones.

  • Soporta la mayoría de tipos de archivos:
    • Word, Excel, Powerpoint, pdf, xml, etc.
    • Imágenes con texto mediante reconocimiento de texto. Puede buscar texto en una imagen.
    • Imágenes sin texto mediante el etiquetado de imágenes. Puede encontrar objetos en imágenes.
    • Documentos personalizados
  • Soporta varios idiomas (Hebreo, Árabe, etc.)
  • Proporciona una interfaz de usuario sencilla
  • Funciona con herramientas con poco código que hacen que cualquier cambio en el proceso sea fácil de implementar. Por ejemplo, puede agregar tipos de archivo adicionales o pasos adicionales en el proceso de análisis fácilmente.
  • Se ejecuta en modo de alta disponibilidad y es escalable.

Arquitectura

El siguiente diagrama ilustra el flujo lógico de esta arquitectura de referencia.



oci_opensearch_vision_flow-oracle.zip

  • Se ha cargado un documento en Object Storage
  • Se emite un evento y se pone en cola en Streaming (Kafka)
  • Oracle Integration Cloud Service (OIC) procesa el evento según el tipo de archivo
  • El resultado se carga en OpenSearch

En el siguiente diagrama se ilustra esta arquitectura de referencia.



oci_opensearch_vision_arch-oracle.zip

Un usuario final puede buscar estos documentos en una página de búsqueda diseñada con Visual Builder.

El procesamiento interno está diseñado con una herramienta con poco código, OIC.

La aplicación detecta los cambios en Object Storage (creación de archivos, actualización, supresión) y los envía a OIC para su procesamiento.

OIC conecta todas las piezas:

  • Recibe eventos de Object Storage mediante una cola de flujo (Kafka)
  • Detecta el tipo de documento
  • Procesos basados en el tipo de documento:
    • Envía imágenes a OCI AI Vision para etiquetado o reconocimiento de texto
    • Envía un documento a una función de Java para analizar los documentos (Word, PDF, ...)
    • Para documentos personalizados (como tarjetas de identificación), detecta el nombre, la fecha de nacimiento y el ID de la tarjeta.
  • El documento se convierte y el resultado se almacena en Opensearch para la indexación.

La interfaz de búsqueda de usuario final se crea con Visual Builder. Cuando un usuario final realiza búsquedas, el resultado proviene de OpenSearch y el enlace del documento apunta a Object Storage.

Al visualizar un documento, este proviene de Object Storage mediante solicitudes autenticadas previamente y de corta duración creadas sobre la marcha.

Este pipeline de procesamiento se puede ampliar mediante pasos adicionales para llamar a cualquier código personalizado mediante una función (o servicios REST en una instancia informática) a fin de mejorar los metadatos que se almacenarán en el índice de la instancia OpenSearch.

La arquitectura tiene los siguientes componentes:

  • Servicio de búsqueda de OCI con OpenSearch

    El servicio de búsqueda de OCI con OpenSearch es un motor de estadísticas que se ofrece como un servicio gestionado por Oracle. Sin tiempo de inactividad, Oracle automatiza la aplicación de parches, la actualización, la realización de copias de seguridad y el cambio de tamaño del servicio. Los clientes pueden almacenar, buscar y analizar grandes volúmenes de datos rápidamente y ver los resultados prácticamente en tiempo real.

  • Oracle Integration

    Oracle Integration es una plataforma de automatización y conectividad empresarial para modernizar rápidamente aplicaciones, procesos de negocio, API y datos. Los desarrolladores y arquitectos en la nube pueden conectar SaaS y las aplicaciones locales seis veces más rápido con una experiencia de desarrollo visual, integraciones predefinidas y mejores prácticas integradas. Oracle Integration te ofrece acceso nativo a eventos en Oracle Cloud ERP, HCM y CX. Conecte los silos analíticos específicos de la aplicación para simplificar la solicitud a la recepción, la selección al pago, la oportunidad potencial a la factura y otros procesos críticos. Por último, proporcione visibilidad integral a sus líderes empresariales y de TI.

  • Object Storage

    El almacenamiento de objetos proporciona acceso rápido a grandes cantidades de datos estructurados y no estructurados de cualquier tipo de contenido, incluidas copias de seguridad de bases de datos, datos analíticos y contenido enriquecido, como imágenes y vídeos. Puede almacenar datos de forma segura y, a continuación, recuperarlos directamente desde Internet o desde la plataforma en la nube. Puede ampliar el almacenamiento sin problemas sin que se vea afectado el rendimiento o la fiabilidad del servicio. Utilice el almacenamiento estándar para el almacenamiento "activo" al que necesita acceder de forma rápida, inmediata y frecuente. Utilice el almacenamiento de archivos para el almacenamiento "en frío" que conserva durante largos períodos de tiempo y al que rara vez se accede.

  • Visión de OCI

    OCI Vision es un servicio de IA para realizar análisis de imágenes basados en el aprendizaje profundo a escala. Con los modelos predefinidos disponibles listos para usar, los desarrolladores pueden crear fácilmente reconocimiento de imágenes y reconocimiento de texto en sus aplicaciones sin experiencia en aprendizaje automático (ML). En los casos de uso específicos del sector, los desarrolladores pueden entrenar automáticamente modelos de Vision personalizados con sus propios datos. Estos modelos se pueden utilizar para detectar anomalías visuales en la fabricación, extraer texto de los documentos para automatizar los flujos de trabajo del negocio y etiquetar artículos en imágenes para contabilizar productos o envíos. Además de obtener acceso a modelos previamente entrenados, los desarrolladores pueden crear modelos personalizados sin experiencia en ciencia de datos o gestionar la infraestructura de modelos personalizados.

  • Flujo

    El servicio de Oracle Cloud Infrastructure Streaming proporciona una solución completa, escalable y duradera para la ingesta y el consumo de flujos de datos de gran volumen en tiempo real. Utilice Streaming para cualquier caso de uso en el que se produzcan y procesen datos de forma continua y secuencial en un modelo de mensajería de publicación-suscripción.

  • Eventos

    Los servicios de Oracle Cloud Infrastructure emiten eventos, que son mensajes estructurados que describen los cambios en los recursos. Los eventos se emiten para las operaciones de creación, lectura, actualización o supresión (CRUD), los cambios de estado del ciclo de vida de los recursos y los eventos del sistema que afectan a los recursos en la nube.

  • Funciones

    Oracle Functions es una plataforma de funciones como servicio (FaaS) totalmente gestionada, multitenant y altamente escalable. Se basa en el motor de origen abierto Fn Project. Las funciones permiten desplegar el código y llamarlo directamente o dispararlo en respuesta a eventos. Oracle Functions utiliza contenedores de Docker alojados en Oracle Cloud Infrastructure Registry.

  • Arrendamiento

    Un arrendamiento es una partición segura y aislada que Oracle configura en Oracle Cloud cuando se registra para Oracle Cloud Infrastructure. Puede crear, organizar y administrar sus recursos en Oracle Cloud en su arrendamiento. Un arrendamiento es sinónimo de una compañía u organización. Normalmente, una compañía tendrá un único arrendamiento y reflejará su estructura organizativa dentro de ese arrendamiento. Un único arrendamiento suele estar asociado a una única suscripción, y una única suscripción suele tener un solo arrendamiento.

  • Región

    Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes de otras regiones y grandes distancias pueden separarlas (entre países e incluso continentes).

  • Compartimento

    Los compartimentos son particiones lógicas entre regiones dentro de un arrendamiento de Oracle Cloud Infrastructure. Utilice compartimentos para organizar los recursos en Oracle Cloud, controlar el acceso a los recursos y definir cuotas de uso. Para controlar el acceso a los recursos de un compartimento determinado, debe definir políticas que especifiquen quién puede acceder a los recursos y qué acciones pueden realizar.

  • Red virtual en la nube (VCN) y subredes

    Una VCN es una red personalizable y definida por software que se configura en una región de Oracle Cloud Infrastructure. Al igual que las redes de centros de datos tradicionales, las VCN le proporcionan un control total de su entorno de red. Una VCN puede tener varios bloques CIDR que no se superpongan y que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, cuyo ámbito puede ser una región o un dominio de disponibilidad. Cada subred está formada por un rango de direcciones contiguas que no se solapan con las demás subredes de la VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.

  • Lista de seguridad

    Para cada subred, puede crear reglas de seguridad que especifiquen el origen, el destino y el tipo de tráfico que se debe permitir dentro y fuera de la subred.

Recomendaciones

Utilice las siguientes recomendaciones como punto de partida. Sus requisitos pueden diferir de la arquitectura que se describe aquí.
  • Mantenimiento y alta disponibilidad

    El diseño utiliza casi solo servicios PaaS, mantenidos por la nube. No es necesario instalar, aplicar parches, actualizar ni actualizar el software con esta solución. Esto es válido para Object Storage, Events, Streaming, OCI Vision, Oracle Integration, Visual Builder y Functions.

    El único componente que solicita atención es el agente de Oracle Integration Cloud instalado en una instancia informática para acceder al cluster OpenSearch que reside en una red privada. Siga las directrices de la documentación de OIC para que el agente de OIC sea fácil de mantener y de alta disponibilidad.

  • Escalabilidad y tamaño

    Esta arquitectura de referencia utiliza el servicio PaaS y es escalable y listo para usar para la mayoría de los servicios. Tenga en cuenta que el cluster OpenSearch no se escala ni reduce automáticamente (solo manualmente). Por lo tanto, se necesita una ampliación adecuada de la solución en función de su caso de uso.

Consideraciones

Tenga en cuenta los siguientes puntos al desplegar esta arquitectura de referencia.

  • Rendimiento

    El servicio de búsqueda de OCI con OpenSearch tiene un nivel de configuración sin precedentes. No está bloqueado en unidades o SKU específicos; en su lugar, puede utilizar unidades flexibles que le permitan configurar el número preciso de núcleos de cálculo y la cantidad de memoria y almacenamiento según sus requisitos exactos.

    El servicio de búsqueda de OCI con OpenSearch gestiona el trabajo relacionado con la configuración del cluster, incluida la infraestructura de aprovisionamiento. Una vez que el cluster se está ejecutando, el servicio de búsqueda de OCI con OpenSearch gestiona tareas administrativas comunes, como la realización de copias de seguridad, la supervisión de instancias y el software de aplicación de parches. El servicio de búsqueda de OCI con OpenSearch se integra con las métricas de OCI para producir métricas que proporcionan información sobre el estado de los clusters. OCI Search Service con OpenSearch también ofrece la capacidad de modificar la configuración del cluster y el tamaño total de los datos sin una interrupción del servicio.

  • Seguridad

    Los documentos se almacenan en Object Storage privado. Se crea un enlace temporal con una corta duración cuando un usuario hace clic en el documento.

    La implantación devuelve el mismo resultado para todos los usuarios y se describe en detalle en el taller LiveLabs enlazado en la sección Explorar más. No se ha implantado ninguna seguridad en el nivel de documento. Puede implantarlo según la seguridad OpenSearch y/o en la etiqueta asociada a documentos y usuarios.

  • Costo

    Esta arquitectura de referencia utiliza Object Storage y OpenSearch, que son productos de bajo costo. También utiliza una versión estándar de OIC. OIC se utiliza de forma muy eficaz con la indexación, solo utiliza la referencia a los archivos y no los propios archivos.

Confirmaciones

  • Author: Marc Gueury
  • Contributors: Badr Aissaoui, Marek Krátký