Échanger des données avec le Stockage Blob Azure à l’aide d’Azure Data FactoryCopy data to or from Azure Blob Storage using Azure Data Factory

Notes

Cet article s’applique à la version 1 de Data Factory.This article applies to version 1 of Data Factory. Si vous utilisez la version actuelle du service Data Factory, consultez Connecteur Stockage Blob Azure dans V2.If you are using the current version of the Data Factory service, see Azure Blob Storage connector in V2.

Cet article explique comment utiliser l’activité de copie dans Azure Data Factory pour échanger des données avec le Stockage Blob Azure.This article explains how to use the Copy Activity in Azure Data Factory to copy data to and from Azure Blob Storage. Il s’appuie sur l’article Activités de déplacement des données, qui présente une vue d’ensemble du déplacement de données avec l’activité de copie.It builds on the Data Movement Activities article, which presents a general overview of data movement with the copy activity.

Vue d'ensembleOverview

Vous pouvez copier et coller les données à partir de tout magasin de données source pris en charge vers le Stockage Blob Azure, ou entre ce dernier et tout magasin de données récepteur pris en charge.You can copy data from any supported source data store to Azure Blob Storage or from Azure Blob Storage to any supported sink data store. Le tableau ci-dessous contient la liste des banques de données prises en charge en tant que sources ou récepteurs par l’activité de copie.The following table provides a list of data stores supported as sources or sinks by the copy activity. Par exemple, vous pouvez déplacer des données depuis une base de données SQL Server ou une base de données Azure SQL vers un stockage Blob Azure.For example, you can move data from a SQL Server database or an Azure SQL database to an Azure blob storage. Et vous pouvez copier des données depuis un stockage Blob Azure vers un entrepôt Azure SQL Data Warehouse ou une collection Azure Cosmos DB.And, you can copy data from Azure blob storage to an Azure SQL Data Warehouse or an Azure Cosmos DB collection.

Notes

Cet article a été mis à jour pour tenir compte de l’utilisation du nouveau module Az d’Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Vous pouvez toujours utiliser le module AzureRM, qui continue à recevoir des correctifs de bogues jusqu’à au moins décembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Pour en savoir plus sur le nouveau module Az et la compatibilité avec AzureRM, consultez Présentation du nouveau module Az d’Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Pour des instructions d’installation du module Az, consultez Installer Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Scénarios pris en chargeSupported scenarios

Vous pouvez copier les données à partir du stockage Blob Azure dans les magasins de données suivants :You can copy data from Azure Blob Storage to the following data stores:

CatégorieCategory Banque de donnéesData store
AzureAzure stockage d’objets blob AzureAzure Blob storage
Azure Data Lake Storage Gen1Azure Data Lake Storage Gen1
Azure Cosmos DB (API SQL)Azure Cosmos DB (SQL API)
Azure SQL DatabaseAzure SQL Database
Azure SQL Data WarehouseAzure SQL Data Warehouse
Index Recherche AzureAzure Search Index
Stockage Table AzureAzure Table storage
Bases de donnéesDatabases SQL ServerSQL Server
OracleOracle
FichierFile Système de fichiersFile system

Vous pouvez copier les données des magasins de données suivants dans le stockage Blob Azure :You can copy data from the following data stores to Azure Blob Storage:

CatégorieCategory Banque de donnéesData store
AzureAzure stockage d’objets blob AzureAzure Blob storage
Azure Cosmos DB (API SQL)Azure Cosmos DB (SQL API)
Azure Data Lake Storage Gen1Azure Data Lake Storage Gen1
Azure SQL DatabaseAzure SQL Database
Azure SQL Data WarehouseAzure SQL Data Warehouse
Stockage Table AzureAzure Table storage
Bases de donnéesDatabases Amazon RedshiftAmazon Redshift
DB2DB2
MySQLMySQL
OracleOracle
PostgreSQLPostgreSQL
SAP Business WarehouseSAP Business Warehouse
SAP HANASAP HANA
SQL ServerSQL Server
SybaseSybase
TeradataTeradata
NosqlNoSQL CassandraCassandra
MongoDBMongoDB
FichierFile Amazon S3Amazon S3
Système de fichiersFile system
FTPFTP
HDFSHDFS
SFTPSFTP
AutresOthers HTTP génériqueGeneric HTTP
OData génériqueGeneric OData
ODBC génériqueGeneric ODBC
SalesforceSalesforce
Table web (table HTML)Web table (table from HTML)

Important

L’activité de copie prend en charge l’échange de données avec des comptes de stockage Azure à usage général et le Stockage Blob à chaud/froid.Copy Activity supports copying data from/to both general-purpose Azure Storage accounts and Hot/Cool Blob storage. L’activité prend en charge la lecture à partir d’objets blob de blocs, d’annexe ou de page, mais l’écriture vers des objets blob de blocs uniquement.The activity supports reading from block, append, or page blobs, but supports writing to only block blobs. Le stockage Azure Premium n’est pas pris en charge en tant que récepteur, car il repose sur des objets blob de pages.Azure Premium Storage is not supported as a sink because it is backed by page blobs.

L’activité de copie ne supprime pas les données de la source une fois celles-ci copiées vers la destination.Copy Activity does not delete data from the source after the data is successfully copied to the destination. Si vous devez supprimer les données une fois la copie effectuée, créez une activité personnalisée pour supprimer les données, et utilisez l’activité dans le pipeline.If you need to delete source data after a successful copy, create a custom activity to delete the data and use the activity in the pipeline. Pour obtenir un exemple, consultez Exemple de suppression d’objet blob ou de dossier sur GitHub.For an example, see the Delete blob or folder sample on GitHub.

Prise en mainGet started

Vous pouvez créer un pipeline avec une activité de copie qui déplace les données vers/depuis un stockage blob Azure à l’aide de différents outils/API.You can create a pipeline with a copy activity that moves data to/from an Azure Blob Storage by using different tools/APIs.

Le moyen le plus simple de créer un pipeline consiste à utiliser l’Assistant Copie.The easiest way to create a pipeline is to use the Copy Wizard. Cet article contient une procédure pas à pas pour la création d’un pipeline pour copier des données d’un emplacement de stockage Blob Azure vers un autre emplacement de stockage Blob Azure.This article has a walkthrough for creating a pipeline to copy data from an Azure Blob Storage location to another Azure Blob Storage location. Pour suivre un tutoriel permettant de créer un pipeline pour copier des données de Stockage Blob Azure vers Azure SQL Database, consultez Tutoriel : Créer un pipeline à l’aide de l’Assistant de copie.For a tutorial on creating a pipeline to copy data from an Azure Blob Storage to Azure SQL Database, see Tutorial: Create a pipeline using Copy Wizard.

Vous pouvez également utiliser les outils suivants pour créer un pipeline : Visual Studio, Azure PowerShell, modèle Azure Resource Manager, .NET API et API REST.You can also use the following tools to create a pipeline: Visual Studio, Azure PowerShell, Azure Resource Manager template, .NET API, and REST API. Pour obtenir des instructions détaillées sur la création d’un pipeline avec une activité de copie, consultez le didacticiel sur l’activité de copie.See Copy activity tutorial for step-by-step instructions to create a pipeline with a copy activity.

Que vous utilisiez des outils ou des API, la création d’un pipeline qui déplace les données d’un magasin de données source vers un magasin de données récepteur implique les étapes suivantes :Whether you use the tools or APIs, you perform the following steps to create a pipeline that moves data from a source data store to a sink data store:

  1. Création d'une fabrique de données.Create a data factory. Une fabrique de données peut contenir un ou plusieurs pipelines.A data factory may contain one or more pipelines.
  2. Création de services liés pour lier les magasins de données d’entrée et de sortie à votre fabrique de données.Create linked services to link input and output data stores to your data factory. Par exemple, si vous copiez des données depuis un stockage d’objets blob Azure vers une base de données Azure SQL, vous créez deux services liés pour lier votre compte de stockage Azure et votre base de données Azure SQL à votre fabrique de données.For example, if you are copying data from an Azure blob storage to an Azure SQL database, you create two linked services to link your Azure storage account and Azure SQL database to your data factory. Pour plus d’informations sur les propriétés de service lié qui sont spécifiques au stockage Blob Azure, consultez la section Propriétés du service lié.For linked service properties that are specific to Azure Blob Storage, see linked service properties section.
  3. Création de jeux de données pour représenter les données d’entrée et de sortie de l’opération de copie.Create datasets to represent input and output data for the copy operation. Dans l’exemple mentionné dans la dernière étape, vous créez un jeu de données pour spécifier le conteneur d’objets blob et le dossier qui contient les données d’entrée.In the example mentioned in the last step, you create a dataset to specify the blob container and folder that contains the input data. Ensuite, vous créez un autre jeu de données pour spécifier la table SQL dans la base de données Azure SQL qui contient les données copiées à partir du stockage Blob.And, you create another dataset to specify the SQL table in the Azure SQL database that holds the data copied from the blob storage. Pour plus d’informations sur les propriétés de jeu de données qui sont spécifiques au stockage Blob Azure, consultez la section Propriétés du jeu de données.For dataset properties that are specific to Azure Blob Storage, see dataset properties section.
  4. Création d’un pipeline avec une activité de copie qui utilise un jeu de données en tant qu’entrée et un jeu de données en tant que sortie.Create a pipeline with a copy activity that takes a dataset as an input and a dataset as an output. Dans l’exemple mentionné plus haut, vous utilisez BlobSource comme source et SqlSink comme récepteur pour l’activité de copie.In the example mentioned earlier, you use BlobSource as a source and SqlSink as a sink for the copy activity. De même, si vous copiez depuis Azure SQL Database vers Stockage Blob Azure, vous utilisez SqlSource et BlobSink dans l’activité de copie.Similarly, if you are copying from Azure SQL Database to Azure Blob Storage, you use SqlSource and BlobSink in the copy activity. Pour plus d’informations sur les propriétés de l’activité de copie qui sont spécifiques au stockage Blob Azure, consultez la section Propriétés de l’activité de copie.For copy activity properties that are specific to Azure Blob Storage, see copy activity properties section. Pour plus d’informations sur l’utilisation d’un magasin de données comme source ou comme récepteur, cliquez sur le lien de la section précédente de votre magasin de données.For details on how to use a data store as a source or a sink, click the link in the previous section for your data store.

