我希望能将某些维度下过去24小时的每一小时的统计结果计算出,然后合并保存在一个map中

在写SQL时,我尝试将多条计算结果合并保存至Map中:

create table to_redis(
    biz_name STRING,
    mchnt_id STRING,
    zb_value MAP<STRING,BIGINT>
) WITH (
    'connector' = 'redis',
    'redis-mode' = 'single',
    'host' = '172.30.251.225',
    'port' = '10006',
    'password' = 'xxxxxxx',
    'command' = 'RKSC_SET',
    'sink' = 'rksc'
);

INSERT INTO to_redis 
    SELECT biz_name, mchnt_id, MAP[timeslide,total] FROM(
        SELECT biz_name, mchnt_id, timeslide , total,  ROW_NUMBER() OVER (
PARTITION BY biz_name, mchnt_id ORDER BY timeslide desc ) AS rownum
        FROM MaxAmountOf7DaysItem
    )WHERE rownum <=24;

我想要的结果是:
biz_name = "test", mchnt_id = "00001", zb_value={2021-04-06 = 100,
2021-04-05 = 99 , ...}

但是结果MAP中的数据不能被正常读取,请问这种场景有好的解决方案或者替代方案吗?





--
Sent from: http://apache-flink.147419.n8.nabble.com/

回复