Azure Data Factory 和 Azure Synapse Analytics 中的 Excel 檔案格式
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用!
您要剖析 Excel 檔案時,請遵循本文。 此服務支援「.xls」和「.xlsx」。
下列連接器支援 Excel 格式:Amazon S3、Amazon S3 相容儲存體、Azure Blob、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2、Azure 檔案、檔案系統、FTP、Google Cloud Storage、HDFS、HTTP、Oracle Cloud Storage 和 SFTP。 它支援作為來源,但不支援接收。
注意
使用 HTTP 時不支援「.xls」格式。
資料集屬性
如需可用來定義資料集的區段和屬性完整清單,請參閱資料集一文。 本節提供 Excel 資料集支援的屬性清單。
屬性 | 描述 | 必要 |
---|---|---|
type | 資料集的類型屬性必須設為 Excel。 | Yes |
location | 檔案的位置設定。 每個檔案型連接器都包含專屬的位置類型,並支援 location 下的屬性。 |
Yes |
sheetName | 讀取資料的 Excel 工作表名稱。 | 指定 sheetName 或 sheetIndex |
sheetIndex | 從 0 開始,讀取資料的 Excel 工作表索引。 | 指定 sheetName 或 sheetIndex |
range | 在指定工作表中的儲存格範圍,尋找選擇性資料,例如: - 未指定:從第一個非空白的資料列和資料行,讀取作為表格的整個工作表 - A3 :從指定的儲存格開始讀取資料表,以動態方式偵測該儲存格下方所有資料列和右側所有資料行- A3:H5 :讀取作為資料表的此固定範圍- A3:A3 :讀取此單一儲存格 |
No |
firstRowAsHeader | 指定是否視指定工作表/範圍中的第一個資料列,為包含資料行名稱的標題行。 允許的值為 true 和 false (預設值)。 |
No |
nullValue | 指定 Null 值的字串表示法。 預設值是空字串。 |
No |
壓縮 | 設定檔案壓縮的屬性群組。 當您要在活動執行期間執行壓縮/解壓縮時,請設定此區段。 | No |
type (在 compression 下) |
用來讀取/寫入 JSON 檔案的壓縮轉碼器。 允許的值為 bzip2、gzip、deflate、ZipDflate、TarGzip、Tar、snappy 或 lz4。 預設為不壓縮。 請注意,複製活動目前不支援 "snappy" & "lz4",而對應資料流不支援 "ZipDeflate"、"TarGzip" 和 "Tar"。 請注意,使用複製活動解壓縮 ZipDeflate 檔案,並寫入檔案型接收資料存放區後,會擷取檔案至資料夾: <path specified in dataset>/<folder named as source zip file>/ 。 |
否。 |
level (在 compression 下) |
壓縮比。 允許的值為 Optimal 或 Fastest。 - 最快:即使產生的檔案不以最佳方式壓縮,也應盡快完成壓縮作業。 - Optimal:即使作業需要較長時間完成,壓縮作業也應以最佳方式壓縮。 如需詳細資訊,請參閱 壓縮層級 主題。 |
No |
以下是 Azure Blob 儲存體上的 Excel 資料集範例:
{
"name": "ExcelDataset",
"properties": {
"type": "Excel",
"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",
},
"sheetName": "MyWorksheet",
"range": "A3:H5",
"firstRowAsHeader": true
}
}
}
複製活動屬性
如需可用來定義活動的區段和屬性完整清單,請參閱管線一文。 本節提供 Excel 來源支援的屬性清單。
Excel 作為來源
複製活動的 [來源] 區段支援下列屬性。
屬性 | 描述 | 必要 |
---|---|---|
type | 複製活動來源的類型屬性必須設為 ExcelSource。 | Yes |
storeSettings | 屬性群組,可決定從資料存放區讀取資料的方式。 在 storeSettings 下,每個檔案型連接器都包含專屬的支援讀取設定。 |
No |
"activities": [
{
"name": "CopyFromExcel",
"type": "Copy",
"typeProperties": {
"source": {
"type": "ExcelSource",
"storeSettings": {
"type": "AzureBlobStorageReadSettings",
"recursive": true
}
},
...
}
...
}
]
對應資料流程屬性
在對應資料流中,您可以在下列資料存放區讀取 Excel 格式:Azure Blob 儲存體、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2、Amazon S3 和 SFTP。 您可以使用 Excel 資料集或內嵌資料集,指向 Excel 檔案。
來源屬性
下表列出 Excel 來源支援的屬性。 您可以在 [來源選項] 索引標籤編輯這些屬性。使用內嵌數據集時,您會看到其他檔案設定,這與數據集屬性一節中所述的屬性相同。
名稱 | 描述 | 必要 | 允許的值 | 資料流程指令碼屬性 |
---|---|---|---|---|
萬用字元路徑 | 系統會處理符合萬用字元路徑的所有檔案。 覆寫資料集的資料夾和檔案路徑集合。 | 否 | String[] | wildcardPaths |
分割區根路徑 | 如果是分割的檔案資料,您可以輸入分割區根路徑,讀取作為資料行的分割資料夾 | 否 | String | partitionRootPath |
檔案清單 | 您的來源是否指向列出待處理檔案的文字檔 | 否 | true 或 false |
fileList |
儲存檔案名稱的資料行 | 使用來源檔案名稱和路徑,建立新的資料行 | 否 | String | rowUrlColumn |
完成後 | 處理後刪除或移動檔案。 從容器根開始的檔案路徑 | 否 | 刪除:true 或 false 移動: ['<from>', '<to>'] |
purgeFiles moveFiles |
依上次修改日期來篩選 | 根據上次變更檔案的時間,選擇篩選的檔案 | 否 | 時間戳記 | modifiedAfter modifiedBefore |
允許找不到任何檔案 | 如果為 true,找不到任何檔案時不會擲回錯誤 | 否 | true 或 false |
ignoreNoFilesFound |
來源範例
下圖是在對應資料流中使用資料集模式的 Excel 來源設定範例。
相關的資料流程指令碼:
source(allowSchemaDrift: true,
validateSchema: false,
wildcardPaths:['*.xls']) ~> ExcelSource
如果您使用內嵌資料集,即會在對應資料流中,看到下列來源選項。
相關的資料流程指令碼:
source(allowSchemaDrift: true,
validateSchema: false,
format: 'excel',
fileSystem: 'container',
folderPath: 'path',
fileName: 'sample.xls',
sheetName: 'worksheet',
firstRowAsHeader: true) ~> ExcelSourceInlineDataset
注意
對應數據流不支援讀取受保護的 Excel 檔案,因為這些檔案可能包含機密性通知,或強制執行限制其內容存取的特定存取限制。
處理非常大的 Excel 檔案
Excel 連接器不支援 複製活動 的串流讀取,而且必須先將整個檔案載入記憶體,才能讀取數據。 若要匯入結構描述、預覽資料或重新整理 Excel 資料集,必須在 HTTP 要求逾時 (100 秒) 之前傳回資料。 對於大型 Excel 檔案,這些作業可能不會在該時間範圍內完成,因而導致逾時錯誤。 如果您想要將大型 Excel 檔案 (>100 MB) 移至另一個資料存放區,則可以使用下列其中一個選項來因應這項限制:
- 使用自我裝載整合執行階段 (SHIR),然後使用複製活動將大型 Excel 檔案移至另一個具有 SHIR 的資料存放區。
- 將大型 Excel 檔案分割成數個較小的檔案,然後使用複製活動來移動包含檔案的資料夾。
- 使用資料流程活動,將大型 Excel 檔案移至另一個資料存放區。 資料流程支援 Excel 的串流讀取,且能快速移動/傳輸大型檔案。
- 手動將大型 Excel 檔案轉換成 CSV 格式,然後使用複製活動來移動檔案。