Indizieren von Daten aus externen Datenquellen mithilfe von Azure Data Factory

Abgeschlossen

Externe Daten, die sich nicht in Azure befinden, müssen der Suchlösung einer Organisation oft hinzugefügt werden. Azure KI-Suche ist flexibel, da diese Lösung viele Möglichkeiten bietet, Daten zu erstellen und an Indizes zu pushen.

Pushen von Daten an einen Suchindex mithilfe von Azure Data Factory (ADF)

Ein erster Ansatz ist eine Zero-Code-Option zum Pushen von Daten an einen Index mithilfe von ADF. ADF verfügt über Verbindungen mit fast 100 verschiedenen Datenspeichern mit Connectors wie HTTP und REST, mit denen Sie eine unbegrenzte Anzahl von Datenspeichern verbinden können. Diese Datenspeicher werden in Pipelines als Quelle oder Ziel verwendet und in der Copy-Aktivität als Senken bezeichnet.

Der Indexconnector der Azure KI-Suche kann in einer Kopieraktivität als Senke verwendet werden.

Erstellen einer ADF-Pipeline zum Pushen von Daten an einen Suchindex

Folgende Schritte sollten Sie zum Verwenden einer ADF-Pipeline zum Pushen von Daten an einen Suchindex durchführen:

  1. Erstellen Sie einen Index der Azure KI-Suche mit allen Feldern, in denen Sie Daten speichern möchten.
  2. Erstellen Sie eine Pipeline mit dem Schritt „Daten kopieren“.
  3. Erstellen Sie eine Datenquellenverbindung mit dem Speicherort Ihrer Daten.
  4. Erstellen Sie eine Senke, um eine Verbindung mit Ihrem Suchindex herzustellen.
  5. Ordnen Sie die Felder aus Ihren Quelldaten Ihrem Suchindex zu.
  6. Führen Sie die Pipeline aus, um die Daten an den Index zu pushen.

Stellen Sie sich beispielsweise vor, Sie verfügen über Kundendaten im JSON-Format, die extern gehostet werden. Sie möchten diese Kunden in einen Suchindex kopieren. Der JSON-Code wird in diesem Format dargestellt:

{
  "_id": "5fed1b38309495de1bc4f653",
  "firstName": "Sims",
  "lastName": "Arnold",
  "isAlive": false,
  "age": 35,
  "address": {
    "streetAddress": "Sumner Place",
    "city": "Canoochee",
    "state": "Palau",
    "postalCode": 1558
  },
  "phoneNumbers": [
    {
      "type": "home",
      "number": "+1 (830) 465-2965"
    },
    {
      "type": "home",
      "number": "+1 (889) 439-3632"
    }
  ]
}

Erstellen eines Suchindexes

Erstellen Sie einen Azure KI-Suche-Dienst und einen Index, in dem diese Informationen gespeichert werden sollen. Wenn Sie das Modul Erstellen einer Azure KI-Suche-Lösung abgeschlossen haben, sind Sie mit der entsprechenden Vorgehensweise vertraut. Führen Sie die Schritte aus, bis Daten importiert werden, um den Suchdienst zu erstellen. Um Daten an einen Index zu pushen, müssen Sie keinen Indexer oder ein Skillset erstellen.

Erstellen Sie einen Index, und fügen Sie diese Felder und Eigenschaften hinzu:

A screenshot of the search index field definitions.

Derzeit müssen Sie zuerst den Index erstellen, da ADF keine Indizes erstellen kann.

Erstellen einer Pipeline mithilfe des ADF-Tools „Daten kopieren“

Öffnen Sie das Azure Data Factory-Studio, und wählen Sie Ihr Azure-Abonnement und Ihren Data Factory-Namen aus.

A screenshot of Azure Data Factory and selecting ingest.

  1. Wählen Sie Erfassen aus.

  2. Wählen Sie Weiter aus.

    Hinweis

    Sie können die Pipeline planen, wenn sich Ihre Daten ändern und Sie Ihren Index auf dem neuesten Stand halten müssen. Für dieses Beispiel importieren Sie die Daten einmal.

