IoT Studio服务开发MySQL数据流转示例Demo

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 阿里云物联网平台的规则引擎功能支持将数据流转到MySQL数据库,但是仅支持同区域(上海--华东二)的数据流转,这里介绍使用IoT Studio服务开发:云数据库MySQL节点,通过MySQL数据库的公网地址,完成跨区域的数据流转。

Step By Step


物联网产品及设备的创建

1、创建产品
_

2、导入物模型
_

_

_

model.json

{
    "schema":"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json",
    "profile":{
        "productKey":"<替换为自己产品的productkey>"
    },
    "properties":[
        {
            "identifier":"Distance",
            "name":"距离",
            "accessMode":"rw",
            "required":false,
            "dataType":{
                "type":"double",
                "specs":{
                    "min":"0",
                    "max":"10000",
                    "unit":"m",
                    "step":"1"
                }
            }
        },
        {
            "identifier":"GeoLocation",
            "name":"自定义地理位置",
            "accessMode":"rw",
            "required":false,
            "dataType":{
                "type":"struct",
                "specs":[
                    {
                        "identifier":"Longitude",
                        "name":"经度",
                        "dataType":{
                            "type":"double",
                            "specs":{
                                "min":"-180",
                                "max":"180",
                                "unit":"°",
                                "step":"0.01"
                            }
                        }
                    },
                    {
                        "identifier":"Latitude",
                        "name":"纬度",
                        "dataType":{
                            "type":"double",
                            "specs":{
                                "min":"-90",
                                "max":"90",
                                "unit":"°",
                                "step":"0.01"
                            }
                        }
                    },
                    {
                        "identifier":"CoordinateSystem",
                        "name":"坐标系统",
                        "dataType":{
                            "type":"enum",
                            "specs":{
                                "1":"WGS_84",
                                "2":"GCJ_02"
                            }
                        }
                    }
                ]
            }
        },
        {
            "identifier":"CellSignalStrength",
            "name":"信号强度",
            "accessMode":"r",
            "required":false,
            "dataType":{
                "type":"int",
                "specs":{
                    "min":"-128",
                    "max":"127",
                    "unit":"dBm",
                    "step":"1"
                }
            }
        }
    ],
    "events":[
        {
            "identifier":"post",
            "name":"post",
            "type":"info",
            "required":true,
            "desc":"属性上报",
            "method":"thing.event.property.post",
            "outputData":[
                {
                    "identifier":"Distance",
                    "name":"距离",
                    "dataType":{
                        "type":"double",
                        "specs":{
                            "min":"0",
                            "max":"10000",
                            "unit":"m",
                            "step":"1"
                        }
                    }
                },
                {
                    "identifier":"GeoLocation",
                    "name":"自定义地理位置",
                    "dataType":{
                        "type":"struct",
                        "specs":[
                            {
                                "identifier":"Longitude",
                                "name":"经度",
                                "dataType":{
                                    "type":"double",
                                    "specs":{
                                        "min":"-180",
                                        "max":"180",
                                        "unit":"°",
                                        "step":"0.01"
                                    }
                                }
                            },
                            {
                                "identifier":"Latitude",
                                "name":"纬度",
                                "dataType":{
                                    "type":"double",
                                    "specs":{
                                        "min":"-90",
                                        "max":"90",
                                        "unit":"°",
                                        "step":"0.01"
                                    }
                                }
                            },
                            {
                                "identifier":"CoordinateSystem",
                                "name":"坐标系统",
                                "dataType":{
                                    "type":"enum",
                                    "specs":{
                                        "1":"WGS_84",
                                        "2":"GCJ_02"
                                    }
                                }
                            }
                        ]
                    }
                },
                {
                    "identifier":"CellSignalStrength",
                    "name":"信号强度",
                    "dataType":{
                        "type":"int",
                        "specs":{
                            "min":"-128",
                            "max":"127",
                            "unit":"dBm",
                            "step":"1"
                        }
                    }
                }
            ]
        }
    ],
    "services":[
        {
            "identifier":"set",
            "name":"set",
            "required":true,
            "callType":"async",
            "desc":"属性设置",
            "method":"thing.service.property.set",
            "inputData":[
                {
                    "identifier":"Distance",
                    "name":"距离",
                    "dataType":{
                        "type":"double",
                        "specs":{
                            "min":"0",
                            "max":"10000",
                            "unit":"m",
                            "step":"1"
                        }
                    }
                },
                {
                    "identifier":"GeoLocation",
                    "name":"自定义地理位置",
                    "dataType":{
                        "type":"struct",
                        "specs":[
                            {
                                "identifier":"Longitude",
                                "name":"经度",
                                "dataType":{
                                    "type":"double",
                                    "specs":{
                                        "min":"-180",
                                        "max":"180",
                                        "unit":"°",
                                        "step":"0.01"
                                    }
                                }
                            },
                            {
                                "identifier":"Latitude",
                                "name":"纬度",
                                "dataType":{
                                    "type":"double",
                                    "specs":{
                                        "min":"-90",
                                        "max":"90",
                                        "unit":"°",
                                        "step":"0.01"
                                    }
                                }
                            },
                            {
                                "identifier":"CoordinateSystem",
                                "name":"坐标系统",
                                "dataType":{
                                    "type":"enum",
                                    "specs":{
                                        "1":"WGS_84",
                                        "2":"GCJ_02"
                                    }
                                }
                            }
                        ]
                    }
                }
            ],
            "outputData":[
                
            ]
        },
        {
            "identifier":"get",
            "name":"get",
            "required":true,
            "callType":"async",
            "desc":"属性获取",
            "method":"thing.service.property.get",
            "inputData":[
                "Distance",
                "GeoLocation",
                "CellSignalStrength"
            ],
            "outputData":[
                {
                    "identifier":"Distance",
                    "name":"距离",
                    "dataType":{
                        "type":"double",
                        "specs":{
                            "min":"0",
                            "max":"10000",
                            "unit":"m",
                            "step":"1"
                        }
                    }
                },
                {
                    "identifier":"GeoLocation",
                    "name":"自定义地理位置",
                    "dataType":{
                        "type":"struct",
                        "specs":[
                            {
                                "identifier":"Longitude",
                                "name":"经度",
                                "dataType":{
                                    "type":"double",
                                    "specs":{
                                        "min":"-180",
                                        "max":"180",
                                        "unit":"°",
                                        "step":"0.01"
                                    }
                                }
                            },
                            {
                                "identifier":"Latitude",
                                "name":"纬度",
                                "dataType":{
                                    "type":"double",
                                    "specs":{
                                        "min":"-90",
                                        "max":"90",
                                        "unit":"°",
                                        "step":"0.01"
                                    }
                                }
                            },
                            {
                                "identifier":"CoordinateSystem",
                                "name":"坐标系统",
                                "dataType":{
                                    "type":"enum",
                                    "specs":{
                                        "1":"WGS_84",
                                        "2":"GCJ_02"
                                    }
                                }
                            }
                        ]
                    }
                },
                {
                    "identifier":"CellSignalStrength",
                    "name":"信号强度",
                    "dataType":{
                        "type":"int",
                        "specs":{
                            "min":"-128",
                            "max":"127",
                            "unit":"dBm",
                            "step":"1"
                        }
                    }
                }
            ]
        }
    ]
}

