阿里云实时计算Flink
2020-11-23
2164浏览量
作者:何孟强
杭州企鹅科技是一家集自主研发、商业运营、合作推广为一体的智慧物联平台服务商。企鹅科技利用智慧物联技术平台,赋能自助商用设备为运营商提供一体化物联网改造方案和SaaS移动支付解决方案。公司依托领先的物联网技术,瞄准线下消费升级和差异化趋势,利用智慧物联技术连接并赋能线下商用设备实现商户的智能化管理,降低运维成本、提高收益;同时,为用户提供基于LBS定位的物联自助智能体验服务,满足用户体验的智能化,个性化需求。
企鹅科技目前共有约40万台物联网终端设备包括:洗衣机、烘干机、饮水机、淋浴、吹风机、充电桩、按摩椅等,需实时掌握终端设备的状态以及下发指令后反馈结果,每天将近4亿条消息接收和发送。
业务痛点:由于终端设备数量过多,设备种类繁杂,消息量巨大,实时性要求高,小额高频的交易场景且需根据各种业务场景进行处理,原来通过直接消息订阅IOT平台消息和消息流转均无法满足我们业务场景复杂的小额高频需求。
为解决上文提到的业务痛点问题,选用阿里云实时计算Flink作为实时计算的基础架构进行数据清理、过滤和业务处理后输出至各下游。
1. 设备信息数据实时上报到IOT物联网平台。
2. IOT物联网平台把数据流转到DATAHUB。
3. 实时计算Flink版订阅DATAHUB数据。
4. 实时计算Flink根据业务规则进行数据清洗、加工输出至各下游端。
饮水场景是一种小额的高频交易的后付费场景,用户下单后先下发解锁指令,让用户先使用然后再根据设备上报的流量进行计费。终端设备上报的信息中会有单笔订单上报,也会由于网络情况不好而挤压在终端的信息需同时进行上报,通过实时计算Flink可快速通过sql方式进行数据过滤如:根据上报的类型和tag进行条件过滤如下:`type` = '08' AND `profile` IS NULL AND json_value ( `data`, '$.Flag' ) IN ( '04', '05' ); 可以判断该笔消息是饮水场景单笔订单的上报,很便捷的判断出消息的种类后输出至MQ、Redis等供下游消费使用,完成业务的闭环。
充电桩设备需实时掌握充电桩的通道的功率以及充电桩的状态及充电的剩余时间,为实时掌握通道的功率我们通过实时计算Flink进行加工后数据输出至TSDB中。通过实时计算Flink可快速完成业务需求。
--创建iot_up数据源表 create table iot_up ( `id` varchar, `imei` varchar, `pk` varchar, `type` varchar, `data` varchar, `profile` varchar ) with ( type = 'datahub', endPoint = 'http://dh-cn-shanghai.aliyun-inc.com', project = '***', topic = '***', accessId = '***', accessKey = '***' ); --创建tsdb表 CREATE TABLE charge_power ( `metric` VARCHAR, `timestamp` INTEGER, `value` INTEGER, `imei` VARCHAR, `channel` VARCHAR, `msgid` VARCHAR, `pk` VARCHAR ) WITH ( type='hitsdb', host='***', port='***' );
--创建tsdb表写入数据 insert into charge_power select 'power', cast(UNIX_TIMESTAMP(`time`) as int), cast(json_value(`data`,'$.Powers[0].Power') as int), imei, json_value(`data`,'$.Powers[0].Channel'), json_value(`data`,'$.Powers[0].MsgId'), pk from iot_up where `type` = '0706' and json_value(`data`,'$.Powers[0]') is not null;
杭州企鹅科技平台涉及多台线下设备(约40W台设备),实时计算 Flink 版每秒处理输入 10K 条数据,每秒输出 20K 条处理后的数据,整体延迟为秒级,整体收益包括:
企鹅科技平台通过实时计算技术快速处理各业务场景数据,在业务上取得了较大的成果,也得到了公司的高度认可,由于物联网设备实时性要求较强,通过实时计算在很多业务场景上已满足我们的业务需要。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。