In Object Storage gespeicherte Dokumente und Bilder mit OpenSearch, OCI Vision, Texterkennung suchen

Bei Big-Data-Lösungen speichern Benutzer Dokumente lieber in einem kostengünstigen Speichersystem wie Oracle Cloud Infrastructure Object Storage. Wenn es eine große Anzahl von Dokumenten mit Terrabyte an Daten gibt, benötigen Benutzer eine einfache, skalierbare Option, um die relevanten Informationen zu suchen und zu finden. Diese Benutzer können auch Anforderungen für die Indizierung benutzerdefinierter Dokumente mit bestimmten Schritten für bessere Suchergebnisse haben.

Diese Referenzarchitektur beschreibt, wie Sie mit Low-Code-Tools ein Programm entwickeln, um in Oracle Cloud Infrastructure Object Storage gespeicherte Dokumente und Bilder mit einer mit Oracle Visual Builder entwickelten Suchmaschine zu suchen. Sie können Sicherheit auf Dateiebene basierend auf der OpenSearch-Sicherheit oder mit den Dokumenten verknüpften Labels hinzufügen.

Diese Referenzarchitektur bietet die folgenden Funktionen.

  • Unterstützt die meisten Dateitypen:
    • Word, Excel, Powerpoint, pdf, xml usw.
    • Bilder mit Text unter Verwendung der Texterkennung. Sie können in einem Bild nach Text suchen.
    • Bilder ohne Text mit Image Labeling. Sie können Objekte in Bildern finden.
    • Benutzerdefinierte Dokumente
  • Unterstützt mehrsprachige Sprachen (Hebräisch, Arabisch usw.)
  • Bietet eine einfache Benutzeroberfläche
  • Funktioniert mit Low-Code-Tools, die jede Prozessänderung einfach zu implementieren macht. Sie können beispielsweise problemlos weitere Dateitypen oder zusätzliche Schritte beim Parsen hinzufügen.
  • Wird im High Availability-Modus ausgeführt und ist skalierbar.

Architektur

Das folgende Diagramm zeigt den logischen Ablauf für diese Referenzarchitektur.



oci_opensearch_vision_flow - oracle.zip

  • Ein Dokument wird in Object Storage hochgeladen
  • Ein Ereignis wird in Streaming (Kafka) ausgelöst und in die Queue gestellt
  • Das Ereignis wird von Oracle Integration Cloud Service (OIC) basierend auf dem Dateityp verarbeitet
  • Das Ergebnis wird in OpenSearch hochgeladen

Das folgende Diagramm zeigt diese Referenzarchitektur.



oci_opensearch_vision_arch - oracle.zip

Ein Endbenutzer kann auf einer mit Visual Builder erstellten Suchseite nach diesen Dokumenten suchen.

Die interne Verarbeitung wurde mit einem Low-Code-Tool, OIC, entwickelt.

Die Anwendung erkennt die Änderungen in Object Storage (Dateierstellung, -aktualisierung, -löschung) und sendet sie zur Verarbeitung an OIC.

OIC verbindet alle Teile miteinander:

  • Empfängt Ereignisse aus Object Storage mit einer Streamingqueue (Kafka)
  • Ermittelt den Dokumenttyp
  • Prozesse auf Basis des Dokumenttyps:
    • Sendet Bilder zur Etikettierung oder Texterkennung an OCI AI Vision
    • Sendet das Dokument an eine Java-Funktion, um die Dokumente zu parsen (Word, PDF, ...)
    • Bei benutzerdefinierten Dokumenten (wie ID-Karten) werden der Name, das Geburtsdatum und die ID der Karte erkannt.
  • Das Dokument wird konvertiert und das Ergebnis zur Indexierung in Opensearch gespeichert.

Die Endbenutzer-Suchoberfläche wird mit Visual Builder erstellt. Wenn ein Endbenutzer sucht, stammt das Ergebnis aus OpenSearch, und der Dokumentlink verweist auf Object Storage.

Bei der Anzeige eines Dokuments stammt das Dokument aus Object Storage, und zwar mit kurzlebigen vorab authentifizierten Anforderungen, die dynamisch erstellt wurden.

Diese Verarbeitungspipeline kann um zusätzliche Schritte erweitert werden, um benutzerdefinierten Code mit einer Funktion (oder REST-Services auf einer Compute-Instanz) aufzurufen und die Metadaten zu erweitern, die im Index der OpenSearch-Instanz gespeichert werden.

