Indexer des données de sources de données externes avec Azure Data Factory

Effectué

L’ajout de données externes qui ne résident pas dans Azure est un besoin courant dans la solution de recherche d’une organisation. Le service Recherche Azure AI est flexible parce qu’il propose de nombreux moyens de créer et de pousser des données dans des index.

Pousser des données dans un index de recherche avec Azure Data Factory (ADF)

Une première approche est une option zéro code pour pousser des données dans un index avec ADF. ADF est fourni avec des connexions à près de 100 magasins de données différents. Avec des connecteurs tels que HTTP et REST qui vous permettent de connecter un nombre illimité de magasins de données. Ces magasins de données sont utilisés comme source ou cible (appelées récepteurs dans l’activité de copie) dans les pipelines.

Le connecteur d’index Recherche Azure AI peut être utilisé comme récepteur dans une activité de copie.

Créer un pipeline ADF pour pousser des données dans un index de recherche

Les étapes à suivre pour utiliser un pipeline ADF visant à pousser des données dans un index de recherche sont les suivantes :

  1. Créez un index Recherche Azure AI avec tous les champs dans lesquels vous souhaitez stocker des données.
  2. Créer un pipeline avec une étape de copie de données.
  3. Créer une connexion de source de données là où résident vos données.
  4. Créer un récepteur à connecter à votre index de recherche.
  5. Associer les champs de vos données sources à votre index de recherche.
  6. Exécuter le pipeline pour pousser les données dans l’index.

Par exemple, imaginez que vous avez des données client au format JSON hébergées en externe. Vous souhaitez copier ces clients dans un index de recherche. Le document JSON est au format suivant :

{
  "_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"
    }
  ]
}

Créer un index de recherche

Créez un service Recherche Azure AI et un index où stocker ces informations. Si vous avez suivi le module Créer une solution Recherche Azure AI, vous avez vu comment procéder. Suivez les étapes pour créer le service de recherche, mais arrêtez au stade de l’importation des données. Puisque la poussée de données dans un index n’a pas besoin de créer un indexeur ou un ensemble de compétences.

Créez un index et ajoutez ces champs et propriétés :

A screenshot of the search index field definitions.

Pour le moment, vous devez d’abord créer l’index parce qu’ADF ne peut pas en créer.

Créer un pipeline avec l’outil Copier des données ADF

Ouvrez Azure Data Factory Studio et sélectionnez votre abonnement Azure et le nom de votre fabrique de données.

A screenshot of Azure Data Factory and selecting ingest.

  1. Sélectionnez Ingérer.

  2. Sélectionnez Suivant.

    Notes

    Vous pouvez choisir de planifier le pipeline si vos données changent et que vous devez garder votre index à jour. Pour cet exemple, vous allez importer les données une seule fois.

Créer le service lié source

  1. Dans Type de source, sélectionnez HTTP.

  2. À côté de Connexion, sélectionnez + Nouvelle connexion.

    A screenshot showing creating an HTTP linked service.

  3. Dans le volet Nouvelle connexion, dans Nom, entrez dataLocation.

  4. Dans l’URL de base, entrez l’URL où réside votre fichier JSON. Dans cet exemple, entrez https://raw.githubusercontent.com/Azure-Samples/azure-sql-db-import-data/main/json/user1.json.

  5. Dans Type d’authentification, sélectionnez Anonyme.

  6. Sélectionnez Create (Créer).

  7. Cliquez sur Suivant.

    A screenshot of the configuration page of the lined service.

  8. Dans Format de fichier, sélectionnez JSON.

  9. Cliquez sur Suivant.

Créer le service lié cible

  1. Dans Type de destination, sélectionnez Recherche Azure. Sélectionnez ensuite + Nouvelle connexion.

    A screenshot showing creating a linked service to AI Search.

  2. Dans le volet Nouvelle connexion, dans Nom, entrez search_index.

  3. Dans Abonnement Azure, sélectionnez votre abonnement Azure.

  4. Dans Nom du service, sélectionnez votre service Recherche Azure AI.

  5. Sélectionnez Créer.

  6. Dans le volet Magasin de données de destination, dans Cible, sélectionnez l’index de recherche que vous avez créé.

Associer les champs sources aux champs cibles

  1. Cliquez sur Suivant.

    A screenshot of the schema mapping pane.

  2. Si vous avez créé un index avec des noms de champ qui correspondent aux attributs JSON, ADF associe automatiquement le JSON au champ de votre index de recherche.

  3. Dans l’exemple ci-dessus, trois champs du document JSON doivent être associés aux champs de l’index.

  4. Associez vos champs, puis sélectionnez Suivant.

  5. Dans le volet Paramètres, dans Nom de la tâche, entrez jsonToSearchIndex.

  6. Sélectionnez Suivant.

Exécuter le pipeline pour pousser les données dans l’index

  1. Dans le volet Résumé, sélectionnez Suivant.

    A screenshot showing the pipeline deployment complete.

  2. Une fois le pipeline validé et déployé, sélectionnez Terminer.

Le pipeline a été déployé et exécuté. Le document JSON a été ajouté à votre index de recherche. Vous pouvez utiliser le portail Azure et exécuter une recherche dans l’Explorateur de recherche. Vous devriez voir les données JSON importées.

A screenshot of the JSON data in the search index.

En suivant ces étapes, vous avez vu comment pousser des données dans un index. Le pipeline que vous avez créé par défaut fusionne les mises à jour dans l’index. Si vous avez modifié les données JSON et réexécuté le pipeline, l’index de recherche est mis à jour. Vous pouvez changer le comportement d’écriture à charger seulement si vous souhaitez que les données soient remplacées chaque fois que vous exécutez votre pipeline.

Limitations de l’utilisation du service Recherche Azure AI intégré comme service lié

Pour le moment, le service lié Recherche Azure AI en tant que récepteur prend uniquement en charge les champs suivants :

Type de données Recherche Azure AI
Chaîne
Int32
Int64
Double
Boolean
DataTimeOffset

Cela signifie que les complexTypes et les tableaux ne sont pas pris en charge actuellement. Si vous examinez le document JSON ci-dessus, cela signifie qu’il n’est pas possible d’associer tous les numéros de téléphone du client. Seul le premier numéro de téléphone a été associé.