今天我在 mysql 中有一个 4 列 3 行的表。我已将该数据直接导入为配置单元表。
表测试:
id name sal loc
1 sam 123 hyd
2 ram 234 teb
3 red 456 qer
现在我想向现有 mysql 表添加一个新列,并添加一个包含所有 5 列值的新行。新列的值 之前的行将为空。
表测试:
id name sal loc zip
1 sam 123 hyd null
2 ram 234 teb null
3 red 456 qer null
4 Tim 567 CA 1245
当我们执行 sqoop 增量追加时,我仅获取旧列的值,并且新行也会显示,但仅适用于旧列。
增量追加后的 hive 表。
id name sal loc
1 sam 123 hyd
2 ram 234 teb
3 red 456 qer
4 Tim 567 CA
现在我希望 hive 表与 mysql 表完全相同
我们可以在运行 sqoop 增量追加时更新 Hive 表吗?如果是的话
我们怎样才能做到这一点?
如果没有,最适合我的用例的解决方案是什么
最佳答案
当您的 ddl 更改使用以下步骤时,没有状态转发解决方案。
1 您必须删除 hive 表并从以下位置“hive.metastore.warehouse.dir/table”删除 hdfs 中的数据。
2 您可以直接从 Sqoop 导入并按照下面的选项再次创建表。
--create-hive-table
关于mysql - 添加到 mysql 的新列在 Hive 中反射(reflect)相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42636792/