Lorsque vous utilisez l’Assistant, les définitions JSON de ces entités Data Factory (services liés, jeux de données et pipeline) sont automatiquement créées pour vous.When you use the wizard, JSON definitions for these Data Factory entities (linked services, datasets, and the pipeline) are automatically created for you. Lorsque vous utilisez des outils/API (à l’exception de l’API .NET), vous devez définir ces entités Data Factory au format JSON.When you use tools/APIs (except .NET API), you define these Data Factory entities by using the JSON format. Pour obtenir des exemples comportant des définitions JSON pour les entités Data Factory utilisées pour copier les données vers ou à partir du Stockage Blob Azure, consultez la section Exemples JSON de cet article.For samples with JSON definitions for Data Factory entities that are used to copy data to/from an Azure Blob Storage, see JSON examples section of this article.

Les sections suivantes offrent des informations détaillées sur les propriétés JSON utilisées pour définir les entités Data Factory propres au Stockage Blob Azure.The following sections provide details about JSON properties that are used to define Data Factory entities specific to Azure Blob Storage.

Propriétés du service liéLinked service properties

Deux types de services liés permettent de lier un stockage Azure à une fabrique de données Azure.There are two types of linked services you can use to link an Azure Storage to an Azure data factory. Il s'agit de : service lié AzureStorage et service lié AzureStorageSas.They are: AzureStorage linked service and AzureStorageSas linked service. Le service lié Azure Storage fournit à la fabrique de données un accès global à Azure Storage.The Azure Storage linked service provides the data factory with global access to the Azure Storage. Tandis que le service lié Azure de stockage SAP (signature d'accès partagé) fournit à la fabrique de données un accès restreint/limité dans le temps à Azure Storage.Whereas, The Azure Storage SAS (Shared Access Signature) linked service provides the data factory with restricted/time-bound access to the Azure Storage. Il n'existe aucune différence entre ces deux services liés.There are no other differences between these two linked services. Choisissez le service lié qui répond à vos besoins.Choose the linked service that suits your needs. Les sections suivantes expliquent plus en détail ces deux services liés.The following sections provide more details on these two linked services.

Service lié Stockage AzureAzure Storage Linked Service

Le service lié Stockage Azure vous permet de lier un compte de stockage Azure à une fabrique de données Azure à l’aide de la clé de compte, qui permet à la fabrique de données d’avoir un accès global au Stockage Azure.The Azure Storage linked service allows you to link an Azure storage account to an Azure data factory by using the account key, which provides the data factory with global access to the Azure Storage. Le tableau suivant fournit la description des éléments JSON spécifiques au service lié Azure Storage.The following table provides description for JSON elements specific to Azure Storage linked service.

PropriétéProperty DescriptionDescription ObligatoireRequired
typetype La propriété type doit être définie sur : AzureStorageThe type property must be set to: AzureStorage OUIYes
connectionStringconnectionString Spécifier les informations requises pour la connexion au stockage Azure pour la propriété connectionString.Specify information needed to connect to Azure storage for the connectionString property. OUIYes

Pour connaître les étapes à suivre pour afficher/copier la clé de compte pour un service Stockage Azure, consultez la section suivante : Clés d’accès.See the following section for steps to view/copy the account key for an Azure Storage: Access keys.

Exemple :Example:

{
    "name": "StorageLinkedService",
    "properties": {
        "type": "AzureStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
        }
    }
}

Service lié SAP Azure StorageAzure Storage Sas Linked Service

Une signature d’accès partagé (SAP) fournit un accès délégué aux ressources de votre compte de stockage.A shared access signature (SAS) provides delegated access to resources in your storage account. Cela vous permet d’octroyer à un client des autorisations d’accès limité à des objets de votre compte de stockage pendant une période donnée et avec un ensemble défini d’autorisations, sans partager les clés d’accès de votre compte.It allows you to grant a client limited permissions to objects in your storage account for a specified period of time and with a specified set of permissions, without having to share your account access keys. La SAP est un URI qui englobe dans ses paramètres de requête toutes les informations nécessaires pour obtenir un accès authentifié à une ressource de stockage.The SAS is a URI that encompasses in its query parameters all the information necessary for authenticated access to a storage resource. Pour accéder aux ressources de stockage avec la signature d'accès partagé, il suffit au client de transmettre cette dernière à la méthode ou au constructeur approprié.To access storage resources with the SAS, the client only needs to pass in the SAS to the appropriate constructor or method. Pour plus d’informations sur les SAP, consultez Accorder un accès limité aux ressources du Stockage Azure à l’aide des signatures d’accès partagé (SAP).For more information about SAS, see Grant limited access to Azure Storage resources using shared access signatures (SAS).

Important

Azure Data Factory prend maintenant uniquement en charge la signature d’accès partagé SAS, et pas la signature d’accès partagé du compte.Azure Data Factory now only supports Service SAS but not Account SAS. Notez l’URL SAS qu’il est possible de générer à partir du portail Azure ou l’Explorateur de stockage est une signature d’accès partagé de compte qui n’est pas prise en charge.Note the SAS URL generable from Azure portal or Storage Explorer is an Account SAS, which is not supported.

Conseil

Vous pouvez exécuter les commandes PowerShell ci-dessous pour générer un SAP de service pour votre compte de stockage (remplacez les espaces réservés et accordez l’autorisation nécessaire) : $context = New-AzStorageContext -StorageAccountName <accountName> -StorageAccountKey <accountKey> New-AzStorageContainerSASToken -Name <containerName> -Context $context -Permission rwdl -StartTime <startTime> -ExpiryTime <endTime> -FullUriYou can execute below PowerShell commands to generate a Service SAS for your storage account (replace the place-holders and grant the needed permission): $context = New-AzStorageContext -StorageAccountName <accountName> -StorageAccountKey <accountKey> New-AzStorageContainerSASToken -Name <containerName> -Context $context -Permission rwdl -StartTime <startTime> -ExpiryTime <endTime> -FullUri

Le service lié Stockage Azure SAS vous permet de lier un compte de stockage Azure à une fabrique de données Azure à l’aide d’une signature d’accès partagé (SAP).The Azure Storage SAS linked service allows you to link an Azure Storage Account to an Azure data factory by using a Shared Access Signature (SAS). Ainsi, la fabrique de données dispose d’un accès restreint ou limité dans le temps à tout ou partie des ressources (objet blob/conteneur) dans le stockage.It provides the data factory with restricted/time-bound access to all/specific resources (blob/container) in the storage. Le tableau suivant fournit la description des éléments JSON spécifiques au service lié Azure Storage SAS.The following table provides description for JSON elements specific to Azure Storage SAS linked service.

PropriétéProperty DescriptionDescription ObligatoireRequired
typetype La propriété type doit être définie sur : AzureStorageSasThe type property must be set to: AzureStorageSas OUIYes
sasUrisasUri Spécifiez l’URI de signature d’accès partagé des ressources Stockage Azure, telles qu’un objet blob, un conteneur ou une table.Specify Shared Access Signature URI to the Azure Storage resources such as blob, container, or table. OUIYes

Exemple :Example:

{
    "name": "StorageSasLinkedService",
    "properties": {
        "type": "AzureStorageSas",
        "typeProperties": {
            "sasUri": "<Specify SAS URI of the Azure Storage resource>"
        }
    }
}

Quand vous créez un URI SAP, prenez en compte les points suivants :When creating an SAS URI, considering the following:

  • Définissez des autorisations de lecture/écriture appropriées sur les objets en fonction de l’utilisation du service lié (lecture, écriture, lecture/écriture) dans votre fabrique de données.Set appropriate read/write permissions on objects based on how the linked service (read, write, read/write) is used in your data factory.
  • Définissez le paramètre Heure d’expiration correctement.Set Expiry time appropriately. Assurez-vous que l’accès aux objets Azure Storage n’expire pas pendant la période active du pipeline.Make sure that the access to Azure Storage objects does not expire within the active period of the pipeline.
  • L’URI doit être créé au niveau table ou objet blob/conteneur approprié en fonction des besoins.Uri should be created at the right container/blob or Table level based on the need. Un URI SAP vers un objet blob Azure rend ce dernier accessible au service Data Factory.A SAS Uri to an Azure blob allows the Data Factory service to access that particular blob. Un URI SAP vers un conteneur d’objets blob Azure permet au service Data Factory de parcourir les objets blob dans ce conteneur.A SAS Uri to an Azure blob container allows the Data Factory service to iterate through blobs in that container. Si vous êtes amené à accorder l’accès à plus ou moins d’objets ou à mettre à jour l’URI SAP, mettez à jour le service lié avec le nouvel URI.If you need to provide access more/fewer objects later, or update the SAS URI, remember to update the linked service with the new URI.

Propriétés du jeu de donnéesDataset properties

Pour spécifier un jeu de données afin de représenter les données d’entrée ou de sortie dans un Stockage Blob Azure, vous devez définir la propriété de type du jeu de données sur AzureBlob.To specify a dataset to represent input or output data in an Azure Blob Storage, you set the type property of the dataset to: AzureBlob. Définissez la propriété linkedServiceName du jeu de données sur le nom du service lié du Stockage Azure ou SAP Azure Storage.Set the linkedServiceName property of the dataset to the name of the Azure Storage or Azure Storage SAS linked service. Les propriétés de type du jeu de données spécifient le conteneur d’objets blob et le dossier dans le Stockage Blob.The type properties of the dataset specify the blob container and the folder in the blob storage.

Pour obtenir une liste complète des sections et propriétés JSON disponibles pour la définition de jeux de données, consultez l’article Création de jeux de données.For a full list of JSON sections & properties available for defining datasets, see the Creating datasets article. Les sections comme la structure, la disponibilité et la stratégie d'un jeu de données JSON sont similaires pour tous les types de jeux de données (SQL Azure, Azure Blob, Azure Table, etc.).Sections such as structure, availability, and policy of a dataset JSON are similar for all dataset types (Azure SQL, Azure blob, Azure table, etc.).

