Déplacer des données depuis Salesforce à l’aide d’Azure Data FactoryMove data from Salesforce by 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 Salesforce dans V2.If you are using the current version of the Data Factory service, see Salesforce connector in V2.

Cet article décrit la façon dont vous pouvez utiliser l’activité de copie dans Azure Data Factory pour copier des données depuis Salesforce vers n’importe quel magasin de données répertorié dans la colonne du récepteur du tableau Sources et récepteurs pris en charge .This article outlines how you can use Copy Activity in an Azure data factory to copy data from Salesforce to any data store that is listed under the Sink column in the supported sources and sinks table. Cet article s’appuie sur l’article des activités de déplacement des données qui présente une vue d’ensemble du déplacement des données avec l’activité de copie et les combinaisons de magasins de données prises en charge.This article builds on the data movement activities article, which presents a general overview of data movement with Copy Activity and supported data store combinations.

Pour l’instant, Data Factory permet uniquement de déplacer des données de Salesforce vers des magasins récepteurs pris en charge, mais il ne prend pas en charge le déplacement des données à partir d’autres magasins de données vers Salesforce.Azure Data Factory currently supports only moving data from Salesforce to supported sink data stores, but does not support moving data from other data stores to Salesforce.

Versions prises en chargeSupported versions

Ce connecteur prend en charge les éditions suivantes de Salesforce : Developer Edition, Professional Edition, Enterprise Edition et Unlimited Edition.This connector supports the following editions of Salesforce: Developer Edition, Professional Edition, Enterprise Edition, or Unlimited Edition. Et il prend en charge la copie de production Salesforce, bac à sable (sandbox) et domaine personnalisé.And it supports copying from Salesforce production, sandbox and custom domain.

PrérequisPrerequisites

Limites des requêtes SalesforceSalesforce request limits

Salesforce prend en charge un nombre limité de requêtes d’API totales et de requêtes d’API simultanées.Salesforce has limits for both total API requests and concurrent API requests. Notez les points suivants :Note the following points:

  • Si le nombre de requêtes simultanées dépasse la limite autorisée, les nouvelles requêtes seront bloquées avec un risque de défaillances aléatoires.If the number of concurrent requests exceeds the limit, throttling occurs and you will see random failures.
  • Si le nombre total de requêtes dépasse la limite autorisée, le compte Salesforce sera bloqué pendant 24 heures.If the total number of requests exceeds the limit, the Salesforce account will be blocked for 24 hours.

Vous pouvez également recevoir l’erreur « REQUEST_LIMIT_EXCEEDED » dans les deux scénarios.You might also receive the “REQUEST_LIMIT_EXCEEDED“ error in both scenarios. Pour plus de détails, consultez la section « API Request Limits » (Limites de requête d’API) du document Salesforce Developer Limits (Limites des développeurs Salesforce).See the "API Request Limits" section in the Salesforce Developer Limits article for details.

Prise en mainGetting started

Vous pouvez créer un pipeline avec une activité de copie qui déplace les données de Salesforce en utilisant différents outils/API.You can create a pipeline with a copy activity that moves data from Salesforce 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. Consultez le tutoriel : Créer un pipeline avec l’activité de copie à l’aide de l’Assistant Copie pour obtenir une procédure pas à pas rapide sur la création d’un pipeline à l’aide de l’Assistant Copie de données.See Tutorial: Create a pipeline using Copy Wizard for a quick walkthrough on creating a pipeline using the Copy data 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 REST API.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 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.
  2. 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.
  3. 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.

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 un exemple avec des définitions JSON pour les entités Data Factory servant à copier des données depuis Salesforce, consultez la section Exemple JSON : copier des données depuis Salesforce vers Stockage Blob Azure de cet article.For a sample with JSON definitions for Data Factory entities that are used to copy data from Salesforce, see JSON example: Copy data from Salesforce to Azure Blob section of this article.

Les sections suivantes fournissent des informations sur les propriétés JSON utilisées pour définir les entités Data Factory spécifiques à Salesforce :The following sections provide details about JSON properties that are used to define Data Factory entities specific to Salesforce:

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

Le tableau suivant décrit les éléments JSON spécifiques au service lié Salesforce.The following table provides descriptions for JSON elements that are specific to the Salesforce linked service.

PropriétéProperty DescriptionDescription ObligatoireRequired
typetype La propriété type doit être définie sur : Salesforce.The type property must be set to: Salesforce. OUIYes
environmentUrlenvironmentUrl Spécifiez l’URL de l’instance Salesforce.Specify the URL of Salesforce instance.

