我有一个带有参数(类型为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(\n\t\tId as long,\n\t\tName as string,\n\t\tSurname as string,\n\t\tEmail as string,\n\t\tPosition as string\n\t),\n\tallowSchemaDrift: true,\n\tvalidateSchema: false,\n\tformat: 'table') ~> Employees"
}
],
"transformations": [
{
"name": "AddColumnId",
"script": "Employees derive(ColumnId = ERROR_FUNCTION('@pipeline(__SINGLE_QUOTE__TestPipeline__SINGLE_QUOTE__).parameters.CompanyId')) ~> AddColumnId"
}
]
}
}
}
我的查询很简单。如何从数据流内部的转换中访问管道的参数“ CompanyId”?
谢谢!
答案 0 :(得分:0)
我使用了一个参数来过滤数据流中来自数据集的传入数据,但是没有看到如何引用数据流中的参数来在流中进行操作(即未出现在“过滤器”可用的列表中)例如块)。您能否接受参数,将其作为查询的一部分发送到源,然后过滤和/或返回值作为结果集中的列,然后这样做?还没有尝试过。
引用管道参数:
如果您的数据集带有参数,则数据流将能够在数据流设置面板中提供该参数(出现在“源参数”下)。可以从管道参数提供该值。 没有数据集参数-“源参数”选项不会出现。
在下面的示例中,source1是我在数据流dataflow1中的数据集引用。它需要一个名为“ 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"
}
}
}
}
答案 1 :(得分:0)
您的数据流参数必须为STRING类型,才能从管道中选择参数。如果要在数据流中使用日期或整数,可以始终将此字符串转换为数据流中的另一种数据类型。