La fabrique de données prend en charge les valeurs de type .NET conformes CLS suivantes pour fournir des informations de type dans la section « structure » du schéma dans les sources de données de lecture telles qu’un objet blob Azure : Int16, Int32, Int64, Single, Double, Decimal, Byte[], Bool, String, Guid, Datetime, Datetimeoffset, Timespan.Data factory supports the following CLS-compliant .NET based type values for providing type information in “structure” for schema-on-read data sources like Azure blob: Int16, Int32, Int64, Single, Double, Decimal, Byte[], Bool, String, Guid, Datetime, Datetimeoffset, Timespan. Data Factory effectue automatiquement les conversions de type lorsque vous déplacez des données d’un magasin de données source vers un magasin de données récepteur.Data Factory automatically performs type conversions when moving data from a source data store to a sink data store.

La section typeProperties est différente pour chaque type de jeu de données et fournit des informations sur l'emplacement, le format, etc. des données dans le magasin de données.The typeProperties section is different for each type of dataset and provides information about the location, format etc., of the data in the data store. La section typeProperties pour le jeu de données de type AzureBlob a les propriétés suivantes :The typeProperties section for dataset of type AzureBlob dataset has the following properties:

PropriétéProperty DescriptionDescription ObligatoireRequired
folderPathfolderPath Chemin d'accès au conteneur et au dossier dans le stockage des objets Blobs.Path to the container and folder in the blob storage. Exemple : monconteneurblob\mondossierblobExample: myblobcontainer\myblobfolder\ OUIYes
fileNamefileName Le nom de l’objet Blob.Name of the blob. fileName est facultatif et sensible à la casse.fileName is optional and case-sensitive.

Si vous spécifiez un nom de fichier, l’activité (y compris la copie) fonctionne sur l’objet Blob spécifique.If you specify a filename, the activity (including Copy) works on the specific Blob.

Lorsque fileName n’est pas spécifié, la copie inclut tous les objets Blob dans le paramètre folderPath du jeu de données d’entrée.When fileName is not specified, Copy includes all Blobs in the folderPath for input dataset.

