共用方式為


Azure Data Factory 或 Azure Synapse Analytics 中的「取得中繼資料」活動

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

您可以使用「取得中繼資料」活動來擷取 Azure Data Factory 或 Synapse 管線中任何資料的中繼資料。 您可以使用條件運算式中「取得中繼資料」活動的輸出來執行驗證,或在後續活動中取用中繼資料。

使用 UI 建立「取得中繼資料」活動

若要在管線中使用「取得中繼資料」活動,請完成下列步驟:

  1. 在管線 [活動] 窗格中搜尋取得中繼資料,然後將「失敗」活動拖曳至管線畫布。

  2. 如果尚未選取新的 [取得元數據] 活動,請 選取畫布上的 [取得元數據] 活動及其 [設定 ] 索引標籤,以編輯其詳細數據。

  3. 選擇資料集,或使用 [新增] 按鈕建立新的資料集。 然後,您可以指定篩選選項,並從資料集的可用中繼資料新增資料行。

    顯示取得元數據活動的UI。

  4. 使用活動的輸出作為另一個活動的輸入,例如此範例中的「切換」活動。 您可以在其他活動中支援動態內容的任何位置參考中繼資料活動的輸出。

    顯示已新增 Switch 活動的管線,以處理取得元數據活動的輸出。

  5. 在動態內容編輯器中,選取 [取得中繼資料] 活動輸出,以在其他活動中加以參考。

    將 [取得元數據] 活動的輸出顯示為動態內容,顯示動態內容編輯器。

支援的功能

「取得中繼資料」活動會採用資料集作為輸入,並將中繼資料資訊當做輸出傳回。 目前支援以下連接器與相對應可取出的中繼資料。 傳回的中繼資料大小上限為 4 MB

支援的連接器

檔案儲存體

連接器/中繼資料 itemName
(檔案/資料夾)
itemType
(檔案/資料夾)
size
(檔案)
created
(檔案/資料夾)
lastModified1
(檔案/資料夾)
childItems
(資料夾)
contentMD5
(檔案)
structure2
(檔案)
columnCount2
(檔案)
exists3
(檔案/資料夾)
Amazon S3 √/√ √/√ x/x √/√ x √/√
Amazon S3 相容儲存體 √/√ √/√ x/x √/√ x √/√
Google Cloud Storage √/√ √/√ x/x √/√ x √/√
Oracle 雲端儲存空間 √/√ √/√ 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 Storage、Google Cloud Storage 和 Oracle Cloud Storage, lastModified 適用於貯體和密鑰,但不適用於虛擬資料夾,並 exists 套用至貯體和密鑰,但不適用於前置詞或虛擬資料夾。
  • 針對 Azure Blob 儲存體,lastModified 會套用至容器和 Blob,但是不會套用至虛擬資料夾。

2 從二進位、JSON 或 XML 檔案取得元資料structurecolumnCount時,不支援元資料和 。

3 元數據 exists:針對 Amazon S3、Amazon S3 相容記憶體、Google 雲端記憶體和 Oracle 雲端記憶體, exists 適用於貯體和索引鍵,但不適用於前置詞或虛擬資料夾。

請注意下列幾點:

  • 針對資料夾使用「取得中繼資料」活動時,請確定您具有指定資料夾的 LIST/EXECUTE 權限。

  • 取得元數據活動不支援資料夾/檔案上的通配符篩選。

  • modifiedDatetimeStartmodifiedDatetimeEnd 篩選條件會在連接器上設定:

    • 從資料夾取得中繼資料時,會使用這兩個屬性來篩選子項目。 從檔案取得元數據時,不適用它。
    • 使用這類篩選條件時,輸出中的 childItems 只會包含指定範圍內已修改的檔案,但是不包含資料夾的檔案。
    • 若要套用這類篩選,GetMetadata 活動會列舉指定資料夾中的所有檔案,並檢查修改的時間。 即使預期的限定檔案計數很小,也請避免指向具有大量檔案的資料夾。

關聯式資料庫

連接器/中繼資料 結構 columnCount 存在
Amazon RDS for SQL Server
Azure SQL Database
Azure SQL 受控執行個體
Azure Synapse Analytics
SQL Server

中繼資料選項

您可以在 [取得中繼資料] 活動欄位清單中指定下列中繼資料類型,以擷取對應的資訊:

中繼資料類型 描述
itemName 檔案或資料夾的名稱。
itemType 檔案或資料夾的類型。 傳回的值為 FileFolder
size 檔案大小,以位元組為單位。 僅適用於檔案。
created 檔案或資料夾的建立日期時間。
lastModified 檔案或資料夾的上次修改日期時間。
childItems 指定資料夾中子資料夾和檔案的清單。 僅適用於資料夾。 傳回值為每個子項目的名稱和類型清單。
contentMD5 檔案的 MD5。 僅適用於檔案。
結構 檔案或關聯式資料庫資料表的資料結構。 傳回值為資料行名稱和資料行類型的清單。
columnCount 檔案或關聯式資料表中的資料行數目。
存在 檔案、資料夾或資料表是否存在。 如果在 exists [取得元數據] 字段清單中指定,即使檔案、資料夾或數據表不存在,活動也不會失敗。 相反地,會在輸出中傳回 exists: false

提示

當您想要驗證檔案、資料夾或資料表是否存在時,請在 [取得中繼資料] 活動欄位清單中指定 exists。 然後,您可以在活動輸出中檢查 exists: true/false 結果。 如果未 exists 在欄位清單中指定,如果找不到物件,則取得元數據活動會失敗。

注意

當您從檔案存放區取得元數據並設定 modifiedDatetimeStartmodifiedDatetimeEnd時, childItems 輸出中的 只會包含指定路徑中具有指定範圍內上次修改時間的檔案。 子資料夾中的專案不包含。

注意

若要讓 [結構] 欄位清單提供分隔文字和 Excel 格式資料集的實際資料結構,您必須啟用 First Row as Header 屬性,這只支援這些資料來源。

語法

GetMetadata 活動

{
    "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"
            }
        }
    }
}

類型屬性

目前「取得中繼資料」活動可以傳回以下類型的中繼資料資訊:

屬性 描述 必要
欄位清單 所需的中繼資料資訊類型。 如需支援中繼資料的詳細資訊,請參閱本文的中繼資料選項一節。 Yes
資料集 「取得中繼資料」活動要擷取其中繼資料的參考資料集。 如需支援連接器的詳細資訊,請參閱功能一節。 如需數據集語法詳細數據,請參閱特定的連接器文章。 Yes
formatSettings 使用格式類型資料集時套用。 No
storeSettings 使用格式類型資料集時套用。 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"
    }
  ]
}

深入了解其他支援的控制流程活動: