在SSIS Package中执行R脚本

10 浏览
0 Comments

在SSIS Package中执行R脚本

我想从SSIS包中执行R代码。我怎样才能添加一个执行R代码的数据控制步骤?SSIS仅支持vb.net和asp.net。

SSIS有许多可用的数据转换,但是R在数据操作方面很友好。

我想从SSIS脚本或其他方式运行R代码,基本上,我正在尝试将R集成到ETL过程中。

我想从CSV文件中提取数据(E)。用R进行转换(T),并将其加载(L)到Microsoft数据库中。

使用SSIS数据控制项执行R脚本可以完成这个工作流程吗?谢谢!

admin 更改状态以发布 2023年5月21日
0
0 Comments

我希望它可以帮助你或其他人,因为你想要数据处理,你可以将你的数据集带入一个CSV文件(通过数据流任务),使用“Rscript”执行该文件(它可以作为一个带有执行进程任务的命令来执行),在文件中,你必须使用readLines()函数将数据集上传到一个数据框中,然后进行你请求的所有数学/计算,将数据或计算结果写入CSV文件并再次从SSIS中读取。

虽然不是一个优雅的解决方案,但它有用:),至少直到微软将R作为控制/数据流过程集成为止。

CYA

附:这里是如何从命令行运行文件的方法:Run R script from command line

0
0 Comments

下面是将R集成到ETL流程中的几种方式。

  1. 粗糙、快速和简陋 - 在控制流中使用Execute Process任务。这与从命令行调用RScript类似。你可能会进行转换,将其保存到磁盘文件中,并从Execute Process任务中获取该文件名,以便将其馈送到数据流任务中。优点是将R与C#/VB分离。

  2. 通过Rdotnet集成 - 你可以使用RDotNet库(我相信,尚未尝试去集成)。你需要在全局程序集缓存中注册DLL,然后可以在SSIS脚本中使用.NET对象,也可以直接调用R脚本

  3. 在SQL Server 2016中集成 - Microsoft通过扩展存储过程添加了对R的支持。你可以通过存储过程调用R脚本,并使用SQL查询获取输入数据并存储输出。请参见此处的更多详细信息。这意味着在SSIS中利用Execute SQL任务。

0