使用 Azure Data Factory 或 Azure Synapse Analytics,在 Azure Blob 儲存體中複製和轉換資料

適用於:Azure Data Factory Azure Synapse Analytics

提示

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

本文概述如何使用 Azure Data Factory 和 Azure Synapse 管線中的複製活動,以複製資料自/至 Azure Blob 儲存體。 本文也會描述如何使用資料流程活動來轉換 Azure Blob 儲存體中的資料。 如需深入了解,請閱讀 Azure Data FactorySynapse Analytics 的介紹文章。

提示

若要了解資料湖或資料倉儲的移轉案例,請參閱將資料從資料湖或資料倉儲移轉至 Azure 一文。

支援的功能

下列功能支援此 Azure Blob 儲存體連接器:

支援的功能 IR 受控私人端點
複製活動 (來源/接收) ① ② ✓ 排除儲存體帳戶 V1
對應資料流程 (來源/接收) ✓ 排除儲存體帳戶 V1
查閱活動 ① ② ✓ 排除儲存體帳戶 V1
GetMetadata 活動 ① ② ✓ 排除儲存體帳戶 V1
刪除活動 ① ② ✓ 排除儲存體帳戶 V1

① Azure 整合執行階段 ② 自我裝載整合執行階段

此 Blob 儲存體連接器支援複製活動的下列作業:

  • 將 Blob 複製到一般用途 Azure 儲存體帳戶和經常性存取/非經常性存取 Blob 儲存體,或從這兩處複製 Blob。
  • 透過帳戶金鑰、服務共用存取簽章(SAS)、服務主體或 Azure 資源受控識別驗證,以複製 Blob。
  • 從區塊、附加或分頁 Blob 複製 Blob,以及將資料只複製到區塊 Blob。
  • 依原樣複製 Blob,或是使用支援的檔案格式和壓縮轉碼器來剖析或產生 Blob。
  • 複製期間保留檔案中繼資料

開始使用

若要透過管線執行複製活動,您可以使用下列其中一個工具或 SDK:

使用 UI 建立 Azure Blob 儲存體連結服務

使用下列步驟,在 Azure 入口網站 UI 中建立 Azure Blob 儲存體連結服務。

  1. 瀏覽至 Azure Data Factory 或 Synapse 工作區中的 [管理] 索引標籤,並選取 [連結服務],然後選取 [新增]:

  2. 搜尋 Blob 並選取 Azure Blob 儲存體連接器。

    Select Azure Blob Storage connector.

  3. 設定服務詳細資料,測試連線,然後建立新的連結服務。

    Screenshot of configuration for Azure Blob Storage linked service.

連接器設定詳細資料

下列各節提供屬性的相關詳細資料,這些屬性可用於定義 Blob 儲存體專屬的 Data Factory 和 Synapse 管線實體。

連結服務屬性

Azure Blob 儲存體連接器支援下列驗證類型。 如需詳細資料,請參閱對應章節。

注意

  • 若要使用 Azure 儲存體防火牆上啟用的 [允許信任的 Microsoft 服務存取此儲存體帳戶] 選項,使用公用 Azure 整合執行階段連線至 Blob 儲存體,則須使用受控識別驗證。 如需儲存體防火牆的詳細資訊,請參閱 Azure 儲存體防火牆設定和虛擬網路
  • 使用 PolyBase 或 COPY 陳述式將資料載入 Azure Synapse Analytics 時,若您的來源或暫存 Blob 儲存體已設定使用 Azure 虛擬網路端點,則須依 Azure Synapse 要求使用受控識別驗證。 如需了解其他組態必要條件,請參閱受控識別驗證一節。

注意

Azure HDInsight 和 Azure Machine Learning 活動僅支援使用 Azure Blob 儲存體帳戶金鑰的驗證。

匿名驗證

在 Azure Data Factory 或 Synapse 管線中,儲存體帳戶金鑰驗證支援下列屬性:

屬性 描述 必要
type type 屬性必須設為 AzureBlobStorage (建議) 或 AzureStorage (請參閱下列注意事項)。 Yes
containerUri 採用此格式 https://<AccountName>.blob.core.windows.net/<ContainerName> 來指定已啟用匿名讀取存取的 Azure Blob 容器 URI,並設定對容器和 Blob 的匿名公用讀取存取 Yes
connectVia 用來連線到資料存放區的整合執行階段。 您可以使用 Azure 整合執行階段或自我裝載整合執行階段 (若您的資料儲存在私人網路中)。 如未指定此屬性,服務將使用預設的 Azure 整合執行階段。 No

範例:


