共用方式為


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 相容儲存體、Google Cloud 儲存體和 Oracle Cloud 儲存體,lastModified 適用於貯體和金鑰,但是不適用於虛擬資料夾,exists 會套用至貯體和金鑰,但是不會套用至前置詞或虛擬資料夾。
  • 針對 Azure Blob 儲存體,lastModified 會套用至容器和 Blob,但是不會套用至虛擬資料夾。

2 中繼資料 structurecolumnCount 在從二進位、JSON 或 XML 檔案取得中繼資料時不受支援。

3 中繼資料 exists:針對 Amazon S3、Amazon S3 相容儲存體、Google Cloud 儲存體和 Oracle Cloud 儲存體,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"
    }
  ]
}

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