Azure Data Factory - Variables système et fonctionsAzure Data Factory - Functions and System Variables

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 Variables système dans Data Factory.If you are using the current version of the Data Factory service, see System variables in Data Factory.

Cet article fournit des informations sur les fonctions et variables prises en charge par Azure Data Factory.This article provides information about functions and variables supported by Azure Data Factory.

Variables système Data FactoryData Factory system variables

Nom de la variableVariable Name DescriptionDescription Portée de l’objetObject Scope Étendue JSON et cas d’utilisationJSON Scope and Use Cases
WindowStartWindowStart Début de l’intervalle de temps pour l’intervalle d’exécution d’activité en coursStart of time interval for current activity run window activityactivity
  1. Spécifier des requêtes de sélection de données.Specify data selection queries. Consultez les articles connexes référencés par l’article Activités de déplacement des données.See connector articles referenced in the Data Movement Activities article.
WindowEndWindowEnd Fin de l’intervalle de temps de l’intervalle d’exécution d’activité en coursEnd of time interval for current activity run window activitéactivity identique à WindowStart.same as WindowStart.
SliceStartSliceStart Début de l’intervalle de temps pour une tranche de données en cours de générationStart of time interval for data slice being produced activityactivity
datasetdataset
  1. Spécifier les chemins d’accès et les noms de fichiers dynamiques tout en travaillant avec Blob Azure et Jeux de données du système de fichiers.Specify dynamic folder paths and file names while working with Azure Blob and File System datasets.
  2. Spécifier les dépendances d’entrée avec les fonctions Data Factory dans la collecte d’activité.Specify input dependencies with data factory functions in activity inputs collection.
SliceEndSliceEnd Fin de l’intervalle de temps pour la tranche de données en cours.End of time interval for current data slice. activityactivity
datasetdataset
identique à SliceStart.same as SliceStart.

Notes

Actuellement, la fabrique de données exige que le calendrier spécifié dans l’activité corresponde exactement à la planification spécifiée dans la disponibilité du jeu de données de sortie.Currently data factory requires that the schedule specified in the activity exactly matches the schedule specified in availability of the output dataset. Ainsi, WindowStart, WindowEnd, SliceStart et SliceEnd font toujours correspondre la même période de temps et une tranche de sortie unique.Therefore, WindowStart, WindowEnd, and SliceStart and SliceEnd always map to the same time period and a single output slice.

Exemple d’utilisation d’une variable systèmeExample for using a system variable

Dans l’exemple suivant, 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 the following example, year, month, day, and time of SliceStart are extracted into separate variables that are used by folderPath and fileName properties.

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

Fonctions Data FactoryData Factory functions

