在基于HDFS的真实大数据项目中解决数据集成挑战的一般程序是什么?

时间:2017-03-12 15:54:34

标签: hadoop hdfs sqoop data-integration

目前,我正在开发一个数据挖掘项目,该项目处理hdfs上存储的数据。该项目的第一件事是将来自不同数据库或表的数据集成到hdfs中存储的统一表中。

通过阅读SalvadorGarcía,JuliánLuengo和Francisco Herrera的 数据挖掘中的数据预处理 ,我了解到数据集成中存在许多挑战或问题,例如:以下是:

  1. 属性冗余:
    • 示例:对于Table A,它具有属性index,而Table B具有属性identifier,而这两个属性表示相同的含义相同的对象。因此,如果我们只使用naive join处理这两个表,则统一表中可能存在冗余属性。
    • 本书建议的解决方案:比较这些字段的meta-data以消除冗余字段。
  2. 属性关联:
    • 示例:对于Table A,它具有属性salary_per_month,而Table B具有属性salary_per_year。但这两个属性是相关的,salary_per_month可以推断salary_per_year。然后与上述情况类似,创建冗余属性。
    • 本书建议的解决方案:应用相关性测试或卡方检验来确定不同字段之间的关系。
  3. 除了上述挑战外,很多情况都是可能的(只是简短的描述,没有具体的例子):

    1. 案例1:
      • 说明:将来自 MongoDB table A和来自 MySQL table B整合到一个存储在hdfs中的表中,通过一种连接操作。
      • 注意:此案例不会经常发生,但仍有可能发生。
    2. 案例2:
      • 描述:通过一种连接操作,将 MongoDB (或 MySQL )中的table AB集成到存储在hdfs中的一个表中。 / LI>
      • 注意:在这种情况下,只涉及一种类型的数据库。
    3. 以上是所有问题和可能的情况。我理解上述问题的基本概念,但我不知道如何在实际项目中解决上述问题,特别是基于hdfs。似乎对于属性冗余和相关性等问题只能在我知道如何设计表的情况下解决,即所谓的硬编码。我可以通过Hadoop生态系统提供的API自动解决它们吗?

      同样,由于很多情况都是可能的,我想知道数据集成中要遵循的一般步骤,在真正的大数据项目中使用哪些常用工具,数据预处理非常重要?任何指导对我都有帮助。

1 个答案:

答案 0 :(得分:0)

对于多语言查询(从多个数据源中提取数据),我更喜欢 Spark Drill

使用这些工具,您可以执行联接和其他聚合内存中,如果数据不是太大

您可以使用所需的文件格式轻松地将输出写入HDFS。

交易管理等挑战仍然存在。但是这些查询引擎很容易解决许多问题。