现在,我们使用一个具体的应用程序,向上节创建的时序数据库实例中上传50,000个数据点。
首先,我们需要下载上传时序数据应用程序的源码。
$ git clone https://github.com/pxie/trident.git因为要上传数据到时序数据库,trident需要知道时序数据库实例相关的信息。所以,我们在推送应用到Predix平台前,需要做相应的修改。
$ cd trident 如果你UAA服务实例和时序数据库的名字不是demo-uaa和demo-ts就需要编辑manifest.yml文件。 把文件中的demo-uaa字符串替换成你UAA服务实例的名称。 把文件中的demo-ts字符串替换成你时序数据库的名称。编辑config.json文件,使用你UAA服务实例中客户端和相应的密码。 把文件中的client字符串替换成你UAA服务实例中客户端名。 把文件中的secret字符串替换成客户端相应的密码。 例如,你客户端名为demo-client,而密码为client_secret。那么,config.json文件的内容为, { "uaa": { "clientid": "demo-client", "clientsecret": "client_secret" } }当修改完相应的配置信息,我们用cf push就可以完成hello-dotnet应用的推送。
$ cf push *省略部分cf push命令行的输出* requested state: started instances: 1/1 usage: 256M x 1 instances urls: trident-enoll-nonball.run.aws-jp01-pr.ice.predix.io <-- 应用程序的URL last uploaded: Wed Jun 28 06:21:21 UTC 2017 stack: cflinuxfs2 buildpack: https://github.com/cloudfoundry/python-buildpack.git state since cpu memory disk details #0 running 2017-06-28 02:22:32 PM 0.0% 80M of 256M 174.6M of 256M当部署完成trident应用后,我们就可以通过浏览器访问相应的URL,查看应用程序的首页。例如,https://trident-enoll-nonball.run.aws-jp01-pr.ice.predix.io。
我们通过访问trident应用程序的/test路径测试数据上传,例如,https://trident-enoll-nonball.run.aws-jp01-pr.ice.predix.io/test。如果,请求返回“上传数据成功”的消息,则表明我们在上一步的配置是正确的。如果测试失败,我们就需要运行cf logs trident --recent查看程序日志来调查可能的出错原因。
当通过测试后,我们就可以访问trident应用的/ingest路径触发应用程序向时序数据库上传数据。程序会已异步的方式上传50,000个数据点,模拟过去两年间传感器上传的时序数据。我们可以运行cf logs trident来获取应用程序的实时日志了解数据上传任务是否已经结束。
通过本节的介绍,我们了解到,
时序数据库依赖UAA作为授权认证的服务器,所以,我们在开发应用程序的时候,需要绑定UAA服务实例。时序数据库上传数据使用WebSocket协议,更实时而高效的传输数据。可以参考应用程序中的部分代码实现。通过cf logs <应用程序名>可以非常方便的查看Predix平台上应用程序的日志信息,帮助我们调试和分析。当了解了上述信息,我们就可以非常有信心的使用时序数据库的存储传感器产生的时序数据。
作者:谢品,上海创新坊首席架构师,GE数字集团
专注于工业互联网,云计算,大数据,高性能分布式存储领域,对Cloud Foundry和传统应用向云端,特别是向Predix迁移有丰富的经验,曾供职于VMware,EMC,Autodesk等知名软件公司云计算部门。