Vous pouvez utiliser des fonctions dans Data Factory avec les variables système aux fins suivantes :You can use functions in data factory along with system variables for the following purposes:

  1. Spécification de requêtes de sélection de données (consultez les articles connexes référencés par l’article Activités de déplacement des données ).Specifying data selection queries (see connector articles referenced by the Data Movement Activities article.

    La syntaxe pour appeler une fonction Data Factory est $$<function> pour les requêtes de sélection de données et d’autres propriétés de l’activité et des jeux de données.The syntax to invoke a data factory function is: $$<function> for data selection queries and other properties in the activity and datasets.

  2. Spécifier les dépendances d’entrée avec les fonctions Data Factory dans la collecte d’entrées d’activité.Specifying input dependencies with data factory functions in activity inputs collection.

    $$ n’est pas nécessaire pour spécifier des expressions de dépendance d’entrée.$$ is not needed for specifying input dependency expressions.

Dans l’exemple suivant, la propriété sqlReaderQuery d’un fichier JSON est affectée à une valeur renvoyée par la fonction Text.Format.In the following sample, sqlReaderQuery property in a JSON file is assigned to a value returned by the Text.Format function. Cet exemple utilise également une variable système nommée WindowStart, qui représente l’heure de début de la fenêtre d’activité à exécuter.This sample also uses a system variable named WindowStart, which represents the start time of the activity run window.

{
    "Type": "SqlSource",
    "sqlReaderQuery": "$$Text.Format('SELECT * FROM MyTable WHERE StartTime = \\'{0:yyyyMMdd-HH}\\'', WindowStart)"
}

Consultez la rubrique Chaînes de format de date et d’heure personnalisées , qui décrit les différentes options de formatage que vous pouvez utiliser (par exemple : aa et aaaa).See Custom Date and Time Format Strings topic that describes different formatting options you can use (for example: ay vs. yyyy).

FonctionsFunctions

Les tables qui suivent répertorient toutes les fonctions dans Azure Data Factory :The following tables list all the functions in Azure Data Factory:

CatégorieCategory FonctionFunction parametersParameters DescriptionDescription
TempsTime AddHours(X,Y)AddHours(X,Y) X: DatetimeX: DateTime

Y: intY: int
Ajoute Y heures à l’heure donnée X.Adds Y hours to the given time X.

Exemple : 9/5/2013 12:00:00 PM + 2 hours = 9/5/2013 2:00:00 PMExample: 9/5/2013 12:00:00 PM + 2 hours = 9/5/2013 2:00:00 PM
TempsTime AddMinutes(X,Y)AddMinutes(X,Y) X: DatetimeX: DateTime

Y: intY: int
Ajoute Y minutes à X.Adds Y minutes to X.

Exemple : 9/15/2013 12: 00:00 PM + 15 minutes = 9/15/2013 12: 15:00 PMExample: 9/15/2013 12: 00:00 PM + 15 minutes = 9/15/2013 12: 15:00 PM
TempsTime StartOfHour(X)StartOfHour(X) X: DatetimeX: Datetime Obtient l’heure de début de l’heure représentée par le composant heure de X.Gets the starting time for the hour represented by the hour component of X.

Exemple : StartOfHour of 9/15/2013 05: 10:23 PM is 9/15/2013 05: 00:00 PMExample: StartOfHour of 9/15/2013 05: 10:23 PM is 9/15/2013 05: 00:00 PM
DateDate AddDays(X,Y)AddDays(X,Y) X: DatetimeX: DateTime

Y: intY: int
Ajoute Y jours à X.Adds Y days to X.

Exemple : 15/9/2013 12:00:00 + 2 jours = 17/9/2013 12:00:00.Example: 9/15/2013 12:00:00 PM + 2 days = 9/17/2013 12:00:00 PM.

Vous pouvez également soustraire les jours en spécifiant Y en tant que nombre négatif.You can subtract days too by specifying Y as a negative number.

Exemple : 9/15/2013 12:00:00 PM - 2 days = 9/13/2013 12:00:00 PM.Example: 9/15/2013 12:00:00 PM - 2 days = 9/13/2013 12:00:00 PM.
DateDate AddMonths(X,Y)AddMonths(X,Y) X: DatetimeX: DateTime

Y: intY: int
Ajoute Y mois à X.Adds Y months to X.

Example: 9/15/2013 12:00:00 PM + 1 month = 10/15/2013 12:00:00 PM.Example: 9/15/2013 12:00:00 PM + 1 month = 10/15/2013 12:00:00 PM.

Vous pouvez également soustraire les mois en spécifiant Y en tant que nombre négatif.You can subtract months too by specifying Y as a negative number.

Exemple : 9/15/2013 12:00:00 PM - 1 month = 8/15/2013 12:00:00 PM.Example: 9/15/2013 12:00:00 PM - 1 month = 8/15/2013 12:00:00 PM.
DateDate AddQuarters(X,Y)AddQuarters(X,Y) X: DatetimeX: DateTime

Y: intY: int
Ajoute Y * 3 mois à X.Adds Y * 3 months to X.

Exemple : 9/15/2013 12:00:00 PM + 1 quarter = 12/15/2013 12:00:00 PMExample: 9/15/2013 12:00:00 PM + 1 quarter = 12/15/2013 12:00:00 PM
DateDate AddWeeks(X,Y)AddWeeks(X,Y) X: DatetimeX: DateTime

Y: intY: int
Ajoute Y * 7 jours à XAdds Y * 7 days to X

Exemple : 15/9/2013 12:00:00 + 1 semaine = 22/9/2013 12:00:00Example: 9/15/2013 12:00:00 PM + 1 week = 9/22/2013 12:00:00 PM

Vous pouvez également soustraire les semaines en spécifiant Y en tant que nombre négatif.You can subtract weeks too by specifying Y as a negative number.

Exemple : 9/15/2013 12:00:00 PM - 1 week = 9/7/2013 12:00:00 PM.Example: 9/15/2013 12:00:00 PM - 1 week = 9/7/2013 12:00:00 PM.
DateDate AddYears(X,Y)AddYears(X,Y) X: DatetimeX: DateTime

Y: intY: int
Ajoute Y années à X.Adds Y years to X.

Example: 9/15/2013 12:00:00 PM + 1 year = 9/15/2014 12:00:00 PM

Vous pouvez également soustraire les années en spécifiant Y en tant que nombre négatif.You can subtract years too by specifying Y as a negative number.

Exemple : 9/15/2013 12:00:00 PM - 1 year = 9/15/2012 12:00:00 PM.Example: 9/15/2013 12:00:00 PM - 1 year = 9/15/2012 12:00:00 PM.
DateDate Day(X)Day(X) X: DatetimeX: DateTime Obtient le composant jour de X.Gets the day component of X.

Exemple : Day of 9/15/2013 12:00:00 PM is 9.Example: Day of 9/15/2013 12:00:00 PM is 9.
DateDate DayOfWeek(X)DayOfWeek(X) X: DatetimeX: DateTime Obtient le composant semaine de X.Gets the day of week component of X.

Exemple : DayOfWeek of 9/15/2013 12:00:00 PM is Sunday.Example: DayOfWeek of 9/15/2013 12:00:00 PM is Sunday.
DateDate DayOfYear(X)DayOfYear(X) X: DatetimeX: DateTime Permet d’obtenir le jour de l’année représenté par le composant année de X.Gets the day in the year represented by the year component of X.

Exemples :Examples:
12/1/2015: day 335 of 2015
12/31/2015: day 365 of 2015
12/31/2016: day 366 of 2016 (Leap Year)
DateDate DaysInMonth(X)DaysInMonth(X) X: DatetimeX: DateTime Permet d’obtenir les jours du mois représentés par le composant mois du paramètre X.Gets the days in the month represented by the month component of parameter X.

Exemple : DaysInMonth of 9/15/2013 are 30 since there are 30 days in the September month.Example: DaysInMonth of 9/15/2013 are 30 since there are 30 days in the September month.
DateDate EndOfDay(X)EndOfDay(X) X: DatetimeX: DateTime Obtient la valeur date-heure qui représente la fin de la journée (composant jour) de X.Gets the date-time that represents the end of the day (day component) of X.

Exemple : EndOfDay of 9/15/2013 05:10:23 PM is 9/15/2013 11:59:59 PM.Example: EndOfDay of 9/15/2013 05:10:23 PM is 9/15/2013 11:59:59 PM.
DateDate EndOfMonth(X)EndOfMonth(X) X: DatetimeX: DateTime Permet d’obtenir la fin du mois représentée par le composant mois du paramètre X.Gets the end of the month represented by month component of parameter X.

Exemple : EndOfMonth of 9/15/2013 05:10:23 PM is 9/30/2013 11:59:59 PM (date-heure qui représente la fin du mois de septembre)Example: EndOfMonth of 9/15/2013 05:10:23 PM is 9/30/2013 11:59:59 PM (date time that represents the end of September month)
DateDate StartOfDay(X)StartOfDay(X) X: DatetimeX: DateTime Permet d’obtenir le début de la journée représenté par le composant jour du paramètre X.Gets the start of the day represented by the day component of parameter X.

Exemple : StartOfDay of 9/15/2013 05:10:23 PM is 9/15/2013 12:00:00 AM.Example: StartOfDay of 9/15/2013 05:10:23 PM is 9/15/2013 12:00:00 AM.
DatetimeDateTime From(X)From(X) X: ChaîneX: String Analyser la chaîne X à une heure de date.Parse string X to a date time.
DatetimeDateTime Ticks(X)Ticks(X) X: DatetimeX: DateTime Permet d’obtenir la propriété de graduation du paramètre X. Un cycle est égal à 100 nanosecondes.Gets the ticks property of the parameter X. One tick equals 100 nanoseconds. La valeur de cette propriété représente le nombre de graduations écoulées depuis 12:00:00 minuit, le 1er janvier 0001.The value of this property represents the number of ticks that have elapsed since 12:00:00 midnight, January 1, 0001.
TexteText Format(X)Format(X) X: variable de chaîneX: String variable Met en forme le texte (utilisez la combinaison \\' pour échapper le caractère ').Formats the text (use \\' combination to escape ' character).

Important

Lorsque vous utilisez une fonction au sein d’une autre fonction, vous n’avez pas besoin d’utiliser le préfixe $$ de la fonction interne.When using a function within another function, you do not need to use $$ prefix for the inner function. Par exemple : $$Text.Format('PartitionKey eq \'my_pkey_filter_value\' et RowKey ge \'{0: yyyy-MM-dd HH:mm:ss}\'', Time.AddHours(SliceStart, -6)).For example: $$Text.Format('PartitionKey eq \'my_pkey_filter_value\' and RowKey ge \'{0: yyyy-MM-dd HH:mm:ss}\'', Time.AddHours(SliceStart, -6)). Dans cet exemple, notez que le préfixe $$ n’est pas utilisé pour la fonction Time.AddHours.In this example, notice that $$ prefix is not used for the Time.AddHours function.

ExemplesExample

Dans l’exemple suivant, les paramètres d’entrée et de sortie de l’activité Hive sont déterminés à l’aide de la fonction Text.Format et de la variable système SliceStart.In the following example, input and output parameters for the Hive activity are determined by using the Text.Format function and SliceStart system variable.

{
    "name": "HiveActivitySamplePipeline",
        "properties": {
    "activities": [
            {
            "name": "HiveActivitySample",
            "type": "HDInsightHive",
            "inputs": [
                    {
                    "name": "HiveSampleIn"
                    }
            ],
            "outputs": [
                    {
                    "name": "HiveSampleOut"
                }
            ],
            "linkedServiceName": "HDInsightLinkedService",
            "typeproperties": {
                    "scriptPath": "adfwalkthrough\\scripts\\samplehive.hql",
                    "scriptLinkedService": "StorageLinkedService",
                    "defines": {
                        "Input": "$$Text.Format('wasb://adfwalkthrough@<storageaccountname>.blob.core.windows.net/samplein/yearno={0:yyyy}/monthno={0:MM}/dayno={0:dd}/', SliceStart)",
                        "Output": "$$Text.Format('wasb://adfwalkthrough@<storageaccountname>.blob.core.windows.net/sampleout/yearno={0:yyyy}/monthno={0:MM}/dayno={0:dd}/', SliceStart)"
                    },
                    "scheduler": {
                        "frequency": "Hour",
                        "interval": 1
                }
            }
            }
    ]
    }
}

Exemple 2Example 2

Dans l’exemple suivant, le paramètre DateTime de l’activité de procédure stockée est déterminé à l’aide de la fonction Text.In the following example, the DateTime parameter for the Stored Procedure Activity is determined by using the Text. Format et de la variable SliceStart.Format function and the SliceStart variable.

{
    "name": "SprocActivitySamplePipeline",
    "properties": {
        "activities": [
            {
                "type": "SqlServerStoredProcedure",
                "typeProperties": {
                    "storedProcedureName": "usp_sample",
                    "storedProcedureParameters": {
                        "DateTime": "$$Text.Format('{0:yyyy-MM-dd HH:mm:ss}', SliceStart)"
                    }
                },
                "outputs": [
                    {
                        "name": "sprocsampleout"
                    }
                ],
                "scheduler": {
                    "frequency": "Hour",
                    "interval": 1
                },
                "name": "SprocActivitySample"
            }
        ],
            "start": "2016-08-02T00:00:00Z",
            "end": "2016-08-02T05:00:00Z",
        "isPaused": false
    }
}

Exemple 3Example 3

Pour lire les données de la veille au lieu du jour représenté par SliceStart, utilisez la fonction AddDays, comme illustré dans l’exemple suivant :To read data from previous day instead of day represented by the SliceStart, use the AddDays function as shown in the following example:

{
    "name": "SamplePipeline",
    "properties": {
        "start": "2016-01-01T08:00:00",
        "end": "2017-01-01T11:00:00",
        "description": "hive activity",
        "activities": [
            {
                "name": "SampleHiveActivity",
                "inputs": [
                    {
                        "name": "MyAzureBlobInput",
                        "startTime": "Date.AddDays(SliceStart, -1)",
                        "endTime": "Date.AddDays(SliceEnd, -1)"
                    }
                ],
                "outputs": [
                    {
                        "name": "MyAzureBlobOutput"
                    }
                ],
                "linkedServiceName": "HDInsightLinkedService",
                "type": "HDInsightHive",
                "typeProperties": {
                    "scriptPath": "adftutorial\\hivequery.hql",
                    "scriptLinkedService": "StorageLinkedService",
                    "defines": {
                        "Year": "$$Text.Format('{0:yyyy}',WindowsStart)",
                        "Month": "$$Text.Format('{0:MM}',WindowStart)",
                        "Day": "$$Text.Format('{0:dd}',WindowStart)"
                    }
                },
                "scheduler": {
                    "frequency": "Day",
                    "interval": 1
                },
                "policy": {
                    "concurrency": 1,
                    "executionPriorityOrder": "OldestFirst",
                    "retry": 2,
                    "timeout": "01:00:00"
                }
            }
        ]
    }
}

Consultez la rubrique Chaînes de format de date et d’heure personnalisées , qui décrit les différentes options de formatage que vous pouvez utiliser (par exemple : aa et aaaa).See Custom Date and Time Format Strings topic that describes different formatting options you can use (for example: yy vs. yyyy).