处理增量数据-Hadoop

处理增量数据-Hadoop,hadoop,architecture,hive,hbase,hadoop2,Hadoop,Architecture,Hive,Hbase,Hadoop2,我们在集群中有5年的数据,我们每天都在加载数据。每天添加的数据可能包含重复数据、部分修改的数据等 一,。如何处理重复数据-应作为高级编程接口pig、hive等的一部分进行处理。。或任何其他选择 假设有一个用例来找出两条记录之间的变化,并给出键来找出行 使用哪种hadoop生态系统组件对数据建模的最佳方式是什么 如何处理重复数据 从HDFS原始数据中删除重复项非常困难, 因此,我认为您的方法是正确的:在加载这些数据时使用pig或hive删除 假设有一个用例来找出两条记录之间的变化,并给出键来找出行

我们在集群中有5年的数据,我们每天都在加载数据。每天添加的数据可能包含重复数据、部分修改的数据等

一,。如何处理重复数据-应作为高级编程接口pig、hive等的一部分进行处理。。或任何其他选择

  • 假设有一个用例来找出两条记录之间的变化,并给出键来找出行
  • 使用哪种hadoop生态系统组件对数据建模的最佳方式是什么

    如何处理重复数据

    从HDFS原始数据中删除重复项非常困难, 因此,我认为您的方法是正确的:在加载这些数据时使用
    pig
    hive
    删除

    假设有一个用例来找出两条记录之间的变化,并给出键来找出行

    对于这种情况,您的意思是两个记录具有相同的密钥吗


    那么您想要捕获什么样的更改呢?

    当您这样说时,您需要删除重复项以及两个记录之间的增量。当您知道密钥时,您应该有一些标准,以确定在部分更改数据的情况下要删除哪些数据


    在这两种情况下,您都可以使用密钥句柄和写入逻辑来删除重复项Map REDUCT似乎是一个不错的选择,因为它具有并行性、性能和基于密钥的管理能力。大多数情况下,您的需求可以在reducer中处理

    查看
    Sqoop merge
    是否适合您的用例

    从文档:
    合并工具允许您合并两个数据集,其中一个数据集中的条目应覆盖旧数据集的条目。例如,在上次修改模式下运行的增量导入将在HDFS中生成多个数据集,其中每个数据集中依次出现较新的数据。合并工具将把两个数据集“展平”为一个,为每个主键获取最新的可用记录。

    感谢您的快速回复。我们希望捕获与记录相关的字段是否已更改,并将此更改告知利益相关者感谢您的快速回复。您的意思是每次加载数据时都应该调用map reduce作业,并在存储到hdfsWell之前对其进行处理map reduce处理hdfs中的数据。更通用的方法是将其从现有数据库sqoop到hdfs中,然后使用map reduce对其执行分析。我不确定您的数据源是什么我的意思是,mapreduce处理hdfs中的数据,然后在处理后将其存储在hdfs中(删除重复项)。我一直在寻找能够缩短开发时间从而缩短时间的高层抽象。什么是数据类型?结构化-非结构化还是半结构化?数据的来源是什么?文件还是数据库?如果您想要抽象,这取决于使用最佳工具的数据类型。最好的选择可能是使用带有xml serde的配置单元。管理重复数据和一般过程wrt配置单元是guve,并给出了如何使用配置单元处理xmls。部分重复数据的验证可能很困难。您可以始终在HQL中编写distinct和其他条件,并将数据加载到另一个表中。数据源是xml文件,sqoop可以处理吗that@srihaysqoop merge获取数据集的主id,并将新值覆盖到旧值上。现在,该值可以是任何内容(XML、JSON、文本等)