Erstellen des verknüpften Quelldiensts

  1. Wählen Sie unter QuelltypHTTP aus.

  2. Wählen Sie neben Verbindung+ Neue Verbindung aus.

    A screenshot showing creating an HTTP linked service.

  3. Geben Sie im Bereich Neue Verbindung bei Name dataLocation ein.

  4. Geben Sie für die Basis-URL ein, wo sich Ihre JSON-Datei befindet, in diesem Beispiel https://raw.githubusercontent.com/Azure-Samples/azure-sql-db-import-data/main/json/user1.json.

  5. Wählen Sie unter AuthentifizierungstypAnonym aus.

  6. Klicken Sie auf Erstellen.

  7. Wählen Sie Weiter aus.

    A screenshot of the configuration page of the lined service.

  8. Wählen Sie unter DateiformatJSON aus.

  9. Wählen Sie Weiter aus.

Erstellen des verknüpften Zieldiensts

  1. Wählen Sie bei Zieltyp Azure Search aus. Wählen Sie + Neue Verbindung aus.

    A screenshot showing creating a linked service to AI Search.

  2. Geben Sie im Bereich Neue Verbindung bei Name search_index ein.

  3. Wählen Sie unter Azure-Abonnement Ihr Azure-Abonnement aus.

  4. Wählen Sie unter Dienstname Ihren Azure KI-Suche-Dienst aus.

  5. Klicken Sie auf Erstellen.

  6. Wählen Sie im Bereich Zieldatenspeicher unter Ziel den von Ihnen erstellten Suchindex aus.

Zuordnen von Quellfeldern zu Zielfeldern

  1. Wählen Sie Weiter aus.

    A screenshot of the schema mapping pane.

  2. Wenn Sie einen Index mit Feldnamen erstellt haben, die den JSON-Attributen entsprechen, wird das JSON-Attribut durch ADF automatisch dem Feld in Ihrem Suchindex zugeordnet.

  3. Im obigen Beispiel müssen drei Felder im JSON-Dokument Feldern im Index zugeordnet werden.

  4. Ordnen Sie Ihre Felder zu, und wählen Sie dann Weiter aus.

  5. Geben Sie im Bereich Einstellungen unter AufgabennamenjsonToSearchIndex ein.

  6. Wählen Sie Weiter aus.

Ausführen der Pipeline zum Pushen der Daten an den Index

  1. Wählen Sie im Bereich ZusammenfassungWeiter aus.

    A screenshot showing the pipeline deployment complete.

  2. Wählen Sie Fertigstellen aus, wenn die Pipeline überprüft und bereitgestellt wurde.

Die Pipeline wurde bereitgestellt und ausgeführt. Das JSON-Dokument wurde Ihrem Suchindex hinzugefügt. Sie können das Azure-Portal verwenden und eine Suche im Such-Explorer ausführen. Die importierten JSON-Daten sollten angezeigt werden.

A screenshot of the JSON data in the search index.

Anhand dieser Schritte haben Sie erfahren, wie Sie Daten an einen Index pushen können. Die von Ihnen erstellte Pipeline merget Aktualisierungen standardmäßig in den Index. Wenn Sie die JSON-Daten geändert und die Pipeline noch einmal ausgeführt haben, wurde der Suchindex aktualisiert. Sie können das Schreibverhalten so ändern, dass Daten nur dann hochgeladen werden, wenn Sie sie bei jedem Ausführen der Pipeline ersetzen möchten.

Einschränkungen bei der Verwendung der integrierten Azure KI-Suche als verknüpfter Dienst

Derzeit unterstützt der verknüpfte Azure KI-Suche-Dienst als Senke nur folgende Felder:

Azure KI Search-Datentyp
String
Int32
Int64
Double
Boolean
DataTimeOffset

ComplexTypes und Arrays werden derzeit nicht unterstützt. Im Hinblick auf das JSON-Dokument oben bedeutet dies, dass nicht alle Telefonnummern für den Kunden zugeordnet werden können. Nur die erste Telefonnummer wurde zugeordnet.