hive中的拉链表2
本例以hive为例,只考虑到实现,与性能无关
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、虚拟空间、营销软件、网站建设、七里河网站维护、网站推广。
首先创建表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | CREATE TABLE orders ( orderid INT , createtime STRING, modifiedtime STRING, status STRING ) row format delimited fields terminated by '\t' CREATE TABLE ods_orders_inc ( orderid INT , createtime STRING, modifiedtime STRING, status STRING ) PARTITIONED BY ( day STRING) row format delimited fields terminated by '\t' CREATE TABLE dw_orders_his ( orderid INT , createtime STRING, modifiedtime STRING, status STRING, dw_start_date STRING, dw_end_date STRING ) row format delimited fields terminated by '\t' ; |
首先全量更新,我们先到2016-08-20为止的数据。
初始化,先把2016-08-20的数据初始化进去
1 2 3 4 | INSERT overwrite TABLE ods_orders_inc PARTITION ( day = '2016-08-20' ) SELECT orderid,createtime,modifiedtime,status FROM orders WHERE createtime < '2016-08-21' and modifiedtime < '2016-08-21' ; |
刷到dw中
1 2 3 4 5 6 | INSERT overwrite TABLE dw_orders_his SELECT orderid,createtime,modifiedtime,status, createtime AS dw_start_date, '9999-12-31' AS dw_end_date FROM ods_orders_inc WHERE day = '2016-08-20' ; |
如下结果
1 2 3 4 5 | select * from dw_orders_his; OK 1 2016-08-20 2016-08-20 创建 2016-08-20 9999-12-31 2 2016-08-20 2016-08-20 创建 2016-08-20 9999-12-31 3 2016-08-20 2016-08-20 创建 2016-08-20 9999-12-31 |
网站标题:hive中的拉链表2
文章出自:http://myzitong.com/article/gjcejc.html