Die Architektur besteht aus folgenden Komponenten:

  • OCI Search-Service mit OpenSearch

    OCI Search Service mit OpenSearch ist eine Insight-Engine, die als von Oracle verwalteter Service angeboten wird. Ohne Ausfallzeiten automatisiert Oracle das Patchen, Aktualisieren, Upgraden, Sichern und Skalieren des Service. Kunden können große Datenmengen schnell speichern, durchsuchen und analysieren und die Ergebnisse nahezu in Echtzeit anzeigen.

  • Oracle Integration

    Oracle Integration ist eine Konnektivitäts- und Automatisierungsplattform für Unternehmen, mit der Anwendungen, Geschäftsprozesse, APIs und Daten schnell modernisiert werden können. Entwickler und Cloud-Architekten können SaaS- und On-Premise-Anwendungen sechsmal schneller mit einer visuellen Entwicklungserfahrung, vordefinierten Integrationen und eingebetteten Best Practices verbinden. Mit Oracle Integration erhalten Sie nativen Zugriff auf Ereignisse in Oracle Cloud ERP, HCM und CX. Verbinden Sie App-spezifische Analysesilos, um die Prozesse von der Anforderung bis zum Beleg, von der Personalsuche bis zur Zahlung, vom Lead bis zur Rechnung und andere wichtige Prozesse zu vereinfachen. Geben Sie Ihren IT- und Führungskräften End-to-End-Transparenz.

  • Objektspeicher

    Mit Object Storage erhalten Sie schnellen Zugriff auf große Mengen an strukturierten und unstrukturierten Daten eines beliebigen Inhaltstyps, darunter Datenbankbackups, Analysedaten und umfangreiche Inhalte, wie Bilder und Videos. Sie können Daten sicher und geschützt speichern und dann direkt aus dem Internet oder aus der Cloud-Plattform abrufen. Sie können den Speicher nahtlos skalieren, ohne dass die Performance oder Servicezuverlässigkeit beeinträchtigt wird. Verwenden Sie Standardspeicher für "Hotspeicher", auf den Sie brauchen, um schnell, sofort und häufig zuzugreifen. Verwenden Sie Archivspeicher für "Cold Storage", den Sie über lange Zeiträume beibehalten möchten und auf den Sie nur selten zugreifen.

  • OCI-Vision

    OCI Vision ist ein KI-Service für die skalierbare, auf Deep Learning basierende Bildanalyse. Mit vorgefertigten Modellen, die out-of-the-box verfügbar sind, können Entwickler ganz einfach Bilderkennung und Texterkennung in ihre Anwendungen ohne Machine Learning-(ML-)Kenntnisse integrieren. Für branchenspezifische Anwendungsfälle können Entwickler automatisch benutzerdefinierte Vision-Modelle mit ihren eigenen Daten trainieren. Mit diesen Modellen können Sie visuelle Anomalien in der Fertigung erkennen, Text aus Dokumenten extrahieren, um Geschäftsworkflows zu automatisieren, und Elemente in Bildern taggen, um Produkte oder Lieferungen zu zählen. Neben dem Zugriff auf vorab trainierte Modelle können Entwickler benutzerdefinierte Modelle ohne Data Science-Kenntnisse erstellen oder die Infrastruktur benutzerdefinierter Modelle verwalten.

  • Streaming

    Oracle Cloud Infrastructure Streaming Service bietet eine vollständig verwaltete, skalierbare und nachhaltige Lösung für die Aufnahme und Nutzung von großen Datenströmen in Echtzeit. Verwenden Sie Streaming für jeden Anwendungsfall, bei dem Daten kontinuierlich und sequenziell in einem Publish-Subscribe-Messagingmodell erzeugt und verarbeitet werden.

  • Ereignisse

    Oracle Cloud Infrastructure-Services geben Ereignisse aus. Dies sind strukturierte Nachrichten, die Änderungen an Ressourcen beschreiben. Ereignisse werden für Vorgänge zum Erstellen, Lesen, Aktualisieren oder Löschen (CRUD), Änderungen des Lebenszyklusstatus von Ressourcen und Systemereignisse ausgegeben, die sich auf Cloud-Ressourcen auswirken.

  • Funktionen

    Oracle Functions ist eine vollständig verwaltete, mehrmandantenfähige, extrem skalierbare und bedarfsgesteuerte Functions-as-a-Service-(FaaS-)Plattform. Es basiert auf der Open-Source-Engine Fn-Projekt. Mit Funktionen können Sie Ihren Code bereitstellen und ihn entweder direkt aufrufen oder als Reaktion auf Ereignisse auslösen. Oracle Functions verwendet Docker-Container, die in Oracle Cloud Infrastructure Registry gehostet werden.

  • Mandant

    Ein Mandant ist eine sichere und isolierte Partition, die Oracle in Oracle Cloud einrichtet, wenn Sie sich für Oracle Cloud Infrastructure registrieren. Sie können Ihre Ressourcen in Oracle Cloud in Ihrem Mandanten erstellen, organisieren und verwalten. Ein Mandant ist ein Synonym für eine Firma oder Organisation. In der Regel verfügt ein Unternehmen über einen einzelnen Mandanten und spiegelt seine Organisationsstruktur innerhalb dieses Mandanten wider. Ein einzelner Mandant ist in der Regel mit einem einzelnen Abonnement verknüpft, und ein einzelnes Abonnement hat in der Regel nur einen Mandanten.

  • Region

    Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der ein oder mehrere Data Center enthält, die als Availability-Domains bezeichnet werden. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie trennen (über Länder oder sogar Kontinente).

  • Compartment

    Compartments sind regionsübergreifende logische Partitionen innerhalb eines Oracle Cloud Infrastructure-Mandanten. Mit Compartments können Sie Ihre Ressourcen in Oracle Cloud organisieren, den Zugriff auf die Ressourcen kontrollieren und Nutzungs-Quotas festlegen. Um den Zugriff auf die Ressourcen in einem bestimmten Compartment zu kontrollieren, definieren Sie Policys, mit denen angegeben wird, wer auf die Ressourcen zugreifen kann und welche Aktionen sie ausführen können.

  • Virtuelles Cloud-Netzwerk (VCN) und Subnetze

    Ein VCN ist ein anpassbares, Software definiertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten. Wie bei Data Center-Netzwerken erhalten Sie mit VCNs eine vollständige Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere sich nicht überschneidende CIDR-Blöcke enthalten, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die sich auf eine Region oder eine Availability-Domain erstrecken. Jedes Subnetz besteht aus einem fortlaufenden Adressbereich, der sich nicht mit den anderen Subnetzen im VCN überschneidet. Sie können die Größe eines Subnetzes nach der Erstellung ändern. Ein Subnetz kann öffentlich oder privat sein.

  • Sicherheitsliste

    Für jedes Subnetz können Sie Sicherheitsregeln erstellen, die Quelle, Ziel und Typ des Traffics angeben, die in das Subnetz ein- und ausgehen dürfen.

