Parquet文件覆盖压缩优化时如何保证Spark查询的原子性和数据完整性?

问题描述 投票:0回答:1

我有一个 Spark 设置,其中存在包含原始 Parquet 文件的分区,并且查询正在这些分区上主动运行。 我正在运行后台作业来优化这些 Parquet 文件以获得更好的压缩效果,其中涉及更改 Parquet 对象布局。 如何确保 Parquet 文件覆盖是原子的并且不会失败或导致 Spark 查询中的数据完整性问题? 可能的解决方案有哪些?

由于遗留问题,我们无法使用数据湖屋。

apache-spark hadoop parquet data-lakehouse
1个回答
0
投票

这是一个悬而未决的问题,没有有关用例的更多细节,但我可以给你一些想法:

  • 尝试始终按日期/小时对数据进行分区,以便您可以安全地分别优化每个部分并处理不应修改的旧数据。
  • 确保优化作业写入新位置,写入新位置后:
    • 如果架构没有改变,那么您可以用优化后的数据替换当前数据。
    • 如果架构发生更改,则保持每个数据集的数据一致性,并能够在需要时重新处理。并将查询移动到使用新位置。
  • 您可以在写入优化数据(例如预期记录数或其他一些业务指标或校验和)之前进行一些验证检查,并在任何检查失败的情况下使作业失败。
© www.soinside.com 2019 - 2024. All rights reserved.