Azure数据工厂存储过程

时间:2016-11-18 15:30:27

标签: azure

我正在为客户(谁是专业云)进行简短比较,以显示SSIS v Data Factory。由于我是后者的新手,我试图了解它的运作和限制。

简而言之:

调用存储过程

然后循环:

使用第一个名为

的过程中的值依次动态调用2个存储过程

问题是,似乎没有办法调用存储过程,只是Azure表,Azure SQL等。我假设我需要自己调整JSON?如果是这样,是否有人有任何解释这一点的示例或URL。在这样的领域,似乎没有关于www的数据工厂的文档

由于

2 个答案:

答案 0 :(得分:0)

您可以拨打stored procedure from Data Factory。您将需要SQL Server链接服务,这是存储过程将运行的位置。

你不能在循环中动态调用存储过程,如果你想这样做,我建议你只是在初始存储过程中执行它,因为这样会更有效。

目前您无法将参数传递给另一个存储过程,但您可以pass parameters relative to the slice that is running(切片时间等)

单个存储过程的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
     }
 }

答案 1 :(得分:0)

您可以在活动中设置存储过程的参数,如下所示:

"storedProcedureParameters": {
                    "ProjectID": "0",
                    "StartDate": "2000/01/01",
                    "EndDate": "2100/01/01"
                }

您无法在ADF活动中运行SQL语句。查看ADF管道中的custom activities。你有存储过程,spark,hive,pig等。你可以在一个简单的存储过程中运行truncate语句,这可以解决你的问题。