首页 > 解决方案 > 对非工作日(周末和节假日)未生成的缺失数据进行 Hive 查询操作

问题描述

我有一个关于在下面定义的要求中调整我的 Hive 查询的查询;对此我无法理解。

案例:数据仅在工作日生成,即工作日和非节假日。我在 Hive 中加载的这些数据。源和目标都是 HDFS。

严格的过程:每天都应该复制数据。因此,对于周六和周日,我将复制周五的相同数据。公共假期也是如此。

当前流程:到目前为止,我正在手动执行它以加载周末的数据。

要求:我需要在查询本身中自动执行此操作。

有什么建议么?如果可行的话,同样欢迎使用 spark 的解决方案。

标签: apache-sparkhivehdfs

解决方案


虽然很清楚问题是什么,但当您说“在查询本身中”时还不清楚。

两种选择

  1. 查询结果时,使用标量子查询(使用 Impala)查找数据,该查询首先查找相对于给定选择日期的最大日期,即最大小于或等于给定选择日期;因此没有复制。

  2. 否则,使用调度和调度时 a) 通过 Linux 或 SQL 检查周末日期 b) 维护假期日期表并检查是否存在。如果其中一个或两个条件都为真,则根据项目符号 1 从现有数据复制,其中选择日期是今天,否则进行常规处理。

请注意,由于某些错误,您可能需要假设您正在运行处理以赶上进度。隐含一些控制逻辑,但更健壮。


推荐阅读