Azure Data Factory를 사용하여 Azure Blob Storage에서 데이터 복사 및 변환Copy and transform data in Azure Blob storage by using Azure Data Factory

적용 대상: Azure Data Factory Azure Synapse Analytics(미리 보기)

이 문서에서는 Azure Data Factory의 복사 작업을 사용 하 여 Azure Blob storage 간에 데이터를 복사 하는 방법을 설명 합니다.This article outlines how to use the Copy activity in Azure Data Factory to copy data from and to Azure Blob storage. 또한 데이터 흐름 작업을 사용 하 여 Azure Blob 저장소에서 데이터를 변환 하는 방법을 설명 합니다.It also describes how to use the Data Flow activity to transform data in Azure Blob storage. Azure Data Factory에 대해 자세히 알아보려면 소개 문서를 참조하세요.To learn about Azure Data Factory, read the introductory article.

Data lake 또는 데이터 웨어하우스의 마이그레이션 시나리오에 대 한 자세한 내용은 Azure Data Factory를 사용 하 여 data lake 또는 데이터 웨어하우스에서 데이터를 Azure로 마이그레이션을 참조 하세요.To learn about a migration scenario for a data lake or a data warehouse, see Use Azure Data Factory to migrate data from your data lake or data warehouse to Azure.

지원되는 기능Supported capabilities

이 Azure Blob 저장소 커넥터는 다음과 같은 작업에 대해 지원 됩니다.This Azure Blob storage connector is supported for the following activities:

복사 작업의 경우이 Blob storage 커넥터는 다음을 지원 합니다.For the Copy activity, this Blob storage connector supports:

  • 범용 Azure 스토리지 계정 및 핫/쿨 Blob Storage 간에 Blob을 복사합니다.Copying blobs to and from general-purpose Azure storage accounts and hot/cool blob storage.
  • 계정 키, 서비스 공유 액세스 서명 (SAS), 서비스 주체 또는 Azure 리소스 인증에 대 한 관리 되는 id를 사용 하 여 blob을 복사 합니다.Copying blobs by using an account key, a service shared access signature (SAS), a service principal, or managed identities for Azure resource authentications.
  • 블록, 추가 또는 페이지 Blob에서 Blob을 복사하고, 블록 Blob에만 데이터를 복사합니다.Copying blobs from block, append, or page blobs and copying data to only block blobs.
  • Blob을 있는 그대로 복사 하거나 지원 되는 파일 형식 및 압축 코덱을사용 하 여 blob을 구문 분석 하거나 생성 합니다.Copying blobs as is, or parsing or generating blobs with supported file formats and compression codecs.
  • 복사 중에 파일 메타 데이터를 유지합니다.Preserving file metadata during copy.

중요

Azure Storage 방화벽 설정에서 신뢰할 수 있는 Microsoft 서비스에서이 저장소 계정에 액세스 하도록 허용 옵션을 사용 하도록 설정 하 고 Azure integration runtime을 사용 하 여 Blob storage에 연결 하려면 관리 되는 id 인증을 사용 해야 합니다.If you enable the Allow trusted Microsoft services to access this storage account option in Azure Storage firewall settings and want to use the Azure integration runtime to connect to Blob storage, you must use managed identity authentication.

시작하기Get started

파이프라인에 복사 작업을 수행하려면 다음 도구 또는 SDK 중 하나를 사용하면 됩니다.To perform the Copy activity with a pipeline, you can use one of the following tools or SDKs:

다음 섹션에서는 Blob Storage에 특정한 Data Factory 엔터티를 정의하는 데 사용되는 속성에 대해 자세히 설명합니다.The following sections provide details about properties that are used to define Data Factory entities specific to Blob storage.

연결된 서비스 속성Linked service properties

이 Blob storage 커넥터는 다음 인증 유형을 지원 합니다.This Blob storage connector supports the following authentication types. 자세한 내용은 해당 섹션을 참조 하세요.See the corresponding sections for details.

참고

PolyBase를 사용 하 여 Azure Synapse Analytics (이전의 SQL Data Warehouse)로 데이터를 로드 하는 경우 원본 또는 스테이징 Blob 저장소가 Azure Virtual Network 끝점으로 구성 된 경우 PolyBase에서 요구 하는 대로 관리 되는 id 인증을 사용 해야 합니다.When you're using PolyBase to load data into Azure Synapse Analytics (formerly SQL Data Warehouse), if your source or staging Blob storage is configured with an Azure Virtual Network endpoint, you must use managed identity authentication as required by PolyBase. 또한 버전 3.18 이상에서 자체 호스팅 통합 런타임을 사용 해야 합니다.You must also use the self-hosted integration runtime with version 3.18 or later. 자세한 구성 필수 구성 요소는 관리 id 인증 섹션을 참조 하세요.See the Managed identity authentication section for more configuration prerequisites.

참고

Azure HDInsight 및 Azure Machine Learning 작업은 Azure Blob 저장소 계정 키를 사용 하는 인증만 지원 합니다.Azure HDInsight and Azure Machine Learning activities only support authentication that uses Azure Blob storage account keys.

계정 키 인증Account key authentication

Data Factory는 저장소 계정 키 인증에 대 한 다음 속성을 지원 합니다.Data Factory supports the following properties for storage account key authentication:

속성Property DescriptionDescription 필수Required
typetype Type 속성은 azureblobstorage (제안) 또는 azurestorage 로 설정 해야 합니다 (다음 참고 참조).The type property must be set to AzureBlobStorage (suggested) or AzureStorage (see the following notes). Yes
connectionStringconnectionString ConnectionString 속성에 대 한 저장소에 연결 하는 데 필요한 정보를 지정 합니다.Specify the information needed to connect to Storage for the connectionString property.
Azure Key Vault에 계정 키를 입력 하 고 연결 문자열에서 구성을 끌어올 수도 있습니다 accountKey .You can also put the account key in Azure Key Vault and pull the accountKey configuration out of the connection string. 자세한 내용은 Azure Key Vault 문서의 다음 샘플 및 저장소 자격 증명 을 참조 하세요.For more information, see the following samples and the Store credentials in Azure Key Vault article.
Yes
connectViaconnectVia 데이터 저장소에 연결하는 데 사용할 통합 런타임입니다.The integration runtime to be used to connect to the data store. Azure integration runtime 또는 자체 호스팅 integration runtime (데이터 저장소가 개인 네트워크에 있는 경우)을 사용할 수 있습니다.You can use the Azure integration runtime or the self-hosted integration runtime (if your data store is in a private network). 이 속성이 지정 되지 않은 경우 서비스는 기본 Azure integration runtime을 사용 합니다.If this property isn't specified, the service uses the default Azure integration runtime. NoNo

참고

계정 키 인증을 사용 하는 경우 보조 Blob service 끝점이 지원 되지 않습니다.A secondary Blob service endpoint is not supported when you're using account key authentication. 다른 인증 유형을 사용할 수 있습니다.You can use other authentication types.

참고

"AzureStorage" 형식 연결 된 서비스를 사용 하는 경우 아직 그대로 지원 됩니다.If you're using the "AzureStorage" type linked service, it's still supported as is. 그러나 앞으로 새 "AzureBlobStorage" 연결 된 서비스 유형을 사용 하는 것이 좋습니다.But we suggest that you use the new "AzureBlobStorage" linked service type going forward.

예:Example:

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

예: 계정 키를에 저장 Azure Key VaultExample: store the account key in 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"
        }            
    }
}

공유 액세스 서명 인증Shared access signature authentication

공유 액세스 서명은 스토리지 계정의 리소스에 대한 위임된 권한을 제공합니다.A shared access signature provides delegated access to resources in your storage account. 공유 액세스 서명을 사용하여 스토리지 계정의 개체에 대해 지정된 시간 동안 제한된 권한을 클라이언트에 부여할 수 있습니다.You can use a shared access signature to grant a client limited permissions to objects in your storage account for a specified time.

계정 액세스 키를 공유할 필요가 없습니다.You don't have to share your account access keys. 공유 액세스 서명은 스토리지 리소스에 대해 인증된 액세스에 필요한 모든 정보를 쿼리 매개 변수에 포함하는 URI입니다.The shared access signature is a URI that encompasses in its query parameters all the information necessary for authenticated access to a storage resource. 공유 액세스 서명을 사용하여 스토리지 리소스에 액세스하려면 클라이언트에서 공유 액세스 서명을 해당 생성자 또는 메서드에 전달하기만 하면 됩니다.To access storage resources with the shared access signature, the client only needs to pass in the shared access signature to the appropriate constructor or method.

공유 액세스 서명에 대한 자세한 내용은 공유 액세스 서명: 공유 액세스 서명 모델 이해를 참조하세요.For more information about shared access signatures, see Shared access signatures: Understand the shared access signature model.

참고

Data Factory는 공유 액세스 서명 인증을 사용 하는 다음 속성을 지원 합니다.Data Factory supports the following properties for using shared access signature authentication:

속성Property DescriptionDescription 필수Required
typetype Type 속성은 azureblobstorage (제안) 또는 azurestorage 로 설정 해야 합니다 (다음 참고 참조).The type property must be set to AzureBlobStorage (suggested) or AzureStorage (see the following note). Yes
sasUrisasUri Blob 또는 컨테이너와 같은 저장소 리소스에 대 한 공유 액세스 서명 URI를 지정 합니다.Specify the shared access signature URI to the Storage resources such as blob or container.
이 필드를 SecureString 으로 표시 하 여 Data Factory에 안전 하 게 저장 합니다.Mark this field as SecureString to store it securely in Data Factory. SAS 토큰을 Azure Key Vault에 배치 하 여 자동 회전을 사용 하 고 토큰 부분을 제거할 수도 있습니다.You can also put the SAS token in Azure Key Vault to use auto-rotation and remove the token portion. 자세한 내용은 다음 샘플 및 Azure Key Vault에 자격 증명 저장을 참조 하세요.For more information, see the following samples and Store credentials in Azure Key Vault.
Yes
connectViaconnectVia 데이터 저장소에 연결하는 데 사용할 통합 런타임입니다.The integration runtime to be used to connect to the data store. Azure integration runtime 또는 자체 호스팅 integration runtime (데이터 저장소가 개인 네트워크에 있는 경우)을 사용할 수 있습니다.You can use the Azure integration runtime or the self-hosted integration runtime (if your data store is in a private network). 이 속성이 지정 되지 않은 경우 서비스는 기본 Azure integration runtime을 사용 합니다.If this property isn't specified, the service uses the default Azure integration runtime. NoNo

참고

"AzureStorage" 형식 연결 된 서비스를 사용 하는 경우 아직 그대로 지원 됩니다.If you're using the "AzureStorage" type linked service, it's still supported as is. 그러나 앞으로 새 "AzureBlobStorage" 연결 된 서비스 유형을 사용 하는 것이 좋습니다.But we suggest that you use the new "AzureBlobStorage" linked service type going forward.

예:Example:

{
    "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 VaultExample: store the account key in 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를 만들 때 고려해야 할 사항은 다음과 같습니다.When you create a shared access signature URI, consider the following points:

  • 데이터 팩터리에서 연결된 서비스(읽기, 쓰기, 읽기/쓰기)를 사용하는 방법에 따라 개체에 대한 적절한 읽기/쓰기 권한을 설정합니다.Set appropriate read/write permissions on objects based on how the linked service (read, write, read/write) is used in your data factory.
  • 만료 시간을 적절하게 설정합니다.Set Expiry time appropriately. Storage 개체에 대한 액세스가 파이프라인의 활성 기간 내에 만료되지 않도록 합니다.Make sure that the access to Storage objects doesn't expire within the active period of the pipeline.
  • URI는 필요에 따라 올바른 컨테이너 또는 blob에 생성 되어야 합니다.The URI should be created at the right container or blob based on the need. Blob에 대한 공유 액세스 서명 URI를 사용하면 Data Factory에서 해당 특정 Blob에 액세스할 수 있습니다.A shared access signature URI to a blob allows Data Factory to access that particular blob. Blob 스토리지 컨테이너에 대한 공유 액세스 서명 URI를 사용하면 Data Factory에서 해당 컨테이너의 Blob을 반복할 수 있습니다.A shared access signature URI to a Blob storage container allows Data Factory to iterate through blobs in that container. 나중에 더 많거나 적은 개체에 대한 액세스를 제공하거나 공유 액세스 서명 URI를 업데이트하려면 연결된 서비스를 새 URI로 업데이트해야 합니다.To provide access to more or fewer objects later, or to update the shared access signature URI, remember to update the linked service with the new URI.

서비스 주체 인증Service principal authentication

Azure Storage 서비스 주체 인증에 대 한 일반 정보는 Azure Active Directory를 사용 하 여 Azure Storage에 대 한 액세스 인증을 참조 하세요.For general information about Azure Storage service principal authentication, see Authenticate access to Azure Storage using Azure Active Directory.

서비스 주체 인증을 사용하려면 다음 단계를 수행합니다.To use service principal authentication, follow these steps:

  1. Azure AD 테넌트에 애플리케이션 등록에 따라 Azure AD(Azure Active Directory)에 애플리케이션 항목을 등록합니다.Register an application entity in Azure Active Directory (Azure AD) by following Register your application with an Azure AD tenant. 연결 된 서비스를 정의 하는 데 사용 하는 다음 값을 기록해 둡니다.Make note of these values, which you use to define the linked service:

    • 애플리케이션 UIApplication ID
    • 애플리케이션 키Application key
    • 테넌트 IDTenant ID
  2. Azure Blob Storage에서 서비스 주체에게 적절한 권한을 부여합니다.Grant the service principal proper permission in Azure Blob storage. 역할에 대 한 자세한 내용은 Azure Portal를 사용 하 여 blob 및 큐 데이터에 액세스 하기 위한 Azure 역할 할당을참조 하세요.For more information on the roles, see Use the Azure portal to assign an Azure role for access to blob and queue data.

    • 원본으로 액세스 제어 (IAM) 에서 적어도 저장소 Blob 데이터 판독기 역할을 부여 합니다.As source, in Access control (IAM), grant at least the Storage Blob Data Reader role.
    • 싱크로 액세스 제어 (IAM) 에서 적어도 저장소 Blob 데이터 참가자 역할을 부여 합니다.As sink, in Access control (IAM), grant at least the Storage Blob Data Contributor role.

Azure Blob Storage 연결된 서비스에 지원되는 속성은 다음과 같습니다.These properties are supported for an Azure Blob storage linked service:

속성Property DescriptionDescription 필수Required
typetype Type 속성은 azureblobstorage로 설정 해야 합니다.The type property must be set to AzureBlobStorage. Yes
serviceEndpointserviceEndpoint 패턴이 https://<accountName>.blob.core.windows.net/인 Azure Blob Storage 서비스 엔드포인트를 지정합니다.Specify the Azure Blob storage service endpoint with the pattern of https://<accountName>.blob.core.windows.net/. Yes
accountKindaccountKind 저장소 계정의 종류를 지정 합니다.Specify the kind of your storage account. 허용 되는 값은 저장소 (범용 v1), StorageV2 (범용 V2), blobstorage또는 blockblobstorage입니다.Allowed values are: Storage (general purpose v1), StorageV2 (general purpose v2), BlobStorage, or BlockBlobStorage.
데이터 흐름에서 Azure Blob 연결 된 서비스를 사용 하는 경우 계정 종류가 비어 있거나 "저장소" 인 경우 관리 id 또는 서비스 주체 인증이 지원 되지 않습니다.When using Azure Blob linked service in data flow, managed identity or service principal authentication is not supported when account kind as empty or "Storage”. 적절 한 계정 종류를 지정 하거나 다른 인증을 선택 하거나 storage 계정을 범용 v2로 업그레이드 합니다.Specify the proper account kind, choose a different authentication, or upgrade your storage account to general purpose v2.
No
servicePrincipalIdservicePrincipalId 애플리케이션의 클라이언트 ID를 지정합니다.Specify the application's client ID. Yes
servicePrincipalKeyservicePrincipalKey 애플리케이션의 키를 지정합니다.Specify the application's key. 이 필드를 SecureString 으로 표시 하 여 Data Factory에 안전 하 게 저장 하거나 Azure Key Vault에 저장 된 암호를 참조합니다.Mark this field as SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. Yes
tenanttenant 애플리케이션이 있는 테넌트 정보(도메인 이름 또는 테넌트 ID)를 지정합니다.Specify the tenant information (domain name or tenant ID) under which your application resides. Azure Portal의 오른쪽 위 모퉁이를 가리켜 검색 합니다.Retrieve it by hovering over the upper-right corner of the Azure portal. Yes
azureCloudTypeazureCloudType 서비스 사용자 인증의 경우 Azure Active Directory 응용 프로그램이 등록 된 Azure 클라우드 환경의 유형을 지정 합니다.For service principal authentication, specify the type of Azure cloud environment, to which your Azure Active Directory application is registered.
허용 되는 값은 Azurepublic, azurepublic, azureus정부AzureGermany입니다.Allowed values are AzurePublic, AzureChina, AzureUsGovernment, and AzureGermany. 기본적으로 데이터 팩터리의 클라우드 환경이 사용 됩니다.By default, the data factory's cloud environment is used.
No
connectViaconnectVia 데이터 저장소에 연결하는 데 사용할 통합 런타임입니다.The integration runtime to be used to connect to the data store. Azure integration runtime 또는 자체 호스팅 integration runtime (데이터 저장소가 개인 네트워크에 있는 경우)을 사용할 수 있습니다.You can use the Azure integration runtime or the self-hosted integration runtime (if your data store is in a private network). 이 속성이 지정 되지 않은 경우 서비스는 기본 Azure integration runtime을 사용 합니다.If this property isn't specified, the service uses the default Azure integration runtime. NoNo

참고

Blob 계정에서 일시 삭제를 사용 하는 경우 서비스 주체 인증이 데이터 흐름에서 지원 되지 않습니다.If your blob account enables soft delete, service principal authentication is not supported in Data Flow.

참고

서비스 사용자 인증은 이전 "AzureStorage" 형식 연결 된 서비스가 아닌 "AzureBlobStorage" 유형의 연결 된 서비스 에서만 지원 됩니다.Service principal authentication is supported only by the "AzureBlobStorage" type linked service, not the previous "AzureStorage" type linked service.

예:Example:

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

Azure 리소스 인증에 대 한 관리 되는 idManaged identities for Azure resource authentication

특정 데이터 팩터리를 나타내는 Azure 리소스용 관리 ID와 데이터 팩터리를 연결할 수 있습니다.A data factory can be associated with a managed identity for Azure resources, which represents this specific data factory. 사용자 고유의 서비스 주체를 사용 하는 것과 비슷한 Blob storage 인증에 대해이 관리 되는 id를 직접 사용할 수 있습니다.You can directly use this managed identity for Blob storage authentication, which is similar to using your own service principal. 이 지정 된 팩터리에서 Blob 저장소에서 데이터에 액세스 하 고 복사할 수 있습니다.It allows this designated factory to access and copy data from or to Blob storage.

Azure Storage 인증에 대 한 일반 정보는 Azure Active Directory를 사용 하 여 Azure Storage에 대 한 액세스 인증을 참조 하세요.For general information about Azure Storage authentication, see Authenticate access to Azure Storage using Azure Active Directory. Azure 리소스 인증에 관리 되는 id를 사용 하려면 다음 단계를 수행 합니다.To use managed identities for Azure resource authentication, follow these steps:

  1. 팩터리와 함께 생성 된 관리 id 개체 ID의 값을 복사 하 여 관리 되는 id 정보를 Data Factory 검색 합니다.Retrieve Data Factory managed identity information by copying the value of the managed identity object ID generated along with your factory.

  2. Azure Blob storage에서 관리 id 사용 권한을 부여 합니다.Grant the managed identity permission in Azure Blob storage. 역할에 대 한 자세한 내용은 Azure Portal를 사용 하 여 blob 및 큐 데이터에 액세스 하기 위한 Azure 역할 할당을참조 하세요.For more information on the roles, see Use the Azure portal to assign an Azure role for access to blob and queue data.

    • 원본으로 액세스 제어 (IAM) 에서 적어도 저장소 Blob 데이터 판독기 역할을 부여 합니다.As source, in Access control (IAM), grant at least the Storage Blob Data Reader role.
    • 싱크로 액세스 제어 (IAM) 에서 적어도 저장소 Blob 데이터 참가자 역할을 부여 합니다.As sink, in Access control (IAM), grant at least the Storage Blob Data Contributor role.

중요

PolyBase를 사용 하 여 Blob 저장소 (이전에는 SQL Data Warehouse)에서 Blob 저장소로 데이터를 로드 하는 경우 Blob storage에 대해 관리 id 인증을 사용 하는 경우 이 가이드의 1 단계와 2 단계를 수행 해야 합니다.If you use PolyBase to load data from Blob storage (as a source or as staging) into Azure Synapse Analytics (formerly SQL Data Warehouse), when you're using managed identity authentication for Blob storage, make sure you also follow steps 1 and 2 in this guidance. 이러한 단계에서는 서버를 Azure AD에 등록 하 고 저장소 Blob 데이터 참가자 역할을 서버에 할당 합니다.Those steps will register your server with Azure AD and assign the Storage Blob Data Contributor role to your server. Data Factory 나머지를 처리 합니다.Data Factory handles the rest. Azure Virtual Network 끝점을 사용 하 여 Blob 저장소를 구성한 경우 PolyBase를 사용 하 여 데이터를 로드 하려면 PolyBase에서 요구 하는 대로 관리 되는 id 인증을 사용 해야 합니다.If you configured Blob storage with an Azure Virtual Network endpoint, to use PolyBase to load data from it, you must use managed identity authentication as required by PolyBase.

Azure Blob Storage 연결된 서비스에 지원되는 속성은 다음과 같습니다.These properties are supported for an Azure Blob storage linked service:

속성Property DescriptionDescription 필수Required
typetype Type 속성은 azureblobstorage로 설정 해야 합니다.The type property must be set to AzureBlobStorage. Yes
serviceEndpointserviceEndpoint 패턴이 https://<accountName>.blob.core.windows.net/인 Azure Blob Storage 서비스 엔드포인트를 지정합니다.Specify the Azure Blob storage service endpoint with the pattern of https://<accountName>.blob.core.windows.net/. Yes
accountKindaccountKind 저장소 계정의 종류를 지정 합니다.Specify the kind of your storage account. 허용 되는 값은 저장소 (범용 v1), StorageV2 (범용 V2), blobstorage또는 blockblobstorage입니다.Allowed values are: Storage (general purpose v1), StorageV2 (general purpose v2), BlobStorage, or BlockBlobStorage.
데이터 흐름에서 Azure Blob 연결 된 서비스를 사용 하는 경우 계정 종류가 비어 있거나 "저장소" 인 경우 관리 id 또는 서비스 주체 인증이 지원 되지 않습니다.When using Azure Blob linked service in data flow, managed identity or service principal authentication is not supported when account kind as empty or "Storage”. 적절 한 계정 종류를 지정 하거나 다른 인증을 선택 하거나 storage 계정을 범용 v2로 업그레이드 합니다.Specify the proper account kind, choose a different authentication, or upgrade your storage account to general purpose v2.
No
connectViaconnectVia 데이터 저장소에 연결하는 데 사용할 통합 런타임입니다.The integration runtime to be used to connect to the data store. Azure integration runtime 또는 자체 호스팅 integration runtime (데이터 저장소가 개인 네트워크에 있는 경우)을 사용할 수 있습니다.You can use the Azure integration runtime or the self-hosted integration runtime (if your data store is in a private network). 이 속성이 지정 되지 않은 경우 서비스는 기본 Azure integration runtime을 사용 합니다.If this property isn't specified, the service uses the default Azure integration runtime. NoNo

참고

Blob 계정에서 일시 삭제를 사용 하는 경우 관리 되는 Id 인증은 데이터 흐름에서 지원 되지 않습니다.If your blob account enables soft delete, managed identity authentication is not supported in Data Flow.

참고

Azure 리소스 인증에 대 한 관리 되는 id는 이전의 "AzureStorage" 형식 연결 된 서비스가 아닌 "AzureBlobStorage" 유형의 연결 된 서비스 에서만 지원 됩니다.Managed identities for Azure resource authentication are supported only by the "AzureBlobStorage" type linked service, not the previous "AzureStorage" type linked service.

예:Example:

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

데이터 세트 속성Dataset properties

데이터 세트 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 데이터 세트 문서를 참조하세요.For a full list of sections and properties available for defining datasets, see the Datasets article.

Azure Data Factory는 다음과 같은 파일 형식을 지원합니다.Azure Data Factory supports the following file formats. 형식 기반 설정에 대한 각 문서를 참조하세요.Refer to each article for format-based settings.

형식 기반 데이터 집합의 설정에서 Azure Blob storage에 대해 지원 되는 속성은 다음과 location 같습니다.The following properties are supported for Azure Blob storage under location settings in a format-based dataset:

속성Property DescriptionDescription 필수Required
typetype 데이터 집합에 있는 위치의 type 속성은 Azureblobstoragelocation으로 설정 해야 합니다.The type property of the location in the dataset must be set to AzureBlobStorageLocation. Yes
containercontainer Blob 컨테이너입니다.The blob container. Yes
folderPathfolderPath 지정 된 컨테이너 아래에 있는 폴더의 경로입니다.The path to the folder under the given container. 와일드 카드를 사용 하 여 폴더를 필터링 하려면이 설정을 건너뛰고 작업 원본 설정에서 지정 합니다.If you want to use a wildcard to filter the folder, skip this setting and specify that in activity source settings. No
fileNamefileName 지정 된 컨테이너 및 폴더 경로 아래에 있는 파일 이름입니다.The file name under the given container and folder path. 와일드 카드를 사용 하 여 파일을 필터링 하려는 경우이 설정을 건너뛰고 작업 원본 설정에서 지정 합니다.If you want to use wildcard to filter files, skip this setting and specify that in activity source settings. No

예:Example:

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

복사 작업 속성Copy activity properties

작업 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 파이프라인 문서를 참조하세요.For a full list of sections and properties available for defining activities, see the Pipelines article. 이 섹션에서는 Blob 저장소 원본 및 싱크에서 지 원하는 속성의 목록을 제공 합니다.This section provides a list of properties that the Blob storage source and sink support.

Blob Storage를 원본 형식으로Blob storage as a source type

Azure Data Factory는 다음과 같은 파일 형식을 지원합니다.Azure Data Factory supports the following file formats. 형식 기반 설정에 대한 각 문서를 참조하세요.Refer to each article for format-based settings.

다음은 storeSettings 형식 기반 복사 원본에서 설정 아래의 Azure Blob storage에 대해 지원 되는 속성입니다.The following properties are supported for Azure Blob storage under storeSettings settings in a format-based copy source:

속성Property DescriptionDescription 필수Required
typetype 아래의 type 속성은 storeSettings Azureblobstoragereadsettings로 설정 되어야 합니다.The type property under storeSettings must be set to AzureBlobStorageReadSettings. Yes
복사할 파일 찾기:Locate the files to copy:
옵션 1: 정적 경로OPTION 1: static path
제공된 컨테이너 또는 데이터 세트에 지정된 폴더/파일 경로에서 복사합니다.Copy from the given container or folder/file path specified in the dataset. 컨테이너 또는 폴더에서 모든 blob을 복사 하려면 as를 추가로 지정 wildcardFileName * 합니다.If you want to copy all blobs from a container or folder, additionally specify wildcardFileName as *.
옵션 2: Blob 접두사OPTION 2: blob prefix
- prefix- prefix
원본 blob을 필터링 하기 위해 데이터 집합에 구성 된 지정 된 컨테이너 아래의 blob 이름에 대 한 접두사입니다.Prefix for the blob name under the given container configured in a dataset to filter source blobs. 이름이로 시작 하 container_in_dataset/this_prefix 는 blob이 선택 됩니다.Blobs whose names start with container_in_dataset/this_prefix are selected. Blob 저장소에 대 한 서비스 쪽 필터를 활용 하 여 와일드 카드 필터 보다 더 나은 성능을 제공 합니다.It utilizes the service-side filter for Blob storage, which provides better performance than a wildcard filter. No
옵션 3: 와일드카드OPTION 3: wildcard
- wildcardFolderPath- wildcardFolderPath
원본 폴더를 필터링 하기 위해 데이터 집합에 구성 된 지정 된 컨테이너 아래에 와일드 카드 문자가 있는 폴더 경로입니다.The folder path with wildcard characters under the given container configured in a dataset to filter source folders.
허용되는 와일드카드는 *(문자 0자 이상 일치) 및 ?(문자 0자 또는 1자 일치)입니다.Allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character). ^폴더 이름에 와일드 카드나이 이스케이프 문자가 있으면를 사용 하 여를 이스케이프 처리 합니다.Use ^ to escape if your folder name has wildcard or this escape character inside.
더 많은 예는 폴더 및 파일 필터 예제를 참조하세요.See more examples in Folder and file filter examples.
No
옵션 3: 와일드카드OPTION 3: wildcard
- wildcardFileName- wildcardFileName
소스 파일을 필터링 하기 위해 지정 된 컨테이너 및 폴더 경로 (또는 와일드 카드 폴더 경로) 아래에 와일드 카드 문자가 있는 파일 이름입니다.The file name with wildcard characters under the given container and folder path (or wildcard folder path) to filter source files.
허용되는 와일드카드는 *(문자 0자 이상 일치) 및 ?(문자 0자 또는 1자 일치)입니다.Allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character). ^폴더 이름에 와일드 카드나이 이스케이프 문자가 있으면를 사용 하 여를 이스케이프 합니다.Use ^ to escape if your folder name has a wildcard or this escape character inside. 더 많은 예는 폴더 및 파일 필터 예제를 참조하세요.See more examples in Folder and file filter examples.
Yes
옵션 4: 파일 목록OPTION 4: a list of files
- fileListPath- fileListPath
지정된 파일 집합을 복사하도록 지정합니다.Indicates to copy a given file set. 복사할 파일 목록이 포함 된 텍스트 파일을 가리키고, 데이터 집합에 구성 된 경로에 대 한 상대 경로인 한 줄에 하나씩 파일을 표시 합니다.Point to a text file that includes a list of files you want to copy, one file per line, which is the relative path to the path configured in the dataset.
이 옵션을 사용 하는 경우 데이터 집합에서 파일 이름을 지정 하지 마십시오.When you're using this option, do not specify a file name in the dataset. 파일 목록 예에서 더 많은 예를 참조하세요.See more examples in File list examples.
No
추가 설정:Additional settings:
recursiverecursive 하위 폴더 또는 지정된 폴더에서만 데이터를 재귀적으로 읽을지 여부를 나타냅니다.Indicates whether the data is read recursively from the subfolders or only from the specified folder. Recursivetrue 로 설정 하 고 싱크가 파일 기반 저장소 인 경우 빈 폴더 또는 하위 폴더가 싱크에 복사 되거나 생성 되지 않습니다.Note that when recursive is set to true and the sink is a file-based store, an empty folder or subfolder isn't copied or created at the sink.
허용되는 값은 true(기본값) 및 false입니다.Allowed values are true (default) and false.
fileListPath를 구성하는 경우에는 이 속성이 적용되지 않습니다.This property doesn't apply when you configure fileListPath.
No
deleteFilesAfterCompletiondeleteFilesAfterCompletion 대상 저장소로 이동한 후에 소스 저장소에서 이진 파일을 삭제할지 여부를 나타냅니다.Indicates whether the binary files will be deleted from source store after successfully moving to the destination store. 파일 삭제는 파일 단위 이므로 복사 작업에 실패 하면 일부 파일이 이미 대상에 복사 되 고 원본에서 삭제 된 것을 확인할 수 있습니다. 반면 다른 파일은 원본 저장소에 남아 있습니다.The file deletion is per file, so when copy activity fails, you will see some files have already been copied to the destination and deleted from source, while others are still remaining on source store.
이 속성은 이진 파일 복사 시나리오 에서만 사용할 수 있습니다.This property is only valid in binary files copy scenario. 기본값은 false입니다.The default value: false.
No
modifiedDatetimeStartmodifiedDatetimeStart 파일은 특성을 기준으로 필터링 됩니다. 마지막으로 수정한 날짜입니다.Files are filtered based on the attribute: last modified.
마지막 수정 시간이 modifiedDatetimeStartmodifiedDatetimeEnd 사이의 시간 범위 내에 있으면 파일이 선택됩니다.The files will be selected if their last modified time is within the time range between modifiedDatetimeStart and modifiedDatetimeEnd. 시간은 "2018-12-01T05:00:00Z" 형식의 UTC 표준 시간대에 적용 됩니다.The time is applied to a UTC time zone in the format of "2018-12-01T05:00:00Z".
속성은 NULL일 수 있습니다. 즉, 파일 특성 필터가 데이터 집합에 적용 되지 않습니다.The properties can be NULL, which means no file attribute filter will be applied to the dataset. modifiedDatetimeStart에 datetime 값이 있지만 modifiedDatetimeEndNULL이면 마지막으로 수정 된 특성이 datetime 값 보다 크거나 같은 파일이 선택 됩니다.When modifiedDatetimeStart has a datetime value but modifiedDatetimeEnd is NULL, the files whose last modified attribute is greater than or equal to the datetime value will be selected. modifiedDatetimeEnd에 datetime 값이 있지만 modifiedDatetimeStartNULL이면 마지막으로 수정 된 특성이 datetime 값 보다 작은 파일이 선택 됩니다.When modifiedDatetimeEnd has a datetime value but modifiedDatetimeStart is NULL, the files whose last modified attribute is less than the datetime value will be selected.
fileListPath를 구성하는 경우에는 이 속성이 적용되지 않습니다.This property doesn't apply when you configure fileListPath.
No
modifiedDatetimeEndmodifiedDatetimeEnd 위와 동일합니다.Same as above. No
Enable파티션 검색enablePartitionDiscovery 분할 된 파일의 경우 파일 경로에서 파티션을 구문 분석할 지 여부를 지정 하 고 추가 원본 열로 추가 합니다.For files that are partitioned, specify whether to parse the partitions from the file path and add them as additional source columns.
허용 되는 값은 false (기본값) 및 true입니다.Allowed values are false (default) and true.
NoNo
파티션 (partitionRootPath)partitionRootPath 파티션 검색을 사용 하는 경우 분할 된 폴더를 데이터 열로 읽도록 절대 루트 경로를 지정 합니다.When partition discovery is enabled, specify the absolute root path in order to read partitioned folders as data columns.