{
    "name": "AzureBlobStorageAnonymous",
    "properties": {
        "annotations": [],
        "type": "AzureBlobStorage",
        "typeProperties": {
            "containerUri": "https:// <accountname>.blob.core.windows.net/ <containername>",
            "authenticationType": "Anonymous"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

範例 UI

UI 體驗如下圖所述。 此範例使用 Azure 開放資料集作為來源。 如果您想要取得已開啟的 dataset bing_covid-19_data.csv,則只需要將 [驗證類型] 選擇為 [匿名],然後使用 https://pandemicdatalake.blob.core.windows.net/public 來填寫容器 URI。

Screenshot of configuration for Anonymous examples UI.

帳戶金鑰驗證

在 Azure Data Factory 或 Synapse 管線中,儲存體帳戶金鑰驗證支援下列屬性:

屬性 描述 必要
type type 屬性必須設為 AzureBlobStorage (建議) 或 AzureStorage (請參閱下列注意事項)。 Yes
connectionString 針對 connectionString 屬性,指定連線至儲存體所需的資訊。
您也可將帳戶金鑰置於 Azure Key Vault,並從連接字串提取 accountKey 組態。 如需詳細資訊,請參閱下列範例和在 Azure Key Vault 中儲存認證一文。
Yes
connectVia 用來連線到資料存放區的整合執行階段。 您可以使用 Azure 整合執行階段或自我裝載整合執行階段 (若您的資料儲存在私人網路中)。 如未指定此屬性,服務將使用預設的 Azure 整合執行階段。 No

注意

使用帳戶金鑰驗證時,不支援次要 Blob 服務端點。 您可以使用其他驗證類型。

注意

若您使用 AzureStorage 類型的連結服務,系統仍支援。 但後續建議使用新的 AzureBlobStorage 連結服務類型。

範例:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
          "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
        },
        "connectVia": {
          "referenceName": "<name of Integration Runtime>",
          "type": "IntegrationRuntimeReference"
        }
    }
}

範例:在 Azure Key Vault 中儲存帳戶金鑰

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
            "accountKey": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

共用存取簽章驗證

共用存取簽章可提供您儲存體帳戶中資源的委派存取。 您可以使用共用存取簽章來將儲存體帳戶中物件的有限權限授與用戶端,讓該用戶端可以在一段指定時間內使用。

您不需要共用您的帳戶存取金鑰。 共用存取簽章是一種 URI,此 URI 會在其查詢參數中包含對儲存體資源進行驗證式存取所需的一切資訊。 若要使用共用存取簽章存取儲存體資源,用戶端只需在適當的建構函式或方法中傳入共用存取簽章即可。

如需共用存取簽章的詳細資訊,請參閱共用存取簽章:了解共用存取簽章模型

注意

  • 服務目前同時支援服務共用存取簽章帳戶共用存取簽章。 如需共用存取簽章的詳細資訊,請參閱使用共用存取簽章授與 Azure 儲存體資源的有限存取權
  • 在後續的資料集組態中,資料夾路徑是從容器層級開始的絕對路徑。 您需要設定一個對應您 SAS URI 中路徑的。

下列屬性支援使用共用存取簽章驗證:

屬性 描述 必要
type type 屬性必須設為 AzureBlobStorage (建議) 或 AzureStorage (請參閱下列注意事項)。 Yes
sasUri 指定儲存體資源 (如 Blob 或容器) 的共用存取簽章 URI。
將此欄位標記為 SecureString,以便安全儲存。 您也可將 SAS 權杖放入 Azure Key Vault 中,以使用自動輪替和移除權杖部分。 如需詳細資訊,請參閱下列範例和在 Azure Key Vault 中儲存認證
Yes
connectVia 用來連線到資料存放區的整合執行階段。 您可以使用 Azure 整合執行階段或自我裝載整合執行階段 (若您的資料儲存在私人網路中)。 如未指定此屬性,服務將使用預設的 Azure 整合執行階段。 No

注意

若您使用 AzureStorage 類型的連結服務,系統仍支援。 但後續建議使用新的 AzureBlobStorage 連結服務類型。

範例:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource e.g. https://<accountname>.blob.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

範例:在 Azure Key Vault 中儲存帳戶金鑰

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.blob.core.windows.net/>"
            },
            "sasToken": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName with value of SAS token e.g. ?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

當您建立共用存取簽章 URI 時,請考慮下列各點:

  • 根據連結服務 (讀取、寫入、讀取/寫入) 的使用方式,在物件上設定適當的讀取/寫入權限。
  • 設定適當的 [過期時間]。 請確定儲存體物件的存取權不會在管線的作用中期間內過期。
  • 應視需求於適當的容器或 Blob 建立 URI。 Blob 的共用存取簽章 URI 可讓資料處理站或 Synapse 管線存取該特定 Blob。 Blob 儲存體容器的共用存取簽章 URI 可讓 資料處理站或 Synapse 管線逐一查看該容器中 Blob。 若要在稍後提供更多或較少物件的存取權,或更新共用存取簽章 URI,請記得使用新的 URI 更新連結的服務。

服務主體驗證

如需 Azure 儲存體服務主體驗證的一般資訊,請參閱使用 Microsoft Entra ID 驗證 Azure 儲存體的存取權

若要使用服務主體驗證,請遵循下列步驟:

  1. 向 Microsoft 身分識別平台註冊應用程式。 若要深入了解,請參閱快速入門:向 Microsoft 身分識別平台註冊應用程式。 請記下這些值,以便用於定義連結服務:

    • Application ID
    • 應用程式金鑰
    • 租用戶識別碼
  2. 在 Azure Blob 儲存體中授與服務主體適當權限。 如需角色的詳細資訊,請參閱使用 Azure 入口網站來指派用於存取 Blob 和佇列資料的 Azure 角色

    • 針對來源,至少在 存取控制 (IAM) 中授與儲存體 Blob 資料讀者角色。
    • 針對接收,至少在 [存取控制 (IAM)] 中授與 [儲存體 Blob 資料參與者] 角色。

以下是支援 Azure Blob 儲存體連結服務的屬性:

屬性 描述 必要
type 類型屬性必須設為 AzureStorageSas Yes
serviceEndpoint 指定模式為 https://<accountName>.blob.core.windows.net/ 的 Azure Blob 儲存體服務端點。 Yes
accountKind 指定儲存體帳戶的類型。 允許的值為:Storage (一般用途 v1)、StorageV2 (一般用途 v2)、BlobStorageBlockBlobStorage

