前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DAG在数据开发中的应用

DAG在数据开发中的应用

原创
作者头像
lyndonlin
发布2020-06-29 18:05:21
1.3K0
发布2020-06-29 18:05:21
举报
文章被收录于专栏:Iot开发Iot开发

最近在项目中需要对设备上报的数据进行处理,其中需要在控制台上为用户提供拖拉拽的数据流处理图形,让用户更形象的将数据流的处理过程展示出来。下图是一个最简单的数据流处理过程,数据的处理过程可能是多个节点,而且输出也可以是多个节点,很明显该模型与有向无环图(DAG)很类似的。

数据流定义
数据流定义

对于整个数据流程的处理图,任何数据处理节点后都可以是最终的输出点,也可以是作为某个数据处理节点的输入源,整个数据流图的流转过程,是一个DAG的遍历过程,某个层级的节点处理完成后,进行下一层级的节点的数据处理,而同一层级的节点的处理是可以并行的。具体到本需求,某些数据的处理和输出可能是比较耗时的,这里我们采用了同一层级的数据处理并发进行。

在控制台画图的时候,需要定义好整个DAG的拓扑关系包括每个节点的子节点列表,节点在画布区的位置,节点作用类型及相应的进入下一层级的处理条件等,例如某个数据处理节点,在完成数据流的定义后,我们会对创建的数据流进行合法性校验,主要是检测是否有环。

代码语言:javascript
复制
{
    "Id":"f1id",
    "Type":"filter",
    "Position":"f1 position",
    "ChildList":[
        "outid"
    ],
    "Op":"and",
    "CondList":[
        {
            "Op":"eq",
            "Id":"light_switch",
            "Value":1
        },
        {
            "Op":"eq",
            "Id":"color",
            "Value":2
        }
    ]
}

在控制台定义好数据流图,之后就是具体的数据流的执行流程。解析以上在控制台定义的数据流协议,建立整个DAG的拓扑关系,设置每个节点的处理函数,进而按照DAG的执行整个数据流。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
物联网开发平台
腾讯云物联网开发平台(IoT Explorer)是面向智慧生活与产业物联应用的一站式物联网PaaS平台,为各行业用户提供一站式设备智能化服务。平台提供海量设备连接与消息通信能力,基于腾讯连连小程序应用开发能力、音视频能力及AI增值服务,聚合腾讯生态内容能力。提升传统行业设备智能化的效率,降低用户的开发运维成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档