지정 되지 않은 경우 기본적으로If it is not specified, by default,
-원본에 있는 파일 또는 데이터 집합의 파일 경로를 사용 하는 경우 파티션 루트 경로는 데이터 집합에서 구성 된 경로입니다.- When you use file path in dataset or list of files on source, partition root path is the path configured in dataset.
-와일드 카드 폴더 필터를 사용 하는 경우 파티션 루트 경로는 첫 번째 와일드 카드 앞의 하위 경로입니다.- When you use wildcard folder filter, partition root path is the sub-path before the first wildcard.
-접두사를 사용 하는 경우 파티션 루트 경로는 마지막 "/" 앞의 하위 경로입니다.- When you use prefix, partition root path is sub-path before the last "/".

예를 들어 데이터 집합의 경로를 "root/folder/year = 2020/month = 08/day = 27"로 구성 한다고 가정 합니다.For example, assuming you configure the path in dataset as "root/folder/year=2020/month=08/day=27":
-파티션 루트 경로를 "root/folder/year = 2020"으로 지정 하는 경우 복사 작업은 파일 내의 열 외에도 각각 두 개의 열을 생성 하 monthday 값을 "08" 및 "27"로 생성 합니다.- If you specify partition root path as "root/folder/year=2020", copy activity will generate two more columns month and day with value "08" and "27" respectively, in addition to the columns inside the files.
-파티션 루트 경로를 지정 하지 않으면 추가 열이 생성 되지 않습니다.- If partition root path is not specified, no extra column will be generated.
No
maxConcurrentConnectionsmaxConcurrentConnections 저장소에 대 한 동시 연결 수입니다.The number of concurrent connections to storage. 데이터 저장소에 대 한 동시 연결 수를 제한 하려는 경우에만를 지정 합니다.Specify only when you want to limit concurrent connections to the data store. NoNo

