【问题标题】:Performing Sqoop import after join of MySql tables into nested json format of Hive table将 MySql 表加入 Hive 表的嵌套 json 格式后执行 Sqoop 导入
【发布时间】:2018-01-06 21:40:49
【问题描述】:

​你好大师,

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

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

我们尝试使用以下 sqoop 导入命令: 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 orders LEFT JOIN customers ON orders.order_customer_id=customers.customer_id WHERE $CONDITIONS' --hcatalog-database default --hcatalog-table orders --split-by order_id

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

但是不知道如何匹配sqoop import的--query中hcat schema的schema。

感谢和问候, 马亨德拉

【问题讨论】:

    标签: arrays json hadoop hive sqoop


    【解决方案1】:

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

    我认为 Sqoop 中没有任何“即用型”选项可用于创建 JSON 输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多