列表

详情


大数据计算服务MaxCompute中的订单表fact_order 是一张分区表,有order_id 及order_amt两个字段。分区键是dt,每天新增的订单存储在当天的分区中,对应的源表是ods_order,源表中可能包括多天的订单,需要按照订单生成的日期(order_dt) 将数据保存到fact_order 表中,执行以下SQL语句:insert overwrite table fact_ orders partition(dt) select order_id,order_amt,order_dt as dt from ods_ order;在语句执行之前fact_order 表中有dt='20160301'及dt='20160302'两个分区,在这个语句执行时ods_order 表是空的,没有任何记录。对这个语句的执行结果,以下说法正确的是?()


A. 执行完以后fact_order表会被清空,所有的分区都会被删除

B. 执行完以后fact_order表中有三个分区,包括dt='20160301' , dt='20160302'及d=''

C. 执行完以后fact_order中仍然有dt='20160301'及dt='20160302' 两个分区,但是数据会被清空

D. 执行完以后fact_order中的数据未受影响,仍然是dt='20160301' 及dt='20160302' 两个分区

参考答案: D

详细解析:

A、该语句是使用动态分区的方式插入数据,即会根据查询的最后一个字段确认分区值,因ods_order 表是空的,而分区表操作相当于针对对应文件目录操作,所以并不会影响其他分区数据,其他分区无变化;B、同A,同时dt="是语法不支持的,不支持空作为分区C、同A,数据不受影响D、正确


上一题