在資料流程中使用 Azure Blob 連結服務時,如果帳戶種類為空白或「儲存體」,則不支援受控識別或服務主體驗證。 請指定適當的帳戶種類、選擇不同的驗證,或將儲存體帳戶升級為一般用途 v2。
No
servicePrincipalId 指定應用程式的用戶端識別碼。 Yes
servicePrincipalCredentialType 用於服務主體驗證的認證類型。 允許的值為 ServicePrincipalKeyServicePrincipalCert Yes
servicePrincipalCredential 服務主體認證。
當您使用 ServicePrincipalKey 作為認證類型時,請指定應用程式的金鑰。 將此欄位標記為 SecureString 以將其安全地儲存,或參考 Azure Key Vault 中儲存的祕密
當您使用 ServicePrincipalCert 作為認證時,請在 Azure Key Vault 中參考憑證,並確定憑證內容類型為 PKCS #12
Yes
tenant 指定您的應用程式所在租用戶的資訊 (網域名稱或租用戶識別碼)。 將游標停留在 Azure 入口網站右上角,以擷取該資訊。 Yes
azureCloudType 針對服務主體驗證,請指定註冊 Microsoft Entra 應用程式的 Azure 雲端環境類型。
允許的值為 AzurePublicAzureChinaAzureUsGovernmentAzureGermany。 預設會使用 Data Factory 或 Synapse 管線的雲端環境。
No
connectVia 用來連線到資料存放區的整合執行階段。 您可以使用 Azure 整合執行階段或自我裝載整合執行階段 (若您的資料儲存在私人網路中)。 如未指定此屬性,服務將使用預設的 Azure 整合執行階段。 No

注意

  • 如果您的 Blob 帳戶啟用虛刪除,則資料流程中不支援服務主體驗證。
  • 若使用資料流程透過私人端點存取 Blob 儲存體,請注意:使用服務主體驗證時,資料流程會連線至 ADLS Gen2 端點,而不是 Blob 端點。 請務必在資料處理站或 Synapse 工作區中建立對應的私人端點以便存取。

注意

只有「AzureBlobStorage」類型連結服務支援服務主體驗證,先前的「AzureStorage」類型連結服務則不支援。

範例:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

系統指派的受控身分識別驗證

資料處理站或 Synapse 管線可與 Azure 資源的系統指派受控識別相關聯,這代表該資源用於驗證其他 Azure 服務。 這項系統指派的受控識別可直接用於 Blob 儲存體驗證,使用方式與您自己的服務主體類似。 如此便可讓這項指定的資源存取 Blob 儲存體,並複製資料自/至 Blob 儲存體。 若要深入了解 Azure 資源受控識別,請參閱 Azure 資源受控識別

如需 Azure 儲存體驗證的一般資訊,請參閱使用 Microsoft Entra ID 驗證 Azure 儲存體的存取權。 若要使用 Azure 資源的受控識別驗證,請遵循下列步驟:

  1. 複製與處理站或 Synapse 工作區一併產生的系統指派受控識別物件識別碼,以便擷取系統指派的受控識別資訊

  2. 將 Azure Blob 儲存體中的權限授與受控識別。 如需角色的詳細資訊,請參閱使用 Azure 入口網站來指派用於存取 Blob 和佇列資料的 Azure 角色

    • 針對來源,至少在 存取控制 (IAM) 中授與儲存體 Blob 資料讀者角色。
    • 針對接收,至少在 [存取控制 (IAM)] 中授與 [儲存體 Blob 資料參與者] 角色。

以下是支援 Azure Blob 儲存體連結服務的屬性:

屬性 描述 必要
type 類型屬性必須設為 AzureStorageSas Yes
serviceEndpoint 指定模式為 https://<accountName>.blob.core.windows.net/ 的 Azure Blob 儲存體服務端點。 Yes
accountKind 指定儲存體帳戶的類型。 允許的值為:Storage (一般用途 v1)、StorageV2 (一般用途 v2)、BlobStorageBlockBlobStorage

在資料流程中使用 Azure Blob 連結服務時,如果帳戶種類為空白或「儲存體」,則不支援受控識別或服務主體驗證。 請指定適當的帳戶種類、選擇不同的驗證,或將儲存體帳戶升級為一般用途 v2。
No
connectVia 用來連線到資料存放區的整合執行階段。 您可以使用 Azure 整合執行階段或自我裝載整合執行階段 (若您的資料儲存在私人網路中)。 如未指定此屬性,服務將使用預設的 Azure 整合執行階段。 No

範例:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

使用者指派的受控身分識別驗證

資料處理站可以使用一或多個使用者指派的受控識別來指派。 您可使用這項使用者指派的受控識別進行 Blob 儲存體驗證,以便存取 Blob 儲存體並複製資料自/至 Blob 儲存體。 若要深入了解 Azure 資源受控識別,請參閱 Azure 資源受控識別

如需 Azure 儲存體驗證的一般資訊,請參閱使用 Microsoft Entra ID 驗證 Azure 儲存體的存取權。 若要使用使用者指派的受控識別驗證,請依照下列步驟操作:

  1. 在 Azure Blob 儲存體中建立一或多個使用者指派的受控識別,並授與權限。 如需角色的詳細資訊,請參閱使用 Azure 入口網站來指派用於存取 Blob 和佇列資料的 Azure 角色

    • 針對來源,至少在 存取控制 (IAM) 中授與儲存體 Blob 資料讀者角色。
    • 針對接收,至少在 [存取控制 (IAM)] 中授與 [儲存體 Blob 資料參與者] 角色。
  2. 將一或多個使用者指派的受控身分識別指派給資料處理站,並為每個使用者指派的受控身分識別建立認證

