flink 版本是1.11的版本了








在 2020-11-05 00:02:12,"hailongwang" <[email protected]> 写道:
>Hi liaobiao,
>
>
>你的 flink 版本是什么呢?
>根据你的 SQL,如果是版本是 <= 1.10 的话,会根据 MetaDataHander 识别出你的 group by 后面的 key 作为 upsert 
>key,这样就会产生覆盖的情况。
>你看下结果是否是这种情况的?
>
>
>Best,
>Hailong Wang
>
>
>
>
>在 2020-11-04 17:20:23,"夜思流年梦" <[email protected]> 写道:
>>开发者好:
>>               目前有此场景:算不同部门的总收入和所有部门的总收入,打算把两部分SQL union all  ,但是实际情况发现 union 
>> all的时候会丢一部分数据,要么是各个部门的数据少了,要么是所有部门的总收入少了
>>               如果把union  all 的两段SQL 分别独立出来,插入同一张表,那么数据就是正常的,不知道是否是bug还是使用方法不对
>>
>>
>>
>>
>>原sql :
>>
>>
>>insert into dws_XXXX
>>
>>
>>select 
>>0 as id
>>,cast (DATE_FORMAT(LOCALTIMESTAMP, 'yyyyMMddHH') as bigint) as ftime
>>,case 
>>when dept_name like '%XX%' then 'X1'
>>when dept_name = 'xXX' then 'X2'
>>else 'X3' end as paytype
>>,count(orderid) as paynum_h 
>>,round(sum(amt)) as paymoney_h 
>>from dwd_XXX
>>where write_time >=DATE_FORMAT(LOCALTIMESTAMP, 'yyyy-MM-dd')
>>group by
>>DATE_FORMAT(LOCALTIMESTAMP, 'yyyyMMddHH'), 
>>case 
>>when dept_name like '%XX%' then 'X1'
>>when dept_name = 'xXX' then 'X2'
>>else 'X3' end ;
>>
>>
>>
>>
>>union all
>>
>>
>>
>>
>>select 0 as id
>>,cast (DATE_FORMAT(LOCALTIMESTAMP, 'yyyyMMddHH') as int) as ftime
>>,'all' as paytype
>>,count(orderid) as paynum_h  
>>,round(sum(amt)) as paymoney_h  
>>from dwd_XXX
>>where write_time >=DATE_FORMAT(LOCALTIMESTAMP, 'yyyy-MM-dd')
>>group by DATE_FORMAT(LOCALTIMESTAMP, 'yyyyMMddHH') ;

回复