目前,我正在从事一个数据挖掘项目,该项目处理存储在hdfs上的数据。该项目的第一件事是将来自不同数据库或表的数据集成到存储在hdfs中的统一表中。
通过阅读萨尔瓦多·加西亚、朱利安·卢恩戈和弗朗西斯科·埃雷拉的“数据挖掘领域的数据预处理”,我了解到在数据集成方面存在着许多挑战或问题,例如:
Table A,它有属性index,Table B有属性identifier,而这两个属性表示相同对象的相同含义。因此,如果我们只使用朴素联接处理这两个表,则统一表中可能存在冗余属性。meta-data”一书提出,以消除冗余字段。
Table A,它有属性salary_per_month,而Table B有属性salary_per_year。但这两个属性是相关的,salary_per_month可以推断出salary_per_year。然后,类似于上述情况,创建冗余属性。
除了上述挑战外,可能还会出现许多情况(只是简单的描述,没有具体的例子):
table B集成到一个存储在hdfs中的表中。
table A和B从MongoDB (或MySQL)集成到一个存储在hdfs中的表中。
以上是所有的问题和可能的情况。我理解上述问题的基本概念,但我不知道如何在实际项目中解决上述问题,特别是基于hdfs的问题。对于属性冗余和相关性等问题,似乎只有在我知道表是如何设计的情况下才能解决,所谓的硬编码。我能用Hadoop生态系统提供的API来自动解决这些问题吗?
同样,由于很多情况都是可能的,我想知道在数据集成中需要遵循哪些一般步骤,在数据预处理非常重要的实际大数据项目中使用哪些常用工具?任何指导都会对我有帮助。
发布于 2017-03-15 14:01:48
对于多标记查询(从多个数据源获取数据),我更喜欢火花或。
使用这些工具,您可以在内存中执行联接和其他聚合(如果数据不太大)。
您可以轻松地以所需的文件格式将输出写入HDFS。
像事务管理这样的挑战仍然存在。但是这些查询引擎很容易地解决了许多问题。
https://stackoverflow.com/questions/42749572
复制相似问题