注意: 替换自己产品的ProductKey

3、添加设备
_


IoT Studio绑定产品+设备

1、创建项目
_

2、项目创建完成后分别关联创建的产品和设备
_

3、新建业务服务
_
_

4、业务流程搭建
_

_

_

5、云数据库MySQL节点配置介绍

  • 5.1 MySQL的版本

请使用MySQL5.7或MySQL5.6版本,其它版本兼容性会有问题,可能会出现连接异常。

  • 5.2 参数配置
{
    "table": "iotdevice1",
    "rows": [
        {
            "CellSignalStrength": "{{query.props.CellSignalStrength.value}}",
            "Distance": "{{query.props.Distance.value}}",
            "Longitude": "{{query.props.GeoLocation.value.Latitude}}",
            "Latitude": "{{query.props.GeoLocation.value.Longitude}}"
        }
    ]
}

也可以是(注意节点Id按照具体节点情况修改):


{
    "table": "iotdevice1",
    "rows": [
        {
            "CellSignalStrength": "{{payload.props.CellSignalStrength.value}}",
            "Distance": "{{query.props.Distance.value}}",
            "Longitude": "{{query.props.GeoLocation.value.Latitude}}",
            "Latitude": "{{node.node_339cdef0.props.GeoLocation.value.Longitude}}"
        }
    ]
}

