【问题标题】:replace data in hive table with zero downtime以零停机时间替换 Hive 表中的数据
【发布时间】:2018-01-02 23:00:38
【问题描述】:

我定期接收制表符分隔的数据并将其加载到配置单元表中。

当我得到一个新数据集时,我需要一种方法来重新加载表,并且停机时间为零。这行不通:

drop table t;
load data local inpath ... into table t;   // table is down while loading

【问题讨论】:

    标签: sql hive bigdata


    【解决方案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 脚本)
    猜你喜欢
    • 2017-12-22
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多