以零停机时间替换 Hive 表中的数据
Posted
技术标签:
【中文标题】以零停机时间替换 Hive 表中的数据【英文标题】:replace data in hive table with zero downtime 【发布时间】:2018-01-02 23:00:38 【问题描述】:我定期接收制表符分隔的数据并将其加载到配置单元表中。
当我得到一个新数据集时,我需要一种方法来重新加载表,并且停机时间为零。这行不通:
drop table t;
load data local inpath ... into table t; // table is down while loading
【问题讨论】:
【参考方案1】:你可能需要一个临时表,有大量的解决方案可用,这可能很有趣
https://dba.stackexchange.com/questions/141530/when-you-switch-table-a-to-table-b-does-the-index-data-get-switched-as-well
您也可以考虑使用视图在两个在线表格之间切换 所以表 t 将变为:
平板电脑翻转
表 TFlop
view VT --Select * from TFlip
加载数据时可以
load data local inpath ... into table TFlop; // view remain up while loading
最后
alter view VT as Select * from TFlop GO
在下一次加载中,您将通过加载到表 TFlip 然后更新视图以指向 TFlip 来执行相反操作
【讨论】:
我对 hive 不熟悉,所以这不是完整的解决方案,只是解决您的问题的一种潜在方法(顺便说一下我更新了 alter view 脚本)以上是关于以零停机时间替换 Hive 表中的数据的主要内容,如果未能解决你的问题,请参考以下文章