用Matlab开发Predix Analytics(3)部署Matlab分析模型

本文详细介绍如何使用Predix工具包部署Matlab分析模型至云端,包括创建目录条目、上传模型、验证及运行分析等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:唐翊国,开发者生态资深经理,GE数字集团

23年工作经验,长期在杜邦、欧文斯科宁、庄信万丰等从事制造业信息化工作,规划、实施了大量MES、SAP ERP、LIMS、BPM等项目,积累了丰富的制造业数字化转型经验。

前面博客中介绍了如何用Matlab开发一个分析模型如何创建一个分析服务

本期介绍如何部署分析服务。

部署分析

Predix提供了非常方便的工具,叫做predix-toolkit,来做一些简单的开发测试工作。

https://predix-toolkit.run.aws-jp01-pr.ice.predix.io/

本博客中,我们会一步一步的教大家如何使用predix-toolkit来部署Matlab 分析模型到Predix Cloud上。

首先,我们要切换到“API Explorer” 模式,并输入UAA URL和相应的客户端ID (client ID)和密码,


一旦成功登录,系统会显示“access_token”等信息。

我们选择左边的 “Analytics Catalog” 菜单,选择“Get the list of analytics”,


输入前面得到的predix-zone-id,点击 Submit,


我们可以得到反馈:“HTTP Response Code: 200 OK”,这表示我们有适当的访问权限来使用分析目录服务analytics catalog service。

第一步创建一个分析目录入口

从“Choose Request” 中选择 “Create an analytics catalog entry”,在“Request Body input”中输入 “name”, “version”等信息,特别是在

“supportedLanguage”必须输入“Matlab”。

 

点击“Submit”,正常会看到以下结果,复制“id” 字段到一个文本编辑器里,后续的多个步骤都会用到它。

HTTP ResponseCode: 201 Created

{

  "id": "20cfa2db-56ed-4c0f-88fd-f03d32541c83",

  "name": "MatlabR2011b",

  "author": "EagleTang",

  "description": "Thisis a matlab test",

  "version": "v1",

  "supportedLanguage": "Matlab",

  "customMetadata": "{\"assetid\":\"abc\"}",

  "taxonomyLocation": "/uncategorized",

  "state": null,

  "access": "FULL",

  "createdTimestamp":"2017-04-07T03:18:28+00:00",

  "updatedTimestamp": "2017-04-07T03:18:28+00:00"

}

第二步上传分析模型

从“Choose Request” 中选择 “Upload analytic”,粘贴刚才保存的“id”到“catalogEntryId”中。

从目录

C:\PxDev\predix-analytics-sample\analytics\demo-RTM-loco\demo-RTM-loco-matlab-r2011b\target

中选择之前生成的Matlab分析模型:“demo-RTM-loco-matlab-r2011b-1.0.0-SNAPSHOT.jar”


点击“Submit”,正常会看到:

HTTP ResponseCode: 201 Created

{

  "id": "77ae0afe-e3bd-4843-a44b-e71dbca6a22b",

  "filename": "demo-RTM-loco-matlab-r2011b-1.0.0-SNAPSHOT.jar",

  "type": "Executable",

  "description": "Describewhat your analytic does in this text box",

  "createdTimestamp": "2017-04-07T03:22:18+00:00",

  "updatedTimestamp": "2017-04-07T03:22:18+00:00"

}

 

第三步验证分析模型

从“Choose Request” 中选择 “Validate analytic”,修改“POST” 字段:

默认是

https://predix-analytics-catalog-release.run.aws-usw02-pr.ice.predix.io/api/v1/catalog/analytics/<analyticCatalogEntryId-goes-here>/validation

用前面保存的”id”字段信息替换“<analyticCatalogEntryId-goes-here>”

https://predix-analytics-catalog-release.run.aws-usw02-pr.ice.predix.io/api/v1/catalog/analytics/20cfa2db-56ed-4c0f-88fd-f03d32541c83/validation

在“request body”字段中,从

C:\PxDev\predix-analytics-sample\analytics\demo-RTM-loco\demo-RTM-loco-matlab-r2011b\data\LocoData.json文件中复制所有数据。


点击“Submit”,正常可以看到以下结果,复制validationRequestId字段的信息到文本编辑器中。

HTTP ResponseCode: 200 OK

{

  "analyticId": "20cfa2db-56ed-4c0f-88fd-f03d32541c83",

  "validationRequestId": "5fe94471-59fa-4eb4-9c6d-f73adca0bb7b",

  "status": "QUEUED",

  "message": "Analyticvalidation request successfully queued - reference request id is5fe94471-59fa-4eb4-9c6d-f73adca0bb7b for catalog entry id20cfa2db-56ed-4c0f-88fd-f03d32541c83",

  "inputData": "{\"test\":{\"wind_speed\":[8,15,11,6,24,3,21,14,25,11,6,1,4,2,4,7,23,13,29,12,12,32,6,15,10,29,2,12,8,31,16,30,4,5,18,7,2,21,8,9,32,21,26,13,28,9,6,10,5

…………

3.53,42.34,44.71,37.67,35.52,51.64,38.14,29.89,44.4,33.42,43.13,41.86,36.45,40.9,37.24,37.48,43.96,35.49,39.62,48.76,44.85,42.08,34.91,35.18,38.42,42.42,43.73,39.86,41.18,38.72,42.75,35.18,44.36,42.31]}}",

  "result":null,

  "createdTimestamp":"2017-04-07T03:32:35+00:00",

  "updatedTimestamp":"2017-04-07T03:32:35+00:00"

}

 

第四步 得到分析结果

从“Choose Request” 中选择“Get analytic result”,在“GET” 字段中修改

https://predix-analytics-catalog-release.run.aws-usw02-pr.ice.predix.io/api/v1/catalog/analytics/<analyticCatalogEntryId-goes-here>/validation/<requestid goes here>

用保存的“id”替换“<analyticCatalogEntryId-goes-here>”,用保存的“validationRequestId”替换“<requestid goes here>”

https://predix-analytics-catalog-release.run.aws-usw02-pr.ice.predix.io/api/v1/catalog/analytics/20cfa2db-56ed-4c0f-88fd-f03d32541c83/validation/5fe94471-59fa-4eb4-9c6d-f73adca0bb7b


点击“Submit”,正常我们可以得到:

HTTP ResponseCode: 200 OK

{

  "analyticId": "20cfa2db-56ed-4c0f-88fd-f03d32541c83",

  "validationRequestId": "5fe94471-59fa-4eb4-9c6d-f73adca0bb7b",

  "status": "PROCESSING",

  "message": "Processinganalytic validation request for analytic id20cfa2db-56ed-4c0f-88fd-f03d32541c83, request id 5fe94471-59fa-4eb4-9c6d-f73adca0bb7b",

  "inputData": "{\"test\":{\"wind_speed\":[8,15,11,6,24,3,21,14,25,11,6,1,4,2,4,7,23,13,29,12,12,32,6,15,10,29,2,12,8,31,16,30,4,5,18,7,2,21,8,9,32,21,26,13,28,9,6,10,5

…………

3.53,42.34,44.71,37.67,35.52,51.64,38.14,29.89,44.4,33.42,43.13,41.86,36.45,40.9,37.24,37.48,43.96,35.49,39.62,48.76,44.85,42.08,34.91,35.18,38.42,42.42,43.73,39.86,41.18,38.72,42.75,35.18,44.36,42.31]}}",

  "result":null,

  "createdTimestamp":"2017-04-07T03:32:35+00:00",

  "updatedTimestamp":"2017-04-07T03:32:36+00:00"

}

通常,这一步会花几分钟,我们反复点击“Submit”,正常可以得到:

HTTP ResponseCode: 200 OK

{

  "analyticId": "20cfa2db-56ed-4c0f-88fd-f03d32541c83",

  "validationRequestId": "5fe94471-59fa-4eb4-9c6d-f73adca0bb7b",

  "status": "COMPLETED",

  "message": "Analyticvalidation completed successfully.",

  "inputData": "{\"test\":{\"wind_speed\":[8,15,11,6,24,3,21,14,25,11,6,1,4,2,4,7,23,13,29,12,12,32,6,15,10,29,2,12,8,31,16,30,4,5,18,7,2,21,8,9,32,21,26,13,28,9,6,10,5

…………

08,34.91,35.18,38.42,42.42,43.73,39.86,41.18,38.72,42.75,35.18,44.36,42.31]}}",

  "result":"{\"R2\": [0.97671],\"Prediction\":[370.0659,366.4111,365.6598,371.8394,365.0185,363.5657,366.5063,365.7035,363.5706,356.2802,358.0262,367.9868,371.5592,371.2803

…………

,359.8844,369.0259,347.9803,366.4614,364.7926,358.7443,347.1039,363.3212,365.7386,364.4717,355.928,370.5714,366.0072,361.3121]}",

  "createdTimestamp":"2017-04-07T03:32:35+00:00",

  "updatedTimestamp":"2017-04-07T03:35:59+00:00"

}

可以看到,我们得到正确的分析结果了,让我们继续部署它吧!

第五步 部署分析模型

从“Choose Request” 中选择“Deploy analytic”,修改 “POSTS” 字段,

默认是

https://predix-analytics-catalog-release.run.aws-usw02-pr.ice.predix.io/api/v1/catalog/analytics/<analyticCatalogEntryId-goes-here>/deployment

用“id”替换“<analyticCatalogEntryId-goes-here>”,

https://predix-analytics-catalog-release.run.aws-usw02-pr.ice.predix.io/api/v1/catalog/analytics/20cfa2db-56ed-4c0f-88fd-f03d32541c83/deployment


点击“Submit”,正常得到以下反馈,我们要保存“requestID”到文本编辑器中。

HTTP ResponseCode: 200 OK

{

  "analyticId": "20cfa2db-56ed-4c0f-88fd-f03d32541c83",

  "requestId": "8e475de0-deb2-4411-b568-8f2aa016d4b4",

  "status": "QUEUED",

  "message": "Analyticdeployment request successfully queued - reference request id is8e475de0-deb2-4411-b568-8f2aa016d4b4 for catalog entry id20cfa2db-56ed-4c0f-88fd-f03d32541c83",

  "inputConfigData": null,

  "result": null,

  "createdTimestamp": "2017-04-07T03:40:50+00:00",

  "updatedTimestamp": "2017-04-07T03:40:50+00:00"

}

 

第六步 检查部署状态

从“Choose Request”中选择“Check Deployment status”,修改“GET” 字段,

默认是

https://predix-analytics-catalog-release.run.aws-usw02-pr.ice.predix.io/api/v1/catalog/analytics/<analyticCatalogEntryId-goes-here>/deployment/<deploymentid goes here>

用“id”替换“<analyticCatalogEntryId-goes-here>”,用上一步的“requestID”替换“<deploymentid goes here>”

https://predix-analytics-catalog-release.run.aws-usw02-pr.ice.predix.io/api/v1/catalog/analytics/20cfa2db-56ed-4c0f-88fd-f03d32541c83/deployment/8e475de0-deb2-4411-b568-8f2aa016d4b4

 

点击“Submit”,正常我们会看到:

HTTP ResponseCode: 200 OK

{

  "analyticId": "20cfa2db-56ed-4c0f-88fd-f03d32541c83",

  "requestId": "8e475de0-deb2-4411-b568-8f2aa016d4b4",

  "status": "PROCESSING",

  "message": "Processinganalytic deployment request for analytic id20cfa2db-56ed-4c0f-88fd-f03d32541c83, request id8e475de0-deb2-4411-b568-8f2aa016d4b4",

  "inputConfigData": null,

  "result": null,

  "createdTimestamp": "2017-04-07T03:40:50+00:00",

  "updatedTimestamp": "2017-04-07T03:40:50+00:00"

}

