我最近在hadoop上阅读了很多内容,我可以说我理解它的一般概念,但仍然(至少)有一块拼图我不能得到我的到处走走。在hdfs中存储关系数据的最佳方法是什么。
首先,我知道不存在hadoop来替换我的应用程序的传统好的旧SQL数据库。我在这里遇到的问题是我想使用hadoop将来自多个系统的数据聚合到hdfs中。然后,我可以将来自多个系统的数据交叉引用,然后生成我的报告工具等使用的新数据集。
好吧,那么,我应该使用一个表将表数据导入一个文件,还是应该导入连接表的查询结果。
例如:
SQL表:
人: 是PersonID 名称 生日 性
公司:
CompanyID
Name
Address
PersonCompany
PersonID
CompanyID
我应该按原样导入所有3个表,还是应该导入查询结果,以便返回为什么人员适用于哪个公司。
请与我分享您的想法!
答案 0 :(得分:1)
我认为你应该考虑在HDFS之上使用HBase来获得一些数据库功能:
答案 1 :(得分:1)
通常,要在hadoop中构建数据仓库,您必须提取所有表。在您的示例中,您需要在HDFS中拥有所有3个表,然后执行ETL /聚合,例如Joiners_weekly可以拥有一个具有
的etl从PersonCompany pc join中选择* pc.personid = p.personid上的Person p在pc.companyid = c.companyid上加入公司c。
这可以是一个可以从hadoop生成的报告。希望这可以帮助。