適用於:
Azure Data Factory
Azure Synapse Analytics
提示
Data Factory in Microsoft Fabric 是下一代的 Azure Data Factory,擁有更簡單的架構、內建 AI 及新功能。 如果你是資料整合新手,建議先從 Fabric Data Factory 開始。 現有的 ADF 工作負載可升級至 Fabric,以存取資料科學、即時分析與報告等新能力。
當您想要剖析 Avro 檔案或將資料寫入 Avro 格式時,請遵循本文內容來進行作業。
以下連接器支援 Avro 格式:
資料集屬性
如需可用來定義資料集的區段和屬性完整清單,請參閱資料集一文。 本節提供 Avro 資料集所支援的屬性清單。
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | 資料集的 type 屬性必須設定為 Avro。 | Yes |
| 位置 | 檔案的位置設定。 每個檔案型連接器都包含專屬的位置類型,並支援 location 下的屬性。
請參閱連接器文章 -> 資料集屬性一節中的詳細資料。 |
Yes |
| avroCompressionCodec | 寫入 Avro 檔案時所用的壓縮轉碼器。 從 Avro 檔案進行讀取作業時,服務會根據檔案的中繼資料,自動判斷壓縮轉碼器。 支援的類型為 "none" (預設)、"deflate" 和 "snappy"。 請注意,目前 複製活動 在讀寫 Avro 檔案時不支援 Snappy。 |
No |
注意
Avro 檔案不支援資料行名稱中的空白字元。
以下是 Azure Blob 儲存體 上 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"
}
}
}
複製活動 屬性
如需可用來定義活動的區段和屬性完整清單,請參閱管線一文。 本節提供 Avro 來源和接收所支援的屬性清單。
將 Avro 作為來源
複製活動的 [來源] 區段支援下列屬性。
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | 複製活動來源的 type 屬性必須設定為 AvroSource。 | Yes |
| storeSettings | 屬性群組,可決定從資料存放區讀取資料的方式。 在 storeSettings 下,每個檔案型連接器都包含專屬的支援讀取設定。
詳見連接器條目 -> 複製活動 屬性章節。 |
No |
將 Avro 作為接收
複製活動的 [接收] 區段支援下列屬性。
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | 複製活動來源的 type 屬性必須設定為 AvroSink。 | Yes |
| formatSettings | 屬性群組。 請參閱下方 Avro 寫入設定資料表。 | No |
| storeSettings | 屬性群組,可決定將資料寫入資料存放區的方式。 每個以檔案為基礎的連接器在 storeSettings 底下皆具有自身的支援寫入設定。
詳見連接器條目 -> 複製活動 屬性章節。 |
No |
底下的支援 formatSettings:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 型別 | formatSettings 的 type 必須設定為 AvroWriteSettings。 | Yes |
| maxRowsPerFile | 當您將資料寫入資料夾時,可以選擇寫入多個檔案,並指定每個檔案的資料列上限。 | No |
| fileNamePrefix | 當 maxRowsPerFile 完成設定時適用。當您將資料寫入多個檔案時,請指定檔案名稱前置詞,使系統進行此模式: <fileNamePrefix>_00000.<fileExtension>。 如果未指定,系統會自動產生檔案名稱前置詞。 當來源是以檔案為基礎的存放區,或啟用資料分割選項的資料存放區時,系統不會套用此屬性。 |
No |
對應資料流程屬性
在映射資料流中,你可以在以下資料儲存中讀寫 avro 格式:Azure Blob 儲存體、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 檔案。