Apache spark - JDBC 写入,中间提交

Posted

技术标签:

【中文标题】Apache spark - JDBC 写入,中间提交【英文标题】:Apache spark - JDBC write , intermediate commits 【发布时间】:2018-09-12 12:17:12 【问题描述】:

我正在使用 Hive 中的 Spark 向 Microsoft SQL Server 写入数据,进程运行速度非常快。

但是有一个大问题,每个任务在完成之前不会提交 - 这会利用数据库的事务日志并且可能会对其他正在运行的作业造成影响。

我需要有一些方法来定期提交(10000 K 左右)。 有人可以建议如何做到这一点吗?

【问题讨论】:

您对问题的解释不够充分。你可以说得更详细点吗?您可以按照您需要的方式对数据进行分区。 一些 SRC 表中有十亿行,因此我不能真正划分成这么多任务;而且我的 Spark 在每个任务完成结束时提交结果的理论并不是 100% 可靠的。通常使用所有 ETL 工具都有一些选项(如 SSIS / informatica) - 它们在 X 行数后提交以不影响数据库,我希望 Spark 也应该有一些方法。 您是否找到了与我的回答不同的证据? 那么为什么要使用大数据然后写入 SQL Server?如果我可以问。 我们需要它用于报告目的 - 我们从 hdp 拉到报告工具的经验很糟糕 【参考方案1】:

这在 JDBC 中是不可能的。

使用 sqoop 导出是有可能的。

【讨论】:

以上是关于Apache spark - JDBC 写入,中间提交的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 jdbc 将 spark 数据集写入数据库

Spark将DataFrame写入jdbc错误

我无法使用 jdbc 将 Spark DataFrame 写入数据库

Apache Linkis 中间件架构及快速安装

Apache Spark JDBC SQL 注入 (pyspark)

是否可以使用 spark 的 jdbc 驱动程序将 apache spark 与 jasper 集成?