使用 Spark saveAsTable +overwrite 模式最大限度地减少配置单元 table 的停机时间
Minimize downtime of the hive table with Spark saveAsTable +overwrite mode
我正在尝试将 pyspark dataframewriter 的 saveAsTable 与覆盖模式一起用于配置单元完整 table 刷新用例。我想尽量减少 table 可用性对我的 impala 用户的停机时间,我的 impala 用户可以查询旧数据,直到 spark 加载作业完成。
从我对 spark 2.4.0 的测试结果来看,table 对用户不可用并在 spark 作业启动后立即被截断,无论 table 是外部的还是管理。
Spark/Hive 是否有解决此可用性问题的现成解决方案?
不,没有开箱即用的解决方案。
- 您不需要覆盖而是追加,编写版本并允许视图通过控件通过视图查询最高版本table。如果 acid tables.
稍后你清理旧版本
- 或者使用两个 table 并使用视图在两者之间切换。比较常见。
我正在尝试将 pyspark dataframewriter 的 saveAsTable 与覆盖模式一起用于配置单元完整 table 刷新用例。我想尽量减少 table 可用性对我的 impala 用户的停机时间,我的 impala 用户可以查询旧数据,直到 spark 加载作业完成。
从我对 spark 2.4.0 的测试结果来看,table 对用户不可用并在 spark 作业启动后立即被截断,无论 table 是外部的还是管理。
Spark/Hive 是否有解决此可用性问题的现成解决方案?
不,没有开箱即用的解决方案。
- 您不需要覆盖而是追加,编写版本并允许视图通过控件通过视图查询最高版本table。如果 acid tables. 稍后你清理旧版本
- 或者使用两个 table 并使用视图在两者之间切换。比较常见。