Wissensspeicher in Azure Cognitive Search

Ein Wissensspeicher ist eine von einer Cognitive Search-KI-Anreicherungspipeline erstellte Datensenke und speichert angereicherte Inhalte in Tabellen und Blobcontainern in Azure Storage für unabhängige Analysen oder Downstreamverarbeitung in Nicht-Suchszenarien wie Knowledge Mining.

Wenn Sie in der Vergangenheit kognitive Skills verwendet haben, wissen Sie bereits, dass Skillsets ein Dokument durch eine Sequenz von Anreicherungen verschieben, die atomische Transformationen aufrufen, z. B. das Erkennen von Entitäten oder das Übersetzen von Text. Bei der Ausgabe kann es sich um einen Suchindex oder um Projektionen in einem Wissensspeicher handeln. Die beiden Ausgaben in Form des Suchindexes und Wissensspeichers schließen sich gegenseitig aus und werden durch dieselbe Pipeline erzeugt. Sie werden von denselben Eingaben abgeleitet, ergeben jedoch eine Ausgabe, die strukturiert, gespeichert und in unterschiedlichen Anwendungen verwendet wird.

Pipeline mit Skillset

Physisch betrachtet handelt es sich bei einem Wissensspeicher um Azure Storage (Azure Table Storage, Azure Blob Storage oder beides). Jedes Tool und jeder Prozess, das bzw. der eine Verbindung mit Azure Storage herstellen kann, kann die Inhalte eines Wissensspeichers nutzen.

In der Anzeige von Speicherbrowser sieht ein Wissensspeicher wie jede andere Sammlung von Tabellen, Objekten oder Dateien aus. Das folgende Beispiel zeigt einen Wissensspeicher, der aus drei Tabellen mit Feldern besteht, die entweder aus der Datenquelle übertragen oder durch Anreicherungen erstellt werden (siehe „Standpunktbewertung“ und „translated_text“).

Skills lesen aus der und schreiben in die Anreicherungsstruktur

Vorteile von Wissensspeichern

Die Hauptvorteile eines Wissensspeichers sind der flexible Zugriff auf Inhalte und die Fähigkeit, Daten zu strukturieren.

Im Gegensatz zu einem Suchindex, auf den nur über Abfragen in Cognitive Search zugegriffen werden kann, kann von jedem Tool, jeder App oder jedem Prozess, der Verbindungen zu Azure Storage unterstützt, auf einen Wissensspeicher zugegriffen werden. Diese Flexibilität eröffnet neue Szenarien für die Nutzung der analysierten und angereicherten Inhalte, die von einer Anreicherungspipeline erzeugt werden.

Das gleiche Skillset, das Daten anreichert, kann auch zum Strukturieren von Daten verwendet werden. Einige Tools wie Power BI funktionieren besser mit Tabellen, während eine Data Science-Workload möglicherweise eine komplexe Datenstruktur in einem Blobformat erfordert. Das Hinzufügen einer Shaper-Skill zu einem Skillset gibt Ihnen die Kontrolle über die Strukturierung Ihrer Daten. Sie können diese Strukturierungen dann an Projektionen übergeben, bei denen es sich entweder um Tabellen oder Blobs handelt, um physische Datenstrukturen zu erstellen, die der beabsichtigten Verwendung der Daten entsprechen.

Im folgenden Video werden diese und weitere Vorteile erläutert.

Definition des Wissensspeichers

Ein Wissensspeicher wird in einer Skillsetdefinition definiert und besteht aus zwei Komponenten:

  • einer Verbindungszeichenfolge zu Azure Storage

  • Projektionen, die bestimmen, ob der Wissensspeicher aus Tabellen, Objekten oder Dateien besteht.

Das Projektionselement ist ein Array. Sie können mehrere Sätze von Tabellenobjekt-Datei-Kombinationen innerhalb eines Wissensspeichers erstellen.