- L'URL par défaut est « https://login.salesforce.com ».- Default is "https://login.salesforce.com".
- Pour copier des données du bac à sable, spécifiez « https://test.salesforce.com  ».- To copy data from sandbox, specify "https://test.salesforce.com".
- Pour copier des données du domaine personnalisé, spécifiez, par exemple : « https://[domain].my.salesforce.com ».- To copy data from custom domain, specify, for example, "https://[domain].my.salesforce.com".
NonNo
userNameusername Spécifiez un nom d’utilisateur pour le compte d’utilisateur.Specify a user name for the user account. OUIYes
passwordpassword Spécifiez le mot de passe du compte d’utilisateur.Specify a password for the user account. OUIYes
securityTokensecurityToken Spécifiez le jeton de sécurité du compte d’utilisateur.Specify a security token for the user account. Consultez l’article Get security token (Obtenir un jeton de sécurité) pour obtenir des instructions sur la réinitialisation et l’obtention d’un jeton de sécurité.See Get security token for instructions on how to reset/get a security token. Pour en savoir plus sur les jetons de sécurité, consultez l’article Security and the API(Sécurité et API).To learn about security tokens in general, see Security and the API. OUIYes

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

Pour obtenir une liste complète des sections et propriétés 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 sections and properties that are 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, and so on).

La section typeProperties est différente pour chaque type de jeu de données et fournit des informations sur l’emplacement 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 of the data in the data store. La section typeProperties pour le jeu de données de type RelationalTable comprend les propriétés suivantes :The typeProperties section for a dataset of the type RelationalTable has the following properties:

PropriétéProperty DescriptionDescription ObligatoireRequired
tableNametableName Nom de la table dans Salesforce.Name of the table in Salesforce. Non (si une requête de type RelationalSource est spécifiée)No (if a query of RelationalSource is specified)

Important

La partie « __c » du nom de l’API est requise pour tout objet personnalisé.The "__c" part of the API Name is needed for any custom object.

Connexion Salesforce - Data Factory - Nom de l’API

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 and properties that are available for defining activities, see the Creating pipelines article. Les propriétés telles que le nom, la description, les tables d’entrée et de sortie, les différentes stratégies, etc. sont disponibles pour tous les types d’activités.Properties like name, description, input and output tables, and various policies are available for all types of activities.

En revanche, les propriétés qui sont disponibles dans la section typeProperties de l’activité varient pour chaque type d’activité.The properties that are available in the typeProperties section of the activity, on the other hand, 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.

Dans l’activité de copie, lorsque la source est de type RelationalSource (qui inclut Salesforce), les propriétés suivantes sont disponibles dans la section typeProperties :In copy activity, when the source is of the type RelationalSource (which includes Salesforce), the following properties are available in typeProperties section:

PropriétéProperty DescriptionDescription Valeurs autoriséesAllowed values ObligatoireRequired
queryquery Utilise la requête personnalisée pour lire des données.Use the custom query to read data. Une requête SQL-92 ou une requête SOQL (Salesforce Object Query Language) .A SQL-92 query or Salesforce Object Query Language (SOQL) query. Par exemple : select * from MyTable__c.For example: select * from MyTable__c. Non (si l’attribut tableName de l’élément dataset est spécifié)No (if the tableName of the dataset is specified)

Important

La partie « __c » du nom de l’API est requise pour tout objet personnalisé.The "__c" part of the API Name is needed for any custom object.

Connexion Salesforce - Data Factory - Nom de l’API

Conseils pour les requêtesQuery tips

Récupération de données à l’aide de la clause where sur la colonne DateTimeRetrieving data using where clause on DateTime column

