【阿里云 MVP 月度分享】宋亚奇——应用MaxCompute实现电力设备监测数据的批量特征分析

简介: 利用MaxCompute实现局部放电监测数据特征提取的过程

1 背景知识

电力设备在线监测指在不停电的情况下,对电力设备状况进行连续或周期性地自动监视检测,使用的技术包括:传感器技术、广域通信技术和信息处理技术。电力设备在线监测是实现电力设备状态运行检修管理、提升生产运行管理精益化水平的重要手段,对提升电网智能化水平、实现电力设备状态运行管理具有积极而深远的意义。

随着智能电网建设的推进,电力设备在线监测得到了较大发展并成为趋势,监测数据变得日益庞大,逐渐构成电力设备监测大数据,这给电力设备在线监测系统在数据存储和处理方面带来非常大的技术挑战。

电力设备监测大数据具有体量大、类型多、价值密度低和处理速度快的特点。电网公司监测系统目前过于依赖集中式SAN存储,并基于SOA进行数据集成,主要采用“企业级关系型数据库”,受容量、扩展性以及访问速度的制约,目前只存储二次加工的“熟数据”,而所擅长的关联查询、事务处理在数据分析时又无用武之地,迫切需要新的大数据存储和处理技术来应对。

变压器的局部放电数据是一种典型的电力设备监测数据。局部放电相位分析(phase resolved partial discharge, PRPD)包含了从特征提取到模式识别的过程。本文将全面介绍利用MaxCompute实现局部放电监测数据特征提取的过程。

PD信号分析主要包括三个子过程:(1)基本参数n-q-φ的提取。扫描PD信号,统计信号中的放电峰值和相应的放电相位。(2)谱图构造和统计特征计算。划分相窗,统计平均放电量和放电次数的分布,计算平均放电量相位分布谱图qave-φ和放电次数相位分布谱图n-φ。基于qave-φ和n-φ,以φi为随机变量,计算谱图的偏斜度Sk、陡峭度Ku等统计特征,形成放电特征向量。(3)放电类型识别。本文将介绍,使用MapReduce实现第一个子过程的方法。

MaxCompute(原ODPS) 是阿里云提供的海量数据处理平台。主要服务于批量结构化数据的存储和计算,数据规模达EB级别。MaxCompute目前已在大型互联网企业的数据仓库和BI分析、网站的日志分析、电子商务网站的交易分析等领域得到大规模应用。

另外,本文还将使用odpscmd作为客户端完成对MaxCompute的各种操作。odpscmd是一个Java程序,可以以命令方式访问MaxCompute。应用该客户端,可以完成包括数据查询、数据上传、下载等各种任务。需要JRE环境才能运行,请下载并安装JRE 1.6+版本。

本文将使用MapReduce编程来完成特征分析的计算任务。MapReduce最早是由Google提出的分布式数据处理模型,随后受到了业内的广泛关注,并被大量应用到各种商业场景中。比如搜索、Web访问日志分析、文本统计分析、海量数据挖掘、机器学习、自然语言处理、广告推荐等。

2 分析过程

2.1 创建项目、建表和数据上传

1)创建MaxCompute项目

打开阿里云官网:https://www.aliyun.com/

ffe48484e633f70d2b387addfca331f72aa9d849

使用已有阿里云账号登录。

bc526b38f9f37773900b17697c6019c46bdcde89

进入阿里云管理控制台,并从左侧导航栏选择“大数据(数加)à大数据计算服务”,进入MaxCompute管理控制台,创建一个MaxCompute项目。


 

2)安装配置odpscmd

在本地准备好JRE环境,请下载并安装JRE 1.6+版本。

从阿里云官网下载odpscmd工具:http://repo.aliyun.com/download/odpscmd/latest/odpscmd_public.zip?spm=5176.doc27804.2.3.o2o8Rw&file=odpscmd_public.zip

解压缩,并配置<ODPS_CLIENT>/conf/odps_config.ini


project_name=[project_name]
access_id=******************
access_key=*********************
end_point=http://service.odps.aliyun.com/api
tunnel_endpoint=http://dt.odps.aliyun.com
log_view_host=http://logview.odps.aliyun.comhttps_check=true


配置完成后,运行<ODPS_CLIENT>/bin/odpscmd,进入交互模式。会出现项目名称作为提示符。

b7c2b5b2d2a3079e86a6b9807bcfdc0a56c39a7a

3)建表并添加分区

1)    创建ODS_PD表,用于存放原始的变压器局部放电监测数据。

在odpscmd中,执行下面的SQL语句,建表,并添加分区。


create table if not exists ODS_PD(
      Time    string,
      Phase     bigint,
      Value    bigint)
partitioned by (DeviceID string, Date string);


2)   创建目标特征表DW_NQF

在odpscmd中,执行下面的SQL语句,建表,并添加分区。


create table if not exists DW_NQF(
      Time    string,
      Phase     bigint,
      MaxV    bigint)
partitioned by (DeviceID string, Date string);


4)使用Tunnel进行数据上传

在odpscmd中运行tunnel命令,将本地数据文件monitor_data.csv上传至ODS_PD表。下面的命令中的路径,请在执行时根据实际路径进行修改。monitor_data.csv请从附件中下载。


2.2 MapReduce程序开发、本地调试和运行

1)本地开发环境准备

本文使用Eclipse作为开发环境,请提前下载并安装。

官网导航中找到并下载 ODPS for eclipse 插件,并将插件解压并复制到Eclipse安装目录下的plugins子目录下。启动Eclipse,检查Wizard选项里面是否有ODPS的目录。

e9f39f65a0cc7d1b6083c9ce60517880a23b0d2b

ca3d3145e3bb417570be8b88d33815ca17d2836b62ff9e3acba93f485c20376de0fa1e6ccb9858ac


ODPS for eclipse 插件下载地址:

https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/cn/odps/0.0.90/assets/download/odps-eclipse-plugin-bundle-0.16.0.zip?spm=5176.doc27981.2.3.cCapmQ&file=odps-eclipse-plugin-bundle-0.16.0.zip

当可以创建ODPS类型的项目时,表示本地开发环境已经准备好了。

2MapReduce程序开发

在Eclipse中创建ODPS项目,命名为NQF。为了让Eclipse能正确访问MaxCompute,需要在创建项目的时候正确配置odpscmd的本地路径。

依次添加Mapper类、Reducer类、MapReduce Driver类和R类。

bbc655d559163275d793fd495766f2ad163a8390


3)本地测试

打开FSDriver.java,右击“Run as-àRun Configurations”

0cde127c2c6fcd0a8cae252d090da797c6a63dc2


在ODPS Config选项卡,选择正确的ODPS项目。

28c742c47d2bb624413232dfab9a939f4162e04d

在Arguments选项卡中,输入运行参数:ods_pd dw_nqf,并点击“Run”,执行本地测试运行。

c64ac141416aa6aa199f7976d007163ddecfdcb5

在第一次运行时,Eclipse会从MaxCompute中下载少量的测试数据用于测试。运行完成后,可以在Warehouse中看到测试用的输入数据和产生的结果数据。

c94543d9a0bf48e43582925810fa8830038d508d

 

4)打包并上传资源

在本地测试结果正确之后,就可以导出jar包了。在Eclipse下执行“FileàExport”,选择导出“JAR File”,导出至本地。

在odpscmd下,执行添加资源的命令,将jar上传至MaxCompute。

add jar d:/jar/NQF.jar;

c8848d283f9a084977d8d590dd6ac023059320c6

5MaxCompute上执行程序

在odpscmd下,执行jar命令,运行程序。(请自行调整文件路径)

jar -resources NQF.jar -classpath d:\jar\NQF.jar FSDriver ods_pd dw_nqf; 


实验的完整流程和代码详见阿里云Clouder认证课程:https://edu.aliyun.com/course/623?spm=5176.10731491.0.0.YnkJLj


相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
21天前
|
存储 消息中间件 监控
【Flume】Flume在大数据分析领域的应用
【4月更文挑战第4天】【Flume】Flume在大数据分析领域的应用
|
1月前
|
Cloud Native 数据处理 云计算
探索云原生技术在大数据分析中的应用
随着云计算技术的不断发展,云原生架构作为一种全新的软件开发和部署模式,正逐渐引起企业的广泛关注。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势与挑战,并探讨如何利用云原生技术提升大数据分析的效率和可靠性。
|
1月前
|
存储 消息中间件 大数据
Go语言在大数据处理中的实际应用与案例分析
【2月更文挑战第22天】本文深入探讨了Go语言在大数据处理中的实际应用,通过案例分析展示了Go语言在处理大数据时的优势和实践效果。文章首先介绍了大数据处理的挑战与需求,然后详细分析了Go语言在大数据处理中的适用性和核心技术,最后通过具体案例展示了Go语言在大数据处理中的实际应用。
|
1月前
|
数据采集 运维 数据挖掘
API电商接口大数据分析与数据挖掘 (商品详情店铺)
API接口、数据分析以及数据挖掘在商品详情和店铺相关的应用中,各自扮演着重要的角色。以下是关于它们各自的功能以及如何在商品详情和店铺分析中协同工作的简要说明。
|
2月前
|
存储 数据可视化 数据管理
基于阿里云服务的数据平台架构实践
本文主要介绍基于阿里云大数据组件服务,对企业进行大数据平台建设的架构实践。
719 2
|
1月前
|
数据库
阿里云DTS数据迁移和数据同步的差异性分析
阿里云DTS作为一款常用的数据库表迁移工具,提供了功能非常类似的两个功能:数据迁移、数据同步。阿里云DTS产品官网对这两个功能模块进行了简单的区分: 场景1:存量数据批量迁移,建议使用数据迁移功能。 场景2:增量数据实时同步,建议使用数据同步功能。 实际上,无论是数据迁移还是数据同步,都可以做 “结构初始化”+“全量数据迁移”+“增量迁移”,因此两者功能差异并不明显。笔者在多个项目实践DTS数据迁移,在简单需求场景下,将DTS的数据迁移、数据同步进行对比和总结。
|
11天前
|
数据采集 搜索推荐 大数据
大数据中的人为数据
【4月更文挑战第11天】人为数据,源于人类活动,如在线行为和社交互动,是大数据的关键部分,用于理解人类行为、预测趋势和策略制定。数据具多样性、实时性和动态性,广泛应用于市场营销和社交媒体分析。然而,数据真实性、用户隐私和处理复杂性构成挑战。解决策略包括数据质量控制、采用先进技术、强化数据安全和培养专业人才,以充分发挥其潜力。
14 3
|
14天前
|
运维 供应链 大数据
数据之势丨从“看数”到“用数”,百年制造企业用大数据实现“降本增效”
目前,松下中国旗下的64家法人公司已经有21家加入了新的IT架构中,为松下集团在中国及东北亚地区节约了超过30%的总成本,减少了近50%的交付时间,同时,大幅降低了系统的故障率。
|
15天前
|
机器学习/深度学习 人工智能 安全
Azure Databricks实战:在云上轻松进行大数据分析与AI开发
【4月更文挑战第8天】Databricks在大数据分析和AI开发中表现出色,简化流程并提高效率。文中列举了三个应用场景:数据湖分析、实时流处理和AI机器学习,并阐述了Databricks的一体化平台、云原生弹性及企业级安全优势。博主认为,Databricks提升了研发效能,无缝集成Azure生态,并具有持续创新潜力,是应对大数据挑战和加速AI创新的理想工具。
40 0
|
24天前
|
机器学习/深度学习 分布式计算 数据挖掘
阿里云 MaxCompute MaxFrame 开启免费邀测,统一 Python 开发生态
阿里云 MaxCompute MaxFrame 正式开启邀测,统一 Python 开发生态,打破大数据及 AI 开发使用边界。
307 1

热门文章

最新文章