删除配置单元内部表时保留数据

时间:2016-02-06 08:04:26

标签: sql-server hadoop hive hiveql

我已经从SQL Server加载了一个巨大的表到Hive。我犯的错误是我将表创建为HIVE中的内部表。任何人都可以建议任何黑客攻击,以便我可以改变表结构,而不会丢弃数据。 数据量巨大,我无法再次从源头导出数据。

现在的问题是,由于列命令与SQL服务器表不匹配,因此很多列显示为NULL。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

我认为在内部表上使用Alter Table没有任何问题。 (https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AlterTable/Partition/Column

另一个 - 但不推荐 - 选项是打开您的hive Metastore(HCatalog)并在那里应用更改。 Hive从关系数据库中读取架构信息(在Hadoop设置期间配置,默认为MySQL)。在这个MySQL中,您可以尝试更改某些设置。但是,建议不要将其作为错误,您可以将整个Hive数据库搞砸。

最安全的方法是创建一个新表并使用现有的作为源

create table new_table
as
select
[...]
from existing_table
相关问题