天气实时数据集成实战-ROMA篇

举报
Deli-JDB 发表于 2020/01/13 18:36:47 2020/01/13
【摘要】 场景描述:国家气象数据是每个小时更新一次,通过订阅国家气象局提供的气象数据,组装成所需数据,持久化到FI MPPDB中,再通过对外开放数据API的方式,为上层应用提供气象信息。如下图所示:开发步骤:1、新建一个应用,单独作为气象数据获取持久化使用;2、切换到这个新建应用下,开发一个topic,并发布和授权给当前创建的这个应用; 3、购买数据国家气象数据平台根据需求组装气象数据并推...

  场景描述:国家气象数据是每个小时更新一次,通过订阅国家气象局提供的气象数据,组装成所需数据,持久化到FI MPPDB中,再通过对外开放数据API的方式,为上层应用提供气象信息。

如下图所示:

image.png



开发步骤:

1、新建一个应用,单独作为气象数据获取持久化使用;

image.png

2、切换到这个新建应用下,开发一个topic,并发布和授权给当前创建的这个应用;

     3、购买数据国家气象数据平台根据需求组装气象数据并推送到MQS

    (1)在livedata中开发函数API,注意是一个GET请求;

    需要传入的参数可以设置为默认值

image.png

函数脚本如下:

importClass(com.huawei.livedata.lambdaservice.livedataprovider.HttpClient);

importClass(com.huawei.livedata.util.MQSUtils);

function excute(data) {

var httpExecutor = new HttpClient();

var obj = JSON.parse(data);

var host = 'api.data.cma.cn:8090';

var headers = {

};

var date=new Date();

var nowYear=date.getFullYear().toString()

var nowMonth=(date.getMonth()+1).toString()

var nowDay=(date.getDate()-1).toString();

var nowHours= date.getHours().toString();

function timeAdd0(str) {

    if(str.length<=1){

        str='0'+str;

    }

    return str

}

nowYear=timeAdd0(nowYear)

nowMonth=timeAdd0(nowMonth)

nowDay=timeAdd0(nowDay)

nowHours=timeAdd0(nowHours)

var D = nowYear+nowMonth+nowDay+nowHours+ '00' + '00'

var timeRangen = '[' + D + ',' + D +']'

var params = {

'userId' :obj.param.userId,

'pwd' : obj.param.pwd,

'dataFormat':'json',

'interfaceId':'getSurfEleByTimeRangeAndStaID',

'timeRange':timeRangen,

'staIDs':obj.param.staIDs,

'elements':'Station_Id_C,TEM,TEM_Max,TEM_Min,windpower,WEP_Now,Year,Mon,Day,Hour',

'dataCode':'SURF_CHN_MUL_HOR'

};

var res = httpExecutor.callGETAPI(host,'/api',JSON.stringify(params),JSON.stringify(headers));

res1 = JSON.parse(res);

var body = {}

body.body = res1.DS;

var utils = new MQSUtils();

var result = utils.sendMsg('192.168.9.30:9776;192.168.9.96:9776','zhuming.test.new','a06EjC0qVJ3663whERJFOg==','T_zhuming_new_test',JSON.stringify(body));

return result;

}

     (2)开发完成后测试部署该API,在API授权页面,将该API授权给当前应用;

image.png

      (3)将该API设置成定时调度,每小时请求一次数据,需要设置Parameter

image.png

    (4)启动该定时任务;

     4、进入MQS查看消息是否入了队列;

image.png

5、配置FDI数据源和任务,将数据同步到;

(1)  配置数据源:MQS 和 MPPDB

image.pngimage.png

(2)  配置同步任务;

image.png

image.png

(3)  启动同步任务;

image.png

6、开发数据API,从数据库中获取天气数据;

(1)  在livedata中接入高斯DB数据源;

image.png

(2)  开发数据API,需要用户查询时带入查询年月日和气象观察站的ID;

image.png

(3)  部署并授权(同函数API)


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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