在 Azure Data Factory 或 Azure Synapse Analytics 中取得元數據活動
適用於: Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的單一分析解決方案。 Microsoft Fabric 涵蓋從數據移動到數據科學、即時分析、商業智慧和報告等所有專案。 瞭解如何 免費啟動新的試用版 !
您可以使用取得元數據活動來擷取 Azure Data Factory 或 Synapse 管線中任何數據的元數據。 您可以使用條件表達式中取得元數據活動的輸出來執行驗證,或在後續活動中取用元數據。
使用UI建立取得元數據活動
若要在管線中使用取得元數據活動,請完成下列步驟:
在管線 [活動] 窗格中搜尋 [ 取得元數據 ],然後將 [失敗] 活動拖曳至管線畫布。
如果尚未選取新的 [取得元數據] 活動,請在畫布上選取新的 [取得元數據] 活動,以及其 [設定] 索引卷標,以編輯其詳細數據。
選擇數據集,或使用 [新增] 按鈕建立新的數據集。 然後,您可以指定篩選選項,並從數據集的可用元數據新增數據行。
使用活動的輸出做為另一個活動的輸入,例如此範例中的 Switch 活動。 您可以在其他活動支援動態內容的任何位置參考元資料活動的輸出。
在動態內容編輯器中,選取 [取得元數據] 活動輸出,以在其他活動中參考它。
支援的功能
取得元數據活動會採用數據集做為輸入,並將元數據信息當做輸出傳回。 目前支援下列連接器和對應的可擷取元數據。 傳回元數據的大小上限為 4 MB。
支援的連接器
檔案儲存體
連線 or/Metadata | itemName (檔案/資料夾) |
itemType (檔案/資料夾) |
size (檔案) |
created (檔案/資料夾) |
lastModified1 (檔案/資料夾) |
childItems (資料夾) |
contentMD5 (檔案) |
結構2 (檔案) |
columnCount2 (檔案) |
exists3 (檔案/資料夾) |
---|---|---|---|---|---|---|---|---|---|---|
Amazon S3 | √/√ | √/√ | √ | x/x | √/√ | √ | x | √ | √ | √/√ |
Amazon S3 相容 儲存體 | √/√ | √/√ | √ | x/x | √/√ | √ | x | √ | √ | √/√ |
Google Cloud 儲存體 | √/√ | √/√ | √ | x/x | √/√ | √ | x | √ | √ | √/√ |
Oracle Cloud 儲存體 | √/√ | √/√ | √ | x/x | √/√ | √ | x | √ | √ | √/√ |
Azure Blob 儲存體 | √/√ | √/√ | √ | x/x | √/√ | √ | √ | √ | √ | √/√ |
Azure Data Lake Storage Gen1 | √/√ | √/√ | √ | x/x | √/√ | √ | x | √ | √ | √/√ |
Azure Data Lake Storage Gen2 \(部分機器翻譯\) | √/√ | √/√ | √ | x/x | √/√ | √ | √ | √ | √ | √/√ |
Azure 檔案 | √/√ | √/√ | √ | √/√ | √/√ | √ | x | √ | √ | √/√ |
Microsoft Fabric Lakehouse | √/√ | √/√ | √ | x/x | √/√ | √ | √ | √ | √ | √/√ |
檔案系統 | √/√ | √/√ | √ | √/√ | √/√ | √ | x | √ | √ | √/√ |
SFTP | √/√ | √/√ | √ | x/x | √/√ | √ | x | √ | √ | √/√ |
FTP | √/√ | √/√ | √ | x/x | x/x | √ | x | √ | √ | √/√ |
1 元數據 lastModified
:
- 針對 Amazon S3、Amazon S3 Compatible 儲存體、Google Cloud 儲存體 和 Oracle Cloud 儲存體,
lastModified
適用於貯體和密鑰,但不適用於虛擬資料夾,並exists
套用至貯體和密鑰,但不適用於前置詞或虛擬資料夾。 - 針對 Azure Blob 記憶體,
lastModified
適用於容器和 Blob,但不適用於虛擬資料夾。
2 從二進位、JSON 或 XML 檔案取得元資料structure
columnCount
時,不支援元資料和 。
3 元數據exists
:針對 Amazon S3、Amazon S3 相容 儲存體、Google Cloud 儲存體 和 Oracle Cloud 儲存體,適用於貯體和索引鍵,exists
但不適用於前置詞或虛擬資料夾。
請注意以下要點:
針對資料夾使用取得元資料活動時,請確定您具有指定資料夾的 LIST/EXECUTE 許可權。
取得元數據活動不支援資料夾/檔案上的通配符篩選。
modifiedDatetimeStart
連接器上設定的與modifiedDatetimeEnd
篩選:- 從資料夾取得元數據時,會使用這兩個屬性來篩選子專案。 從檔案取得元數據時不適用。
- 使用這類篩選時,輸出
childItems
中的 只會包含指定範圍內修改但不包含資料夾的檔案。 - 若要套用這類篩選,GetMetadata 活動會列舉指定資料夾中的所有檔案,並檢查修改的時間。 請避免指向具有大量檔案的資料夾,即使預期的限定檔案計數很小也一樣。
關係資料庫
連線 or/Metadata | 結構 | columnCount | 存在 |
---|---|---|---|
Amazon RDS for SQL Server | √ | √ | √ |
Azure SQL Database | √ | √ | √ |
Azure SQL 受控執行個體 | √ | √ | √ |
Azure Synapse Analytics | √ | √ | √ |
SQL Server | √ | √ | √ |
元數據選項
您可以在 [取得元資料活動] 字段清單中指定下列元資料類型,以擷取對應的資訊:
元數據類型 | 描述 |
---|---|
itemName | 檔案或資料夾的名稱。 |
itemType | 檔案或資料夾的類型。 傳回的值是 File 或 Folder 。 |
size | 檔案的大小,以位元組為單位。 僅適用於檔案。 |
created | 建立檔案或資料夾的日期時間。 |
lastModified | 檔案或資料夾的上次修改日期時間。 |
childItems | 指定資料夾中的子資料夾和檔案清單。 僅適用於資料夾。 傳回的值是每個子專案的名稱和類型清單。 |
contentMD5 | 檔案的 MD5。 僅適用於檔案。 |
結構 | 檔案或關係資料庫數據表的數據結構。 傳回的值是數據行名稱和數據行類型的清單。 |
columnCount | 檔案或關係型數據表中的數據行數目。 |
存在 | 檔案、資料夾或數據表是否存在。 如果在 exists [取得元數據] 字段清單中指定,即使檔案、資料夾或數據表不存在,活動也不會失敗。 相反地, exists: false 會在輸出中傳回 。 |
提示
當您要驗證檔案、資料夾或資料表是否存在時,請在 [取得元資料] 活動欄位清單中指定 exists
。 然後,您可以在活動輸出中檢查 exists: true/false
結果。 如果未 exists
在欄位清單中指定,如果找不到物件,取得元數據活動將會失敗。
注意
當您從檔案存放區取得元數據並設定 modifiedDatetimeStart
或 modifiedDatetimeEnd
時, childItems
輸出中的 只會包含指定路徑中具有指定範圍內上次修改時間的檔案。 子資料夾中的專案不包含。
注意
若要讓 [ 結構 ] 欄位清單提供分隔文字和 Excel 格式資料集的實際資料結構,您必須啟用 First Row as Header
屬性,該屬性僅支援這些數據來源。
語法
取得元數據活動
{
"name":"MyActivity",
"type":"GetMetadata",
"dependsOn":[
],
"policy":{
"timeout":"7.00:00:00",
"retry":0,
"retryIntervalInSeconds":30,
"secureOutput":false,
"secureInput":false
},
"userProperties":[
],
"typeProperties":{
"dataset":{
"referenceName":"MyDataset",
"type":"DatasetReference"
},
"fieldList":[
"size",
"lastModified",
"structure"
],
"storeSettings":{
"type":"AzureBlobStorageReadSettings"
},
"formatSettings":{
"type":"JsonReadSettings"
}
}
}
資料集
{
"name":"MyDataset",
"properties":{
"linkedServiceName":{
"referenceName":"AzureStorageLinkedService",
"type":"LinkedServiceReference"
},
"annotations":[
],
"type":"Json",
"typeProperties":{
"location":{
"type":"AzureBlobStorageLocation",
"fileName":"file.json",
"folderPath":"folder",
"container":"container"
}
}
}
}
類型屬性
目前,取得元數據活動可以傳回下列類型的元數據資訊:
屬性 | 描述 | 必要 |
---|---|---|
fieldList | 所需的元數據信息類型。 如需所支援元數據的詳細資訊,請參閱 本文的元數據選項 一節。 | Yes |
資料集 | 要由取得元數據活動擷取其元數據的參考數據集。 如需支持連接器的資訊,請參閱功能一節。 如需數據集語法詳細數據,請參閱特定的連接器主題。 | Yes |
format 設定 | 使用格式類型數據集時套用。 | No |
store 設定 | 使用格式類型數據集時套用。 | No |
範例輸出
取得元數據結果會顯示在活動輸出中。 以下是顯示廣泛元數據選項的兩個範例。 若要在後續活動中使用結果,請使用下列模式: @{activity('MyGetMetadataActivity').output.itemName}
。
取得檔案的元數據
{
"exists": true,
"itemName": "test.csv",
"itemType": "File",
"size": 104857600,
"lastModified": "2017-02-23T06:17:09Z",
"created": "2017-02-23T06:17:09Z",
"contentMD5": "cMauY+Kz5zDm3eWa9VpoyQ==",
"structure": [
{
"name": "id",
"type": "Int64"
},
{
"name": "name",
"type": "String"
}
],
"columnCount": 2
}
取得資料夾的元數據
{
"exists": true,
"itemName": "testFolder",
"itemType": "Folder",
"lastModified": "2017-02-23T06:17:09Z",
"created": "2017-02-23T06:17:09Z",
"childItems": [
{
"name": "test.avro",
"type": "File"
},
{
"name": "folder hello",
"type": "Folder"
}
]
}
相關內容
瞭解其他支援的控制流程活動: