到 Spark 的 MS SQL 服务器存储过程
Posted
技术标签:
【中文标题】到 Spark 的 MS SQL 服务器存储过程【英文标题】:MS SQL server stored procedures to Spark 【发布时间】:2016-06-24 06:14:02 【问题描述】:我们将 MS SQL 服务器作为各种数据库的主要选项,并且我们定期运行数百个存储过程。 现在我们正在转向完全大数据堆栈。我们将 Spark 用于批处理作业。但是,我们已经投入了巨大的精力来创建这些存储过程。有没有办法在 Spark 之上重用存储过程?还是有一种简单的方法可以将它们迁移到 Spark 而不是从头开始编写?
或者像 Cloudera distribution/impala 这样的框架可以满足这个要求?
【问题讨论】:
【参考方案1】:不,据我所知没有。您也许可以使用非常相似的逻辑流程,但您需要投入大量时间和精力将 T-SQL 转换为 Spark。我建议直接使用 Scala,不要在 Python/PySpark 上浪费时间。
我的转换经验法则是尝试将存储过程中的 SQL 作为 Spark 中的 SQL (sqlContext.sql("SELECT x FROM y")
) 执行任何操作,但请注意 Spark DataFrame 是不可变的,因此任何 UPDATE
或 DELETE
操作必须更改以输出新的修改后的 DataFrame。
【讨论】:
自从这个原始答案以来,Amazon Redshift(和其他一些云 DW)已经引入了对存储过程的支持。以上是关于到 Spark 的 MS SQL 服务器存储过程的主要内容,如果未能解决你的问题,请参考以下文章
将数据从 MS Sql Server 存储过程导出到 excel 文件
使用 PDO 在 php 中使用 mac 运行 MS SQL 服务器存储过程