保持 HDFS 上的平面文件与可能有行更新的大型数据库表同步的最佳方法是什么?
像 sqoop 这样的工具看起来很有用,因为它们允许从表中增量提取新行,但是我看不到处理行更新的简单方法。
我们可以使用哪些技术来有效地处理行更新?我们宁愿避免每晚倾倒整张 table 。
最佳答案
这里有一些建议:
- 使用 DBInputFormat 使数据库成为您作业的输入,而不是拥有一个您必须担心同步的中间文件。如果 MySQL 成为瓶颈,您可以使用一些分布式/NoSQL 数据库。
- 如果您仍想使用平面文件,每天晚上您只能转储 MySQL 中更改的行以及时间戳。编写一个仅输出每个唯一行的最新版本的 Hadoop 作业。
关于hadoop - 如何使 HDFS 上的平面文件与大型数据库表保持同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5512728/