Parameters can be added to pipelines, datasets, linked services and data flows in Azure Data Factory. Parameters are read-only i.e. you can read them but can’t edit their values inside the resources.
A word of caution: when you parameterize your dataset for files or tables but their schema across different files or tables is not consistent then ensure that “schema” is clear for the dataset.
When you access the pipeline parameters as dynamic content then they are accessed as @pipeline().parameters.<parameter name>. But, dataset parameters can be accessed directly without referencing parameters collection i.e. @dataset().<parameter name>. This is because a pipeline has system variables too and if you omit a reference to parameters collection then it results in ambiguity, whether to read the parameter or system variable.
Parameters are always accessed with fully qualified name.
Further, parameters are passed in one direction in ADF i.e. there are only input parameters.
Pipeline parameters can be passed to other pipelines, pipelines to activities, activities to dataset and then dataset to linked services i.e.
In contrast to parameters which are external values passed to pipelines, Variables are internal values that live within the pipeline.
Variables are classified as system variables or user defined variables. System variables are accessed in the similar ways as parameters but without a reference to parameters collection as shown in the snapshot below –
User-defined variables are accessed as @variables(‘<variable name>’). Note that you need to enclose variable name within single quotes. Double quotes doesn’t work