payload表示上一个节点输出参数;query表示输入节点的参数;node.nodeId表示指定某一节点的输出参数。

  • 5.3 MySQL建表语句
/*------- CREATE SQL---------*/
CREATE TABLE `iotdevice1` (
  `CellSignalStrength` int(11) DEFAULT NULL,
  `Distance` double DEFAULT NULL,
  `Longitude` double DEFAULT NULL,
  `Latitude` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

设备在线模拟测试

1、部署调试
_

_

_

2、数据流转查看

_

3、流程测试正常后,发布即可

_

参考链接

云数据库MySQL
IoT Studio 服务开发概述

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL 存储 关系型数据库
MySQL的基本操作及实用示例(面试真题老实用了)
在MySQL中,行转列是指将数据表的行转换为列,以实现数据在视图中的重组和重塑。通常,行转列用于将多行数据合并为一行,并将多个列值作为新的列。行转列可以使用多种方法实现,包括使用聚合函数、条件筛选和透视(PIVOT)表等。以下是一些常见的行转列方法:1.使用聚合函数可以使用聚合函数如等对数据进行聚合,并使用CASE语句根据条件选择和返回不同的列值。以将不同的行值转换为列值。2.使用条件筛选可以使用条件判断语句,如IF语句或CASE语句。
|
4月前
|
物联网 数据管理 Apache
拥抱IoT浪潮,Apache IoTDB如何成为你的智能数据守护者?解锁物联网新纪元的数据管理秘籍!
【8月更文挑战第22天】随着物联网技术的发展,数据量激增对数据库提出新挑战。Apache IoTDB凭借其面向时间序列数据的设计,在IoT领域脱颖而出。相较于传统数据库,IoTDB采用树形数据模型高效管理实时数据,具备轻量级结构与高并发能力,并集成Hadoop/Spark支持复杂分析。在智能城市等场景下,IoTDB能处理如交通流量等数据,为决策提供支持。IoTDB还提供InfluxDB协议适配器简化迁移过程,并支持细致的权限管理确保数据安全。综上所述,IoTDB在IoT数据管理中展现出巨大潜力与竞争力。
114 1
|
6月前
|
SQL 关系型数据库 MySQL
MySQL数据库子查询——in多个数据查询的示例
MySQL数据库子查询——in多个数据查询的示例
38 1
|
3月前
|
存储 关系型数据库 MySQL
MySQL基础命令及使用示例
这些基础命令构成了与MySQL数据库交互的核心,理解并掌握它们对于进行有效的数据库操作至关重要。在实际使用中,建议结合实际案例和需求来练习这些命令,以加深理解和提高效率。
34 3
|
3月前
|
存储 关系型数据库 MySQL
MySQL基础命令及使用示例
这些基础命令构成了与MySQL数据库交互的核心,理解并掌握它们对于进行有效的数据库操作至关重要。在实际使用中,建议结合实际案例和需求来练习这些命令,以加深理解和提高效率。
73 4
|
2月前
|
存储 关系型数据库 MySQL
MySQL 字符字段长度设置详解:语法、注意事项和示例
MySQL 字符字段长度设置详解:语法、注意事项和示例
248 0
|
4月前
|
存储 传感器 监控
理解并利用物联网(IoT)数据的技术探索
【8月更文挑战第11天】物联网数据是数字化转型的重要资源。通过深入理解物联网数据的特性和价值,并采取有效的收集、处理和分析策略,我们可以更好地利用这些数据为企业决策提供支持、优化运营效率、创造新的商业模式并推动数字化转型的深入发展。
|
4月前
|
关系型数据库 MySQL OLTP
性能工具之 MySQL OLTP Sysbench BenchMark 测试示例
【8月更文挑战第6天】使用 pt-query-digest 工具分析 MySQL 慢日志性能工具之 MySQL OLTP Sysbench BenchMark 测试示例
307 0
性能工具之 MySQL OLTP Sysbench BenchMark 测试示例
|
6月前
|
关系型数据库 MySQL 数据库
DELETE、TRUNCATE 和 DROP 在MySQL中的区别及使用示例
DELETE、TRUNCATE 和 DROP 在MySQL中的区别及使用示例
210 0
|
6月前
|
SQL 存储 关系型数据库
AI代码提示工具可用于教学功能示例——MySQL
AI代码提示工具可用于教学功能示例——MySQL
80 0