我最近在hadoop上阅读了很多东西,可以说我了解它的一般概念,但是仍然(至少)有一个谜题使我无法理解。在hdfs中存储关系数据的最佳方法是什么?
首先,我知道hadoop并不存在,无法替代为我的应用程序提供服务的传统的老式sql数据库。我在这里面临的问题是我想使用hadoop将来自多个系统的数据聚合到hdfs中。然后,我可以将多个系统中的数据交叉引用在一起,然后生成报表工具等使用的新数据集。
好的,因此,我应该使用一个表将表数据导入到一个文件,还是应该导入连接表的查询结果。
例如:
SQL表:
人物:人物ID名称生日性别
公司:
CompanyID
Name
Address
人公司
PersonID
CompanyID
我应该原样导入所有3个表,还是应该导入查询结果,返回人员为何在哪个公司工作。
请和我分享您的想法!
通常,要在hadoop中构建数据仓库,必须提取所有表。在您的示例中,您需要在HDFS中拥有所有3个表,然后进行ETL /聚合,例如Joiners_weekly可以具有一个etl,其中
选择* from PersonCompany pc加入pc.personid = p.personid上的Person p加入pc.companyid = c.companyid上的Company c。
这可以是可以从hadoop生成的报告。希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句