这里也要等一会儿,点击“Submit” 几次,我们会得到:

HTTP ResponseCode: 200 OK

{

  "analyticId": "20cfa2db-56ed-4c0f-88fd-f03d32541c83",

  "requestId": "8e475de0-deb2-4411-b568-8f2aa016d4b4",

  "status": "COMPLETED",

  "message": "Analyticdeployment completed successfully.",

  "inputConfigData": null,

  "result": "com.ge.predix.analytics.catalog.dto.AnalyticCatalogEntry@4b892725[id=20cfa2db-56ed-4c0f-88fd-f03d32541c83,name=MatlabR2011b, author=Eagle Tang, description=This is a matlab test,version=v1, supportedLanguage=Matlab,customMetadata={\"assetid\":\"abc\"},taxonomyLocation=/uncategorized, state=VALIDATED, access=FULL,createdTimestamp=2017-04-07T03:18:28+00:00, updatedTimestamp=2017-04-07T03:35:59+00:00]",

  "createdTimestamp": "2017-04-07T03:40:50+00:00",

  "updatedTimestamp": "2017-04-07T03:45:20+00:00"

}

 

第七步 运行分析

从“Choose Request” 里选择 “Run analytic”,修改“POST” 字段

https://predix-analytics-catalog-release.run.aws-usw02-pr.ice.predix.io/api/v1/catalog/analytics/<analyticCatalogEntryId-goes-here>/execution

用“id”替换“<analyticCatalogEntryId-goes-here>”

https://predix-analytics-catalog-release.run.aws-usw02-pr.ice.predix.io/api/v1/catalog/analytics/20cfa2db-56ed-4c0f-88fd-f03d32541c83/execution

在“request body”字段中,从

C:\PxDev\predix-analytics-sample\analytics\demo-RTM-loco\demo-RTM-loco-matlab-r2011b\data\LocoData.json文件复制所有数据。

点击“Submit”,一切正常我们会看到:

HTTP ResponseCode: 200 OK

{

  "analyticId": "20cfa2db-56ed-4c0f-88fd-f03d32541c83",

  "status": "COMPLETED",

  "message": "Analyticexecuted successfully.",

  "inputData": "{\"test\":{\"wind_speed\":[8,15,11,6,24,3,21,14,25,11,6,1,4,2,4,7,23,13,29,12,12,32,6,15,10,29,2,12,8,31,16,30,4,5,18,7,2,21,8,9,32,21,26,13,28,9,6,10,5

 

08,34.91,35.18,38.42,42.42,43.73,39.86,41.18,38.72,42.75,35.18,44.36,42.31]}}",

  "result":"{\"R2\": [0.97671],\"Prediction\":[370.0659,366.4111,365.6598,371.8394,365.0185,363.5657,366.5063,365.7035,363.5706,356.2802,358.0262,367.9868,371.5592,371.2803

 

 

,359.8844,369.0259,347.9803,366.4614,364.7926,358.7443,347.1039,363.3212,365.7386,364.4717,355.928,370.5714,366.0072,361.3121]}",

  "createdTimestamp":"2017-04-07 03:51:59.205",

  "updatedTimestamp":"2017-04-07 03:52:23.872"

}

这样,我们就完成了一次Matlab分析模型的部署过程,这个模型可以被其它的Predix微服务任意调用了。

在使用中您有任何问题,请访问我们的论坛http://bbs.youkuaiyun.com/forums/GEPredix

GE数字集团的技术专家们会在线回答您的问题。

也请访问我们在优快云的Predix专区http://predix.youkuaiyun.com/ 了解更多Predix的内容和相关活动。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值