Quand fileName n’est pas spécifié pour un jeu de données de sortie et que preserveHierarchy n’est pas spécifié dans le récepteur d’activité, le nom du fichier généré est au format suivant : Data.<Guid>.txt (par exemple : : Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txtWhen fileName is not specified for an output dataset and preserveHierarchy is not specified in activity sink, the name of the generated file would be in the following this format: Data.<Guid>.txt (for example: : Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt
NonNo
partitionedBypartitionedBy partitionedBy est une propriété facultative.partitionedBy is an optional property. Vous pouvez l'utiliser pour spécifier un folderPath dynamique et le nom de fichier pour les données de série chronologique.You can use it to specify a dynamic folderPath and filename for time series data. Par exemple, folderPath peut être paramétré pour toutes les heures de données.For example, folderPath can be parameterized for every hour of data. Consultez Utilisation de la section propriété partitionedBy pour obtenir plus d’informations et des exemples.See the Using partitionedBy property section for details and examples. NonNo
formatformat Les types de formats suivants sont pris en charge : TextFormat, JsonFormat, AvroFormat, OrcFormat et ParquetFormat.The following format types are supported: TextFormat, JsonFormat, AvroFormat, OrcFormat, ParquetFormat. Définissez la propriété type située sous Format sur l’une de ces valeurs.Set the type property under format to one of these values. Pour en savoir plus, consultez les sections relatives à format Text, format Json, format Avro, format Orc et format Parquet.For more information, see Text Format, Json Format, Avro Format, Orc Format, and Parquet Format sections.

Si vous souhaitez copier des fichiers en l’état entre des magasins de fichiers (copie binaire), ignorez la section Format dans les deux définitions de jeu de données d’entrée et de sortie.If you want to copy files as-is between file-based stores (binary copy), skip the format section in both input and output dataset definitions.
NonNo
compressioncompression Spécifiez le type et le niveau de compression pour les données.Specify the type and level of compression for the data. Types pris en charge : GZip, Deflate, BZip2 et ZipDeflate.Supported types are: GZip, Deflate, BZip2, and ZipDeflate. Niveaux pris en charge : Optimal et Fastest.Supported levels are: Optimal and Fastest. Pour plus d’informations, consultez Formats de fichiers et de compression pris en charge dans Azure Data Factory.For more information, see File and compression formats in Azure Data Factory. NonNo

Utilisation de la propriété partitionedByUsing partitionedBy property

Comme mentionné dans la section précédente, vous pouvez spécifier un folderPath et un fileName dynamiques pour les données de série chronologique avec la propriété partitionedBy, les fonctions Data Factory et les variables système.As mentioned in the previous section, you can specify a dynamic folderPath and filename for time series data with the partitionedBy property, Data Factory functions, and the system variables.

Pour obtenir plus d’informations sur les jeux de données de série chronologique, la planification et les segments, consultez les articles Création de jeux de données et Planification et exécution.For more information on time series datasets, scheduling, and slices, see Creating Datasets and Scheduling & Execution articles.

Exemple 1Sample 1

"folderPath": "wikidatagateway/wikisampledataout/{Slice}",
"partitionedBy":
[
    { "name": "Slice", "value": { "type": "DateTime", "date": "SliceStart", "format": "yyyyMMddHH" } },
],

Dans cet exemple, {Slice} est remplacé par la valeur de la variable système Data Factory SliceStart au format (AAAAMMJJHH) spécifié.In this example, {Slice} is replaced with the value of Data Factory system variable SliceStart in the format (YYYYMMDDHH) specified. SliceStart fait référence à l'heure de début du segment.The SliceStart refers to start time of the slice. folderPath est différent pour chaque segment.The folderPath is different for each slice. Par exemple : wikidatagateway/wikisampledataout/2014100103 ou wikidatagateway/wikisampledataout/2014100104.For example: wikidatagateway/wikisampledataout/2014100103 or wikidatagateway/wikisampledataout/2014100104

Exemple 2Sample 2

"folderPath": "wikidatagateway/wikisampledataout/{Year}/{Month}/{Day}",
"fileName": "{Hour}.csv",
"partitionedBy":
[
    { "name": "Year", "value": { "type": "DateTime", "date": "SliceStart", "format": "yyyy" } },
    { "name": "Month", "value": { "type": "DateTime", "date": "SliceStart", "format": "MM" } },
    { "name": "Day", "value": { "type": "DateTime", "date": "SliceStart", "format": "dd" } },
    { "name": "Hour", "value": { "type": "DateTime", "date": "SliceStart", "format": "hh" } }
],

Dans cet exemple, l'année, le mois, le jour et l'heure de SliceStart sont extraits dans des variables distinctes qui sont utilisées par les propriétés folderPath et fileName.In this example, year, month, day, and time of SliceStart are extracted into separate variables that are used by folderPath and fileName properties.

Propriétés de l’activité de copieCopy activity properties

Pour obtenir la liste complète des sections et des propriétés disponibles pour la définition des activités, consultez l’article Création de pipelines.For a full list of sections & properties available for defining activities, see the Creating Pipelines article. Les propriétés comme le nom, la description, les jeux de données d’entrée et de sortie et les stratégies sont disponibles pour tous les types d’activités.Properties such as name, description, input and output datasets, and policies are available for all types of activities. En revanche, les propriétés disponibles dans la section typeProperties de l’activité varient pour chaque type d’activité.Whereas, properties available in the typeProperties section of the activity vary with each activity type. Pour l’activité de copie, elles dépendent des types de sources et récepteurs.For Copy activity, they vary depending on the types of sources and sinks. Si vous déplacez des données à partir d’un stockage blob Azure, vous définissez le type de source dans l’activité de copie sur BlobSource.If you are moving data from an Azure Blob Storage, you set the source type in the copy activity to BlobSource. De même, si vous déplacez des données vers un stockage blob Azure, vous définissez le type de récepteur dans l’activité de copie sur BlobSink.Similarly, if you are moving data to an Azure Blob Storage, you set the sink type in the copy activity to BlobSink. Cette section fournit une liste de propriétés prises en charge par BlobSource et BlobSink.This section provides a list of properties supported by BlobSource and BlobSink.

BlobSource prend en charge les propriétés suivantes dans la section typeProperties :BlobSource supports the following properties in the typeProperties section:

PropriétéProperty DescriptionDescription Valeurs autoriséesAllowed values ObligatoireRequired
recursiverecursive Indique si les données sont lues de manière récursive à partir des sous-dossiers ou uniquement du dossier spécifié.Indicates whether the data is read recursively from the sub folders or only from the specified folder. True (valeur par défaut), FalseTrue (default value), False NonNo

BlobSink prend en charge les propriétés suivantes dans la section typeProperties :BlobSink supports the following properties typeProperties section:

PropriétéProperty DescriptionDescription Valeurs autoriséesAllowed values ObligatoireRequired
copyBehaviorcopyBehavior Cette propriété définit le comportement de copie lorsque la source est BlobSource ou FileSystem.Defines the copy behavior when the source is BlobSource or FileSystem. PreserveHierarchy : conserve la hiérarchie des fichiers dans le dossier cible.PreserveHierarchy: preserves the file hierarchy in the target folder. Le chemin d’accès relatif du fichier source vers le dossier source est identique au chemin d’accès relatif du fichier cible vers le dossier cible.The relative path of source file to source folder is identical to the relative path of target file to target folder.

FlattenHierarchy : tous les fichiers du dossier source figurent dans le premier niveau du dossier cible.FlattenHierarchy: all files from the source folder are in the first level of target folder. Le nom des fichiers cibles est généré automatiquement.The target files have auto generated name.

MergeFiles : fusionne tous les fichiers du dossier source dans un même fichier.MergeFiles: merges all files from the source folder to one file. Si le nom de fichier/d’objet blob est spécifié, le nom de fichier fusionné est le nom spécifié. Dans le cas contraire, le nom de fichier est généré automatiquement.If the File/Blob Name is specified, the merged file name would be the specified name; otherwise, would be auto-generated file name.
NonNo

BlobSource prend également en charge ces deux propriétés pour la compatibilité descendante.BlobSource also supports these two properties for backward compatibility.

  • treatEmptyAsNull : spécifie s’il faut traiter une chaîne null ou vide en tant que valeur null.treatEmptyAsNull: Specifies whether to treat null or empty string as null value.
  • skipHeaderLineCount : spécifie le nombre de lignes à ignorer.skipHeaderLineCount - Specifies how many lines need be skipped. Applicable uniquement quand le jeu de données d’entrée utilise TextFormat.It is applicable only when input dataset is using TextFormat.

De même, BlobSink prend en charge la propriété suivante pour la compatibilité descendante.Similarly, BlobSink supports the following property for backward compatibility.

  • blobWriterAddHeader : spécifie s’il faut ajouter un en-tête de définitions de colonne lors de l’écriture dans un jeu de données de sortie.blobWriterAddHeader: Specifies whether to add a header of column definitions while writing to an output dataset.

Les jeux de données prennent désormais en charge les propriétés suivantes qui implémentent la même fonctionnalité : treatEmptyAsNull, skipLineCount, firstRowAsHeader.Datasets now support the following properties that implement the same functionality: treatEmptyAsNull, skipLineCount, firstRowAsHeader.

Le tableau suivant fournit des recommandations sur l’utilisation de nouvelles propriétés de jeu de données pour remplacer ces propriétés de BlobSink et BlobSource.The following table provides guidance on using the new dataset properties in place of these blob source/sink properties.

Propriété de l’activité de copieCopy Activity property Propriété du jeu de donnéesDataset property
skipHeaderLineCount sur BlobSourceskipHeaderLineCount on BlobSource skipLineCount et firstRowAsHeader.skipLineCount and firstRowAsHeader. Les lignes sont d’abord ignorées, puis la première ligne est lue en tant qu’en-tête.Lines are skipped first and then the first row is read as a header.
treatEmptyAsNull sur BlobSourcetreatEmptyAsNull on BlobSource treatEmptyAsNull sur le jeu de données d’entréetreatEmptyAsNull on input dataset
blobWriterAddHeader sur BlobSinkblobWriterAddHeader on BlobSink firstRowAsHeader sur le jeu de données de sortiefirstRowAsHeader on output dataset

Consultez la section Définition de TextFormat pour plus d’informations sur ces propriétés.See Specifying TextFormat section for detailed information on these properties.

exemples de valeurs recursive et copyBehaviorrecursive and copyBehavior examples

Cette section décrit le comportement résultant de l’opération de copie pour différentes combinaisons de valeurs recursive et copyBehavior.This section describes the resulting behavior of the Copy operation for different combinations of recursive and copyBehavior values.

recursiverecursive copyBehaviorcopyBehavior Comportement résultantResulting behavior
truetrue preserveHierarchypreserveHierarchy Pour un dossier source nommé Dossier1 et structuré comme suit :For a source folder Folder1 with the following structure:

Dossier1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5        File5

le dossier cible nommé Dossier1 est créé et structuré de la même manière que la sourcethe target folder Folder1 is created with the same structure as the source

Dossier1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5.        File5.
truetrue flattenHierarchyflattenHierarchy Pour un dossier source nommé Dossier1 et structuré comme suit :For a source folder Folder1 with the following structure:

Folder1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5        File5

le dossier cible Dossier1 est créé et structuré comme suit :the target Folder1 is created with the following structure:

Folder1Folder1
    nom généré automatiquement pour Fichier1    auto-generated name for File1
    nom généré automatiquement pour Fichier2    auto-generated name for File2
    nom généré automatiquement pour Fichier3    auto-generated name for File3
    nom généré automatiquement pour Fichier4    auto-generated name for File4
    nom généré automatiquement pour Fichier5    auto-generated name for File5
truetrue mergeFilesmergeFiles Pour un dossier source nommé Dossier1 et structuré comme suit :For a source folder Folder1 with the following structure:

Folder1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5        File5

le dossier cible Dossier1 est créé et structuré comme suit :the target Folder1 is created with the following structure:

Folder1Folder1
    Le contenu de Fichier1 + Fichier2 + Fichier3 + Fichier4 + Fichier5 est fusionné dans un fichier avec le nom de fichier généré automatiquement    File1 + File2 + File3 + File4 + File 5 contents are merged into one file with auto-generated file name
falsefalse preserveHierarchypreserveHierarchy Pour un dossier source nommé Dossier1 et structuré comme suit :For a source folder Folder1 with the following structure:

Folder1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5        File5

le dossier cible nommé Dossier1 est créé et structuré comme suitthe target folder Folder1 is created with the following structure

Folder1Folder1
    Fichier1    File1
    Fichier2    File2


Sous-dossier1, où Fichier3, Fichier4 et Fichier5 ne sont pas sélectionnés.Subfolder1 with File3, File4, and File5 are not picked up.
falsefalse flattenHierarchyflattenHierarchy Pour un dossier source nommé Dossier1 et structuré comme suit :For a source folder Folder1 with the following structure:

Folder1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5        File5

le dossier cible nommé Dossier1 est créé et structuré comme suitthe target folder Folder1 is created with the following structure

Folder1Folder1
    nom généré automatiquement pour Fichier1    auto-generated name for File1
    nom généré automatiquement pour Fichier2    auto-generated name for File2


Sous-dossier1, où Fichier3, Fichier4 et Fichier5 ne sont pas sélectionnés.Subfolder1 with File3, File4, and File5 are not picked up.
falsefalse mergeFilesmergeFiles Pour un dossier source nommé Dossier1 et structuré comme suit :For a source folder Folder1 with the following structure:

Folder1Folder1
    Fichier1    File1
    Fichier2    File2
    Sousdossier1    Subfolder1
         Fichier3        File3
         Fichier4        File4
         Fichier5        File5

le dossier cible nommé Dossier1 est créé et structuré comme suitthe target folder Folder1 is created with the following structure

Folder1Folder1
    Le contenu de Fichier1 + Fichier2 est fusionné dans un fichier avec le nom de fichier généré automatiquement.    File1 + File2 contents are merged into one file with auto-generated file name. nom généré automatiquement pour Fichier1auto-generated name for File1

Sous-dossier1, où Fichier3, Fichier4 et Fichier5 ne sont pas sélectionnés.Subfolder1 with File3, File4, and File5 are not picked up.

Procédure pas à pas : Utiliser l’Assistant Copie pour copier des données vers/à partir de Stockage BlobWalkthrough: Use Copy Wizard to copy data to/from Blob Storage

Examinons comment copier rapidement des données vers/depuis un stockage Blob Azure.Let's look at how to quickly copy data to/from an Azure blob storage. Dans cette procédure pas à pas, les banques de données source et de destination sont du type Stockage Blob Azure.In this walkthrough, both source and destination data stores of type: Azure Blob Storage. Le pipeline de cette procédure pas à pas copie des données entre les dossiers d’un même conteneur d’objets blob.The pipeline in this walkthrough copies data from a folder to another folder in the same blob container. Cette procédure pas à pas est volontairement simple pour vous montrer les paramètres ou les propriétés lorsque vous utilisez le Stockage Blob en tant que source ou récepteur.This walkthrough is intentionally simple to show you settings or properties when using Blob Storage as a source or sink.

PrérequisPrerequisites

  1. Créez un compte de stockage Azure à usage général si vous n’en avez pas encore un.Create a general-purpose Azure Storage Account if you don't have one already. Vous utilisez le stockage d’objets blob comme banque de données source et de destination dans cette procédure pas à pas.You use the blob storage as both source and destination data store in this walkthrough. Si vous n’avez pas de compte de stockage Azure, consultez l’article Créer un compte de stockage pour découvrir comment en créer un.if you don't have an Azure storage account, see the Create a storage account article for steps to create one.
  2. Créez un conteneur d’objets blob nommé adfblobconnector dans le compte de stockage.Create a blob container named adfblobconnector in the storage account.
  3. Créez un dossier nommé input dans le conteneur adfblobconnector.Create a folder named input in the adfblobconnector container.
  4. Créez un fichier nommé emp.txt avec le contenu suivant et chargez-le dans le dossier input à l’aide d’outils tels qu’Azure Storage Explorer (Explorateur du Stockage Azure).Create a file named emp.txt with the following content and upload it to the input folder by using tools such as Azure Storage Explorer
    John, Doe
    Jane, Doe
    

Création de la fabrique de donnéesCreate the data factory

  1. Connectez-vous au Portail Azure.Sign in to the Azure portal.
  2. Cliquez sur Créer une ressource en haut à gauche, cliquez sur Intelligence + analyse, puis sur Data Factory.Click Create a resource from the top-left corner, click Intelligence + analytics, and click Data Factory.
  3. Dans le volet Nouvelle fabrique de données :In the New data factory pane:
    1. Entrez ADFBlobConnectorDF comme nom.Enter ADFBlobConnectorDF for the name. Le nom de la fabrique de données Azure doit être un nom global unique.The name of the Azure data factory must be globally unique. Si l’erreur *Data factory name “ADFBlobConnectorDF” is not available s’affiche, changez le nom de la fabrique de données (par exemple, votrenomADFTutorialDataFactory), puis tentez de la recréer.If you receive the error: *Data factory name “ADFBlobConnectorDF” is not available, change the name of the data factory (for example, yournameADFBlobConnectorDF) and try creating again. Consultez la rubrique Data Factory - Règles d’affectation des noms pour savoir comment nommer les artefacts Data Factory.See Data Factory - Naming Rules topic for naming rules for Data Factory artifacts.
    2. Sélectionnez votre abonnementAzure.Select your Azure subscription.
    3. Pour le groupe de ressources, sélectionnez Utiliser l’existant pour sélectionner un groupe de ressources existant (ou) sélectionnez Créer un nouveau pour entrer le nom d’un groupe de ressources.For Resource Group, select Use existing to select an existing resource group (or) select Create new to enter a name for a resource group.
    4. Sélectionnez un emplacement pour la fabrique de données.Select a location for the data factory.
    5. Sélectionnez la case à cocher Épingler au tableau de bord en bas du panneau.Select Pin to dashboard check box at the bottom of the blade.
    6. Cliquez sur Créer.Click Create.
  4. Une fois la création terminée, le panneau Data Factory s’affiche comme sur l’image suivante : Page d’accueil Data FactoryAfter the creation is complete, you see the Data Factory blade as shown in the following image: Data factory home page

Assistant de copieCopy Wizard

  1. Dans la page d’accueil Data Factory, cliquez sur la vignette Copier les données pour lancer l’Assistant Copier des données dans un onglet distinct.On the Data Factory home page, click the Copy data tile to launch Copy Data Wizard in a separate tab.

    Notes

    Si vous voyez que le navigateur web est bloqué au niveau « Autorisation... », désactivez/décochez l’option Block third party cookies and site data (Bloquer les cookies et les données de site tiers) (ou) laissez cette option activée et créez une exception pour login.microsoftonline.com, puis essayez de relancer l’Assistant.If you see that the web browser is stuck at "Authorizing...", disable/uncheck Block third-party cookies and site data setting (or) keep it enabled and create an exception for login.microsoftonline.com and then try launching the wizard again.

  2. Dans la page Propriétés :In the Properties page:

    1. Entrez CopyPipeline comme Nom de la tâche.Enter CopyPipeline for Task name. Le nom de la tâche correspond au nom du pipeline de votre fabrique de données.The task name is the name of the pipeline in your data factory.
    2. Entrez une description pour la tâche (facultative).Enter a description for the task (optional).
    3. Pour Task cadence or Task schedule (Cadence ou planification des tâches) , conservez l’option Run regularly on schedule (Exécuter régulièrement selon la planification) .For Task cadence or Task schedule, keep the Run regularly on schedule option. Si vous souhaitez exécuter cette tâche une seule fois au lieu de l’exécuter à plusieurs reprises selon une planification, sélectionnez Run once now (Exécuter une seule fois maintenant) .If you want to run this task only once instead of run repeatedly on a schedule, select Run once now. Si vous sélectionnez l’option Run once now (Exécuter une seule fois maintenant) , un pipeline à usage unique est créé.If you select, Run once now option, a one-time pipeline is created.
    4. Conservez les paramètres pour le Modèle récurrent.Keep the settings for Recurring pattern. Cette tâche s’exécute tous les jours entre les heures de début et de fin que vous spécifiez à l’étape suivante.This task runs daily between the start and end times you specify in the next step.
    5. Modifiez la Date et heure de début et définissez-la sur 21/04/2017.Change the Start date time to 04/21/2017.
    6. Modifiez la Date et heure de fin et définissez-la sur 25/04/2017.Change the End date time to 04/25/2017. Vous souhaiterez peut-être taper la date au lieu de parcourir le calendrier.You may want to type the date instead of browsing through the calendar.
    7. Cliquez sur Suivant.Click Next. Outil de copie - Page PropriétésCopy Tool - Properties page
  3. Dans la page Source data store (Magasin de données source), cliquez sur la vignette Stockage d’objets blob Azure.On the Source data store page, click Azure Blob Storage tile. Cette page sert à spécifier le magasin de données source pour la tâche de copie.You use this page to specify the source data store for the copy task. Vous pouvez utiliser un service lié de magasin de données existant (ou) spécifier un nouveau magasin de données.You can use an existing data store linked service (or) specify a new data store. Pour utiliser un service lié existant, vous devez sélectionner FROM EXISTING LINKED SERVICES (À PARTIR DES SERVICES LIÉS EXISTANTS) et le service lié approprié.To use an existing linked service, you would select FROM EXISTING LINKED SERVICES and select the right linked service. Outil de copie - Page Banque de données sourcesCopy Tool - Source data store page

  4. Dans la page Specify the Azure Blob storage account (Spécifier le compte de stockage d’objets blob Azure) :On the Specify the Azure Blob storage account page:

    1. Conservez le nom généré automatiquement comme Nom de la connexion.Keep the auto-generated name for Connection name. Le nom de la connexion est le nom du service lié de type Stockage Azure.The connection name is the name of the linked service of type: Azure Storage.
    2. Vérifiez que l’option À partir des abonnements est sélectionnée pour Account selection method (Méthode de sélection du compte).Confirm that From Azure subscriptions option is selected for Account selection method.
    3. Sélectionnez votre abonnement Azure ou conservez Sélectionner tout pour l’option Abonnement Azure.Select your Azure subscription or keep Select all for Azure subscription.
    4. Sélectionnez un compte de stockage Azure dans la liste des comptes de stockage Azure disponibles dans l’abonnement sélectionné.Select an Azure storage account from the list of Azure storage accounts available in the selected subscription. Vous pouvez également choisir d’entrer manuellement les paramètres du compte de stockage en sélectionnant l’option Entrer manuellement dans Account selection method (Méthode de sélection de compte).You can also choose to enter storage account settings manually by selecting Enter manually option for the Account selection method.
    5. Cliquez sur Suivant.Click Next.
      Outil de copie - Spécifier le compte de stockage Blob AzureCopy Tool - Specify the Azure Blob storage account
  5. Dans la page Choose the input file or folder (Choisir le fichier ou le dossier d’entrée) :On Choose the input file or folder page:

    1. Double-cliquez sur adfblobcontainer.Double-click adfblobcontainer.
    2. Sélectionnez input, puis cliquez sur Choisir.Select input, and click Choose. Dans cette procédure pas à pas, vous sélectionnez le dossier d’entrée.In this walkthrough, you select the input folder. Vous pouvez également sélectionner à la place le fichier emp.txt dans le dossier.You could also select the emp.txt file in the folder instead. Outil de copie - Choisir le fichier ou le dossier d’entréeCopy Tool - Choose the input file or folder
  6. Dans la page Choose the input file or folder (Choisir le fichier ou le dossier d’entrée) :On the Choose the input file or folder page:

    1. Vérifiez que le fichier ou dossier est défini sur adfblobconnector/input.Confirm that the file or folder is set to adfblobconnector/input. Si les fichiers se trouvent dans des sous-dossiers, par exemple, 01/04/2017, 02/04/2017 et ainsi de suite, entrez adfblobconnector/input /{jour}/{mois}/{année} pour le fichier ou le dossier.If the files are in sub folders, for example, 2017/04/01, 2017/04/02, and so on, enter adfblobconnector/input/{year}/{month}/{day} for file or folder. Si vous appuyez sur TAB hors de la zone de texte, trois listes déroulantes s’affichent. Elles permettent de sélectionner les formats d’année (aaaa), de mois (MM) et de jour (jj).When you press TAB out of the text box, you see three drop-down lists to select formats for year (yyyy), month (MM), and day (dd).
    2. Ne définissez pas Copy file recursively (Copier le fichier de façon récursive) .Do not set Copy file recursively. Sélectionnez cette option pour rechercher de manière récursive dans les dossiers les fichiers à copier vers la destination.Select this option to recursively traverse through folders for files to be copied to the destination.
    3. Ne sélectionnez pas l’option Copie binaire.Do not the binary copy option. Sélectionnez cette option pour effectuer une copie binaire du fichier source vers la destination.Select this option to perform a binary copy of source file to the destination. Ne sélectionnez pas cette option pour la procédure pas à pas afin de pouvoir afficher d’autres options dans les pages suivantes.Do not select for this walkthrough so that you can see more options in the next pages.
    4. Vérifiez que l’option Type de compression est définie sur Aucune.Confirm that the Compression type is set to None. Sélectionnez une valeur pour cette option si vos fichiers sources sont compressés dans l’un des formats pris en charge.Select a value for this option if your source files are compressed in one of the supported formats.
    5. Cliquez sur Suivant.Click Next. Outil de copie - Choisir le fichier ou le dossier d’entréeCopy Tool - Choose the input file or folder
  7. Dans la page File format settings (Paramètres de format de fichier), vous pouvez voir les délimiteurs et le schéma qui sont détectés automatiquement par l’Assistant en analysant le fichier.On the File format settings page, you see the delimiters and the schema that is auto-detected by the wizard by parsing the file.

    1. Vérifiez les options suivantes :Confirm the following options:
      a.a. L’option Format de fichier est définie sur Format du texte.The file format is set to Text format. La liste déroulante contient tous les formats pris en charge.You can see all the supported formats in the drop-down list. Par exemple : JSON, Avro, ORC, Parquet.For example: JSON, Avro, ORC, Parquet. b.b. L’option Séparateur de colonnes est définie sur Comma (,).The column delimiter is set to Comma (,). Vous pouvez voir les autres séparateurs de colonnes pris en charge par Data Factory dans la liste déroulante.You can see the other column delimiters supported by Data Factory in the drop-down list. Vous pouvez également spécifier un séparateur personnalisé.You can also specify a custom delimiter. c.c. L’option Séparateur de lignes est définie sur Carriage Return + Line feed (\r\n).The row delimiter is set to Carriage Return + Line feed (\r\n). Vous pouvez voir les autres séparateurs de lignes pris en charge par Data Factory dans la liste déroulante.You can see the other row delimiters supported by Data Factory in the drop-down list. Vous pouvez également spécifier un séparateur personnalisé.You can also specify a custom delimiter. d.d. L’option Skip line count (Nombre de lignes à ignorer) est définie sur 0.The skip line count is set to 0. Entrez ici le nombre de lignes que vous souhaitez ignorer en haut du fichier.If you want a few lines to be skipped at the top of the file, enter the number here. e.e. L’option First data row contains column names (La première ligne de données contient des noms de colonne) n’est pas cochée.The first data row contains column names is not set. Si les fichiers sources contiennent des noms de colonne dans la première ligne, sélectionnez cette option.If the source files contain column names in the first row, select this option. f.f. L’option Treat empty column value as null (Traiter une colonne vide comme valeur Null) est cochée.The treat empty column value as null option is set.
    2. Développez Paramètres avancés pour afficher les options avancées disponibles.Expand Advanced settings to see advanced option available.
    3. En bas de la page, affichez l’aperçu des données du fichier emp.txt.At the bottom of the page, see the preview of data from the emp.txt file.
    4. Cliquez sur l’onglet SCHÉMA en bas de la page pour afficher le schéma déduit par l’Assistant Copie en examinant les données du fichier source.Click SCHEMA tab at the bottom to see the schema that the copy wizard inferred by looking at the data in the source file.
    5. Une fois que vous avez vérifié les délimiteurs et afficher un aperçu des données, cliquez sur Suivant.Click Next after you review the delimiters and preview data. Outil de copie - Paramètres de format de fichierCopy Tool - File format settings
  8. Dans la page de la banque de données de destination, sélectionnez Stockage Blob Azure, puis cliquez sur Suivant.On the Destination data store page, select Azure Blob Storage, and click Next. Vous utilisez le Stockage Blob Azure comme banques de données source et de destination dans cette procédure pas à pas.You are using the Azure Blob Storage as both the source and destination data stores in this walkthrough.
    Outil de copie - Sélectionner la banque de données de destinationCopy Tool - select destination data store

  9. Dans la page Specify the Azure Blob storage account (Spécifier le compte de stockage Blob Azure) :On Specify the Azure Blob storage account page:

    1. Entrez AzureStorageLinkedService dans le champ Nom de la connexion.Enter AzureStorageLinkedService for the Connection name field.
    2. Vérifiez que l’option À partir des abonnements est sélectionnée pour Account selection method (Méthode de sélection du compte).Confirm that From Azure subscriptions option is selected for Account selection method.
    3. Sélectionnez votre abonnementAzure.Select your Azure subscription.
    4. Sélectionnez votre compte de stockage Azure.Select your Azure storage account.
    5. Cliquez sur Suivant.Click Next.
  10. Dans la page Choose the output file or folder (Choisir le fichier ou le dossier de sortie) :On the Choose the output file or folder page:

    1. spécifiez le chemin d’accès du dossier adfblobconnector/output/{année}/{mois}/{jour} .specify Folder path as adfblobconnector/output/{year}/{month}/{day}. Entrez TAB.Enter TAB.
    2. Pour l’année, sélectionnez aaaa.For the year, select yyyy.
    3. Pour le mois, vérifiez que le paramètre est défini sur MM.For the month, confirm that it is set to MM.
    4. Pour le jour, vérifiez que le paramètre est défini sur jj.For the day, confirm that it is set to dd.
    5. Vérifiez que l’option Type de compression est définie sur Aucune.Confirm that the compression type is set to None.
    6. Vérifiez que l’option Copy behavior (Comportement de copie) est définie sur Merge files (Fusionner les fichiers) .Confirm that the copy behavior is set to Merge files. Si un fichier de sortie du même nom existe déjà, le nouveau contenu est ajouté à la fin du même fichier.If the output file with the same name already exists, the new content is added to the same file at the end.
    7. Cliquez sur Suivant.Click Next. Outil de copie - Choisir le fichier ou le dossier de sortieCopy Tool - Choose output file or folder
  11. Dans la page Paramètres de format de fichier, passez en revue les paramètres, puis cliquez sur Suivant.On the File format settings page, review the settings, and click Next. L’une des options supplémentaires ici consiste à ajouter un en-tête au fichier de sortie.One of the additional options here is to add a header to the output file. Si vous sélectionnez cette option, une ligne d’en-tête est ajoutée avec les noms des colonnes du schéma de la source.If you select that option, a header row is added with names of the columns from the schema of the source. Vous pouvez renommer les noms de colonne par défaut lorsque vous affichez le schéma de la source.You can rename the default column names when viewing the schema for the source. Par exemple, vous pouvez modifier les première et deuxième colonnes et les définir respectivement sur Prénom et Nom.For example, you could change the first column to First Name and second column to Last Name. Le fichier de sortie est alors généré avec un en-tête contenant ces noms comme noms de colonne.Then, the output file is generated with a header with these names as column names. Outil de copie - Paramètres de format de fichier pour la destinationCopy Tool - File format settings for destination

  12. Dans la page Paramètres de performances, vérifiez que les paramètres cloud units (Unités cloud) et parallel copies (Copies parallèles) sont définis sur Auto, puis cliquez sur Suivant.On the Performance settings page, confirm that cloud units and parallel copies are set to Auto, and click Next. Pour plus d’informations sur ces paramètres, consultez le Guide sur les performances et le réglage de l’activité de copie.For details about these settings, see Copy activity performance and tuning guide. Outil de copie - Paramètres de performancesCopy Tool - Performance settings

  13. Dans la page Résumé, passez en revue tous les paramètres (propriétés de tâche, paramètres de source et de destination, et paramètres de copie), puis cliquez sur Suivant.On the Summary page, review all settings (task properties, settings for source and destination, and copy settings), and click Next. Outil de copie - Page RésuméCopy Tool - Summary page

  14. Passez en revue les informations contenues dans la page Résumé, puis cliquez sur Terminer.Review information in the Summary page, and click Finish. L’Assistant crée deux services liés, deux jeux de données (entrée et sortie) et un pipeline dans la fabrique de données (d’où vous avez lancé l’Assistant Copie).The wizard creates two linked services, two datasets (input and output), and one pipeline in the data factory (from where you launched the Copy Wizard). Outil de copie - Page DéploiementCopy Tool - Deployment page

Surveiller le pipeline (tâche de copie)Monitor the pipeline (copy task)

  1. Cliquez sur le lien Click here to monitor copy pipeline dans la page Déploiement.Click the link Click here to monitor copy pipeline on the Deployment page.
  2. L’application Surveiller et Gérer doit apparaître dans un onglet distinct. Application Surveiller et gérerYou should see the Monitor and Manage application in a separate tab. Monitor and Manage App
  3. Modifiez l’heure de début indiquée en haut sur 04/19/2017 et l’heure de fin sur 04/27/2017, puis cliquez sur Appliquer.Change the start time at the top to 04/19/2017 and end time to 04/27/2017, and then click Apply.
  4. La liste FENÊTRES D’ACTIVITÉ doit contenir cinq fenêtres d’activité.You should see five activity windows in the ACTIVITY WINDOWS list. Les heures WindowStart doivent couvrir tous les jours, de l’heure de début du pipeline à son heure de fin.The WindowStart times should cover all days from pipeline start to pipeline end times.
  5. Cliquez plusieurs fois sur le bouton Actualiser correspondant à la liste FENÊTRES D’ACTIVITÉ jusqu’à ce que le statut de toutes les fenêtres d’activité soit défini sur Prêt.Click Refresh button for the ACTIVITY WINDOWS list a few times until you see the status of all the activity windows is set to Ready.
  6. À présent, vérifiez que les fichiers de sortie sont générés dans le dossier de sortie du conteneur adfblobconnector.Now, verify that the output files are generated in the output folder of adfblobconnector container. Vous devez voir la structure des dossiers suivante dans le dossier de sortie :You should see the following folder structure in the output folder:
    2017/04/21
    2017/04/22
    2017/04/23
    2017/04/24
    2017/04/25
    
    Pour plus d’informations sur la surveillance et la gestion des fabriques de données, consultez l’article Monitor and manage Data Factory pipeline (Surveiller et gérer le pipeline Data Factory).For detailed information about monitoring and managing data factories, see Monitor and manage Data Factory pipeline article.

Entités Data FactoryData Factory entities

À présent, revenez dans l’onglet contenant la page d’accueil Data Factory.Now, switch back to the tab with the Data Factory home page. Notez qu’il existe désormais deux services liés, deux jeux de données et un pipeline dans votre fabrique de données.Notice that there are two linked services, two datasets, and one pipeline in your data factory now.

Page d’accueil Data Factory comportant des entités

Cliquez sur Créer et déployer pour démarrer Data Factory Editor.Click Author and deploy to launch Data Factory Editor.

Data Factory Editor

Votre fabrique de données doit contenir les entités Data Factory suivantes :You should see the following Data Factory entities in your data factory:

  • Deux services liés,Two linked services. l’un pour la source et l’autre pour la destination.One for the source and the other one for the destination. Les deux services liés désignent le même compte de stockage Azure dans cette procédure pas à pas.Both the linked services refer to the same Azure Storage account in this walkthrough.
  • Deux jeux de données,Two datasets. un jeu de données d’entrée et un jeu de données de sortie.An input dataset and an output dataset. Dans cette procédure pas à pas, les deux utilisent le même conteneur d’objets blob, mais désignent des dossiers différents (d’entrée et de sortie).In this walkthrough, both use the same blob container but refer to different folders (input and output).
  • Un pipeline.A pipeline. Le pipeline contient une activité de copie qui utilise une source d’objet blob et un récepteur d’objet blob pour copier les données d’un emplacement d’objet blob Azure vers un autre emplacement d’objet blob Azure.The pipeline contains a copy activity that uses a blob source and a blob sink to copy data from an Azure blob location to another Azure blob location.

Les sections qui suivent fournissent des informations supplémentaires sur ces entités.The following sections provide more information about these entities.

Services liésLinked services

Vous devez voir deux services liés,You should see two linked services. l’un pour la source et l’autre pour la destination.One for the source and the other one for the destination. Dans cette procédure pas à pas, les deux définitions sont identiques, à l’exception de leurs noms.In this walkthrough, both definitions look the same except for the names. Le type du service lié est défini sur AzureStorage.The type of the linked service is set to AzureStorage. connectionString est la propriété la plus importante de la définition de service lié. Elle est utilisée par Data Factory pour se connecter à votre compte de stockage Azure lors de l’exécution.Most important property of the linked service definition is the connectionString, which is used by Data Factory to connect to your Azure Storage account at runtime. Ignorez la propriété hubName dans la définition.Ignore the hubName property in the definition.

Service lié du stockage d’objets blob sourceSource blob storage linked service
{
    "name": "Source-BlobStorage-z4y",
    "properties": {
        "type": "AzureStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=mystorageaccount;AccountKey=**********"
        }
    }
}
Service lié du stockage d’objets blob de destinationDestination blob storage linked service
{
    "name": "Destination-BlobStorage-z4y",
    "properties": {
        "type": "AzureStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=mystorageaccount;AccountKey=**********"
        }
    }
}