以下是支援 Azure Blob 儲存體連結服務的屬性:

屬性 描述 必要
type 類型屬性必須設為 AzureStorageSas Yes
serviceEndpoint 指定模式為 https://<accountName>.blob.core.windows.net/ 的 Azure Blob 儲存體服務端點。 Yes
accountKind 指定儲存體帳戶的類型。 允許的值為:Storage (一般用途 v1)、StorageV2 (一般用途 v2)、BlobStorageBlockBlobStorage

在資料流程中使用 Azure Blob 連結服務時,如果帳戶種類為空白或「儲存體」,則不支援受控識別或服務主體驗證。 請指定適當的帳戶種類、選擇不同的驗證,或將儲存體帳戶升級為一般用途 v2。
No
credentials 將使用者指派的受控身分識別指定為認證物件。 Yes
connectVia 用來連線到資料存放區的整合執行階段。 您可以使用 Azure 整合執行階段或自我裝載整合執行階段 (若您的資料儲存在私人網路中)。 如未指定此屬性,服務將使用預設的 Azure 整合執行階段。 No

範例:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

重要

若使用 PolyBase 或 COPY 陳述式從 Blob 儲存體 (作為來源或暫存) 將資料載入 Azure Synapse Analytics,則當 Blob 儲存體使用受控識別驗證時,請確定依循本指引步驟 1 至 3。 這些步驟會使用 Microsoft Entra ID 來註冊您的伺服器,並將「儲存體 Blob 資料參與者」角色指派給伺服器。 Data Factory 會處理其餘部分。 若您使用 Azure 虛擬網路端點來設定 Blob 儲存體,也需要讓 [允許信任的 Microsoft 服務] 在 Azure Synapse 所要求的 Azure 儲存體帳戶 [防火牆和虛擬網路設定] 功能表下,存取此儲存體帳戶。

注意

  • 如果您的 Blob 帳戶啟用虛刪除,則資料流程中不支援系統指派/使用者指派的受控識別驗證。
  • 若使用資料流程透過私人端點存取 Blob 儲存體,請注意:使用系統指派/使用者指派的受控識別驗證時,資料流程會連線至 ADLS Gen2 端點,而不是 Blob 端點。 請務必在 ADF 中建立對應的私人端點,以便存取。

注意

只有「AzureBlobStorage」類型連結服務支援系統指派/使用者指派的受控識別驗證,先前的「AzureStorage」類型連結服務則不支援。

資料集屬性

如需可用來定義資料集的區段和屬性完整清單,請參閱資料集一文。

Azure Data Factory 支援下列檔案格式。 請參閱每篇文章,以取得以格式為基礎的設定。

在格式型資料集的 location 設定下,Azure Blob 儲存體支援下列屬性:

屬性 描述 必要
type 資料集的位置 type 屬性必須設為 AzureBlobStorageLocation Yes
容器 Blob 容器。 Yes
folderPath 特定容器下的資料夾路徑。 若要使用萬用字元來篩選資料夾,則請跳過此設定,並在活動來源設定中指定。 No
fileName 特定容器和資料夾路徑下的檔案名稱。 若要使用萬用字元來篩選檔案,請跳過此設定,並在活動來源設定中指定。 No

範例:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

複製活動屬性

如需可用來定義活動的區段和屬性完整清單,請參閱管線一文。 本節提供 Blob 儲存體來源和接收所支援的屬性清單。

Blob 儲存體作為來源類型

Azure Data Factory 支援下列檔案格式。 請參閱每篇文章,以取得以格式為基礎的設定。

在格式型複製來源的 storeSettings 設定下,Azure Blob 儲存體支援下列屬性:

屬性 描述 必要
type storeSettings 下的 type 屬性必須設為 AzureBlobStorageReadSettings Yes
找到要複製的檔案:
選項 1:靜態路徑
從資料集內指定的特定容器或資料夾/檔案路徑複製。 若要複製容器或資料夾中的所有 blob,請另外將 wildcardFileName 指定為 *
選項2:blob 前置詞
- 前置詞
資料集所設定特定容器下的 blob 名稱前置詞,用於篩選來源 blob。 系統已選取名稱開頭為 container_in_dataset/this_prefix 的 blob。 此前置詞可讓 Blob 儲存體使用服務端篩選功能,效能更勝於萬用字元篩選。

當您使用前置詞並選擇使用保留階層以複製至檔案型接收器時,請注意將會保留前置詞最後一個 "/" 後面的子路徑。 例如:您有來源 container/folder/subfolder/file.txt 且將前置詞設為 folder/sub,保留的檔案路徑則為 subfolder/file.txt
No
選項 3:萬用字元
- wildcardFolderPath
資料集所設定特定容器下具有萬用字元的資料夾路徑,用於篩選來源資料夾。
允許的萬用字元為:* (符合零或多個字元) 和 ? (符合零或單一字元)。 若資料夾名稱具有萬用字元或逸出字元 ^,則請使用此逸出字元進行逸出。
如需更多範例,請參閱資料夾和檔案篩選範例
No
選項 3:萬用字元
- wildcardFileName
特定容器和資料夾路徑 (或萬用字元資料夾路徑) 下具有萬用字元的檔案名稱,用於篩選來源檔案。
允許的萬用字元為:* (符合零或多個字元) 和 ? (符合零或單一字元)。 若檔案名稱具有萬用字元或逸出字元 ^,則請使用此逸出字元近性逸出。 如需更多範例,請參閱資料夾和檔案篩選範例
Yes
選項 4:檔案清單
- fileListPath
表示要複製指定的檔案集。 指向含有所要複製檔案清單的文字檔,一行一個檔案,而這是資料集中所設定路徑的相對路徑。
使用此選項時,請不要在資料集中指定檔案名稱。 檔案清單範例有更多範例可供參閱。
No
其他設定:
遞迴 指出是否從子資料夾、或只有從指定的資料夾,以遞迴方式讀取資料。 請注意,當遞迴設為 true 且接收器是檔案型存放區時,不會在接收器上複製或建立空的資料夾或子資料夾。
允許的值為 true (預設值) 和 false
設定 fileListPath 時,此屬性不適用。
No
deleteFilesAfterCompletion 指出成功移至目的地存放區之後,是否要從來源存放區中刪除二進位檔案。 根據檔案進行檔案刪除。 因此,複製活動失敗時,您將會看到某些檔案已複製至目的地且已從來源中予以刪除,而其他檔案仍然保留在來源存放區上。
此屬性僅適用於二進位檔案複製案例。 預設值:false。
No
modifiedDatetimeStart 檔案是根據「上次修改時間」屬性進行篩選。
若檔案的上次修改時間大於或等於 modifiedDatetimeStart 且小於 modifiedDatetimeEnd,則會選取檔案。 此時間會套用至國際標準時間時區,格式為「2018-12-01T05:00:00Z」。
屬性可以是 NULL,這表示將不會在資料集中套用任何檔案屬性篩選。 若 modifiedDatetimeStart 有日期時間值,但 modifiedDatetimeEndNULL,則將會選取上次修改時間屬性大於或等於該日期時間值的檔案。 若 modifiedDatetimeEnd 有日期時間值,但 modifiedDatetimeStartNULL,則將會選取上次修改時間屬性小於該日期時間值的檔案。
設定 fileListPath 時,此屬性不適用。
No
modifiedDatetimeEnd 與先前的屬性相同。 No
enablePartitionDiscovery 針對已分割的檔案,指定是否要從檔案路徑剖析分割區,並將其新增為額外來源資料行。
允許的值為 false (預設值) 和 true
No
partitionRootPath 啟用分割區探索時,請指定絕對根路徑,將已分割的資料夾當成資料行進行讀取。

如果未指定,則根據預設,
- 當您使用資料集中的檔案路徑或來源上的檔案清單時,分割區根路徑是資料集中所設定的路徑。
- 當您使用萬用字元資料夾篩選時,分割區根路徑是第一個萬用字元前面的子路徑。
- 當您使用前置詞時,分割區根路徑是最後一個「/」前的子路徑。

例如,假設您將資料集中的路徑設定為 "root/folder/year=2020/month=08/day=27":
- 如果您將分割區根路徑指定為 "root/folder/year=2020",則除了檔案內的資料行之外,複製活動還會分別產生值為 "08" 和 "27" 的兩個資料行 monthday
- 如果未指定分割區根路徑,則不會產生額外資料行。
No
maxConcurrentConnections 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 No

注意

Parquet/分隔符號文字格式仍依原狀支援 BlobSource 類型的複製活動來源 (如下一節所述),以保有回溯相容性。 在編寫 UI 改為產生這些新類型前,建議您使用新的模型。

範例:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

注意

透過 UI 執行容器清單作業時,系統不會顯示儲存體帳戶在啟用儲存體分析時自動建立的容器 $logs。 您必須直接為資料處理站或 Synapse 管線提供檔案路徑,才能取用 $logs 容器的檔案。

Blob 儲存體作為接收類型

Azure Data Factory 支援下列檔案格式。 請參閱每篇文章,以取得以格式為基礎的設定。

在格式型複製接收的 storeSettings 設定下,Azure Blob 儲存體支援下列屬性:

屬性 描述 必要
type storeSettings 下的 type 屬性必須設定為 AzureBlobStorageWriteSettings Yes
copyBehavior 當來源是來自檔案型資料存放區的檔案時,會定義複製行為。

允許的值如下:
- PreserveHierarchy (預設值):保留目標資料夾中的檔案階層。 來源檔案到來源資料夾的相對路徑,與目標檔案到目標資料夾的相對路徑相同。
- FlattenHierarchy:來自來源資料夾的所有檔案都在目標資料夾的第一層中。 目標檔案會有自動產生的名稱。
- MergeFiles:將來源資料夾的所有檔案合併成一個檔案。 如果有指定檔案或 Blob 名稱,合併檔案的名稱會是指定的名稱。 否則,就會是自動產生的檔案名稱。
No
blockSizeInMB 指定將資料寫入區塊 Blob 所用的區塊大小 (以 MB 為單位)。 請參閱關於區塊 Blob 以深入了解。
允許的值介於 4 MB 到 100 MB 之間
依預設,服務會根據來源存放區類型和資料自動決定區塊大小。 將非二進位資料複製至 Blob 儲存體時,預設區塊大小為 100 MB,因此 (最多) 可容納 4.95 TB 的資料。 當您的資料量不大時,這可能不是理想設定,特別是使用自我裝載整合執行階段且網路連線不佳的情況下,將導致作業逾時或效能問題。 您可以明確指定區塊大小,同時確保 blockSizeInMB*50000 大小足夠儲存資料。 否則,複製活動將執行失敗。
No
maxConcurrentConnections 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 No
中繼資料 在複製到接收時設定自訂中繼資料。 metadata 陣列下的每個物件都代表額外的資料行。 name 會定義中繼資料索引鍵名稱,而 value 表示該索引鍵的資料值。 若使用保留屬性功能,指定的中繼資料會與來源檔案中繼資料聯合/覆寫。

允許的資料值為:
- $$LASTMODIFIED:保留變數指出儲存來源檔案上次修改時間。 僅適用於二進位格式的檔案型來源。
- 運算式
- 靜態值
No

範例:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Parquet output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "ParquetSink",
                "storeSettings":{
                    "type": "AzureBlobStorageWriteSettings",
                    "copyBehavior": "PreserveHierarchy",
                    "metadata": [
                        {
                            "name": "testKey1",
                            "value": "value1"
                        },
                        {
                            "name": "testKey2",
                            "value": "value2"
                        },
                        {
                            "name": "lastModifiedKey",
                            "value": "$$LASTMODIFIED"
                        }
                    ]
                }
            }
        }
    }
]

資料夾和檔案篩選範例

本節描述含有萬用字元篩選之資料夾路徑和檔案名稱所產生的行為。

folderPath fileName 遞迴 來源資料夾結構和篩選結果 (會擷取以粗體顯示的檔案)
container/Folder* (空白,使用預設值) false 容器
    FolderA
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
container/Folder* (空白,使用預設值) true 容器
    FolderA
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
container/Folder* *.csv false 容器
    FolderA
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
container/Folder* *.csv true 容器
    FolderA
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv

檔案清單範例

本節說明使用複製活動來源中的檔案清單路徑時所產生的行為。

假設您的來源資料夾結構如下,且想要複製以粗體標示的檔案:

範例來源結構 FileListToCopy.txt 中的內容 組態
容器
    FolderA
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    中繼資料
        FileListToCopy.txt
File1.csv
Subfolder1/File3.csv
Subfolder1/File5.csv
在資料集內:
- 容器:container
- 資料夾路徑:FolderA

在複製活動來源中:
- 檔案清單路徑:container/Metadata/FileListToCopy.txt

檔案清單路徑指向相同資料存放區中的文字檔,其中包括所要複製檔案的清單。 其包括一行一個檔案,而且使用資料集中所設定路徑的相對路徑。

一些遞迴和 copyBehavior 範例

本節說明 recursivecopyBehavior 值在不同組合的情況下,複製作業所產生的行為。

遞迴 copyBehavior 來源資料夾結構 產生的目標
true preserveHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
目標資料夾 Folder1 建立的結構與來源相同:

Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
true flattenHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
目標資料夾 Folder1 會建立為下列結構:

Folder1
    針對 File1 自動產生的名稱
    針對 File2 自動產生的名稱
    針對 File3 自動產生的名稱
    針對 File4 自動產生的名稱
    針對 File5 自動產生的名稱
true mergeFiles Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
目標資料夾 Folder1 會建立為下列結構:

Folder1
    File1 + File2 + File3 + File4 + File5 的內容會合併成一個檔案,並具有自動產生的檔案名稱。
false preserveHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
目標資料夾 Folder1 會建立為下列結構:

Folder1
    File1
    File2

系統不會挑選含有 File3、File4、File5 的 Subfolder1。
false flattenHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
目標資料夾 Folder1 會建立為下列結構:

Folder1
    針對 File1 自動產生的名稱
    針對 File2 自動產生的名稱

系統不會挑選含有 File3、File4、File5 的 Subfolder1。
false mergeFiles Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
目標資料夾 Folder1 會建立為下列結構:

Folder1
    File1 + File2 的內容會合併成一個檔案,並具有自動產生的檔案名稱。 針對 File1 自動產生的名稱

系統不會挑選含有 File3、File4、File5 的 Subfolder1。

複製期間保留中繼資料

將 Amazon S3、Azure Blob 或 Azure Data Lake Storage Gen2 的檔案複製至 Azure Data Lake Storage Gen2 或Azure Blob 儲存體時,您可選擇一併保留資料及檔案中繼資料。 深入了解保留中繼資料

對應資料流程屬性

轉換對應資料流程中的資料時,您可讀取和寫入下列格式的 Azure Blob 儲存體檔案:

格式特定設定位於該格式的文件中。 如需詳細資訊,請參閱對應資料流程中的來源轉換對應資料流程中的接收轉換

來源轉換

在來源轉換中,您可讀取 Azure Blob 儲存體中的容器、資料夾或個別檔案。 使用 [來源選項] 索引標籤來管理檔案的讀取方式。

Screenshot of source options tab in mapping data flow source transformation.

萬用字元路徑:在單一來源轉換中,使用萬用字元模式會指示服務重複檢查每個相符的資料夾和檔案。 這在單一流程內處理多個檔案時很有效。 透過加號新增多個萬用字元比對模式;當滑鼠停留在現有萬用字元模式上時,即會出現此符號。

從來源容器中,選擇符合模式的一系列檔案。 在資料集內只能指定容器。 因此,萬用字元路徑也必須包含始於根資料夾的資料夾路徑。