참고

Parquet/구분 된 텍스트 형식의 경우 다음 섹션에 언급 된 복사 작업 원본에 대 한 blobsource 형식은 이전 버전과의 호환성을 위해 계속 지원 됩니다.For Parquet/delimited text format, the BlobSource type for the Copy activity source mentioned in the next section is still supported as is for backward compatibility. Data Factory 작성 UI가 이러한 새 형식을 생성 하도록 전환 될 때까지 새 모델을 사용 하는 것이 좋습니다.We suggest that you use the new model until the Data Factory authoring UI has switched to generating these new types.

예:Example:

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

Blob Storage를 싱크 형식으로Blob storage as a sink type

Azure Data Factory은 다음과 같은 파일 형식을 지원 합니다.Azure Data Factory supports the following file formats. 서식 기반 설정에 대 한 각 문서를 참조 하세요.Refer to each article for format-based settings.

형식 기반 복사 싱크의 설정에서 Azure Blob storage에 대해 지원 되는 속성은 다음과 storeSettings 같습니다.The following properties are supported for Azure Blob storage under storeSettings settings in a format-based copy sink:

속성Property DescriptionDescription 필수Required
typetype 아래의 type 속성은 storeSettings Azureblobstoragewritesettings로 설정 되어야 합니다.The type property under storeSettings must be set to AzureBlobStorageWriteSettings. Yes
copyBehaviorcopyBehavior 원본이 파일 기반 데이터 저장소의 파일인 경우 복사 동작을 정의합니다.Defines the copy behavior when the source is files from a file-based data store.

허용된 값은Allowed values are:
- PreserveHierarchy(기본값): 대상 폴더에서 파일 계층 구조를 유지합니다.- PreserveHierarchy (default): Preserves the file hierarchy in the target folder. 원본 폴더의 원본 파일 상대 경로는 대상 폴더의 대상 파일 상대 경로와 동일합니다.The relative path of the source file to the source folder is identical to the relative path of the target file to the target folder.
- FlattenHierarchy: 원본 폴더의 모든 파일이 대상 폴더의 첫 번째 수준에 있습니다.- FlattenHierarchy: All files from the source folder are in the first level of the target folder. 대상 파일은 자동 생성된 이름을 갖습니다.The target files have autogenerated names.
- MergeFiles: 원본 폴더의 모든 파일을 하나의 파일로 병합합니다.- MergeFiles: Merges all files from the source folder to one file. 병합되는 파일 이름은 지정된 파일 또는 Blob 이름이 적용됩니다.If the file or blob name is specified, the merged file name is the specified name. 그렇지 않으면 자동 생성되는 파일 이름이 적용됩니다.Otherwise, it's an autogenerated file name.
No
blockSizeInMBblockSizeInMB 블록 blob에 데이터를 쓰는 데 사용 되는 블록 크기 (mb)를 지정 합니다.Specify the block size, in megabytes, used to write data to block blobs. 블록 Blob에 대한 자세한 내용을 알아보세요.Learn more about Block Blobs.
허용 되는 값은 4mb에서 100 mb 사이입니다.Allowed value is between 4 MB and 100 MB.
기본적으로 Data Factory는 원본 저장소 형식 및 데이터를 기반으로 블록 크기를 자동으로 결정 합니다.By default, Data Factory automatically determines the block size based on your source store type and data. Blob storage로 복사 하는 이진이 아닌의 경우 기본 블록 크기는 100 이며 최대 4.95 TB의 데이터에 맞출 수 있습니다.For nonbinary copy into Blob storage, the default block size is 100 MB so it can fit in (at most) 4.95 TB of data. 특히 작업 시간 초과 또는 성능 문제를 초래 하는 네트워크 연결이 좋지 않은 자체 호스팅 통합 런타임을 사용 하는 경우 데이터가 크지 않은 경우에는 최적이 아닐 수 있습니다.It might be not optimal when your data is not large, especially when you use the self-hosted integration runtime with poor network connections that result in operation timeout or performance issues. 블록 크기를 명시적으로 지정 하는 동시에 blockSizeInMB*50000 데이터를 저장 하기에 충분 한 크기를 보장할 수 있습니다.You can explicitly specify a block size, while ensuring that blockSizeInMB*50000 is big enough to store the data. 그렇지 않으면 복사 작업 실행이 실패 합니다.Otherwise, the Copy activity run will fail.
No
maxConcurrentConnectionsmaxConcurrentConnections 저장소에 대 한 동시 연결 수입니다.The number of concurrent connections to storage. 데이터 저장소에 대 한 동시 연결 수를 제한 하려는 경우에만를 지정 합니다.Specify only when you want to limit concurrent connections to the data store. No

예:Example:

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

폴더 및 파일 필터 예제Folder and file filter examples

이 섹션에서는 와일드카드 필터가 있는 폴더 경로 및 파일 이름의 결과 동작에 대해 설명합니다.This section describes the resulting behavior of the folder path and file name with wildcard filters.

folderPathfolderPath fileNamefileName recursiverecursive 원본 폴더 구조 및 필터 결과(굵게 표시된 파일이 검색됨)Source folder structure and filter result (files in bold are retrieved)
container/Folder* (비어 있음, 기본값 사용)(empty, use default) falsefalse containercontainer
    FolderA    FolderA
        File1.csv        File1.csv
        File2.json        File2.json
        Subfolder1        Subfolder1
            File3.csv            File3.csv
            File4.json            File4.json
            File5.csv            File5.csv
    AnotherFolderB    AnotherFolderB
        File6.csv        File6.csv
container/Folder* (비어 있음, 기본값 사용)(empty, use default) truetrue containercontainer
    FolderA    FolderA
        File1.csv        File1.csv
        File2.json        File2.json
        Subfolder1        Subfolder1
            File3.csv            File3.csv
            File4.json            File4.json
            File5.csv            File5.csv
    AnotherFolderB    AnotherFolderB
        File6.csv        File6.csv
container/Folder* *.csv falsefalse containercontainer
    FolderA    FolderA
        File1.csv        File1.csv
        File2.json        File2.json
        Subfolder1        Subfolder1
            File3.csv            File3.csv
            File4.json            File4.json
            File5.csv            File5.csv
    AnotherFolderB    AnotherFolderB
        File6.csv        File6.csv
container/Folder* *.csv truetrue containercontainer
    FolderA    FolderA
        File1.csv        File1.csv
        File2.json        File2.json
        Subfolder1        Subfolder1
            File3.csv            File3.csv
            File4.json            File4.json
            File5.csv            File5.csv
    AnotherFolderB    AnotherFolderB
        File6.csv        File6.csv

파일 목록 예File list examples

이 섹션에서는 복사 작업 원본에서 파일 목록 경로를 사용 하는 경우의 결과 동작을 설명 합니다.This section describes the resulting behavior of using a file list path in the Copy activity source.

다음 원본 폴더 구조가 있고 파일을 굵게 표시 한다고 가정 합니다.Assume that you have the following source folder structure and want to copy the files in bold:

샘플 원본 구조Sample source structure FileListToCopy.txt의 콘텐츠Content in FileListToCopy.txt Data Factory 구성Data Factory configuration
containercontainer
    FolderA    FolderA
        File1.csv        File1.csv
        File2.json        File2.json
        Subfolder1        Subfolder1
            File3.csv            File3.csv
            File4.json            File4.json
            File5.csv            File5.csv
    메타데이터    Metadata
        FileListToCopy.txt        FileListToCopy.txt
File1.csvFile1.csv
Subfolder1/File3.csvSubfolder1/File3.csv
Subfolder1/File5.csvSubfolder1/File5.csv
데이터 세트:In dataset:
- 컨테이너: container- Container: container
- 폴더 경로: FolderA- Folder path: FolderA

복사 활동 원본에서:In Copy activity source:
- 파일 목록 경로: container/Metadata/FileListToCopy.txt- File list path: container/Metadata/FileListToCopy.txt

파일 목록 경로는 데이터 집합에 구성 된 경로에 대 한 상대 경로를 사용 하 여 복사 하려는 파일 목록이 포함 된 동일한 데이터 저장소의 텍스트 파일을 한 줄에 하나씩 가리킵니다.The file list path points to a text file in the same data store that includes a list of files you want to copy, one file per line, with the relative path to the path configured in the dataset.

일부 recursive 및 copyBehavior 예제Some recursive and copyBehavior examples

이 섹션에서는 여러 가지 재귀 및 복사 동작 값 조합에 대 한 복사 작업의 결과 동작을 설명 합니다.This section describes the resulting behavior of the Copy operation for different combinations of recursive and copyBehavior values.

recursiverecursive copyBehaviorcopyBehavior 원본 폴더 구조Source folder structure 결과 대상Resulting target
truetrue preserveHierarchypreserveHierarchy Folder1Folder1
    File1    File1
    File2    File2
    Subfolder1    Subfolder1
        File3        File3
        File4        File4
        File5        File5