Pour plus d’informations sur le service lié Stockage Azure, consultez la section Propriétés du service lié.For more information about Azure Storage linked service, see Linked service properties section.

Groupes de donnéesDatasets

Il existe deux jeux de données : un jeu de données d’entrée et un jeu de données de sortie.There are two datasets: an input dataset and an output dataset. Le type des deux jeux de données est défini sur AzureBlob.The type of the dataset is set to AzureBlob for both.

Le jeu de données d’entrée pointe vers le dossier input du conteneur d’objets blob adfblobconnector.The input dataset points to the input folder of the adfblobconnector blob container. La propriété externe est définie sur true pour ce jeu de données, car les données ne sont pas produites par le pipeline avec l’activité de copie qui utilise ce jeu de données en tant qu’entrée.The external property is set to true for this dataset as the data is not produced by the pipeline with the copy activity that takes this dataset as an input.

Le jeu de données de sortie pointe vers le dossier output du même conteneur d’objets blob.The output dataset points to the output folder of the same blob container. Le jeu de données de sortie utilise également l’année, le mois et le jour de la variable système SliceStart pour évaluer dynamiquement le chemin d’accès du fichier de sortie.The output dataset also uses the year, month, and day of the SliceStart system variable to dynamically evaluate the path for the output file. Pour obtenir la liste des fonctions et variables système prises en charge par Data Factory, consultez Variables système et fonctions Data Factory.For a list of functions and system variables supported by Data Factory, see Data Factory functions and system variables. La propriété externe est définie sur false (valeur par défaut), car ce jeu de données est produit par le pipeline.The external property is set to false (default value) because this dataset is produced by the pipeline.