萬用字元範例:

  • * 代表任何一組字元。

  • ** 代表遞迴目錄巢狀。

  • ? 取代一個字元。

  • [] 比對括弧中的一或多個字元。

  • /data/sales/**/*.csv 取得 /data/sales 下的所有 .csv 檔案。

  • /data/sales/20??/**/ 取得 20 世紀的所有檔案。

  • /data/sales/*/*/*.csv 取得 /data/sales 下兩層的 csv 檔案。

  • /data/sales/2004/*/12/[XY]1?.csv 取得 2004 年 12 月、開頭為 X 或 Y 、且字首為兩位數的所有 .csv 檔案。

分割區根路徑:若檔案來源中有 key=value 格式 (如 year=2019) 的分割資料夾,則可將該分割區資料夾樹狀結構的最上層,指派給資料流程資料流中的資料行名稱。

首先,請設定萬用字元以包含所有路徑,即分割資料夾加上要讀取的分葉檔案。

Screenshot of partition source file settings in mapping data flow source transformation.

使用 [分割區根路徑] 設定來定義資料夾結構的最上層。 透過資料預覽來檢視資料的內容時,您將會看到服務新增在每個資料夾層級找到的已解析分割區。

Partition root path

檔案清單:這是檔案集。 建立文字檔,其中包含要處理的相對路徑檔案清單。 指向這個文字檔。

要儲存檔案名稱的資料行:將來源檔案的名稱儲存至資料中的資料行。 在此輸入新的資料行名稱以儲存檔案名稱字串。

完成後:選擇在資料流程後不操作來源檔案、刪除來源檔案,或移動來源檔案。 移動時的路徑是相對路徑。

若要在處理後將來源檔案移到另一個位置,請先選取 [移動] 當作檔案操作。 然後,設定「來源」目錄。 如果路徑中未使用任何萬用字元,則「來源」設定與來源資料夾相同。

如果您的來源路徑包含萬用字元,則語法如下:

/data/sales/20??/**/*.csv

「來源」可指定為:

/data/sales

「目標」可指定為:

/backup/priorSales

在此案例中,來自 /data/sales 下的所有檔案皆會移至 /backup/priorSales

注意

只有當您從管線執行 (管線偵錯或執行) 啟動資料流程,且該管線執行在管線中使用「執行資料流程」活動時,檔案操作才會執行。 在資料流程偵錯模式下,「不會」執行檔案作業。

依上次修改時間篩選:您可以指定檔案上次修改的日期範圍,以篩選要處理的檔案。 所有日期時間皆為國際標準時間。

啟用異動資料擷取:如果為 true,則您只會從上次執行取得新的或已變更的檔案。 初次執行時一律會進行完整快照集資料的初始載入,接著只在下一次執行中擷取新的或變更的檔案。

Screenshot showing Enable change data capture.

接收屬性

在接收轉換中,您可寫入 Azure Blob 儲存體中的容器或資料夾。 使用 [設定] 索引標籤來管理檔案的寫入方式。

Sink options

清除資料夾:決定是否在寫入資料之前先清除目的地資料夾。

檔案名稱選項:決定目的地檔案在目的地資料夾中的命名方式。 檔案名稱的選項如下:

  • 預設:可讓 Spark 根據 PART 預設值來命名檔案。
  • 模式:輸入可列舉每個分割區輸出檔案的模式。 例如,loans[n].csv 會建立 loans1.csvloans2.csv 等等。
  • 每個分割區:針對每個分割區輸入一個檔案名稱。
  • 作為資料行中的資料:將輸出檔案設定為資料行的值。 路徑相對於資料集容器,而不是目的地資料夾。 如果您的資料集中含有資料夾路徑,則會將其覆寫。
  • 輸出至單一檔案:將經過分割的輸出檔案合併成單一具名檔案。 路徑相對於資料集資料夾。 請注意,根據節點大小而定,合併作業可能會失敗。 大型資料集不建議使用此選項。

全部以引號括住:決定是否以引號括住所有的值。

查閱活動屬性

若要了解屬性的詳細資料,請參閱查閱活動

GetMetadata 活動屬性

若要了解屬性的詳細資料,請參閱 GetMetadata 活動

刪除活動屬性

若要了解屬性的詳細資料,請參閱刪除活動

舊版模型

注意

基於回溯相容性,仍照現狀支援下列模型。 建議使用先前所述的新模型。 撰寫 UI 已改為產生新模型。

舊版資料集模型

屬性 描述 必要
type 資料集的 type 屬性必須設為 AzureBlob Yes
folderPath Blob 儲存體中容器和資料夾的路徑。

路徑支援萬用字元篩選功能 (容器名稱除外)。 允許的萬用字元為:* (符合零或多個字元) 和 ? (符合零或單一字元)。 若資料夾名稱具有萬用字元或逸出字元 ^,則請使用此逸出字元予以逸出。

例如:myblobcontainer/myblobfolder/。 如需更多範例,請參閱資料夾和檔案篩選範例
複製或查閱活動需要;GetMetadata 活動不需要
fileName folderPath 指定值下的 Blob 名稱或萬用字元篩選。 如果沒有為此屬性指定值,資料集就會指向資料夾中的所有 Blob。

篩選條件允許的萬用字元為:* (符合零或多個字元) 和 ? (符合零或單一字元)。
- 範例 1:"fileName": "*.csv"
- 範例 2:"fileName": "???20180427.txt"
若檔案名稱具有萬用字元或逸出字元 ^,則請使用此逸出字元近性逸出。

