Indexación de datos de orígenes de datos externos mediante Azure Data Factory

Completado

Agregar datos externos que no residen en Azure es una necesidad común en la solución de búsqueda de una organización. La Búsqueda de Azure AI es flexible, ya que permite muchas maneras de crear e insertar datos en índices.

Inserción de datos en un índice de búsqueda mediante Azure Data Factory (ADF)

Un primer enfoque es una opción de código cero para insertar datos en un índice mediante ADF. ADF incluye conexiones a casi 100 almacenes de datos diferentes. Con conectores como HTTP y REST que le permiten conectar un número ilimitado de almacenes de datos. Estos almacenes de datos se usan como origen o destino (denominados receptores en la actividad de copia) en canalizaciones.

El conector de índice de Búsqueda de Azure AI se puede usar como receptor en una actividad de copia.

Creación de una canalización de ADF para insertar datos en un índice de búsqueda

Los pasos que debe seguir para usar una canalización ADF para insertar datos en un índice de búsqueda son:

  1. Crear un índice de Búsqueda de Azure AI con todos los campos en los que desea almacenar datos.
  2. Crear una canalización con un paso de copia de datos.
  3. Crear una conexión de origen de datos a la ubicación donde residen los datos.
  4. Crear un receptor para conectarse al índice de búsqueda.
  5. Asignar los campos de los datos de origen al índice de búsqueda.
  6. Ejecutar la canalización para insertar los datos en el índice.

Por ejemplo, imagine que tiene datos de cliente en formato JSON hospedados externamente. Quiere copiar estos clientes en un índice de búsqueda. El JSON tiene este formato:

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

Crear un índice de búsqueda

Cree un servicio de Búsqueda de Azure AI y un índice en el que almacenar esta información. Si ha completado el módulo Creación de una solución de Búsqueda de Azure AI, ha visto cómo hacerlo. Siga los pasos para crear el servicio de búsqueda, pero deténgase en el punto de importación de datos, ya que la inserción de datos en un índice no necesita crear un indexador o un conjunto de aptitudes.

Cree un índice y agregue estos campos y propiedades:

A screenshot of the search index field definitions.

En este momento debe crear primero el índice, ya que ADF no puede crear índices.

Creación de una canalización mediante la herramienta Copiar datos de ADF

Abra Azure Data Factory Studio y seleccione la suscripción de Azure y el nombre de la factoría de datos.

A screenshot of Azure Data Factory and selecting ingest.

  1. Seleccione Ingerir.

  2. Seleccione Next (Siguiente).

    Nota

    Puede optar por programar la canalización si los datos cambian y necesita mantener actualizado el índice. En este ejemplo, importará los datos una vez.

Creación de un servicio vinculado de origen

  1. En Tipo de origen seleccione HTTP.

  2. Junto a Conexión seleccione + Nueva conexión.

    A screenshot showing creating an HTTP linked service.

  3. En el panel Nueva conexión, en Nombre, escriba dataLocation.

  4. En la dirección URL base escriba dónde reside el archivo JSON; en este ejemplo, escriba https://raw.githubusercontent.com/Azure-Samples/azure-sql-db-import-data/main/json/user1.json.

  5. En Tipo de autenticación seleccione Anónimo.

  6. Seleccione Crear.

  7. Seleccione Next (Siguiente).

    A screenshot of the configuration page of the lined service.

  8. En Formato de archivo seleccione JSON.

  9. Seleccione Next (Siguiente).

Creación de un servicio vinculado de origen

  1. En Tipo de destino, seleccione Azure Search. A continuación, seleccione + Nueva conexión.

    A screenshot showing creating a linked service to AI Search.

  2. En el panel Nueva conexión, en Nombre, escriba search_index.

  3. En Suscripción de Azure seleccione su suscripción de Azure.

  4. En Nombre del servicio seleccione el servicio de Búsqueda de Azure AI.

  5. Seleccione Crear.

  6. En el panel Almacén de datos de destino, en Destino, seleccione el índice de búsqueda que ha creado.

Asignación de campos de origen a campos de destino

  1. Seleccione Next (Siguiente).

    A screenshot of the schema mapping pane.

  2. Si ha creado un índice con nombres de campo que coincidan con los atributos JSON, ADF asignará automáticamente el JSON al campo en el índice de búsqueda.

  3. En el ejemplo anterior, tres campos del documento JSON necesitan asignarse a campos del índice.

  4. Asigne los campos y, a continuación, seleccione Siguiente.

  5. En el panel Configuración, en Nombre de tarea escriba jsonToSearchIndex.

  6. Seleccione Next (Siguiente).

Ejecución de la canalización para insertar los datos en el índice

  1. En el panel Resumen seleccione Siguiente.

    A screenshot showing the pipeline deployment complete.

  2. Una vez validada e implementada la canalización, seleccione Finalizar.

La canalización se ha implementado y ejecutado. El documento JSON se habrá agregado al índice de búsqueda. Puede usar el Portal de Azure y ejecutar una búsqueda en el explorador de búsqueda. Debe poder ver los datos JSON importados.

A screenshot of the JSON data in the search index.

Siguiendo estos pasos, ha visto cómo puede insertar datos en un índice. La canalización que ha creado de forma predeterminada combina las actualizaciones en el índice. Si ha modificado los datos JSON y vuelve a ejecutar la canalización, el índice de búsqueda se actualizará. Puede cambiar el comportamiento de escritura para cargar sólo si desea que los datos se reemplacen cada vez que ejecute la canalización.

Limitaciones del uso de Búsqueda de Azure AI integrado como servicio vinculado

En este momento, el servicio vinculado de Búsqueda de Azure AI como receptor solo admite estos campos:

Tipo de datos de Azure AI Search
Cadena
Int32
Int64
Double
Boolean
DataTimeOffset

Esto significa que actualmente no se admiten ComplexTypes ni matrices. Si examina el documento JSON anterior, esto significa que no es posible asignar todos los números de teléfono del cliente. Solo se ha asignado el primer número de teléfono.