上傳50,000個實時數據點到Predix時序數據庫
現在,我們使用一個具體的應用程序,向上節創建的時序數據庫實例中上傳50,000個數據點。
下載trident應用源碼
首先,我們需要下載上傳時序數據應用程序的源碼。
$ 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"
}
}
推送應用到Predix平臺
當修改完相應的配置信息,我們用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
查看程序日誌來調查可能的出錯原因。
上傳50,000個數據點
當通過測試後,我們就可以訪問trident應用的/ingest
路徑觸發應用程序向時序數據庫上傳數據。程序會已異步的方式上傳50,000個數據點,模擬過去兩年間傳感器上傳的時序數據。我們可以運行cf logs trident
來獲取應用程序的實時日誌瞭解數據上傳任務是否已經結束。
小結
通過本節的介紹,我們瞭解到,
- 時序數據庫依賴UAA作爲授權認證的服務器,所以,我們在開發應用程序的時候,需要綁定UAA服務實例。
- 時序數據庫上傳數據使用WebSocket協議,更實時而高效的傳輸數據。可以參考應用程序中的部分代碼實現。
- 通過
cf logs <應用程序名>
可以非常方便的查看Predix平臺上應用程序的日誌信息,幫助我們調試和分析。
當了解了上述信息,我們就可以非常有信心的使用時序數據庫的存儲傳感器產生的時序數據。
作者:謝品,上海創新坊首席架構師,GE數字集團
專注於工業互聯網,雲計算,大數據,高性能分佈式存儲領域,對Cloud Foundry和傳統應用向雲端,特別是向Predix遷移有豐富的經驗,曾供職於VMware,EMC,Autodesk等知名軟件公司雲計算部門。