使用 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:
- 複製資料工具
- Azure 入口網站
- The .NET SDK
- The Python SDK
- Azure PowerShell
- The REST API
- Azure Resource Manager 範本
使用 UI 建立連結服務至 Azure 搜尋服務
使用下列步驟,在 Azure 入口網站 UI 中建立 Azure 搜尋服務的連結服務。
流覽至 Azure Data Factory 或 Synapse 工作區中的 [管理] 索引標籤,然後選取 [連結服務],然後按一下 [新增]:
搜尋搜尋並選取 Azure 搜尋服務連接器。
設定服務詳細資料、測試連線,並建立新的連結服務。
連線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 搜尋)。
相關內容
如需複製活動支援做為來源和接收的資料存放區清單,請參閱 支援的資料存放區 。