将MySql表连接到Hive表

时间:2017-07-31 10:47:57

标签: arrays json hadoop hive sqoop

Hello Gurus,

我们正在开始将MySQL数据迁移到NOSQL,我们希望将所有表格格式数据迁移到嵌套JSON格式。 在某些情况下,我们将执行连接来获取数据(应该以嵌套数组或结构格式保存),因此我们应该如何将这些数据放到嵌套的json格式中。我们需要就此提出建议。 我们正试图在sqoop,hive,pig等hadoop工具的帮助下构建这个解决方案。

请您建议我们实现这一目标的可能方式。

我们尝试使用以下sqoop import命令: sqoop import --username * --password * --connect' jdbc:mysql://realstart.abc:3306 / retail_db' --query' select orders.order_id,customers.customer_id AS" customers.customer_id",customers.customer_fname AS" customers.customer_fname" FROM订单LEFT JOIN客户ON orders.order_customer_id = customers.customer_id WHERE $ CONDITIONS' --hcatalog-database default --hcatalog-table orders --split-by order_id

我们使用以下查询创建了hcat表: hcat -e"创建表命令(order_id int,customers struct)行格式serde' org.openx.data.jsonserde.JsonSerDe'"

但不确定如何在-sery of sqoop import中匹配hcat架构的架构。

谢谢&问候, 马亨德拉

1 个答案:

答案 0 :(得分:0)

我认为最好的选择是使用hadoop map reduce类并编写自定义作业来创建嵌套JSON输出或从mysql db和转换数据执行转储。您可以在hadoop或pig中查看有关自定义作业的文档:

我认为没有任何"准备使用" Sqoop中用于创建JSON输出的选项。