【发布时间】:2020-12-02 22:34:36
【问题描述】:
我们有一个在 spark 上运行的 ETL 作业,它从 SQL Server 读取数据。然后通过应用 mappartition 对数据框执行一些转换,并创建具有不同模式的新数据框。完成了一些进一步的转换,最后将结果数据帧写回 SQL Server。
我的问题是假设在 SQL Server 中的 8 个分区中插入数据时,其中一个 spark 节点出现故障,spark 将如何确保数据完整性?其他分区会在数据库中插入数据,并且在发生故障时,数据库中的数据不一致。
spark 是否只会通过应用所有转换重新创建失败的分区?
如果再次失败,数据库中其他分区的数据会是什么状态?
【问题讨论】:
-
我相信 Spark 不符合 ACID 标准,除非您在 Azure 中使用 Delta Lake,因此它无法确保设计的一致性。这是留给开发人员处理的事情。
-
那么,你能接受这个答案吗?
标签: sql sql-server apache-spark