我希望能将某些维度下过去24小时的每一小时的统计结果计算出,然后合并保存在一个map中
在写SQL时,我尝试将多条计算结果合并保存至Map中:
create table to_redis(
biz_name STRING,
mchnt_id STRING,
zb_value MAP
) WITH (
'connector' = 'redis',
'redis-mode' = 'single',
'host' = '172.30.251.225',
'port' = '10006',
'password' = 'xxx',
'command' = 'RKSC_SET',
'sink' = 'rksc'
);
CREATE VIEW MaxAmountOf7DaysItem(biz_name, mchnt_id, timeslide, total) AS
SELECT biz_name, mchnt_id, DATE_FORMAT(order_time,'-MM-dd') as
timeslide, MAX(amount) as total FROM event_source
GROUP BY biz_name, mchnt_id, DATE_FORMAT(order_time,'-MM-dd');
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 = "1", zb_value={2021-04-06 = 100,
2021-04-05 = 99 , ...}
但是结果MAP中的数据不能被正常读取,请问这种场景有好的解决方案或者替代方案吗?
--
Sent from: http://apache-flink.147419.n8.nabble.com/