实时导入和离线导入,导入的数据量和start_time字段值不同。
来源:8-16 ForeachSink到MySQL

酱汁怪兽
2022-05-12
方式描述:
- 实时导入:
(1)采用的方式是本节课程,Hadoop环境+Flume+Kafka+Spark SSS+TiDB数据库。
- 离线导入:
(1)"Hadoop系统入门+核心精讲"中,Hadoop环境。
(2)“Python3实战-PySpark+Azkaban 完成气象数据分析项目”中,Azkaban定时调度部分。
(3)通过Sqoop,导入TiDB数据库。
现象:
-
实时导入:
(0)查询某一个id号为oX1yb5A-G9L73W0cA5oiBiAWd8xg用户5月10号起的登录时间,共计44条数据。
(1)在数据库的数据,是可以从原始日志查到的。
(2)目前我也是没有查出来什么不对的地方。只是和离线导入数据库中的数据量不同。 -
离线导入:
(0)查询某一个id号为oX1yb5A-G9L73W0cA5oiBiAWd8xg用户5月10号起的登录时间,共计38条数据。
(1)在数据库的数据,start_time该字段值和原始日志不一样了。
问题:
(1)为什么离线导入方式的导入结果,会改变时间?Azkaban的时区已经改至上海了。
(2)离线导入的数据量和实时导入的数据量count,怎么会不同?
(3)考虑过重复导入的可能性了,目前检测出来的,并没有重复导入。
1回答
-
Michael_PK
2022-05-15
1)不会改变时间,导入的时候肯定是数据原封不动的导入的,如果时间发生了变化,那肯定对后续的业务统计有影响。你这改变了时间,应该是中间哪个环境处理的不对了
2)离线导入和实时导入,如果是同一份数据源,那数据必然是一样的,同理,肯定是中间处理出了问题
3)重复导入,肯定是需要根据类似的主键id来做控制的,相同的数据肯定只有一条
00
相似问题