대상 폴더인 Folder1는 원본과 동일한 구조를 사용 하 여 만들어집니다.The target folder, Folder1, is created with the same structure as the source:

Folder1Folder1
    File1    File1
    File2    File2
    Subfolder1    Subfolder1
        File3        File3
        File4        File4
        File5        File5
truetrue flattenHierarchyflattenHierarchy Folder1Folder1
    File1    File1
    File2    File2
    Subfolder1    Subfolder1
        File3        File3
        File4        File4
        File5        File5
대상 폴더인 Folder1는 다음과 같은 구조로 만들어집니다.The target folder, Folder1, is created with the following structure:

Folder1Folder1
    File1에 대해 자동 생성된 이름    autogenerated name for File1
    File2에 대해 자동 생성된 이름    autogenerated name for File2
    File3에 대해 자동 생성된 이름    autogenerated name for File3
    File4에 대해 자동 생성된 이름    autogenerated name for File4
    File5에 대해 자동 생성된 이름    autogenerated name for File5
truetrue mergeFilesmergeFiles Folder1Folder1
    File1    File1
    File2    File2
    Subfolder1    Subfolder1
        File3        File3
        File4        File4
        File5        File5
대상 폴더인 Folder1는 다음과 같은 구조로 만들어집니다.The target folder, Folder1, is created with the following structure:

Folder1Folder1
    File1, File2, File3, File4 및 File5의 내용이 자동 생성된 파일 이름이 있는 하나의 파일로 병합됩니다.    File1 + File2 + File3 + File4 + File5 contents are merged into one file with an autogenerated file name.
falsefalse preserveHierarchypreserveHierarchy Folder1Folder1
    File1    File1
    File2    File2
    Subfolder1    Subfolder1
        File3        File3
        File4        File4
        File5        File5
대상 폴더인 Folder1는 다음과 같은 구조로 만들어집니다.The target folder, Folder1, is created with the following structure:

Folder1Folder1
    File1    File1
    File2    File2

File3, File4, File5를 포함한 Subfolder1은 선택되지 않습니다.Subfolder1 with File3, File4, and File5 is not picked up.
falsefalse flattenHierarchyflattenHierarchy Folder1Folder1
    File1    File1
    File2    File2
    Subfolder1    Subfolder1
        File3        File3
        File4        File4
        File5        File5
대상 폴더인 Folder1는 다음과 같은 구조로 만들어집니다.The target folder, Folder1, is created with the following structure:

Folder1Folder1
    File1에 대해 자동 생성된 이름    autogenerated name for File1
    File2에 대해 자동 생성된 이름    autogenerated name for File2

File3, File4, File5를 포함한 Subfolder1은 선택되지 않습니다.Subfolder1 with File3, File4, and File5 is not picked up.
falsefalse mergeFilesmergeFiles Folder1Folder1
    File1    File1
    File2    File2
    Subfolder1    Subfolder1
        File3        File3
        File4        File4
        File5        File5
대상 폴더인 Folder1는 다음과 같은 구조로 만들어집니다.The target folder, Folder1, is created with the following structure:

Folder1Folder1
    File1과 File2의 내용이 자동 생성된 파일 이름이 있는 하나의 파일로 병합됩니다.    File1 + File2 contents are merged into one file with an autogenerated file name. File1에 대해 자동 생성된 이름autogenerated name for File1

File3, File4, File5를 포함한 Subfolder1은 선택되지 않습니다.Subfolder1 with File3, File4, and File5 is not picked up.

복사 중 메타 데이터 유지Preserving metadata during copy

Amazon S3, Azure Blob storage 또는 Azure Data Lake Storage Gen2에서 Azure Data Lake Storage Gen2 또는 Azure Blob storage로 파일을 복사 하는 경우 데이터와 함께 파일 메타 데이터를 유지 하도록 선택할 수 있습니다.When you copy files from Amazon S3, Azure Blob storage, or Azure Data Lake Storage Gen2 to Azure Data Lake Storage Gen2 or Azure Blob storage, you can choose to preserve the file metadata along with data. 메타데이터 유지에서 자세히 알아보세요.Learn more from Preserve metadata.

매핑 데이터 흐름 속성Mapping data flow properties

매핑 데이터 흐름에서 데이터를 변환 하는 경우 Azure Blob storage에서 다음과 같은 형식으로 파일을 읽고 쓸 수 있습니다.When you're transforming data in mapping data flows, you can read and write files from Azure Blob storage in the following formats:

서식 지정 설정은 해당 형식에 대 한 설명서에 있습니다.Format specific settings are located in the documentation for that format. 자세한 내용은 데이터 흐름 매핑에서 데이터 흐름 매핑 및 싱크 변환 의 원본 변환 을 참조 하세요.For more information, see Source transformation in mapping data flow and Sink transformation in mapping data flow.

원본 변환Source transformation

원본 변환에서 Azure Blob 저장소의 컨테이너, 폴더 또는 개별 파일을 읽을 수 있습니다.In source transformation, you can read from a container, folder, or individual file in Azure Blob storage. 원본 옵션 탭을 사용 하 여 파일을 읽는 방법을 관리할 수 있습니다.Use the Source options tab to manage how the files are read.

원본 옵션Source options

와일드 카드 경로: 와일드 카드 패턴을 사용 하면 일치 하는 각 폴더와 파일을 단일 원본 변환에서 반복 하도록 Data Factory에 지시할 수 있습니다.Wildcard paths: Using a wildcard pattern will instruct Data Factory to loop through each matching folder and file in a single source transformation. 이는 단일 흐름 내에서 여러 파일을 처리하는 효과적인 방법입니다.This is an effective way to process multiple files within a single flow. 기존 와일드 카드 패턴을 마우스로 가리킬 때 표시 되는 더하기 기호를 사용 하 여 와일드 카드 일치 패턴을 여러 개 추가 합니다.Add multiple wildcard matching patterns with the plus sign that appears when you hover over your existing wildcard pattern.

원본 컨테이너에서 패턴과 일치하는 일련의 파일을 선택합니다.From your source container, choose a series of files that match a pattern. 데이터 집합에는 컨테이너만 지정할 수 있습니다.Only a container can be specified in the dataset. 따라서 와일드카드 경로에는 루트 폴더의 폴더 경로도 포함되어야 합니다.Your wildcard path must therefore also include your folder path from the root folder.

와일드카드 예제:Wildcard examples:

  • * 모든 문자 집합을 나타냅니다.* Represents any set of characters.

  • ** 재귀 디렉터리 중첩을 나타냅니다.** Represents recursive directory nesting.

  • ? 한 문자를 대체 합니다.? Replaces one character.

  • [] 대괄호에서 하나 이상의 문자를 찾습니다.[] Matches one or more characters in the brackets.

  • /data/sales/**/*.csv /Data/sales. 아래의 모든 .csv 파일을 가져옵니다./data/sales/**/*.csv Gets all .csv files under /data/sales.

  • /data/sales/20??/**/ 20 세기의 모든 파일을 가져옵니다./data/sales/20??/**/ Gets all files in the 20th century.

  • /data/sales/*/*/*.csv /Data/sales.에서 .csv 파일을 두 수준으로 가져옵니다./data/sales/*/*/*.csv Gets .csv files two levels under /data/sales.

  • /data/sales/2004/*/12/[XY]1?.csv X 또는 Y 접두사가 2 자리 숫자로 시작 하는 12 월 2004의 모든 .csv 파일을 가져옵니다./data/sales/2004/*/12/[XY]1?.csv Gets all .csv files in December 2004 starting with X or Y prefixed by a two-digit number.

파티션 루트 경로: 파일 원본에 형식으로 분할 된 폴더가 있는 경우 key=value (예: year=2019 ) 해당 파티션 폴더 트리의 최상위 수준을 데이터 흐름의 데이터 스트림에 있는 열 이름에 할당할 수 있습니다.Partition root path: If you have partitioned folders in your file source with a key=value format (for example, year=2019), then you can assign the top level of that partition folder tree to a column name in your data flow's data stream.

먼저 분할 된 폴더와 읽을 리프 파일의 모든 경로를 포함 하도록 와일드 카드를 설정 합니다.First, set a wildcard to include all paths that are the partitioned folders plus the leaf files that you want to read.

파티션 원본 파일 설정Partition source file settings

파티션 루트 경로 설정을 사용 하 여 폴더 구조의 최상위 수준을 정의 합니다.Use the Partition root path setting to define what the top level of the folder structure is. 데이터 미리 보기를 통해 데이터의 내용을 볼 때 각 폴더 수준에서 발견 된 확인 된 파티션을 Data Factory 추가 하는 것을 볼 수 있습니다.When you view the contents of your data via a data preview, you'll see that Data Factory will add the resolved partitions found in each of your folder levels.

파티션 루트 경로Partition root path

파일 목록: 파일 집합입니다.List of files: This is a file set. 처리할 상대 경로 파일 목록이 포함된 텍스트 파일을 만듭니다.Create a text file that includes a list of relative path files to process. 이 텍스트 파일을 가리킵니다.Point to this text file.

