需要有关以下任务的建议:从众多SQL表中合并和提取产品数据。这些表中的记录包含产品ID和本产品的不同属性。生成的数据应存储在HDFS表中,其中任何给定记录表示与给定产品相关的所有属性。结果记录可能具有可变数量的属性。例如:
Input SQL records:
Table 1
Rec 1: |ProdId|x11|x12|x13|...|x1N|
Rec 2: |ProdId|x21|x22|x23|...|x2N|
....
Rec M: |ProdId|xM1|xM2|xM3|...|xMN|
Table 2
Rec 1: |ProdId|y11|y12|y13|...|y1K|
Rec 2: |ProdId|y21|y22|y23|...|y2K|
....
Rec L: |ProdId|yL1|yL2|yL3|...|xLK|
....
....
....
Table Z
Rec 1: |ProdId|z11|z12|z13|...|z1Q|
Rec 2: |ProdId|z21|z22|z23|...|z2Q|
....
Rec P: |ProdId|zL1|zL2|zL3|...|zPQ|
Output HDFS Table:
Rec 1: |ProdId|x11|x12|x13|...|x1N|y11|y12|y13|...|y1K|z11|z12|z13|...|z1Q|
Rec 2: |ProdId|x21|x22|x23|...|x2N|y21|y22|y23|...|y2K|z21|z22|z23|...|z2Q|
....
Rec R: |ProdId|xI1|xI2|xI3|...|xMN|yJ1|yJ2|yJ3|...|xLK|zF1|zF2|zF3|...|zFQ|
结果记录应该有命名字段并存储在HDFS中,因此很容易在用Scala / Java / Python编写的map / reduce作业中使用。
我是Hadoop的新手,可能是错的。使用Hive执行此任务对我来说有点尴尬。使用Map-reduce会很好用,但是我没有看到如何使用scoop将输入SQL数据导入除Hive之外的表以及命名字段。有没有办法将SQL表导出到HBASE,它会自动重建字段名称?任何其他适合此任务的键值存储都支持命名字段?理想情况下是找到允许在Scala或Python中完成这项工作的框架。