若輸出資料集未指定 fileName,且活動接收器未指定 preserveHierarchy,複製活動則會自動使用以下模式產生 Blob 名稱:「Data.[活動執行識別碼 GUID].[GUID (若為 FlattenHierarchy)].[格式 (若已設定)].[壓縮 (若已設定)]」。 例如:"Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz"。

若從表格式來源複製時使用資料表名稱 (而不是查詢),則名稱模式為 [table name].[format].[compression if configured]。 例如:"MyTable.csv"。
No
modifiedDatetimeStart 檔案是根據「上次修改時間」屬性進行篩選。 若檔案的上次修改時間大於或等於 modifiedDatetimeStart 且小於 modifiedDatetimeEnd,則會選取檔案。 此時間會以 "2018-12-01T05:00:00Z" 格式套用至 UTC 時區。

請注意,當您想要篩選大量檔案時,啟用此設定會影響整體資料移動效能。

屬性可為 NULL,表示所有檔案屬性篩選條件皆不會套用至資料集。 若 modifiedDatetimeStart 有日期時間值,但 modifiedDatetimeEndNULL,系統便會選取上次修改時間屬性大於或等於該日期時間值的檔案。 若 modifiedDatetimeEnd 有日期時間值,但 modifiedDatetimeStartNULL,系統便會選取上次修改時間屬性小於該日期時間值的檔案。
No
modifiedDatetimeEnd 檔案是根據「上次修改時間」屬性進行篩選。 若檔案的上次修改時間大於或等於 modifiedDatetimeStart 且小於 modifiedDatetimeEnd,則會選取檔案。 此時間會以 "2018-12-01T05:00:00Z" 格式套用至 UTC 時區。

請注意,當您想要篩選大量檔案時,啟用此設定會影響整體資料移動效能。

屬性可為 NULL,表示所有檔案屬性篩選條件皆不會套用至資料集。 若 modifiedDatetimeStart 有日期時間值,但 modifiedDatetimeEndNULL,系統便會選取上次修改時間屬性大於或等於該日期時間值的檔案。 若 modifiedDatetimeEnd 有日期時間值,但 modifiedDatetimeStartNULL,系統便會選取上次修改時間屬性小於該日期時間值的檔案。
No
format 如果您想要在檔案型存放區之間依原樣複製檔案 (二進位複本),請在輸入和輸出資料集定義中略過格式區段。

如果您想要以特定格式來剖析或產生檔案,以下是支援的檔案格式類型:TextFormatJsonFormatAvroFormatOrcFormatParquetFormat。 將 [format] 下的 [type] 屬性設定為下列其中一個值。 如需詳細資訊,請參閱文字格式JSON 格式Avro 格式Orc 格式Parquet 格式小節。
否 (僅適用於二進位複製案例)
壓縮 指定此資料的壓縮類型和層級。 如需詳細資訊,請參閱支援的檔案格式和壓縮轉碼器
支援的類型為:GZip、Deflate、BZip2 及 ZipDeflate
支援的層級為 OptimalFastest
No

提示

若要複製資料夾下的所有 Blob,只要指定 folderPath
若要複製特定名稱的單一 Blob,請以資料夾部分指定 folderPath,並以檔案名稱指定 fileName
若要複製資料夾下的 Blob 子集,請以資料夾部分指定 folderPath,並以萬用字元篩選條件指定 fileName

範例:

{
    "name": "AzureBlobDataset",
    "properties": {
        "type": "AzureBlob",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "mycontainer/myfolder",
            "fileName": "*",
            "modifiedDatetimeStart": "2018-12-01T05:00:00Z",
            "modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

複製活動的舊版來源模型

屬性 描述 必要
type 複製活動來源的 type 屬性必須設為 BlobSource Yes
遞迴 指出是否從子資料夾、或只有從指定的資料夾,以遞迴方式讀取資料。 recursive 設定為 true 且接收器是檔案型存放區時,不會在接收器上複製或建立空的資料夾或子資料夾。
允許的值為 true (預設) 和 false
No
maxConcurrentConnections 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 No

範例:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Blob input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

複製活動的舊版接收模型

屬性 描述 必要
type 複製活動接收的 type 屬性必須設為 BlobSink Yes
copyBehavior 當來源是來自檔案型資料存放區的檔案時,會定義複製行為。

允許的值如下:
- PreserveHierarchy (預設值):保留目標資料夾中的檔案階層。 來源檔案到來源資料夾的相對路徑,與目標檔案到目標資料夾的相對路徑相同。
- FlattenHierarchy:來自來源資料夾的所有檔案都在目標資料夾的第一層中。 目標檔案會有自動產生的名稱。
- MergeFiles:將來源資料夾的所有檔案合併成一個檔案。 如果有指定檔案或 Blob 名稱,合併檔案的名稱會是指定的名稱。 否則,就會是自動產生的檔案名稱。
No
maxConcurrentConnections 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 No

範例:

"activities":[
    {
        "name": "CopyToBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure Blob output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "BlobSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

變更資料擷取

在對應資料流來源轉換中,Azure Data Factory 可啟用 **[啟用異動資料擷取]**,只取得 Azure Blob 儲存體的新檔案或變更檔案。 若使用此連接器選項,您只能讀取新建或更新的檔案,並在將轉換資料載入您選擇的目的地資料集前套用轉換。 如需詳細資料,請參閱異動資料擷取

.

如需複製活動支援作為來源和接收器的資料存放區清單,請參閱支援的資料存放區