我们在集群中拥有5年的数据,并且我们每天都在加载数据。每天添加的数据可能包含重复数据,部分修改后的数据等。处理增量数据 - Hadoop
1。如何处理重复数据 - 应该作为高级编程接口猪,配置单元等的一部分进行处理。
- 说出是否有用于查找两个记录之间发生更改的用例,以找出该行的关键字。
建模数据的最佳方式是什么,使用hadoop eco系统组件。
我们在集群中拥有5年的数据,并且我们每天都在加载数据。每天添加的数据可能包含重复数据,部分修改后的数据等。处理增量数据 - Hadoop
1。如何处理重复数据 - 应该作为高级编程接口猪,配置单元等的一部分进行处理。
建模数据的最佳方式是什么,使用hadoop eco系统组件。
如何处理重复数据
这是非常难以从HDFS的原始数据删除重复, 所以我想你的方法是正确的:使用pig
或hive
而加载这些数据删除。
说出是否存在用于查找两条记录之间发生更改的用例,以找出该行的关键字。
对于这种情况,您是否意味着两个记录具有相同的密钥?
然后你想捕捉什么样的变化?
当你这样说的时候,当你知道密钥时,你需要删除重复项以及两个记录之间的增量,你应该有一些标准,在部分改变的数据的情况下删除哪些数据。
在这两种情况下,您都可以拥有密钥句柄和写入逻辑来删除重复项。 映射减少似乎是一个不错的选择,考虑到基于密钥的并行性,性能和管理能力。大多数情况下,您的要求可以在减速器中处理
看看Sqoop-merge
是否适合您的使用案例。
来自文档: 合并工具允许您合并两个数据集,其中一个数据集中的条目应覆盖旧数据集的条目。例如,以最后修改模式运行的增量导入将在HDFS中生成多个数据集,并在每个数据集中出现连续较新的数据。合并工具会将两个数据集“拼合”为一个,为每个主键创建最新的可用记录。
数据源是xml文件,sqoop可以处理 – Nag
@srihay sqoop合并需要数据集的主要id,并将新值覆盖到旧值上。现在,这个值可以是任何东西(XML,JSON,文本等) –
感谢您的快速回复。我们想要捕获是否有与记录相关的字段发生变化,并通知利益相关方这种变化 – Nag