我正在为一个客户端(他是pro cloud)进行一个简短的比较,以显示SSIS与数据工厂。由于我是后者的新手,我正试图理解它的工作原理和局限性。
简而言之:
调用存储过程在循环中:
使用第一个名为
的过程中的值动态地顺序调用2个存储过程问题是,似乎没有一种方法可以调用存储过程,只有Azure表,Azure SQL等。我假设我需要自己调整JSON ?如果是这样,有没有人有任何例子或网址来解释这一点。在www上似乎很少有关于数据工厂的文档,例如
谢谢
可以从数据工厂调用存储过程。您将需要一个SQL Server链接服务,这是存储过程将运行的地方。
你不能在循环中动态调用存储过程,如果你想这样做,我建议你在初始存储过程中这样做,因为这样会更有效。
目前您不能将参数从另一个存储过程传递到另一个存储过程,但是您可以传递相对于正在运行的片(片时间等)的参数
单个存储过程的JSON代码如下所示:
{
"name": "SprocActivitySamplePipeline",
"properties": {
"activities": [
{
"type": "SqlServerStoredProcedure",
"typeProperties": {
"storedProcedureName": "sp_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
}
}
你可以像这样在activity中设置一个存储过程的参数:
"storedProcedureParameters": {
"ProjectID": "0",
"StartDate": "2000/01/01",
"EndDate": "2100/01/01"
}
不能在ADF活动中运行SQL语句。看看ADF管道中的自定义活动。你有存储过程,spark, hive, pig等。您可以在一个简单的存储过程中运行truncate语句,这将解决您的问题。