2021-03-29

maxcomputer多路输出(MULTI INSERT)

MaxCompute SQL支持在一个语句中插入不同的结果表或者分区实现多路输出。

命令格式如下:

FROM from_statement
INSERT OVERWRITE | INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)]
select_statement1 [FROM from_statement]
[INSERT OVERWRITE | INTO TABLE tablename2 [PARTITION (partcol1=val3, partcol2=val4 ...)]
select_statement2 [FROM from_statement]]

说明

  • 一般情况下,单个SQL中最多可以写256路输出,超过256路,则报语法错误。
  • 在一个multi insert中:
    • 对于分区表,同一个目标分区不允许出现多次。
    • 对于未分区表,该表不能出现多次。
  • 对于同一张分区表的不同分区,不能同时有Insert overwrite和Insert into操作,否则报错返回。

示例如下:

  1. create table sale_detail_multi like sale_detail;
    from sale_detail
    insert overwrite table sale_detail_multi partition (sale_date='2010', region='china' ) 
    select shop_name, customer_id, total_price where .....
    insert overwrite table sale_detail_multi partition (sale_date='2011', region='china' )
    select shop_name, customer_id, total_price where .....;
    -- 成功返回,将sale_detail的数据插入到sales里的 2010 年及2011年中国大区的销售记录中。
    from sale_detail
    insert overwrite table sale_detail_multi partition (sale_date='2010', region='china' )
    select shop_name, customer_id, total_price
    insert overwrite table sale_detail_multi partition (sale_date='2010', region='china' )
    select shop_name, customer_id, total_price;
    -- 出错返回,同一分区出现多次。
    from sale_detail
    insert overwrite table sale_detail_multi partition (sale_date='2010', region='china' )
    select shop_name, customer_id, total_price
    insert into table sale_detail_multi partition (sale_date='2011', region='china' )
    select shop_name, customer_id, total_price;
    -- 出错返回,同一张表的不同分区,不能同时有insert overwrite和insert into操作。

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值