在hdfs

时间:2015-06-19 12:42:02

标签: sql hadoop hdfs

我最近在hadoop上阅读了很多内容,我可以说我理解它的一般概念,但仍然(至少)有一块拼图我不能得到我的到处走走。在hdfs中存储关系数据的最佳方法是什么。

首先,我知道不存在hadoop来替换我的应用程序的传统好的旧SQL数据库。我在这里遇到的问题是我想使用hadoop将来自多个系统的数据聚合到hdfs中。然后,我可以将来自多个系统的数据交叉引用,然后生成我的报告工具等使用的新数据集。

好吧,那么,我应该使用一个表将表数据导入一个文件,还是应该导入连接表的查询结果。

例如:

  

SQL表:

     

人:       是PersonID       名称       生日       性

     

公司:

CompanyID
Name
Address
  

PersonCompany

PersonID
CompanyID

我应该按原样导入所有3个表,还是应该导入查询结果,以便返回为什么人员适用于哪个公司。

请与我分享您的想法!

2 个答案:

答案 0 :(得分:1)

我认为你应该考虑在HDFS之上使用HBase来获得一些数据库功能:

http://hbase.apache.org/

答案 1 :(得分:1)

通常,要在hadoop中构建数据仓库,您必须提取所有表。在您的示例中,您需要在HDFS中拥有所有3个表,然后执行ETL /聚合,例如Joiners_weekly可以拥有一个具有

的etl

从PersonCompany pc join中选择* pc.personid = p.personid上的Person p在pc.companyid = c.companyid上加入公司c。

这可以是一个可以从hadoop生成的报告。希望这可以帮助。