Azure 数据工厂复制数据 Activity SQL Sink 存储过程和 ARM 模板中的 table 类型参数
Azure Data Factory Copy Data Activity SQL Sink stored procedure and table-typed parameter in ARM template
我正在部署包含复制数据 activity 的 Azure 数据工厂管道,其中接收器是 SQL 服务器存储过程。我提供存储过程名称,它映射到数据工厂的 ARM 模板中的 sqlWriterStoredProcedureName。最近在复制数据 activity 中设置接收器的界面更改为包含 Table 类型参数名称,它应该映射到 TableType (sqlWriterTableType) .
我应该使用什么 属性 来设置 Table 类型参数名称?我猜它会像 sqlWriterTableTypeParameter 或 sqlWriterTableTypeParameterName.
谁能指出我正确的方向?
是否与数据集类型相同? SQLServer 表。如此处所示:https://docs.microsoft.com/en-us/azure/data-factory/connector-sql-server#dataset-properties
在文档中向下滚动一点出现了这个:https://docs.microsoft.com/en-us/azure/data-factory/connector-sql-server#invoke-a-stored-procedure-from-a-sql-sink 所以我也会尝试使用 sqlWriterTableType。
希望对您有所帮助!!
我通过将该列留空并查看 ADF 给出的错误来解决这个问题。
如果您有这样的存储过程:
CREATE PROCEDURE [dbo].[spFoo]
@FooType [dbo].[FooType] READONLY
AS ...
那么你的变量是:
Table Type: "FooType"
Table type parameter name: "FooType" (without the @ symbol)
ADF 使用 @ 符号作为保留字,因此只需将其从您的输入变量中删除,它就会按预期工作。
MSFT 支持终于回复了我。在定义数据工厂的ARM模板中要设置的属性是"storedProcedureTableTypeParameterName"
使用 kirikintha 的 foo 示例:
CREATE PROCEDURE [dbo].[spFoo]
@FooTypeVariable [dbo].[FooType] READONLY
AS
...
当调用 SQL 存储过程作为数据工厂副本 activity 接收器时,ARM 模板将如下所示:
...
"sink": {
"type": "AzureSqlSink",
"sqlWriterStoredProcedureName": "[[dbo].[spFoo]",
"sqlWriterTableType": "[[dbo].[FooType]",
"storedProcedureTableTypeParameterName": "FooTypeVariable"
}
...
我正在部署包含复制数据 activity 的 Azure 数据工厂管道,其中接收器是 SQL 服务器存储过程。我提供存储过程名称,它映射到数据工厂的 ARM 模板中的 sqlWriterStoredProcedureName。最近在复制数据 activity 中设置接收器的界面更改为包含 Table 类型参数名称,它应该映射到 TableType (sqlWriterTableType) .
我应该使用什么 属性 来设置 Table 类型参数名称?我猜它会像 sqlWriterTableTypeParameter 或 sqlWriterTableTypeParameterName.
谁能指出我正确的方向?
是否与数据集类型相同? SQLServer 表。如此处所示:https://docs.microsoft.com/en-us/azure/data-factory/connector-sql-server#dataset-properties
在文档中向下滚动一点出现了这个:https://docs.microsoft.com/en-us/azure/data-factory/connector-sql-server#invoke-a-stored-procedure-from-a-sql-sink 所以我也会尝试使用 sqlWriterTableType。
希望对您有所帮助!!
我通过将该列留空并查看 ADF 给出的错误来解决这个问题。
如果您有这样的存储过程:
CREATE PROCEDURE [dbo].[spFoo]
@FooType [dbo].[FooType] READONLY
AS ...
那么你的变量是:
Table Type: "FooType"
Table type parameter name: "FooType" (without the @ symbol)
ADF 使用 @ 符号作为保留字,因此只需将其从您的输入变量中删除,它就会按预期工作。
MSFT 支持终于回复了我。在定义数据工厂的ARM模板中要设置的属性是"storedProcedureTableTypeParameterName"
使用 kirikintha 的 foo 示例:
CREATE PROCEDURE [dbo].[spFoo]
@FooTypeVariable [dbo].[FooType] READONLY
AS
...
当调用 SQL 存储过程作为数据工厂副本 activity 接收器时,ARM 模板将如下所示:
...
"sink": {
"type": "AzureSqlSink",
"sqlWriterStoredProcedureName": "[[dbo].[spFoo]",
"sqlWriterTableType": "[[dbo].[FooType]",
"storedProcedureTableTypeParameterName": "FooTypeVariable"
}
...