我有一个带有参数的管道(类型int)。在管道内部,有一次,我有一个数据流。此数据流需要引用此参数,以便按它筛选数据并将其添加为新的派生列。但是,从数据流中,我无法访问数据流本身所在的管道中定义的参数。
管道:
{
"name": "TestPipeline",
"properties": {
"activities": [
{
"name": "TestDataFlow",
"type": "ExecuteDataFlow",
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"typeProperties": {
"dataflow": {
"referenceName": "TestDataFlow",
"type": "DataFlowReference"
}
}
}
],
"parameters": {
"CompanyId": {
"type": "int",
"defaultValue": 1
}
}
}
}
数据流:
{
"name": "TestDataFlow",
"properties": {
"type": "MappingDataFlow",
"typeProperties": {
"sources": [
{
"dataset": {
"referenceName": "DBEmployee",
"type": "DatasetReference"
},
"name": "Employees",
"script": "source(output(nttId as long,nttName as string,nttSurname as string,nttEmail as string,nttPosition as stringnt),ntallowSchemaDrift: true,ntvalidateSchema: false,ntformat: 'table') ~> Employees"
}
],
"transformations": [
{
"name": "AddColumnId",
"script": "Employees derive(ColumnId = ERROR_FUNCTION('@pipeline(__SINGLE_QUOTE__TestPipeline__SINGLE_QUOTE__).parameters.CompanyId')) ~> AddColumnId"
}
]
}
}
}
我的查询很简单。如何从数据流内的转换访问管道的参数"CompanyId"?
谢谢!
我使用了一个参数来过滤数据流中数据集的传入数据,但没有看到如何在数据流中引用参数以在流中进行操作(例如,不会出现在可用于"过滤器"块的列表中)。 您能否接收参数,将其作为查询的一部分发送到源,然后筛选和/或将值作为结果集中的列返回并以这种方式执行此操作? 没有尝试过这个。
引用管道参数:
如果数据集包含参数,则数据流将能够在数据流设置面板中提供该参数(显示在"源参数"下)。可以从管道参数提供该值。如果没有数据集参数 - 不会显示"源参数"选项。
在下面的示例中,source1 是我在数据流 1 中的数据集引用。 它采用一个名为"test"的参数。
我的管道有一个名为 Test1 的参数。 这将传递给数据流。
请注意 UI 中有关如何调试的警告。
{
"name": "pipeline1",
"properties": {
"activities": [
{
"name": "dataflow1",
"type": "ExecuteDataFlow",
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"typeProperties": {
"dataflow": {
"referenceName": "dataflow1",
"type": "DataFlowReference",
"datasetParameters": {
"source1": {
"test": {
"value": "@pipeline().parameters.Test1",
"type": "Expression"
}
}
}
}
}
}
],
"parameters": {
"Test1": {
"type": "string"
}
}
}
}
数据流参数必须为 STRING 类型,才能从管道中选择参数。如果要在数据流中使用日期或整数,则始终可以将此字符串转换为数据流中的其他数据类型。