Lorsque vous spécifiez une requête SOQL ou SQL, faites attention à la différence de format DateTime.When specify the SOQL or SQL query, pay attention to the DateTime format difference. Par exemple :For example:

  • Exemple SOQL : $$Text.Format('SELECT Id, Name, BillingCity FROM Account WHERE LastModifiedDate >= {0:yyyy-MM-ddTHH:mm:ssZ} AND LastModifiedDate < {1:yyyy-MM-ddTHH:mm:ssZ}', WindowStart, WindowEnd)SOQL sample: $$Text.Format('SELECT Id, Name, BillingCity FROM Account WHERE LastModifiedDate >= {0:yyyy-MM-ddTHH:mm:ssZ} AND LastModifiedDate < {1:yyyy-MM-ddTHH:mm:ssZ}', WindowStart, WindowEnd)
  • Exemple SQL :SQL sample:
    • Utilisation de l’Assistant de copie pour spécifier la requête : $$Text.Format('SELECT * FROM Account WHERE LastModifiedDate >= {{ts\'{0:yyyy-MM-dd HH:mm:ss}\'}} AND LastModifiedDate < {{ts\'{1:yyyy-MM-dd HH:mm:ss}\'}}', WindowStart, WindowEnd)Using copy wizard to specify the query: $$Text.Format('SELECT * FROM Account WHERE LastModifiedDate >= {{ts\'{0:yyyy-MM-dd HH:mm:ss}\'}} AND LastModifiedDate < {{ts\'{1:yyyy-MM-dd HH:mm:ss}\'}}', WindowStart, WindowEnd)
    • Utilisation de la modification JSON pour spécifier la requête (caractère d’échappement correct) : $$Text.Format('SELECT * FROM Account WHERE LastModifiedDate >= {{ts\\'{0:yyyy-MM-dd HH:mm:ss}\\'}} AND LastModifiedDate < {{ts\\'{1:yyyy-MM-dd HH:mm:ss}\\'}}', WindowStart, WindowEnd)Using JSON editing to specify the query (escape char properly): $$Text.Format('SELECT * FROM Account WHERE LastModifiedDate >= {{ts\\'{0:yyyy-MM-dd HH:mm:ss}\\'}} AND LastModifiedDate < {{ts\\'{1:yyyy-MM-dd HH:mm:ss}\\'}}', WindowStart, WindowEnd)

Récupération de données à partir d’un rapport SalesforceRetrieving data from Salesforce Report

Vous pouvez récupérer des données à partir de rapports Salesforce en spécifiant la requête en tant que {call "<report name>"}, par exemple.You can retrieve data from Salesforce reports by specifying query as {call "<report name>"},for example,. "query": "{call \"TestReport\"}"."query": "{call \"TestReport\"}".

Récupération d’enregistrements supprimés dans la Corbeille SalesforceRetrieving deleted records from Salesforce Recycle Bin

Pour interroger les enregistrements supprimés de manière réversible dans la Corbeille Salesforce, vous pouvez spécifier « IsDeleted = 1 » dans votre requête.To query the soft deleted records from Salesforce Recycle Bin, you can specify "IsDeleted = 1" in your query. Par exemple,For example,

  • Pour interroger uniquement les enregistrements supprimés, spécifiez « select * from MyTable__c where IsDeleted= 1 »To query only the deleted records, specify "select * from MyTable__c where IsDeleted= 1"
  • Pour interroger tous les enregistrements, notamment ceux existants et supprimés, spécifiez « select * from MyTable__c where IsDeleted = 0 or IsDeleted = 1 »To query all the records including the existing and the deleted, specify "select * from MyTable__c where IsDeleted = 0 or IsDeleted = 1"

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

L’exemple suivant présente des exemples de définitions de JSON que vous pouvez utiliser pour créer un pipeline à l’aide de Visual Studio ou d’Azure PowerShell.The following example provides sample JSON definitions that you can use to create a pipeline by using the Visual Studio or Azure PowerShell. Ils indiquent comment copier des données depuis Salesforce vers Azure Blob Storage.They show how to copy data from Salesforce to Azure Blob Storage. Toutefois, les données peuvent être copiées vers l’un des récepteurs indiqués ici , via l’activité de copie d’Azure Data Factory.However, data can be copied to any of the sinks stated here using the Copy Activity in Azure Data Factory.

Voici les artefacts Data Factory dont vous aurez besoin pour implémenter le scénario.Here are the Data Factory artifacts that you'll need to create to implement the scenario. Les sections qui suivent la liste fournissent des informations supplémentaires sur ces étapes.The sections that follow the list provide details about these steps.

Service lié SalesforceSalesforce linked service

Cet exemple utilise le service lié Salesforce .This example uses the Salesforce linked service. Consultez la section Service lié Salesforce pour connaître les propriétés prises en charge par ce service lié.See the Salesforce linked service section for the properties that are supported by this linked service. Consultez l’article Get security token (Obtenir un jeton de sécurité) pour obtenir des instructions sur la réinitialisation et l’obtention du jeton de sécurité.See Get security token for instructions on how to reset/get the security token.

{
    "name": "SalesforceLinkedService",
    "properties":
    {
        "type": "Salesforce",
        "typeProperties":
        {
            "username": "<user name>",
            "password": "<password>",
            "securityToken": "<security token>"
        }
    }
}

Service lié Azure StorageAzure Storage linked service

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

Jeu de données d’entrée SalesforceSalesforce input dataset

{
    "name": "SalesforceInput",
    "properties": {
        "linkedServiceName": "SalesforceLinkedService",
        "type": "RelationalTable",
        "typeProperties": {
            "tableName": "AllDataType__c"
        },
        "availability": {
            "frequency": "Hour",
            "interval": 1
        },
        "external": true,
        "policy": {
            "externalData": {
                "retryInterval": "00:01:00",
                "retryTimeout": "00:10:00",
                "maximumRetry": 3
            }
        }
    }
}