Pour plus d’informations sur les propriétés prises en charge par le jeu de données d’objets blob Azure, consultez la section Propriétés du jeu de données.For more information about properties supported by Azure Blob dataset, see Dataset properties section.

Jeu de données d'entréeInput dataset
{
    "name": "InputDataset-z4y",
    "properties": {
        "structure": [
            { "name": "Prop_0", "type": "String" },
            { "name": "Prop_1", "type": "String" }
        ],
        "type": "AzureBlob",
        "linkedServiceName": "Source-BlobStorage-z4y",
        "typeProperties": {
            "folderPath": "adfblobconnector/input/",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ","
            }
        },
        "availability": {
            "frequency": "Day",
            "interval": 1
        },
        "external": true,
        "policy": {}
    }
}
Jeu de données de sortieOutput dataset
{
    "name": "OutputDataset-z4y",
    "properties": {
        "structure": [
            { "name": "Prop_0", "type": "String" },
            { "name": "Prop_1", "type": "String" }
        ],
        "type": "AzureBlob",
        "linkedServiceName": "Destination-BlobStorage-z4y",
        "typeProperties": {
            "folderPath": "adfblobconnector/output/{year}/{month}/{day}",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ","
            },
            "partitionedBy": [
                { "name": "year", "value": { "type": "DateTime", "date": "SliceStart", "format": "yyyy" } },
                { "name": "month", "value": { "type": "DateTime", "date": "SliceStart", "format": "MM" } },
                { "name": "day", "value": { "type": "DateTime", "date": "SliceStart", "format": "dd" } }
            ]
        },
        "availability": {
            "frequency": "Day",
            "interval": 1
        },
        "external": false,
        "policy": {}
    }
}

