你好古鲁斯,
我们正在开始将MySQL数据迁移到NOSQL,我们希望将所有表格格式数据迁移到嵌套JSON格式。
在某些情况下,我们将执行联接以获取数据(应以嵌套数组或struct格式保存),因此我们应如何将数据放入嵌套json格式。我们将需要一些建议。
我们正在尝试借助诸如sqoop,hive,pig的hadoop工具构建此解决方案。
请您提出一些建议,以实现我们的目标。
我们尝试使用以下sqoop import命令:
sqoop import --username * --password * --connect'jdbc:mysql://realstart.abc:3306 / retail_db'--query'select order.order_id,customers.customer_id AS“customers.customer_id”,客户.customer_fname AS“customers.customer_fname”从订单中将客户加入JOINT订单上。order_customer_id= customers.customer_id WHERE $ CONDITIONS'--hcatalog数据库默认--hatalog表订单-由order_id分割
我们使用以下查询创建了hcat表:
“hcat -e”创建表订单(order_id int,客户结构)行格式serde'org.openx.data.jsonserde.JsonSerDe'”
但是不确定在sqoop import的--query中如何匹配hcat模式的模式。
感谢和问候,
马亨德拉
最佳答案
我认为最好的选择是使用hadoop map reduce类并编写自定义作业以创建嵌套的JSON输出,或者从mysql db进行转储并转换数据。您可以查看有关hadoop或pig中的自定义作业的文档:
我认为Sqoop中没有用于创建JSON输出的任何“准备使用”选项。
关于arrays - 将MySql表联接到Hive表的嵌套json格式后执行Sqoop导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45413812/