適用於:
Azure Data Factory
Azure Synapse Analytics
提示
Data Factory in Microsoft Fabric 是下一代的 Azure Data Factory,擁有更簡單的架構、內建 AI 及新功能。 如果你是資料整合新手,建議先從 Fabric Data Factory 開始。 現有的 ADF 工作負載可升級至 Fabric,以存取資料科學、即時分析與報告等新能力。
- 開始Fabric免費試用。
從 Azure Data Factory 升級到 Microsoft Fabric
當您想要剖析 Avro 檔案或將資料寫入 Avro 格式時,請遵循本文內容來進行作業。
以下連接器支援 Avro 格式:
資料集屬性
如需可用來定義資料集的區段和屬性完整清單,請參閱資料集一文。 本節提供 Avro 資料集所支援的屬性清單。
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | 資料集的 type 屬性必須設定為 Avro。 | Yes |
| 位置 | 檔案的位置設定。 每個檔案型連接器都包含專屬的位置類型,並支援 location 下的屬性。
請參閱連接器文章 -> 資料集屬性一節中的詳細資料。 |
Yes |
| avroCompressionCodec | 寫入 Avro 檔案時所用的壓縮轉碼器。 從 Avro 檔案進行讀取作業時,服務會根據檔案的中繼資料,自動判斷壓縮轉碼器。 支援的類型為 "none" (預設)、"deflate" 和 "snappy"。 請注意,目前 Copy activity 在讀寫 Avro 檔案時不支援 Snappy。 |
No |
注意
Avro 檔案不支援資料行名稱中的空白字元。
以下是 Azure Blob Storage 上 Avro 資料集的範例:
{
"name": "AvroDataset",
"properties": {
"type": "Avro",
"linkedServiceName": {
"referenceName": "<Azure Blob Storage linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, retrievable during authoring > ],
"typeProperties": {
"location": {
"type": "AzureBlobStorageLocation",
"container": "containername",
"folderPath": "folder/subfolder",
},
"avroCompressionCodec": "snappy"
}
}
}
Copy activity 屬性
如需可用來定義活動的區段和屬性完整清單,請參閱管線一文。 本節提供 Avro 來源和接收所支援的屬性清單。
將 Avro 作為來源
複製活動的 [來源] 區段支援下列屬性。
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | 複製活動來源的 type 屬性必須設定為 AvroSource。 | Yes |
| storeSettings | 屬性群組,可決定從資料存放區讀取資料的方式。 在 storeSettings 下,每個檔案型連接器都包含專屬的支援讀取設定。
詳見連接器條目 -> Copy activity 屬性章節。 |
No |
將 Avro 作為接收
複製活動的 [接收] 區段支援下列屬性。
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | 複製活動來源的 type 屬性必須設定為 AvroSink。 | Yes |
| formatSettings | 屬性群組。 請參閱下方 Avro 寫入設定資料表。 | No |
| storeSettings | 屬性群組,可決定將資料寫入資料存放區的方式。 每個以檔案為基礎的連接器在 storeSettings 底下皆具有自身的支援寫入設定。
詳見連接器條目 -> Copy activity 屬性章節。 |
No |
底下的支援 formatSettings:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | formatSettings 的 type 必須設定為 AvroWriteSettings。 | Yes |
| maxRowsPerFile | 當您將資料寫入資料夾時,可以選擇寫入多個檔案,並指定每個檔案的資料列上限。 | No |
| fileNamePrefix | 當 maxRowsPerFile 完成設定時適用。當您將資料寫入多個檔案時,請指定檔案名稱前置詞,使系統進行此模式: <fileNamePrefix>_00000.<fileExtension>。 如果未指定,系統會自動產生檔案名稱前置詞。 當來源是以檔案為基礎的存放區,或啟用資料分割選項的資料存放區時,系統不會套用此屬性。 |
No |
對應資料流程屬性
在映射資料流中,你可以在以下資料儲存中讀寫 avro 格式:Azure Blob Storage、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2 和 SFTP,你也可以用 Amazon S3 閱讀 avro 格式。
來源屬性
下表列出 avro 來源所支援的屬性。 您可以在 [來源選項] 索引標籤中編輯這些屬性。
| 名稱 | 描述 | 必要 | 允許的值 | 資料流程指令碼屬性 |
|---|---|---|---|---|
| 萬用字元路徑 | 系統會處理符合萬用字元路徑的所有檔案。 覆寫資料集的資料夾和檔案路徑集合。 | 否 | String[] | wildcardPaths |
| 分割區根路徑 | 如果是分割的檔案資料,您可以輸入分割區根路徑,讀取作為資料行的分割資料夾 | 否 | String | partitionRootPath |
| 檔案清單 | 您的來源是否指向列出待處理檔案的文字檔 | 否 |
true 或 false |
fileList |
| 儲存檔案名稱的資料行 | 使用來源檔案名稱和路徑,建立新的資料行 | 否 | String | rowUrlColumn |
| 完成後 | 處理後刪除或移動檔案。 從容器根開始的檔案路徑 | 否 | 刪除:true 或 false 移動: ['<from>', '<to>'] |
purgeFiles moveFiles |
| 依上次修改日期來篩選 | 根據上次變更檔案的時間,選擇篩選的檔案 | 否 | 時間戳記 | modifiedAfter modifiedBefore |
| 允許找不到檔案 | 如果為 true,找不到檔案時不會擲回錯誤 | 否 |
true 或 false |
ignoreNoFilesFound |
接收屬性
下表列出 avro 接收所支援的屬性。 您可以在 [設定] 索引標籤中編輯這些屬性。
| 名稱 | 描述 | 必要 | 允許的值 | 資料流程指令碼屬性 |
|---|---|---|---|---|
| 清除資料夾 | 如果在進行寫入之前清除目的地資料夾 | 否 |
true 或 false |
截斷 |
| 檔案名稱選項 | 已寫入資料的命名格式。 依預設,每個分割區的一個檔案會是 part-#####-tid-<guid> 格式 |
否 | 模式:String 每個分割區:String[] 作為資料行中的資料:String 輸出至單一檔案: ['<fileName>'] |
filePattern partitionFileNames rowUrlColumn partitionFileNames |
| 全部以引號括住 | 以引號括住所有值 | 否 |
true 或 false |
quoteAll |
資料類型支援
複製活動
複製活動不支援 Avro 複雜資料類型 (記錄、列舉、陣列、對應、等位和固定)。
資料流程
在資料流程中使用 Avro 檔案時,您可以讀取和寫入複雜的資料類型,但請務必先從資料集清除實體結構描述。 在資料流程中,您可以設定邏輯投影,並衍生複雜結構的資料行,並將這些欄位自動對應至 Avro 檔案。