PipelinePipeline

Le pipeline contient une seule activité.The pipeline has just one activity. Définissez le type de l’activité sur Copier.The type of the activity is set to Copy. Dans les propriétés de type de l’activité, il existe deux sections, l’une pour la source et l’autre pour le récepteur.In the type properties for the activity, there are two sections, one for source and the other one for sink. Le type de source est défini sur BlobSource, car l’activité copie les données d’un stockage d’objets blob.The source type is set to BlobSource as the activity is copying data from a blob storage. Le type de récepteur est défini sur BlobSink, car l’activité copie les données dans un stockage d’objets blob.The sink type is set to BlobSink as the activity copying data to a blob storage. L’activité de copie utilise InputDataset-z4y comme entrée et OutputDataset-z4y comme sortie.The copy activity takes InputDataset-z4y as the input and OutputDataset-z4y as the output.

Pour plus d’informations sur les propriétés prises en charge par BlobSource et BlobSink, consultez la section Propriétés de l’activité de copie.For more information about properties supported by BlobSource and BlobSink, see Copy activity properties section.

{
    "name": "CopyPipeline",
    "properties": {
        "activities": [
            {
                "type": "Copy",
                "typeProperties": {
                    "source": {
                        "type": "BlobSource",
                        "recursive": false
                    },
                    "sink": {
                        "type": "BlobSink",
                        "copyBehavior": "MergeFiles",
                        "writeBatchSize": 0,
                        "writeBatchTimeout": "00:00:00"
                    }
                },
                "inputs": [
                    {
                        "name": "InputDataset-z4y"
                    }
                ],
                "outputs": [
                    {
                        "name": "OutputDataset-z4y"
                    }
                ],
                "policy": {
                    "timeout": "1.00:00:00",
                    "concurrency": 1,
                    "executionPriorityOrder": "NewestFirst",
                    "style": "StartOfInterval",
                    "retry": 3,
                    "longRetry": 0,
                    "longRetryInterval": "00:00:00"
                },
                "scheduler": {
                    "frequency": "Day",
                    "interval": 1
                },
                "name": "Activity-0-Blob path_ adfblobconnector_input_->OutputDataset-z4y"
            }
        ],
        "start": "2017-04-21T22:34:00Z",
        "end": "2017-04-25T05:00:00Z",
        "isPaused": false,
        "pipelineMode": "Scheduled"
    }
}

Exemples JSON pour copier des données vers et depuis le stockage BlobJSON examples for copying data to and from Blob Storage

Les exemples suivants présentent des exemples de définitions JSON que vous pouvez utiliser pour créer un pipeline à l’aide de Visual Studio ou d’Azure PowerShell.The following examples provide sample JSON definitions that you can use to create a pipeline by using Visual Studio or Azure PowerShell. Ils indiquent comment copier des données vers et depuis le stockage Blob Azure et Azure SQL Database.They show how to copy data to and from Azure Blob Storage and Azure SQL Database. Toutefois, les données peuvent être copiées directement vers l’un des récepteurs indiqués ici , via l’activité de copie de Microsoft Azure Data Factory.However, data can be copied directly from any of sources to any of the sinks stated here using the Copy Activity in Azure Data Factory.

Exemple JSON : Copier des données de Stockage Blob vers SQL DatabaseJSON Example: Copy data from Blob Storage to SQL Database

L’exemple suivant montre :The following sample shows:

  1. Un service lié de type AzureSqlDatabase.A linked service of type AzureSqlDatabase.
  2. Un service lié de type AzureStorage.A linked service of type AzureStorage.
  3. Un jeu de données d'entrée de type AzureBlob.An input dataset of type AzureBlob.
  4. Un jeu de données de sortie de type AzureSqlTable.An output dataset of type AzureSqlTable.
  5. Un pipeline avec une activité de copie qui utilise BlobSource et SqlSink.A pipeline with a Copy activity that uses BlobSource and SqlSink.

L’exemple copie des données de série horaire à partir d’un objet blob Azure vers une table SQL Azure, toutes les heures.The sample copies time-series data from an Azure blob to an Azure SQL table hourly. Les propriétés JSON utilisées dans ces exemples sont décrites dans les sections suivant les exemples.The JSON properties used in these samples are described in sections following the samples.

Service lié SQL Azure :Azure SQL linked service:

{
  "name": "AzureSqlLinkedService",
  "properties": {
    "type": "AzureSqlDatabase",
    "typeProperties": {
      "connectionString": "Server=tcp:<servername>.database.windows.net,1433;Database=<databasename>;User ID=<username>@<servername>;Password=<password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30"
    }
  }
}

Service lié Azure Storage :Azure Storage linked service:

{
  "name": "StorageLinkedService",
  "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
    }
  }
}

Azure Data Factory prend en charge deux types de service lié Stockage Azure : AzureStorage et AzureStorageSas.Azure Data Factory supports two types of Azure Storage linked services: AzureStorage and AzureStorageSas. Pour le premier, vous spécifiez la chaîne de connexion qui inclut la clé de compte, et pour le second, vous spécifiez l'Uri de signature d’accès partagé (SAP).For the first one, you specify the connection string that includes the account key and for the later one, you specify the Shared Access Signature (SAS) Uri. Pour plus d’informations, consultez la section Services liés .See Linked Services section for details.

Jeu de données d'entrée d'objet Blob Azure :Azure Blob input dataset:

Les données sont récupérées à partir d’un nouvel objet blob toutes les heures (fréquence : heure, intervalle : 1).Data is picked up from a new blob every hour (frequency: hour, interval: 1). Le nom du chemin d'accès et du fichier de dossier pour l'objet blob sont évalués dynamiquement en fonction de l'heure de début du segment en cours de traitement.The folder path and file name for the blob are dynamically evaluated based on the start time of the slice that is being processed. Le chemin d’accès du dossier utilise l’année, le mois et le jour de début et le nom de fichier utilise l’heure de début.The folder path uses year, month, and day part of the start time and file name uses the hour part of the start time. Le paramètre « external » : « true » informe Data Factory que la table est externe à la Data Factory et non produite par une activité dans la Data Factory.“external”: “true” setting informs Data Factory that the table is external to the data factory and is not produced by an activity in the data factory.

{
  "name": "AzureBlobInput",
  "properties": {
    "type": "AzureBlob",
    "linkedServiceName": "StorageLinkedService",
    "typeProperties": {
      "folderPath": "mycontainer/myfolder/yearno={Year}/monthno={Month}/dayno={Day}/",
      "fileName": "{Hour}.csv",
      "partitionedBy": [
        { "name": "Year", "value": { "type": "DateTime", "date": "SliceStart", "format": "yyyy" } },
        { "name": "Month", "value": { "type": "DateTime", "date": "SliceStart", "format": "MM" } },
        { "name": "Day", "value": { "type": "DateTime", "date": "SliceStart", "format": "dd" } },
        { "name": "Hour", "value": { "type": "DateTime", "date": "SliceStart", "format": "HH" } }
      ],
      "format": {
        "type": "TextFormat",
        "columnDelimiter": ",",
        "rowDelimiter": "\n"
      }
    },
    "external": true,
    "availability": {
      "frequency": "Hour",
      "interval": 1
    },
    "policy": {
      "externalData": {
        "retryInterval": "00:01:00",
        "retryTimeout": "00:10:00",
        "maximumRetry": 3
      }
    }
  }
}