La définition de external sur true informe le service Data Factory qu’il s’agit d’un jeu de données qui est externe à la Data Factory et non produit par une activité dans la Data Factory.Setting external to true informs the Data Factory service that the dataset is external to the data factory and is not produced by an activity in the data factory.

Important

La partie « __c » du nom de l’API est requise pour tout objet personnalisé.The "__c" part of the API Name is needed for any custom object.

Connexion Salesforce - Data Factory - Nom de l’API

Jeu de données de sortie d’objet Blob AzureAzure 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).

{
    "name": "AzureBlobOutput",
    "properties":
    {
        "type": "AzureBlob",
        "linkedServiceName": "AzureStorageLinkedService",
        "typeProperties":
        {
            "folderPath": "adfgetstarted/alltypes_c"
        },
        "availability":
        {
            "frequency": "Hour",
            "interval": 1
        }
    }
}

Pipeline avec activité de copiePipeline with Copy Activity

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 Copy Activity, which 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 RelationalSource et le type sink est défini sur BlobSink.In the pipeline JSON definition, the source type is set to RelationalSource, and the sink type is set to BlobSink.

Pour obtenir la liste des propriétés prises en charge par RelationalSource, voir Propriétés de type RelationalSource .See RelationalSource type properties for the list of properties that are supported by the RelationalSource.

{
    "name":"SamplePipeline",
    "properties":{
        "start":"2016-06-01T18:00:00",
        "end":"2016-06-01T19:00:00",
        "description":"pipeline with copy activity",
        "activities":[
        {
            "name": "SalesforceToAzureBlob",
            "description": "Copy from Salesforce to an Azure blob",
            "type": "Copy",
            "inputs": [
            {
                "name": "SalesforceInput"
            }
            ],
            "outputs": [
            {
                "name": "AzureBlobOutput"
            }
            ],
            "typeProperties": {
                "source": {
                    "type": "RelationalSource",
                    "query": "SELECT Id, Col_AutoNumber__c, Col_Checkbox__c, Col_Currency__c, Col_Date__c, Col_DateTime__c, Col_Email__c, Col_Number__c, Col_Percent__c, Col_Phone__c, Col_Picklist__c, Col_Picklist_MultiSelect__c, Col_Text__c, Col_Text_Area__c, Col_Text_AreaLong__c, Col_Text_AreaRich__c, Col_URL__c, Col_Text_Encrypt__c, Col_Lookup__c FROM AllDataType__c"
                },
                "sink": {
                    "type": "BlobSink"
                }
            },
            "scheduler": {
                "frequency": "Hour",
                "interval": 1
            },
            "policy": {
                "concurrency": 1,
                "executionPriorityOrder": "OldestFirst",
                "retry": 0,
                "timeout": "01:00:00"
            }
        }
        ]
    }
}

Important

La partie « __c » du nom de l’API est requise pour tout objet personnalisé.The "__c" part of the API Name is needed for any custom object.

Connexion Salesforce - Data Factory - Nom de l’API

Mappage de type pour SalesforceType mapping for Salesforce

Type SalesforceSalesforce type Type basé sur .NET.NET-based type
Numérotation automatiqueAuto Number ChaîneString
Case à cocherCheckbox BooleanBoolean
DeviseCurrency DecimalDecimal
DateDate DateTimeDateTime
Date/HeureDate/Time DateTimeDateTime
EmailEmail ChaîneString
IdId ChaîneString
Relation de rechercheLookup Relationship ChaîneString
Liste déroulante à sélection multipleMulti-Select Picklist ChaîneString
NumberNumber DecimalDecimal
PourcentagePercent DecimalDecimal
TéléphonePhone ChaîneString
Liste déroulantePicklist ChaîneString
TexteText ChaîneString
Zone de texteText Area ChaîneString
Zone de texte (long)Text Area (Long) ChaîneString
Zone de texte (enrichi)Text Area (Rich) ChaîneString
Texte (chiffré)Text (Encrypted) ChaîneString
URLURL ChaîneString

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.

Spécification de la définition de la structure des jeux de données rectangulairesSpecifying structure definition for rectangular datasets

La section structure dans les jeux de données JSON est une section facultative pour les tables rectangulaires (avec des lignes et colonnes) et contient une collection de colonnes de la table.The structure section in the datasets JSON is an optional section for rectangular tables (with rows & columns) and contains a collection of columns for the table. Vous allez utiliser la section structure pour indiquer des informations de type pour les conversions de type ou pour effectuer des mappages de colonnes.You will use the structure section for either providing type information for type conversions or doing column mappings. Les sections suivantes décrivent ces fonctionnalités en détail.The following sections describe these features in detail.

