Compartilhar via

使用 Azure 数据工厂 或 Synapse Analytics 将数据复制到Azure AI 搜索索引

适用于: Azure 数据工厂 Azure Synapse Analytics

本文概述了如何使用 Azure 数据工厂 或 Synapse Analytics 管道中的复制活动将数据复制到Azure AI 搜索索引中。 基于提供复制活动一般概述的复制活动概述一文。

支持的功能

以下功能支持此Azure AI 搜索连接器:

支持的功能 IR 托管私有终结点
复制活动 (-/接收器) (1) (2)

(1) Azure集成运行时 (2) 自承载集成运行时

可以将数据从任何支持的源数据存储复制到搜索索引中。 要获取复制活动支持的源/汇的数据存储列表,请参阅支持的数据存储表。

入门

若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:

使用 UI 创建用于Azure搜索的链接服务

使用以下步骤在 Azure 门户用户界面中创建到 Azure 认知搜索的关联服务。

  1. 浏览到Azure 数据工厂或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:

  2. 搜索并选择Azure 搜索连接器(Azure Search)。

    选择Azure搜索连接器.

  3. 配置服务详细信息、测试连接并创建新的链接服务。

    将链接服务配置为 Azure Search.

连接器配置详细信息

以下部分提供有关用于定义特定于Azure AI 搜索连接器的数据工厂实体的属性的详细信息。

连接的服务属性

Azure AI 搜索链接服务支持以下属性:

属性 描述 必需
类型 type 属性必须设置为:AzureSearch
url 搜索服务的 URL。
关键值 搜索服务的管理密钥。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure 密钥保管库 中的机密。
connectVia 连接到数据存储时要使用的Integration Runtime。 可以使用 Azure Integration Runtime 或自托管 Integration Runtime(如果数据存储位于私有网络中)。 如果未指定,则使用默认Azure Integration Runtime。

重要

当从云数据存储复制数据到搜索索引时,在 Azure AI 搜索 链接服务中,你需要在 connectVia 中引用一个具有显式区域的 Azure Integration Runtime。 将区域设置为搜索服务所在的区域。 从 Azure Integration Runtime 了解详细信息。

示例:

{
    "name": "AzureSearchLinkedService",
    "properties": {
        "type": "AzureSearch",
        "typeProperties": {
            "url": "https://<service>.search.chinacloudapi.cn",
            "key": {
                "type": "SecureString",
                "value": "<AdminKey>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

数据集属性

有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集一文。 本部分提供Azure AI 搜索数据集支持的属性列表。

若要将数据复制到Azure AI 搜索,支持以下属性:

属性 描述 必需
类型 数据集的 type 属性必须设置为:AzureSearchIndex
indexName (索引名称) 搜索索引的名称。 此服务不创建索引。 索引必须存在于Azure AI 搜索中。

示例:

{
    "name": "AzureSearchIndexDataset",
    "properties": {
        "type": "AzureSearchIndex",
        "typeProperties" : {
            "indexName": "products"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Azure AI Search linked service name>",
            "type": "LinkedServiceReference"
        }
   }
}

复制活动 属性

有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供Azure AI 搜索源支持的属性列表。

Azure AI 搜索 作为目标接收器

若要将数据复制到 Azure AI 搜索,请将复制活动中的源类型设置为 AzureSearchIndexSink。 复制活动中的 目标连接 部分支持以下属性:

属性 描述 必需
类型 复制活动源的 type 属性必须设置为:AzureSearchIndexSink
writeBehavior 指定索引中已存在文档时要合并还是替换该文档。 请参阅 WriteBehavior 属性

允许的值为:Merge(默认)和Upload
writeBatchSize 缓冲区大小达到 writeBatchSize 时,会将数据上传到搜索索引。 有关详细信息,请参阅 WriteBatchSize 属性

允许的值为:整数 1 到 1,000;默认值为 1000。
最大并发连接数 活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接时指定一个值。

WriteBehavior 属性

AzureSearchSink 在写入数据时执行 upsert 操作。 换句话说,在编写文档时,如果文档键已存在于搜索索引中,Azure AI 搜索更新现有文档,而不是引发冲突异常。

AzureSearchSink(通过使用 AzureSearch SDK)提供以下两种 upsert 行为:

  • 合并:合并新文档和现有文档中的所有列。 对于新文档中具有 null 值的列,会在现有文档列中保留该值。
  • 上传:新文档替换现有文档。 对于未在新文档中指定的列,无论现有文档中是否存在非 null 值,均将该值设置为 null。

默认行为是合并

WriteBatchSize 属性

Azure AI 搜索 服务支持以批处理的方式编写文档。 每批次可包含 1 到 1,000 个操作。 每个操作处理一个文档以执行上传/合并操作。

示例:

"activities":[
    {
        "name": "CopyToAzureSearch",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure AI Search output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureSearchIndexSink",
                "writeBehavior": "Merge"
            }
        }
    }
]

数据类型支持

下表指定是否支持Azure AI 搜索数据类型。

Azure AI 搜索数据类型 支持在 Azure AI 搜索 接收器中
字符串 Y
Int32 Y
Int64 Y
双精度 Y
布尔 Y
数据时间偏移 Y
字符串数组 N
GeographyPoint N

当前不支持其他数据类型,例如 ComplexType。 有关支持的 Azure AI 搜索 数据类型的完整列表,请参阅 支持的数据类型(Azure AI 搜索)

为了获取复制活动支持的数据源和汇集列表,请参阅支持的数据存储