背景 :
我有一个包含日志信息的 Hive 表“日志”。该表每小时都会加载新的日志数据。我想对过去 2 天的日志进行一些快速分析,所以我想将最近 48 小时的数据提取到我的关系数据库中。
为了解决上述问题,我创建了一个由 HIVE SQL 查询加载的临时配置表。将新数据加载到临时表后,我使用 sqoop Query 将新日志加载到关系数据库中。
问题是 sqoop 正在将数据加载到 BATCH 中的关系数据库中。因此,在任何特定时间,我只有特定小时的部分日志。
这会导致错误的分析输出。
问题:
1)。如何使这个 Sqoop 数据加载具有事务性,即要么导出所有记录,要么不导出任何记录。
2)。在 Hive 表 -> 暂存表 -> 关系表的整个过程中构建这个数据管道的最佳方法是什么。
技术细节:
Hadoop 版本 1.0.4
Hive- 0.9.0
Sqoop - 1.4.2