Empfehlungen

Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt. Ihre Anforderungen können von der hier beschriebenen Architektur abweichen.
  • Wartung und High Availability

    Das Design verwendet nahezu nur PaaS-Services, die von der Cloud verwaltet werden. Sie müssen die Software nicht mit dieser Lösung installieren, patchen, aktualisieren oder upgraden. Dies gilt für: Object Storage, Events, Streaming, OCI Vision, Oracle Integration, Visual Builder und Functions.

    Die einzige Komponente, die Aufmerksamkeit anfordert, ist der in einer Compute-Instanz installierte Oracle Integration Cloud-Agent für den Zugriff auf das OpenSearch-Cluster in einem privaten Netzwerk. Befolgen Sie die Richtlinien in der OIC-Dokumentation, um den OIC-Agent einfach zu verwalten und hochverfügbar zu machen.

  • Skalierbarkeit und Größe

    Diese Referenzarchitektur verwendet den PaaS-Service und ist für die meisten Services sofort skalierbar. Beachten Sie, dass das Cluster OpenSearch nicht automatisch vertikal oder horizontal skaliert wird (nur manuell). Daher ist je nach Anwendungsfall eine richtige Skalierung der Lösung erforderlich.

Hinweise

Beachten Sie beim Deployment dieser Referenzarchitektur Folgendes.

  • Performance

    OCI Search Service mit OpenSearch verfügt über eine beispiellose Konfigurationsebene. Sie sind nicht an bestimmte Ausprägungen oder SKUs gebunden. Stattdessen können Sie Flex-Ausprägungen verwenden, mit denen Sie die genaue Anzahl von Compute-Cores und die Größe von Arbeitsspeicher und Speicher je nach Ihren genauen Anforderungen konfigurieren können.

    OCI Search Service mit OpenSearch verwaltet die Arbeit beim Einrichten Ihres Clusters, einschließlich Provisioning der Infrastruktur. Nach der Ausführung des Clusters verarbeitet der OCI Search-Service mit OpenSearch allgemeine administrative Aufgaben, wie das Ausführen von Backups, das Überwachen von Instanzen und das Patchen von Software. OCI Search Service mit OpenSearch lässt sich in OCI-Metriken integrieren, um Metriken zu erstellen, die Informationen zum Status der Cluster bereitstellen. OCI Search Service mit OpenSearch bietet auch die Möglichkeit, die Clusterkonfiguration und die Gesamtdatengröße ohne Serviceunterbrechung zu ändern.

  • Sicherheit

    Die Dokumente werden im privaten Object Storage gespeichert. Ein temporärer Link mit einer kurzen Lebensdauer wird erstellt, wenn ein Benutzer auf das Dokument klickt.

    Die Implementierung gibt für alle Benutzer dasselbe Ergebnis zurück und wird im Workshop LiveLabs, der im Abschnitt "Weitere Informationen" verknüpft ist, ausführlich beschrieben. Auf Dokumentebene ist keine Sicherheit implementiert. Sie können sie basierend auf der OpenSearch-Sicherheit und/oder auf dem Label implementieren, das mit Dokumenten und Benutzern verknüpft ist.

  • Kostenfaktor

    Diese Referenzarchitektur verwendet Object Storage und OpenSearch, bei denen es sich um kostengünstige Produkte handelt. Es wird auch eine Standardversion von OIC verwendet. OIC wird sehr effizient bei der Indexierung verwendet, verwendet nur die Referenz auf Dateien und nicht die Dateien selbst.

Bestätigungen

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