从csv与db表进行快速数据同步

yrefmtwq  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(383)

我每天晚上都要花18个小时。该操作的要点是轮询一个上游服务,然后将数据应用到我自己的数据库中—不是1对1,而是在必要时进行处理、比较和快照(因此,在将平面文件转换为关系结构的过程中会涉及比较和其他一些函数)。
上游已经同意提供一个单一的,相当大的csv文件,每晚我们,削减了投票时间。
我正在考虑使用spark/hdfs来分发这个每晚同步/合并的过程。但是我想知道如何最好地做到这一点?因为我自己的数据库,如果我经常查询比较,插入等,会受到重创。
在这种情况下,最好的方法是什么?我曾考虑过将自己的数据与上游数据一起下载到内存中,以便更快地进行比较,但随着这些数据库每月快速增长,我需要一种可扩展的方法。

o75abkj4

o75abkj41#

我的建议是:
1、从大的csv文件和数据库中提取主键,保存到单独的密钥文件k1、k2中;
2、内存中使用spark比较k1和k2,计算出k1集合的插入/更新标志,输出为(k1,插入/更新标志);同时更新k2以加速下一步计算;
用优化的方法插入/更新数据库。
比较过程(步骤2)对于数据库来说非常消耗资源。将其转移到大数据平台将减轻数据库压力。

相关问题