Jeu de données de sortie SQL Azure :Azure SQL output dataset:

L'exemple copie les données dans une table nommée « MyTable » dans une base de données Azure SQL.The sample copies data to a table named “MyTable” in an Azure SQL database. Créez la table dans votre base de données Azure SQL avec le même nombre de colonnes que le fichier CSV d'objet Blob doit contenir.Create the table in your Azure SQL database with the same number of columns as you expect the Blob CSV file to contain. De nouvelles lignes sont ajoutées à la table toutes les heures.New rows are added to the table every hour.

{
  "name": "AzureSqlOutput",
  "properties": {
    "type": "AzureSqlTable",
    "linkedServiceName": "AzureSqlLinkedService",
    "typeProperties": {
      "tableName": "MyOutputTable"
    },
    "availability": {
      "frequency": "Hour",
      "interval": 1
    }
  }
}

Activité de copie dans un pipeline avec une source blob et un récepteur SQL :A copy activity in a pipeline with Blob source and SQL sink:

Le pipeline contient une activité de copie qui est configurée pour utiliser les jeux de données d'entrée et de sortie, et qui est planifiée pour s'exécuter toutes les heures.The pipeline contains a Copy Activity that is configured to use the input and output datasets and is scheduled to run every hour. Dans la définition du pipeline JSON, le type source est défini sur BlobSource et le type sink est défini sur SqlSink.In the pipeline JSON definition, the source type is set to BlobSource and sink type is set to SqlSink.

{
  "name":"SamplePipeline",
  "properties":{
    "start":"2014-06-01T18:00:00",
    "end":"2014-06-01T19:00:00",
    "description":"pipeline with copy activity",
    "activities":[
      {
        "name": "AzureBlobtoSQL",
        "description": "Copy Activity",
        "type": "Copy",
        "inputs": [
          {
            "name": "AzureBlobInput"
          }
        ],
        "outputs": [
          {
            "name": "AzureSqlOutput"
          }
        ],
        "typeProperties": {
          "source": {
            "type": "BlobSource"
          },
          "sink": {
            "type": "SqlSink"
          }
        },
        "scheduler": {
          "frequency": "Hour",
          "interval": 1
        },
        "policy": {
          "concurrency": 1,
          "executionPriorityOrder": "OldestFirst",
          "retry": 0,
          "timeout": "01:00:00"
        }
      }
    ]
  }
}

Exemple JSON : Copier des données de SQL Azure vers Stockage Blob AzureJSON Example: Copy data from Azure SQL to Azure Blob

L’exemple suivant montre :The following sample shows:

  1. Un service lié de type AzureSqlDatabase.A linked service of type AzureSqlDatabase.
  2. Un service lié de type AzureStorage.A linked service of type AzureStorage.
  3. Un jeu de données d'entrée de type AzureSqlTable.An input dataset of type AzureSqlTable.
  4. Un jeu de données de sortie de type AzureBlob.An output dataset of type AzureBlob.
  5. Un pipeline avec une activité de copie qui utilise SqlSource et BlobSink.A pipeline with Copy activity that uses SqlSource and BlobSink.

L’exemple copie des données de série horaire à partir d’une table SQL Azure vers un objet blob Azure, toutes les heures.The sample copies time-series data from an Azure SQL table to an Azure blob hourly. Les propriétés JSON utilisées dans ces exemples sont décrites dans les sections suivant les exemples.The JSON properties used in these samples are described in sections following the samples.

Service lié SQL Azure :Azure SQL linked service:

{
  "name": "AzureSqlLinkedService",
  "properties": {
    "type": "AzureSqlDatabase",
    "typeProperties": {
      "connectionString": "Server=tcp:<servername>.database.windows.net,1433;Database=<databasename>;User ID=<username>@<servername>;Password=<password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30"
    }
  }
}

Service lié Azure Storage :Azure Storage linked service:

{
  "name": "StorageLinkedService",
  "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
    }
  }
}

Azure Data Factory prend en charge deux types de service lié Stockage Azure : AzureStorage et AzureStorageSas.Azure Data Factory supports two types of Azure Storage linked services: AzureStorage and AzureStorageSas. Pour le premier, vous spécifiez la chaîne de connexion qui inclut la clé de compte, et pour le second, vous spécifiez l'Uri de signature d’accès partagé (SAP).For the first one, you specify the connection string that includes the account key and for the later one, you specify the Shared Access Signature (SAS) Uri. Pour plus d’informations, consultez la section Services liés .See Linked Services section for details.

Jeu de données d'entrée SQL Azure :Azure SQL input dataset:

L'exemple suppose que vous avez créé une table « MyTable » dans SQL Azure et qu'elle contient une colonne appelée « timestampcolumn » pour les données de série chronologique.The sample assumes you have created a table “MyTable” in Azure SQL and it contains a column called “timestampcolumn” for time series data.

La définition de external sur true informe le service Data Factory que la table est externe à la Data Factory et non produite par une activité dans la Data Factory.Setting “external”: ”true” informs Data Factory service that the table is external to the data factory and is not produced by an activity in the data factory.

{
  "name": "AzureSqlInput",
  "properties": {
    "type": "AzureSqlTable",
    "linkedServiceName": "AzureSqlLinkedService",
    "typeProperties": {
      "tableName": "MyTable"
    },
    "external": true,
    "availability": {
      "frequency": "Hour",
      "interval": 1
    },
    "policy": {
      "externalData": {
        "retryInterval": "00:01:00",
        "retryTimeout": "00:10:00",
        "maximumRetry": 3
      }
    }
  }
}

Jeu de données de sortie d'objet Blob Azure :Azure Blob output dataset:

Les données sont écrites dans un nouvel objet blob toutes les heures (fréquence : heure, intervalle : 1).Data is written to a new blob every hour (frequency: hour, interval: 1). Le chemin d’accès du dossier pour l’objet blob est évalué dynamiquement en fonction de l’heure de début du segment en cours de traitement.The folder path for the blob is dynamically evaluated based on the start time of the slice that is being processed. Le chemin d'accès du dossier utilise l'année, le mois, le jour et l'heure de l'heure de début.The folder path uses year, month, day, and hours parts of the start time.

{
  "name": "AzureBlobOutput",
  "properties": {
    "type": "AzureBlob",
    "linkedServiceName": "StorageLinkedService",
    "typeProperties": {
      "folderPath": "mycontainer/myfolder/yearno={Year}/monthno={Month}/dayno={Day}/hourno={Hour}/",
      "partitionedBy": [
        {
          "name": "Year",
          "value": { "type": "DateTime", "date": "SliceStart", "format": "yyyy" } },
        { "name": "Month", "value": { "type": "DateTime", "date": "SliceStart", "format": "MM" } },
        { "name": "Day", "value": { "type": "DateTime", "date": "SliceStart", "format": "dd" } },
        { "name": "Hour", "value": { "type": "DateTime", "date": "SliceStart", "format": "HH" } }
      ],
      "format": {
        "type": "TextFormat",
        "columnDelimiter": "\t",
        "rowDelimiter": "\n"
      }
    },
    "availability": {
      "frequency": "Hour",
      "interval": 1
    }
  }
}

Activité de copie dans un pipeline avec une source SQL et un récepteur blob :A copy activity in a pipeline with SQL source and Blob sink:

Le pipeline contient une activité de copie qui est configurée pour utiliser les jeux de données d'entrée et de sortie, et qui est planifiée pour s'exécuter toutes les heures.The pipeline contains a Copy Activity that is configured to use the input and output datasets and is scheduled to run every hour. Dans la définition du pipeline JSON, le type source est défini sur SqlSource et le type sink est défini sur BlobSink.In the pipeline JSON definition, the source type is set to SqlSource and sink type is set to BlobSink. La requête SQL spécifiée pour la propriété SqlReaderQuery sélectionne les données de la dernière heure à copier.The SQL query specified for the SqlReaderQuery property selects the data in the past hour to copy.

{
    "name":"SamplePipeline",
    "properties":{
        "start":"2014-06-01T18:00:00",
        "end":"2014-06-01T19:00:00",
        "description":"pipeline for copy activity",
        "activities":[
            {
                "name": "AzureSQLtoBlob",
                "description": "copy activity",
                "type": "Copy",
                "inputs": [
                    {
                        "name": "AzureSQLInput"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureBlobOutput"
                    }
                ],
                "typeProperties": {
                    "source": {
                        "type": "SqlSource",
                        "SqlReaderQuery": "$$Text.Format('select * from MyTable where timestampcolumn >= \\'{0:yyyy-MM-dd HH:mm}\\' AND timestampcolumn < \\'{1:yyyy-MM-dd HH:mm}\\'', WindowStart, WindowEnd)"
                    },
                    "sink": {
                        "type": "BlobSink"
                    }
                },
                "scheduler": {
                    "frequency": "Hour",
                    "interval": 1
                },
                "policy": {
                    "concurrency": 1,
                    "executionPriorityOrder": "OldestFirst",
                    "retry": 0,
                    "timeout": "01:00:00"
                }
            }
        ]
    }
}

Notes

Pour savoir comment mapper des colonnes d’un jeu de données source sur des colonnes d’un jeu de données récepteur, consultez Mappage de colonnes des jeux de données dans Azure Data Factory.To map columns from source dataset to columns from sink dataset, see Mapping dataset columns in Azure Data Factory.

Performances et réglagePerformance and Tuning

Consultez l’article Guide sur les performances et le réglage de l’activité de copie pour en savoir plus sur les facteurs clés affectant les performances de déplacement des données (activité de copie) dans Azure Data Factory et les différentes manières de les optimiser.See Copy Activity Performance & Tuning Guide to learn about key factors that impact performance of data movement (Copy Activity) in Azure Data Factory and various ways to optimize it.