파일 이름을 저장할 열: 원본 파일의 이름을 데이터 열에 저장합니다.Column to store file name: Store the name of the source file in a column in your data. 파일 이름 문자열을 저장하려면 여기에 새 열 이름을 입력합니다.Enter a new column name here to store the file name string.

완료 후 기간(일): 데이터 흐름이 실행된 후 원본 파일을 사용해 아무 작업도 수행하지 않도록 선택하거나, 원본 파일을 삭제 또는 이동합니다.After completion: Choose to do nothing with the source file after the data flow runs, delete the source file, or move the source file. 이동 경로는 상대 경로입니다.The paths for the move are relative.

원본 파일을 다른 위치에 후처리로 이동하려면 먼저 파일 작업에서 "이동"을 선택합니다.To move source files to another location post-processing, first select "Move" for file operation. 그런 다음, "원본" 디렉터리를 설정합니다.Then, set the "from" directory. 경로에 와일드카드를 사용하지 않을 경우 "원본" 설정은 원본 폴더와 같은 폴더에 있습니다.If you're not using any wildcards for your path, then the "from" setting will be the same folder as your source folder.

와일드 카드가 있는 원본 경로를 사용 하는 경우 구문은 다음과 같습니다.If you have a source path with wildcard, your syntax will look like this:

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

"From"을 다음과 같이 지정할 수 있습니다.You can specify "from" as:

/data/sales

"To"를 다음과 같이 지정할 수 있습니다.And you can specify "to" as:

/backup/priorSales

이 경우 /data/sale 아래에 원본이 있는 모든 파일이 /backup/priorSales로 이동됩니다.In this case, all files that were sourced under /data/sales are moved to /backup/priorSales.

참고

파이프라인에서 Data Flow 실행 작업을 사용하는 파이프라인 실행(파이프라인 디버그 또는 실행)에서 데이터 흐름을 시작하는 경우에만 파일 작업이 실행됩니다.File operations run only when you start the data flow from a pipeline run (a pipeline debug or execution run) that uses the Execute Data Flow activity in a pipeline. Data Flow 디버그 모드에서는 파일 작업이 실행되지 않습니다.File operations do not run in Data Flow debug mode.

마지막으로 수정한 사람 필터링: 마지막으로 수정된 날짜 범위를 지정하여 처리하는 파일을 필터링할 수 있습니다.Filter by last modified: You can filter which files you process by specifying a date range of when they were last modified. 모든 날짜/시간은 UTC 시간입니다.All datetimes are in UTC.

싱크 속성Sink properties

싱크 변환에서 컨테이너 또는 Azure Blob storage의 폴더에 쓸 수 있습니다.In the sink transformation, you can write to either a container or a folder in Azure Blob storage. 설정 탭을 사용 하 여 파일을 작성 하는 방법을 관리할 수 있습니다.Use the Settings tab to manage how the files get written.

싱크 옵션Sink options

폴더 선택 취소: 데이터를 쓰기 전에 대상 폴더를 지울 것인지 여부를 결정합니다.Clear the folder: Determines whether or not the destination folder gets cleared before the data is written.

파일 이름 옵션: 대상 폴더에서 대상 파일의 이름을 지정하는 방법을 결정합니다.File name option: Determines how the destination files are named in the destination folder. 파일 이름 옵션은 다음과 같습니다.The file name options are:

  • 기본값: Spark에서 PART 기본값에 따라 파일 이름을 지정하도록 허용합니다.Default: Allow Spark to name files based on PART defaults.
  • 패턴: 파티션별로 출력 파일을 열거하는 패턴을 입력합니다.Pattern: Enter a pattern that enumerates your output files per partition. 예를 들어, loans[n].csv에서 loans1.csv, loans2.csv 등을 만듭니다.For example, loans[n].csv will create loans1.csv, loans2.csv, and so on.
  • 파티션 기준: 파티션별 파일 이름을 입력합니다.Per partition: Enter one file name per partition.
  • 열의 데이터로: 출력 파일을 열 값으로 설정합니다.As data in column: Set the output file to the value of a column. 경로는 대상 폴더가 아닌 데이터 세트 컨테이너를 기준으로 합니다.The path is relative to the dataset container, not the destination folder. 데이터 세트에 폴더 경로가 있는 경우 재정의됩니다.If you have a folder path in your dataset, it will be overridden.
  • 단일 파일로 출력: 분할된 출력 파일을 명명된 단일 파일로 결합합니다.Output to a single file: Combine the partitioned output files into a single named file. 경로는 데이터 세트 폴더를 기준으로 합니다.The path is relative to the dataset folder. 병합 작업은 노드 크기에 따라 실패할 수 있습니다.Be aware that the merge operation can possibly fail based on node size. 대량 데이터 집합에는이 옵션을 권장 하지 않습니다.We don't recommend this option for large datasets.

모두 인용: 모든 값을 따옴표로 묶을 지 여부를 결정 합니다.Quote all: Determines whether to enclose all values in quotation marks.

조회 작업 속성Lookup activity properties

속성에 대한 자세한 내용을 보려면 조회 작업을 확인하세요.To learn details about the properties, check Lookup activity.

GetMetadata 작업 속성GetMetadata activity properties

속성에 대 한 자세한 내용을 보려면 GetMetadata 활동을 확인 하세요.To learn details about the properties, check GetMetadata activity.

삭제 작업 속성Delete activity properties

속성에 대 한 자세한 내용을 보려면 삭제 작업을 선택 합니다.To learn details about the properties, check Delete activity.

레거시 모델Legacy models

참고

다음 모델은 이전 버전과의 호환성을 위해 계속 지원 됩니다.The following models are still supported as is for backward compatibility. 앞에서 설명한 새 모델을 사용 하는 것이 좋습니다.We suggest that you use the new model mentioned earlier. Data Factory authoring UI가 새 모델을 생성 하도록 전환 되었습니다.The Data Factory authoring UI has switched to generating the new model.

레거시 데이터 세트 모델Legacy dataset model

속성Property DescriptionDescription 필수Required
typetype 데이터 집합의 type 속성은 azureblob으로 설정 해야 합니다.The type property of the dataset must be set to AzureBlob. Yes
folderPathfolderPath Blob 저장소의 컨테이너 및 폴더에 대 한 경로입니다.Path to the container and folder in Blob storage.

컨테이너 이름을 제외 하 고 경로에 와일드 카드 필터가 지원 됩니다.A wildcard filter is supported for the path, excluding container name. 허용되는 와일드카드는 *(문자 0자 이상 일치) 및 ?(문자 0자 또는 1자 일치)입니다.Allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character). ^폴더 이름에 와일드 카드나이 이스케이프 문자가 있으면를 사용 하 여를 이스케이프 합니다.Use ^ to escape if your folder name has a wildcard or this escape character inside.

예: myblobcontainer/myblobcontainer/.An example is: myblobcontainer/myblobfolder/. 더 많은 예는 폴더 및 파일 필터 예제를 참조하세요.See more examples in Folder and file filter examples.
복사 또는 조회 작업의 경우 예, GetMetadata 작업의 경우 아니요Yes for the Copy or Lookup activity, no for the GetMetadata activity
fileNamefileName 지정 된 folderPath 값 아래의 blob에 대 한 이름 또는 와일드 카드 필터입니다.Name or wildcard filter for the blobs under the specified folderPath value. 이 속성의 값을 지정하지 않으면 데이터 세트는 폴더에 있는 모든 Blob을 가리킵니다.If you don't specify a value for this property, the dataset points to all blobs in the folder.

필터의 경우 허용 되는 와일드 카드는 * (0 개 이상의 문자와 일치) 및 ? (는 0 또는 단일 문자와 일치)입니다.For the filter, allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character).
- 예 1: "fileName": "*.csv"- Example 1: "fileName": "*.csv"
- 예 2: "fileName": "???20180427.txt"- Example 2: "fileName": "???20180427.txt"
^파일 이름에 와일드 카드 또는이 이스케이프 문자가 있으면를 사용 하 여를 이스케이프 합니다.Use ^ to escape if your file name has a wildcard or this escape character inside.

FileName 이 출력 데이터 집합에 대해 지정 되지 않고 preserveHierarchy 가 활동 싱크에 지정 되지 않은 경우 복사 작업은 다음 패턴으로 blob 이름을 자동으로 생성 합니다. "Data. [ 작업 실행 ID입니다. [GUID if FlattenHierarchy]입니다. [구성 된 경우 형식]. [압축이 구성 된 경우]".When fileName isn't specified for an output dataset and preserveHierarchy isn't specified in the activity sink, the Copy activity automatically generates the blob name with the following pattern: "Data.[activity run ID GUID].[GUID if FlattenHierarchy].[format if configured].[compression if configured]". 예: "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt. release.tar.gz".For example: "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz".

쿼리 대신 테이블 이름을 사용 하 여 테이블 형식 원본에서 복사 하는 경우 이름 패턴은 "[table name]. [ format]. [압축이 구성 된 경우]".If you copy from a tabular source by using a table name instead of a query, the name pattern is "[table name].[format].[compression if configured]". 예를 들면 "MyTable.csv"입니다.For example: "MyTable.csv".
No
modifiedDatetimeStartmodifiedDatetimeStart 파일은 특성을 기준으로 필터링 됩니다. 마지막으로 수정한 날짜입니다.Files are filtered based on the attribute: last modified. 마지막 수정 시간이 modifiedDatetimeStartmodifiedDatetimeEnd 사이의 시간 범위 내에 있으면 파일이 선택됩니다.The files will be selected if their last modified time is within the time range between modifiedDatetimeStart and modifiedDatetimeEnd. 시간은 UTC 표준 시간대에 "2018-12-01T05:00:00Z" 형식으로 적용됩니다.The time is applied to the UTC time zone in the format of "2018-12-01T05:00:00Z".