Chaque colonne contient les propriétés suivantes :Each column contains the following properties:

PropriétéProperty DescriptionDescription ObligatoireRequired
namename Nom de la colonne.Name of the column. OUIYes
typetype Type de données de la colonne.Data type of the column. Pour plus d’informations sur le moment où vous devez spécifier les informations de type, consultez la section des conversions de type ci-dessous.See type conversions section below for more details regarding when should you specify type information NonNo
cultureculture Culture .NET à utiliser lorsque le type est spécifié et qu’il est de type .NET Datetime ou Datetimeoffset..NET based culture to be used when type is specified and is .NET type Datetime or Datetimeoffset. La valeur par défaut est « fr-fr ».Default is “en-us”. NonNo
formatformat Chaîne de format à utiliser lorsque le type est spécifié et qu’il est de type .NET Datetime ou Datetimeoffset.Format string to be used when type is specified and is .NET type Datetime or Datetimeoffset. NonNo

L’exemple suivant présente la section JSON structure d’une table qui comporte trois colonnes : userid, name et lastlogindate.The following sample shows the structure section JSON for a table that has three columns userid, name, and lastlogindate.

"structure": 
[
    { "name": "userid"},
    { "name": "name"},
    { "name": "lastlogindate"}
],

Suivez les recommandations suivantes pour savoir quand inclure les informations de « structure » et pour connaître les éléments à inclure dans la section structure .Please use the following guidelines for when to include “structure” information and what to include in the structure section.

  • Pour les sources de données structurées qui stockent le schéma de données et les informations de type, ainsi que les données proprement dites (sources telles qu’une table Azure, SQL Server, Oracle, etc.), vous devez spécifier la section « structure » uniquement si vous voulez effectuer un mappage des colonnes sources spécifiques aux colonnes spécifiques du récepteur et si leurs noms ne sont pas identiques (voir les détails de la section de mappage des colonnes ci-dessous).For structured data sources that store data schema and type information along with the data itself (sources like SQL Server, Oracle, Azure table etc.), you should specify the “structure” section only if you want do column mapping of specific source columns to specific columns in sink and their names are not the same (see details in column mapping section below).

    Comme mentionné ci-dessus, les informations de type sont facultatives dans la section « structure ».As mentioned above, the type information is optional in “structure” section. Pour les sources structurées, les informations de type sont déjà disponibles dans le cadre de la définition du jeu de données dans le magasin de données. Vous ne devez donc pas les inclure lorsque vous incluez la section « structure ».For structured sources, type information is already available as part of dataset definition in the data store, so you should not include type information when you do include the “structure” section.

  • Pour un schéma des sources de données de lecture (en particulier les objets blob Azure) , vous pouvez choisir de stocker des données sans les informations de type ou de schéma.For schema on read data sources (specifically Azure blob) you can choose to store data without storing any schema or type information with the data. Pour ces types de source de données, vous devez inclure « structure » dans les 2 cas suivants :For these types of data sources you should include “structure” in the following 2 cases:

    • Vous souhaitez effectuer un mappage de colonnes.You want to do column mapping.
    • Si le jeu de données est une source dans une activité de copie, vous pouvez fournir des informations de type dans la « structure », et la fabrique de données utilisera ces informations de type pour la conversion en types natifs pour le récepteur.When the dataset is a source in a Copy activity, you can provide type information in “structure” and data factory will use this type information for conversion to native types for the sink. Pour plus d’informations, consultez l’article Déplacer des données vers et depuis un stockage d’objets blob Azure .See Move data to and from Azure Blob article for more information.

Types .NET pris en chargeSupported .NET-based types

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.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.

  • Int16Int16
  • Int32Int32
  • Int64Int64
  • SingleSingle
  • DoubleDouble
  • DecimalDecimal
  • Byte[]Byte[]
  • BoolBool
  • ChaîneString
  • GuidGuid
  • DatetimeDatetime
  • DatetimeoffsetDatetimeoffset
  • TimespanTimespan

Pour Datetime et Datetimeoffset, vous pouvez également spécifier une chaîne « culture » et « format » pour faciliter l’analyse de votre chaîne Datetime personnalisée.For Datetime & Datetimeoffset you can also optionally specify “culture” & “format” string to facilitate parsing of your custom Datetime string. Consultez l’exemple de conversion de type ci-dessous.See sample for type conversion below.

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 the Copy Activity performance and 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.