# 数据转发至MySQL存储
#### 场景说明
对于平台的流转数据可以选择让平台将设备上报数据转发给云数据库（MySQL），由MySQL进行存储，用户无需做额外的数据存储代码开发即可使用设备数据进行业务处理。
本示例为将流转数据转发至MySQL存储。
#### 前提条件
- 已购买设备接入服务的企业版实例或标准版实例。
- 已购买云数据库MySQL实例。
 
#### 创建MySQL
1. 登录华为云官方网站，访问[云数据库MySQL](https://www.huaweicloud.com/product/mysql.html)。
   
   ![](https://support.huaweicloud.com/usermanual-iothub/public_sys-resources/note_3.0-zh-cn.png)
   设备接入服务企业版实例支持[通过内网连接MySQL](https://support.huaweicloud.com/usermanual-rds-mysql/rds_mysql_connect_05.html)，标准版实例仅支持[通过公网连接MySQL](https://support.huaweicloud.com/usermanual-rds-mysql/rds_mysql_connect_06.html)。
   
   
2. 在购买的MySQL实例中，根据[数据流转](https://support.huaweicloud.com/api-iothub/iot_06_v5_01200.html)格式设计数据库表，可以通过数据过滤语句编辑流转数据。本示例使用[设备属性上报通知](https://support.huaweicloud.com/api-iothub/iot_06_v5_01202.html)的默认格式，将流转数据中的resource、event、notify_data、event_time分别转存至数据库表中的resource、event、content、event_time字段。
   
   图1创建数据库表样例   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001523799694.jpg "点击放大")
   
   
 
#### 配置设备接入服务
在设备接入服务中创建产品模型、注册设备并设置数据转发规则，实现当设备上报数据时将数据转发至MySQL。
1. 访问[设备接入服务](https://www.huaweicloud.com/product/iothub.html)，单击"管理控制台"进入设备接入控制台。选择您的实例，单击实例卡片进入。
2. 选择左侧导航栏的"产品"，单击创建产品，选择新建产品所属的资源空间。 
   ![](https://support.huaweicloud.com/usermanual-iothub/public_sys-resources/note_3.0-zh-cn.png)
   本文中使用的产品模型和设备仅为示例，您可以使用自己的产品模型和设备进行操作。
   
   
3. 单击"创建产品"，创建一个基于MQTT协议的产品，填写参数后，单击"确认"。
   
   
   |                              **基本信息**                               ||
   |---|---|
   | 产品名称 | 自定义，如MQTT_Device |
   | 协议类型  | 选择"MQTT"       |
   | 数据格式 | 选择"JSON"       |
   | 所属行业    | 根据实际情况进行选择。       |
   | 设备类型 | 根据实际情况进行选择。       |
      
   
   
4. 单击[文件](https://obs-pipeline.obs.cn-north-4.myhuaweicloud.com/sdkDeploy/Profile_01.zip)，获取产品模型文件样例。
5. 在基本信息页面，单击"上传模型文件"，在弹出的页面中加载产品模型文件，然后单击"确定"。 
   图2产品-上传产品模型   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001981312633.png "点击放大")
   
   
6. 选择左侧导航栏的"设备 \> 所有设备"，单击"注册设备"，填写设备注册参数，完成后单击"确定"，请注意保存注册成功返回的"设备ID"和"设备密钥"。 
   图3设备-注册密钥设备   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001950367894.png "点击放大")
   
   | 参数名称  | 说明                                                       |
   |:---|:---|
   | 所属资源空间                 | **参数说明：** 选择[3]中创建的产品所在的资源空间 |
   | 所属产品  | **参数说明：** 选择[3]中创建的产品。    |
   | 设备标识码 | **参数说明：**即node_id，填写为设备的IMEI、MAC地址或Serial No；若没有真实设备，填写自定义字符串，由英文字母和数字组成。   |
   | 设备名称                    | **参数说明：**自定义。                                                                |
   | 设备ID                     | **参数说明：**自定义，可不填，平台会自动生成一个设备ID                                               |
   | 设备认证类型                     | **参数说明：**选择"密钥"。                                                            |
   | 密钥    | **参数说明：**设备密钥，可自定义，不填写物联网平台会自动生成。                                          |
      
   
   
7. 选择左侧导航栏的"规则\>数据转发"，单击左上角的"创建规则"。 
   ![](https://support.huaweicloud.com/usermanual-iothub/public_sys-resources/note_3.0-zh-cn.png)
   您也可以基于已经创建的规则，在规则详情页面，添加新的转发目标MySQL。
   
   
8. 参考下表参数说明，填写规则内容。以下参数取值仅为示例，您可参考[数据转发流程](https://support.huaweicloud.com/usermanual-iothub/iot_01_0024.html)填写具体的流转规则参数，填写完成后单击"创建规则"。
   
   
   | 参数名    | 参数说明                              |
   |:---|:---|
   | 规则名称  | **参数说明：**自定义，如iotda-mysql。         |
   | 规则描述  | **参数说明：**自定义，如数据转发至MySQL存储。      |
   | 数据来源   | **参数说明：**选择"设备属性"。               |
   | 触发事件  | **参数说明：**自动匹配"设备属性上报"。             |
   | 资源空间 | **参数说明：**选择转发的数据来源所属的资源空间，或者所有资源空间。 |
      
   
   
9. 单击"设置转发目标"页签，单击"添加"，设置转发目标。 
   
   | 参数名      | 参数说明                                                                                                                                                                                                           |
   |:---|:---|
   | 转发目标  | **参数说明：**选择"云数据库 MySQL(RDS)"                                                                                                                                                                                   |
   | 数据库实例地址 | **参数说明：**填写数据库实例的连接IP（或域名）和端口。                                                                                                                                                                                  |
   | 数据库名称    | **参数说明：**填写数据库实例中转发目标数据库名称。                                                                                                                                                                                     |
   | 访问账户      | **参数说明：**填写数据库实例的账户。                                                                                                                                                                                          |
   | 访问密码   | **参数说明：**填写数据库实例的密码。                                                                                                                                                                                           |
   | SSL      | **参数说明：** 选择是否通过SSL加密方式连接数据库。推荐使用SSL方式连接，不开启SSL方式连接可能存在数据传输安全风险。选择通过SSL方式连接时，需要先在数据库实例中[设置SSL数据加密](https://support.huaweicloud.com/usermanual-rds-mysql/rds_mysql_0001.html#rds_mysql_0001__section52887001420)。 |
   | 证书ID     | **参数说明：** Truststore证书，用于客户端校验服务端证书。不填默认使用云数据库 MySQL(RDS)提供的默认证书。使用[自定义证书的MySQL(RDS)实例](https://support.huaweicloud.com/usermanual-rds-mysql/rds_11_0029.html)需要将自定义CA上传到"设备 \> 设备证书 \> CA证书"中，并在此处绑定。         |
      
   
   
10. 单击"下一步：转发数据配置"，此过程会连接数据库。
11. 选择转存表格，配置流转数据和数据库表的映射关系。 
    - 转发字段：流转数据的json key。
    
    - 目标存储字段：数据库表的字段，选择目标存储字段后自动匹配字段类型。
    
    
    图4新建转发目标-设置Mysql字段映射   
    ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000002322611630.png "点击放大")
    
    
12. 单击"启动规则"，激活配置好的数据转发规则。
 
#### 验证操作
触发规则数据来源的事件，比如设备属性上报。
期望结果：
登录[云数据库MySQL](https://www.huaweicloud.com/product/mysql.html)，打开目标表格，可以查看到表格目标字段转存的数据。
图5查询数据上报信息   
![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001574119781.jpg "点击放大")