이 설정을 사용 하면 대량의 파일을 필터링 하려는 경우 데이터 이동의 전반적인 성능에 영향을 줍니다.Be aware that enabling this setting will affect the overall performance of data movement when you want to filter huge amounts of files.

속성은 NULL일 수 있습니다. 즉, 파일 특성 필터가 데이터 집합에 적용 되지 않습니다.The properties can be NULL, which means no file attribute filter will be applied to the dataset. modifiedDatetimeStart에 datetime 값이 있지만 modifiedDatetimeEndNULL이면 마지막으로 수정 된 특성이 datetime 값 보다 크거나 같은 파일이 선택 됩니다.When modifiedDatetimeStart has a datetime value but modifiedDatetimeEnd is NULL, the files whose last modified attribute is greater than or equal to the datetime value will be selected. modifiedDatetimeEnd에 datetime 값이 있지만 modifiedDatetimeStartNULL이면 마지막으로 수정 된 특성이 datetime 값 보다 작은 파일이 선택 됩니다.When modifiedDatetimeEnd has a datetime value but modifiedDatetimeStart is NULL, the files whose last modified attribute is less than the datetime value will be selected.
No
modifiedDatetimeEndmodifiedDatetimeEnd 파일은 특성을 기준으로 필터링 됩니다. 마지막으로 수정한 날짜입니다.Files are filtered based on the attribute: last modified. 마지막 수정 시간이 modifiedDatetimeStartmodifiedDatetimeEnd 사이의 시간 범위 내에 있으면 파일이 선택됩니다.The files will be selected if their last modified time is within the time range between modifiedDatetimeStart and modifiedDatetimeEnd. 시간은 UTC 표준 시간대에 "2018-12-01T05:00:00Z" 형식으로 적용됩니다.The time is applied to the UTC time zone in the format of "2018-12-01T05:00:00Z".

이 설정을 사용 하면 대량의 파일을 필터링 하려는 경우 데이터 이동의 전반적인 성능에 영향을 줍니다.Be aware that enabling this setting will affect the overall performance of data movement when you want to filter huge amounts of files.

속성은 NULL일 수 있습니다. 즉, 파일 특성 필터가 데이터 집합에 적용 되지 않습니다.The properties can be NULL, which means no file attribute filter will be applied to the dataset. modifiedDatetimeStart에 datetime 값이 있지만 modifiedDatetimeEndNULL이면 마지막으로 수정 된 특성이 datetime 값 보다 크거나 같은 파일이 선택 됩니다.When modifiedDatetimeStart has a datetime value but modifiedDatetimeEnd is NULL, the files whose last modified attribute is greater than or equal to the datetime value will be selected. modifiedDatetimeEnd에 datetime 값이 있지만 modifiedDatetimeStartNULL이면 마지막으로 수정 된 특성이 datetime 값 보다 작은 파일이 선택 됩니다.When modifiedDatetimeEnd has a datetime value but modifiedDatetimeStart is NULL, the files whose last modified attribute is less than the datetime value will be selected.
No
formatformat 파일 기반 저장소(이진 복사본) 간에 파일을 있는 그대로 복사하려는 경우 입력 및 출력 데이터 세트 정의 둘 다에서 format 섹션을 건너뜁니다.If you want to copy files as is between file-based stores (binary copy), skip the format section in both the input and output dataset definitions.

특정 형식의 파일을 구문 분석하거나 생성하려는 경우, 지원되는 파일 형식 유형은 TextFormat, JsonFormat, AvroFormat, OrcFormatParquetFormat입니다.If you want to parse or generate files with a specific format, the following file format types are supported: TextFormat, JsonFormat, AvroFormat, OrcFormat, and ParquetFormat. formattype 속성을 이 값 중 하나로 설정합니다.Set the type property under format to one of these values. 자세한 내용은 텍스트 형식, JSON 형식, Avro 형식, Orc 형식Parquet 형식 섹션을 참조하세요.For more information, see the Text format, JSON format, Avro format, Orc format, and Parquet format sections.
아니요(이진 복사 시나리오에만 해당)No (only for binary copy scenario)
압축compression 데이터에 대한 압축 유형 및 수준을 지정합니다.Specify the type and level of compression for the data. 자세한 내용은 지원되는 파일 형식 및 압축 코덱을 참조하세요.For more information, see Supported file formats and compression codecs.
지원되는 형식은 GZip, Deflate, BZip2ZipDeflate입니다.Supported types are GZip, Deflate, BZip2, and ZipDeflate.
OptimalFastest 수준이 지원됩니다.Supported levels are Optimal and Fastest.
No

폴더 아래에서 모든 Blob을 복사하려면 folderPath만을 지정합니다.To copy all blobs under a folder, specify folderPath only.
지정 된 이름의 단일 blob을 복사 하려면 파일 이름 에 대 한 폴더 및 파일 이름에 대해 folderPath 를 지정 합니다.To copy a single blob with a given name, specify folderPath for the folder part and fileName for the file name.
폴더 아래에 있는 blob의 하위 집합을 복사 하려면 와일드 카드 필터를 사용 하 여 폴더 파트 및 파일 이름 에 대해 folderPath 를 지정 합니다.To copy a subset of blobs under a folder, specify folderPath for the folder part and fileName with a wildcard filter.

예:Example:

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

복사 작업에 대 한 레거시 원본 모델Legacy source model for the Copy activity

속성Property DescriptionDescription 필수Required
typetype 복사 작업 원본의 type 속성은 blobsource로 설정 해야 합니다.The type property of the Copy activity source must be set to BlobSource. Yes
recursiverecursive 하위 폴더 또는 지정된 폴더에서만 데이터를 재귀적으로 읽을지 여부를 나타냅니다.Indicates whether the data is read recursively from the subfolders or only from the specified folder. Recursivetrue 로 설정 하 고 싱크가 파일 기반 저장소 인 경우 빈 폴더 또는 하위 폴더가 싱크에 복사 되거나 생성 되지 않습니다.Note that when recursive is set to true and the sink is a file-based store, an empty folder or subfolder isn't copied or created at the sink.
허용되는 값은 true(기본값) 및 false입니다.Allowed values are true (default) and false.
No
maxConcurrentConnectionsmaxConcurrentConnections 저장소에 대 한 동시 연결 수입니다.The number of concurrent connections to storage. 데이터 저장소에 대 한 동시 연결 수를 제한 하려는 경우에만를 지정 합니다.Specify only when you want to limit concurrent connections to the data store. No

예:Example:

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

복사 작업에 대 한 레거시 싱크 모델Legacy sink model for the Copy activity

속성Property DescriptionDescription 필수Required
typetype 복사 작업 싱크의 type 속성은 blobsink로 설정 해야 합니다.The type property of the Copy activity sink must be set to BlobSink. Yes
copyBehaviorcopyBehavior 원본이 파일 기반 데이터 저장소의 파일인 경우 복사 동작을 정의합니다.Defines the copy behavior when the source is files from a file-based data store.

허용된 값은Allowed values are:
- PreserveHierarchy(기본값): 대상 폴더에서 파일 계층 구조를 유지합니다.- PreserveHierarchy (default): Preserves the file hierarchy in the target folder. 원본 폴더의 원본 파일 상대 경로는 대상 폴더의 대상 파일 상대 경로와 동일합니다.The relative path of source file to source folder is identical to the relative path of target file to target folder.
- FlattenHierarchy: 원본 폴더의 모든 파일이 대상 폴더의 첫 번째 수준에 있습니다.- FlattenHierarchy: All files from the source folder are in the first level of the target folder. 대상 파일은 자동 생성된 이름을 갖습니다.The target files have autogenerated names.
- MergeFiles: 원본 폴더의 모든 파일을 하나의 파일로 병합합니다.- MergeFiles: Merges all files from the source folder to one file. 병합되는 파일 이름은 지정된 파일 또는 Blob 이름이 적용됩니다.If the file or blob name is specified, the merged file name is the specified name. 그렇지 않으면 자동 생성되는 파일 이름이 적용됩니다.Otherwise, it's an autogenerated file name.
No
maxConcurrentConnectionsmaxConcurrentConnections 저장소에 대 한 동시 연결 수입니다.The number of concurrent connections to storage. 데이터 저장소에 대 한 동시 연결 수를 제한 하려는 경우에만를 지정 합니다.Specify only when you want to limit concurrent connections to the data store. No

예:Example:

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

다음 단계Next steps

Data Factory의 복사 작업에서 원본 및 싱크로 지원 되는 데이터 저장소 목록은 지원 되는 데이터 저장소를 참조 하세요.For a list of data stores that the Copy activity in Data Factory supports as sources and sinks, see Supported data stores.