"knowledgeStore": {
   "storageConnectionString":"<YOUR-AZURE-STORAGE-ACCOUNT-CONNECTION-STRING>",
   "projections":[
      {
         "tables":[ ],
         "objects":[ ],
         "files":[ ]
      }
   }

Der Typ der Projektion, den Sie in dieser Struktur angeben, bestimmt den vom Wissensspeicher verwendeten Speichertyp.

  • tables-Objekte projizieren angereicherte Inhalte in Table Storage. Definieren Sie eine Tabellenprojektion, wenn Sie tabellarische Berichtsstrukturen für Eingaben in Analysetools benötigen oder als Datenrahmen in andere Datenspeicher exportieren müssen. Sie können mehrere tables-Objekte in derselben Projektionsgruppe angeben, um eine Teilmenge oder einen Querschnitt angereicherter Dokumente zu erhalten. Tabellenbeziehungen innerhalb derselben Projektionsgruppe bleiben erhalten, sodass Sie mit allen arbeiten können.

    Projizierter Inhalt wird nicht aggregiert oder normalisiert. Der folgende Screenshot zeigt eine nach Schlüsselbegriffen sortierte Tabelle mit dem übergeordneten Dokument, das in der angrenzenden Spalte angegeben ist. Im Gegensatz zur Datenerfassung während der Indizierung gibt es keine linguistische Analyse oder Aggregation von Inhalten. Pluralformen und Unterschiede bei der Groß-/Kleinschreibung werden als eindeutige Instanzen betrachtet.

    Screenshot: Schlüsselbegriffe und Dokumente in einer Tabelle

  • objects-Objekte projizieren JSON-Dokumente in Blob Storage. Die physische Darstellung eines object ist eine hierarchische JSON-Struktur, die ein angereichertes Dokument darstellt.

  • files-Objekte projizieren Bilddateien in Blob Storage. Bei einer file handelt es sich um ein aus einem Dokument extrahiertes Bild, das intakt in Blob Storage übertragen wurde. Obwohl die Datei den Namen "files" hat, wird sie im Blob-Storage und nicht im Dateispeicher angezeigt.

Erstellen von Wissensspeichern

Verwenden Sie das Portal oder eine API, um einen Wissensspeicher zu erstellen. Sie benötigen Azure Storage, ein Skillset und einen Indexer. Da Indexer einen Suchindex benötigen, müssen Sie auch eine Indexdefinition bereitstellen.

Nutzen Sie den Portalansatz, um die schnellste Route zu einem fertigen Wissensspeicher zu erstellen. Oder wählen Sie die REST-API aus, um ein besseres Verständnis darüber zu erhalten, wie Objekte definiert und miteinander verbunden sind.

Erstellen Sie Ihren ersten Wissensspeicher in vier Schritten mit dem Datenimport-Assistenten.

  1. Definieren Ihres Datenschemas

  2. Definieren Sie Ihr Skillset, und geben Sie einen Wissensspeicher an.

  3. Erstellen Sie ein Indexschema. Der Assistent benötigt das Schema und kann eines für Sie ableiten.

  4. Führen Sie den Assistenten aus. Die Extraktion, Anreicherung und Speicherung erfolgen in diesem letzten Schritt.

Der Assistent automatisiert Aufgaben, die Sie andernfalls manuell bearbeiten müssten. Vor allem Strukturierung sowie Projektionen (Definitionen physischer Datenstrukturen in Azure Storage) werden für Sie erstellt.

Herstellen einer Verbindung mit Apps

Nachdem die Anreicherungen in Storage gespeichert sind, können Sie beliebige Tools oder Technologien mit einer Verbindung mit Azure Blob Storage oder Azure Table Storage verwenden, um die Inhalte zu untersuchen, zu analysieren oder zu nutzen. Die folgende Liste gibt einen ersten Einblick:

  • Mit dem Speicherbrowser können Sie die Struktur und den Inhalt angereicherter Dokumente anzeigen. Nutzen Sie dies als Ihr Basistool zum Anzeigen des Inhalts von Wissensspeichern.

  • Nutzen Sie Power BI für die Berichterstellung und Analyse.

  • Verwenden Sie Azure Data Factory für die weiterführende Bearbeitung.

Inhaltslebenszyklus

Bei jeder Ausführung des Indexers und des Skillsets wird der Wissensspeicher aktualisiert, wenn sich das Skillset oder die zugrunde liegenden Quelldaten geändert haben. Alle vom Indexer übernommenen Änderungen werden über den Anreicherungsprozess an die Projektionen im Wissensspeicher weitergegeben, um sicherzustellen, dass Ihre projizierten Daten eine aktuelle Darstellung des Inhalts in der ursprünglichen Datenquelle sind.

Hinweis

Während Sie die Daten in den Projektionen bearbeiten können, werden alle Änderungen beim nächsten Pipelineaufruf überschrieben, vorausgesetzt, das Dokument in den Quelldaten wird aktualisiert.

Änderungen an Quelldaten

Für Datenquellen, die die Änderungsnachverfolgung unterstützen, verarbeitet ein Indexer neue und geänderte Dokumente und umgeht vorhandene Dokumente, die bereits verarbeitet wurden. Zeitstempelinformationen variieren je nach Datenquelle, aber in einem Blobcontainer untersucht der Indexer das lastmodified-Datum, um zu bestimmen, welche Blobs erfasst werden müssen.

Änderungen an einem Skillset

Wenn Sie Änderungen an einem Skillset vornehmen, sollten Sie das Zwischenspeichern angereicherter Dokumente aktivieren, um vorhandene Anreicherungen nach Möglichkeit wiederzuverwenden.

Ohne inkrementelles Zwischenspeichern verarbeitet der Indexer Dokumente immer in der Reihenfolge des hohen Grenzwerts, ohne rückwärts zu gehen. Blobs verarbeitet der Indexer nach lastModified sortiert, unabhängig von Änderungen an den Indexereinstellungen oder am Skillset. Wenn Sie ein Skillset ändern, werden zuvor verarbeitete Dokumente nicht aktualisiert, um das neue Skillset widerzuspiegeln. Dokumente, die nach der Änderung des Skillsets verarbeitet werden, verwenden das neue Skillset, was dazu führt, dass Indexdokumente eine Mischung aus alten und neuen Skillsets sind.

Beim inkrementellen Zwischenspeichern und nach einer Aktualisierung des Skillsets verwendet der Indexer alle Anreicherungen, die vom Skillset nicht betroffen sind. Upstreamanreicherungen werden aus dem Cache abgerufen, ebenso wie alle Anreicherungen, die unabhängig und von der geänderten Qualifikation isoliert sind.

Löschungen

Ein Indexer kann zwar Strukturen und Inhalte in Azure Storage erstellen und aktualisieren, aber nicht löschen. Projektionen sind auch dann weiterhin vorhanden, wenn Indexer oder Skillset gelöscht wird. Als Besitzer des Speicherkontos sollten Sie eine Projektion löschen, wenn sie nicht mehr benötigt wird.

Nächste Schritte

Ein Wissensspeicher ermöglicht die Aufbewahrung angereicherter Dokumente, was bei der Entwicklung eines Skillsets hilfreich ist, sowie die Erstellung neuer Strukturen und Inhalte zur Nutzung durch beliebige Clientanwendungen, die auf ein Azure Storage-Konto zugreifen können.

Am einfachsten lassen sich angereicherte Dokumente über das Portal erstellen. Sie können aber auch Postman und die REST-API verwenden. Dies empfiehlt sich, wenn Sie nachvollziehen möchten, wie Objekte programmseitig erstellt und referenziert werden.