数据转发:数据转发至OBS长期储存 【零代码零硬件玩转华为云IoT】

举报
bug菌 发表于 2024/03/18 18:30:15 2024/03/18
【摘要】 前言  在IoT方案中,设备上报的数据通常需要保存以备后续分析和处理。华为云IoT平台提供了多种数据转发方式,其中之一是将设备上报的数据转发至对象存储服务(OBS)。本文以Java开发语言为例,介绍了如何使用华为云IoT平台的API实现将设备上报数据转发至OBS服务。 摘要  本文主要介绍了如何利用华为云IoT平台的API将设备上报的数据转发至OBS服务。通过使用Java语言编写的示例代码...

前言

  在IoT方案中,设备上报的数据通常需要保存以备后续分析和处理。华为云IoT平台提供了多种数据转发方式,其中之一是将设备上报的数据转发至对象存储服务(OBS)。本文以Java开发语言为例,介绍了如何使用华为云IoT平台的API实现将设备上报数据转发至OBS服务。

image.png

摘要

  本文主要介绍了如何利用华为云IoT平台的API将设备上报的数据转发至OBS服务。通过使用Java语言编写的示例代码,演示了如何将设备上报数据推送至OBS,并提供了相应的源代码解析、应用场景案例、优缺点分析、类代码方法介绍、测试用例等内容。

概述

  在IoT场景中,设备通过华为云IoT平台将数据上报。为了长期保存设备上报的数据,可以选择将数据保存到OBS服务中。OBS是华为云提供的对象存储服务,具有高可靠性和高扩展性,适用于大规模的数据存储需求。

  本文将以Java开发语言为例,介绍如何使用华为云IoT平台的API将设备上报的数据转发至OBS服务。通过示例代码,演示了具体的实现过程,并给出了相应的源代码解析和详细的说明。

一路流转,多路分发,强大,灵活的数据订阅和流转能力:

image.png

万级联动规则实现跨应用/子系统的多设备自动化协同

image.png

上图是华为园区消防应急处理,消防联动的展示:

源代码解析

以下是将设备上报数据转发至OBS的Java代码示例:

// 导入依赖
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.utils.StringUtils;
import com.huaweicloud.sdk.iot.device.*;
import com.huaweicloud.sdk.iot.device.client.requests.CommandRsp;
import com.huaweicloud.sdk.iot.device.client.requests.CommandRspHandler;
import com.huaweicloud.sdk.iot.device.client.requests.DeviceMessage;
import com.huaweicloud.sdk.iot.device.client.requests.ServiceProperty;
import com.huaweicloud.sdk.iot.device.filemanager.*;
import com.huaweicloud.sdk.iot.device.transport.ActionListener;

public class OBSDataForwarder {
    // 定义OBS实例
    private OBS obs;

    public OBSDataForwarder() {
        // 初始化OBS实例
        obs = new OBS();
    }

    // 处理设备上报数据
    public void handleDeviceData(DeviceMessage deviceMessage) {
        String data = deviceMessage.getBody();
        // 将数据保存至OBS
        obs.saveData(data);
    }
}

// OBS类
public class OBS {
    public void saveData(String data) {
        // 将数据保存至OBS的具体实现逻辑
        // ...
    }
}

  以上示例代码中,首先导入了必要的依赖库,包括华为云IoT设备SDK和OBS文件管理SDK。在OBSDataForwarder类中,我们定义了一个OBS实例,并在构造函数中进行初始化。handleDeviceData方法用于处理设备上报的数据,其中通过OBS实例将数据保存至OBS。

应用场景案例

  以下是一个应用场景案例,展示了如何将设备上报的传感器数据保存至OBS服务,并利用其进行后续的数据分析和处理。

  假设我们有一个温湿度传感器设备,定时上报当前的温度和湿度数据。我们希望将这些数据长期保存,并通过华为云提供的数据分析服务进行进一步的分析和处理。通过将设备上报的数据转发至OBS服务,我们可以实现这一需求。

优缺点分析

优点

  • 高可靠性:OBS服务具有高可靠性,能够保证设备上报的数据长期保存,不会丢失。
  • 高扩展性:OBS服务可以根据需求进行灵活的扩展,适用于大规模的数据存储需求。
  • 方便数据分析和处理:通过将设备上报数据保存至OBS,可以方便地利用华为云提供的数据分析服务进行后续的分析和处理。

缺点

  • 存储成本:保存大量的设备上报数据可能会带来一定的存储成本,需要根据实际需求评估成本。

类代码方法介绍

OBS类

  • saveData方法:将设备上报的数据保存至OBS。具体的实现逻辑可以根据实际情况进行调整和扩展。

测试用例

以下是一个简单的测试用例,使用JUnit框架对OBSDataForwarder类进行单元测试:

import org.junit.Test;

public class OBSDataForwarderTest {
    @Test
    public void testDataForwarding() {
        OBSDataForwarder forwarder = new OBSDataForwarder();
        DeviceMessage deviceMessage = new DeviceMessage("sensor01", "temperature", "25");
        forwarder.handleDeviceData(deviceMessage);
        // 验证数据是否成功保存至OBS的具体实现逻辑
        // ...
    }
}

代码解析:

  根据如上代码,我们可以知道:这段代码是一个JUnit测试类,用于测试OBSDataForwarder类的功能。

  在testDataForwarding()方法中,首先创建一个OBSDataForwarder对象,然后创建一个DeviceMessage对象,该对象包含了设备名称、指标和数值。接着调用forwarder的handleDeviceData()方法来处理设备数据。

  最后的注释表示需要验证数据是否成功保存至OBS的具体实现逻辑,这里没有提供具体的验证逻辑,需要根据实际情况来编写。可以使用断言来验证数据是否正确保存至OBS。

全文小结

  本文以Java开发语言为例,介绍了如何使用华为云IoT平台的API将设备上报的数据转发至OBS服务。通过示例代码和详细的解析,演示了具体的实现过程,并讨论了应用场景、优缺点等相关内容。

总结

  通过将设备上报的数据转发至OBS服务,可以实现设备数据的长期保存和方便的后续数据分析和处理。华为云IoT平台提供了强大的API和SDK,使开发者可以轻松地实现这一功能。

结尾

  本文以Java开发语言为例,演示了如何使用华为云IoT平台的API将设备上报的数据转发至OBS服务。通过详细的代码解析和实例演示,帮助读者理解和掌握如何实现这一功能。希望本文对读者在IoT开发中有所帮助。


我正在参加【有奖征文 第29期】零代码零硬件玩转华为云IoT物联网平台多场景
链接:https://bbs.huaweicloud.com/blogs/423245

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。