使用 Azure Data Factory 或 Synapse Analytics 將資料複製到 Azure AI 搜尋服務索引

適用于: Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用于企業的單一分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告等所有專案。 瞭解如何 免費啟動新的試用版

本文概述如何使用 Azure Data Factory 或 Synapse Analytics 管線中的複製活動,將資料複製到 Azure AI 搜尋服務索引。 它會以 複製活動概觀 一文為基礎,提供複製活動的一般概觀。

支援的功能

下列功能支援此 Azure AI 搜尋連接器:

支援的功能 IR 受控私人端點
複製活動 (-/sink) ① ②

(1) Azure 整合執行時間 (2) 自我裝載整合執行時間

您可以將任何支援的來源資料存放區中的資料複製到搜尋索引中。 如需複製活動支援做為來源/接收的資料存放區清單,請參閱 支援的資料存放區 資料表。

開始使用

若要使用管線執行複製活動,您可以使用下列其中一個工具或 SDK:

使用 UI 建立連結服務至 Azure 搜尋服務

使用下列步驟,在 Azure 入口網站 UI 中建立 Azure 搜尋服務的連結服務。

  1. 流覽至 Azure Data Factory 或 Synapse 工作區中的 [管理] 索引標籤,然後選取 [連結服務],然後按一下 [新增]:

  2. 搜尋搜尋並選取 Azure 搜尋服務連接器。

    Select the Azure Search connector.

  3. 設定服務詳細資料、測試連線,並建立新的連結服務。

    Configure a linked service to Azure Search.

連線or 組態詳細資料

下列各節提供屬性的相關詳細資料,這些屬性是用來定義 Azure AI 搜尋連接器專屬的 Data Factory 實體。

連結的服務屬性

Azure AI 搜尋連結服務支援下列屬性:

屬性 描述 必要
type type 屬性必須設定為: AzureSearch Yes
URL 搜尋服務的 URL。 Yes
key 管理員搜尋服務的索引鍵。 將此欄位標示為 SecureString 以安全地儲存,或 參考儲存在 Azure 金鑰保存庫 中的秘密。 Yes
connectVia 用於連線到資料存放區的 Integration Runtime。 您可以使用 Azure Integration Runtime 或自我裝載整合執行時間(如果您的資料存放區位於私人網路中)。 如果未指定,就會使用預設的 Azure Integration Runtime。 No

重要

從雲端資料存放區將資料複製到搜尋索引時,在 Azure AI 搜尋連結服務中,您需要在 connactVia 中參考具有明確區域的 Azure Integration Runtime。 將區域設定為搜尋服務所在的區域。 深入瞭解 Azure Integration Runtime

範例:

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

資料集屬性

如需可用來定義資料集的完整區段和屬性清單,請參閱 資料集 一文。 本節提供 Azure AI 搜尋資料集所支援的屬性清單。

若要將資料複製到 Azure AI 搜尋服務,支援下列屬性:

屬性 描述 必要
type 資料集的類型屬性必須設定為: AzureSearchIndex Yes
indexName 搜尋索引的名稱。 服務不會建立索引。 索引必須存在於 Azure AI 搜尋服務中。 Yes

範例:

{
    "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 複製活動來源的 type 屬性必須設定為: AzureSearchIndexSink Yes
writeBehavior 指定當檔已存在於索引中時,是否要合併或取代。 請參閱 WriteBehavior 屬性

允許的值為: Merge (預設值),以及 Upload
No
writeBatchSize 當緩衝區大小達到 writeBatchSize 時,將資料上傳至搜尋索引。 如需詳細資訊, 請參閱 WriteBatchSize 屬性

允許的值為:整數 1 到 1,000;預設值為 1000。
No
maxConcurrent連線ions 在活動執行期間,與資料存放區建立的並行連線上限。 只有在您想要限制並行連線時,才指定值。 No

WriteBehavior 屬性

寫入資料時,AzureSearchSink upsertserts。 換句話說,撰寫檔時,如果檔索引鍵已存在於搜尋索引中,Azure AI 搜尋會更新現有的檔,而不是擲回衝突例外狀況。

AzureSearchSink 提供下列兩個 upsert 行為(使用 AzureSearch SDK):

  • 合併 :結合新檔中的所有資料行與現有的資料行。 對於新檔中具有 Null 值的資料行,會保留現有檔中的值。
  • 上傳 :新檔會取代現有的檔。 對於新檔中未指定的資料行,值會設定為 null,不論現有檔中是否有非 Null 值。

預設行為為 Merge

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 搜尋接收支援
String Y
Int32 Y
Int64 Y
雙重 Y
布林值 Y
DataTimeOffset Y
字串陣列
GeographyPoint

目前不支援其他資料類型,例如 ComplexType。 如需 Azure AI 搜尋支援資料類型的完整清單,請參閱 支援的資料類型(Azure AI 搜尋)。

如需複製活動支援做為來源和接收的資料存放區清單,請參閱 支援的資料存放區