SlideShare a Scribd company logo
1 of 19
Download to read offline
感測資料儲存與視覺化
日期:2017/05/04
物聯網基本架構
• 根據歐洲電信標準協會的定義,物聯網的架構分成三層:
感測器/控制器 通訊網路 應用程式
負責感測資料 負責傳送資料 分析資料成有用的資訊
感知層 網路層 應用層
小數據 大數據
NoSQL類型的資料架構
• 優點:
• NoSQL是Not Only SQL
• 增加機器就能自動擴充資料庫容量
• 打破Schema欄位架構的限制
• 資料遲早會一致
• 缺點
• 不同nosql資料庫軟體之間不易轉換
• 不支援 ACID(不可分割性、一致性、獨立性和持久性)
• 不支援 JOIN
NoSQL資料庫類型
類型 特性 應用情境
文件資料庫
(Document Store)
可儲存結構鬆散或非結構性的資料 例如HTML網頁
鍵值資料庫
(Key-value Store)
每筆資料各自獨立,具有分散式和高擴充性 記錄檔系統、內容快取
{”班級”:”六年一班”, ”姓名”:”董冠廷”, ”興趣”:[“登山”,”逛街”]}
{”姓名”:”匡怡恩”, ”學號”:”s107”}
文件資料庫
{key:”<101_姓名>”,value:”董冠廷”}
{key:”<101_興趣>”,value:“登山,逛街”}
鍵值資料庫
NoSQL資料庫類型
類型 特性 應用情境
列式資料庫
(Wide Column Store)
以列為資料進行存取 分散式檔案系統
圖形資料庫
(Graph Database)
運用圖學架構來儲存節點間關係資料架構 社群網路、推薦系統和關係圖譜
圖形資料庫
列式資料庫
學號 姓名
s106 董冠廷
s107 匡怡恩
學號 性別
s106 男
s107 女
學號 興趣
s106 登山、逛街
s107 放空
董
冠
廷
匡
怡
恩
教育
機器人
李
冠
穎
講課
MongoDB
術語
關聯式資料庫 MongoDB
Database Database
Table Collection
Record/Row Document
Column Field
Primary Key _id
特性:
• 以JSON格式作為儲存資料的方式
• 無綱要設計(Schemaless)設計
• 可以儲存非文件的大型物件
• 支援多種程式語言,如:C、C++ 、C# 、
JavaScript 、Java 、PHP 、Python 、Ruby
等程式語言
查詢一筆temp值等於20的資料
查詢所有資料
新增post3的資料
刪除一筆temp值等於20的資料
更新humidity的值為70,temp的值為30
條件
Bokeh視覺化工具
• Bokeh 為一個 Python 套件,提供了 Python 與 D3.js 之間的橋梁。
• 讓視覺化圖形具有互動性,像是滑鼠游標移上去會顯示資料點的
數據或可以縮放圖形等。
• Bokeh 將函式庫大略分成三組:
• bokeh.model — 製作圖表的基本元素,例如軸線、形狀等等。用來打造
各種元件。
• bokeh.plotting — 為我們處理掉一些基本細節 ( 例如格點與軸線 ) ,但保
留客製化的彈性。
• bokeh.charts — 直接使用各種完整圖表,例如長條圖、盒鬚圖等等。
作業七基本題
• 情境:由於同學覺得溫先生以寄送附件檔的方式很不直觀,所以
如果直接把溫溼度的資料以圖形化的方式顯示出來,就可以很直
觀的知道溫溼度的變化,並且文字檔並不適合用來儲存大量資料,
因此重新思考了溫先生的需求將系統修改成以下方式:
• 將偵測溫溼度的地點、時間、溫度和濕度每分鐘記錄到
MongoDB資料庫裡面。
• 將溫溼度值每分鐘的變化,任一選擇一種圖形化方式表示。
• 當濕度>=80%,使用FB messenger即時傳送溫濕度的值到自己
的手機。
作業七進階題
• 情境:溫先生聽了同學對系統修改後的功能相當滿意,但他想到
只要下午五點下班回家,就不會碰手機,所以FB messenger訊息
通知的功能希望在下午五點下班後回家後,改成能發出聲音的機
器來提醒他濕度超過80%,同學馬上想那就用無源蜂鳴器吧,因
此系統需改成以下方式。
• 將偵測溫溼度的地點、時間、溫度和濕度每分鐘記錄到
MongoDB裡面。
• 將溫溼度值每分鐘的變化,任一選擇一種圖形化方式表示。
• 當濕度>=80%且上班時間,使用FB messenger即時傳送溫濕度
的值到自己的手機;若濕度>=80%且非上班時間,無源蜂鳴器
播放從MongoDB抓出來的小星星樂譜。
參考資料
• https://dotblogs.com.tw/chris0920/2010/09/21/17835
• nosql官網:http://nosql-database.org/
• 安裝MongoDB:http://yannickloriot.com/2016/04/install-mongodb-
and-node-js-on-a-raspberry-pi/
• Bokeh:http://blog.infographics.tw/2016/04/interactive-visualization-
with-bokeh-and-python/
• Pymongo語法 : https://docs.mongodb.com/getting-
started/python/update/
附註
安裝MongoDB和pymongo
• sudo apt-get install mongodb-server
• sudo service mongod start
• mongo
• sudo pip3 install pymongo
安裝完成輸入mongo看到此畫面表示安裝成功
安裝Bokeh套件
• sudo pip3 install NumPy Jinja2 Six Requests Tornado PyYaml Pandas
bokeh
• sudo pip3 install python-dateutil

More Related Content

Similar to 2017 Week 11 Data Storage and Visualization

Oracle北大青鸟完全教程
Oracle北大青鸟完全教程Oracle北大青鸟完全教程
Oracle北大青鸟完全教程
yiditushe
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
My own sweet home!
 
Nodejs介绍
Nodejs介绍Nodejs介绍
Nodejs介绍
myzykj
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
Feng Yu
 
ASUSTOR NAS AS5 AS7 Rack mount business SMB
ASUSTOR NAS AS5 AS7 Rack mount business SMBASUSTOR NAS AS5 AS7 Rack mount business SMB
ASUSTOR NAS AS5 AS7 Rack mount business SMB
Freddie Huang
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
jasonfuoo
 
02.wls集群
02.wls集群02.wls集群
02.wls集群
Meng He
 

Similar to 2017 Week 11 Data Storage and Visualization (20)

分布式系统日志处理调研
分布式系统日志处理调研分布式系统日志处理调研
分布式系统日志处理调研
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介
 
給開發人員的資料庫效能建議
給開發人員的資料庫效能建議給開發人員的資料庫效能建議
給開發人員的資料庫效能建議
 
浅谈伪分布式数据库架构
浅谈伪分布式数据库架构浅谈伪分布式数据库架构
浅谈伪分布式数据库架构
 
Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用
 
Oracle北大青鸟完全教程
Oracle北大青鸟完全教程Oracle北大青鸟完全教程
Oracle北大青鸟完全教程
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
 
Databases on AWS
Databases on AWSDatabases on AWS
Databases on AWS
 
Nodejs介绍
Nodejs介绍Nodejs介绍
Nodejs介绍
 
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
 
Oracle Compute Cloud Service介绍
Oracle Compute Cloud Service介绍Oracle Compute Cloud Service介绍
Oracle Compute Cloud Service介绍
 
ASUSTOR NAS AS5 AS7 Rack mount business SMB
ASUSTOR NAS AS5 AS7 Rack mount business SMBASUSTOR NAS AS5 AS7 Rack mount business SMB
ASUSTOR NAS AS5 AS7 Rack mount business SMB
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
RockStor - A Cloud Object System based on Hadoop
RockStor -  A Cloud Object System based on HadoopRockStor -  A Cloud Object System based on Hadoop
RockStor - A Cloud Object System based on Hadoop
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練22016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
 
Application express overview_cn_final -v2
Application express overview_cn_final -v2Application express overview_cn_final -v2
Application express overview_cn_final -v2
 
Rest与面向资源的web开发
Rest与面向资源的web开发Rest与面向资源的web开发
Rest与面向资源的web开发
 
02.wls集群
02.wls集群02.wls集群
02.wls集群
 
众行业公司系统架构案例介绍
众行业公司系统架构案例介绍众行业公司系统架构案例介绍
众行业公司系统架构案例介绍
 
Kid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese VersionKid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese Version
 

More from AkashaC1

More from AkashaC1 (20)

How to Prevent DNS Attacks on MikroTik.pdf
How to Prevent DNS Attacks on MikroTik.pdfHow to Prevent DNS Attacks on MikroTik.pdf
How to Prevent DNS Attacks on MikroTik.pdf
 
Config RouterOS openVPN.pdf
Config RouterOS openVPN.pdfConfig RouterOS openVPN.pdf
Config RouterOS openVPN.pdf
 
AR Implementation 1 2016.10.20
AR Implementation 1 2016.10.20AR Implementation 1 2016.10.20
AR Implementation 1 2016.10.20
 
AR Implementation 2
AR Implementation 2AR Implementation 2
AR Implementation 2
 
Post article to KM with Python
Post article to KM with PythonPost article to KM with Python
Post article to KM with Python
 
2018 Week 7 Data Analysis
2018 Week 7 Data Analysis2018 Week 7 Data Analysis
2018 Week 7 Data Analysis
 
2018 Week 5 DHT11
2018 Week 5 DHT112018 Week 5 DHT11
2018 Week 5 DHT11
 
2018 Week 4 PIR
2018 Week 4 PIR2018 Week 4 PIR
2018 Week 4 PIR
 
2018 Week 15 Speech Recognition
2018 Week 15 Speech Recognition2018 Week 15 Speech Recognition
2018 Week 15 Speech Recognition
 
2018 Week 15 Speaker
2018 Week 15 Speaker2018 Week 15 Speaker
2018 Week 15 Speaker
 
2018 Week 14 HC-SR04
2018 Week 14 HC-SR042018 Week 14 HC-SR04
2018 Week 14 HC-SR04
 
2018 Week 13 Servo Motor
2018 Week 13 Servo Motor2018 Week 13 Servo Motor
2018 Week 13 Servo Motor
 
2018 Week 12 Data Storage and Visualization
2018 Week 12 Data Storage and Visualization2018 Week 12 Data Storage and Visualization
2018 Week 12 Data Storage and Visualization
 
2018 Week 11 Bluetooth and Wi-Fi
2018 Week 11 Bluetooth and Wi-Fi2018 Week 11 Bluetooth and Wi-Fi
2018 Week 11 Bluetooth and Wi-Fi
 
2018 Week 10 Read Time Data Sending
2018 Week 10 Read Time Data Sending2018 Week 10 Read Time Data Sending
2018 Week 10 Read Time Data Sending
 
2018 Week 10 IoT and Robot
2018 Week 10 IoT and Robot2018 Week 10 IoT and Robot
2018 Week 10 IoT and Robot
 
2018 Week 8 Relay
2018 Week 8 Relay2018 Week 8 Relay
2018 Week 8 Relay
 
2018 Week 8 IoT and Wearable Devices
2018 Week 8 IoT and Wearable Devices2018 Week 8 IoT and Wearable Devices
2018 Week 8 IoT and Wearable Devices
 
2018 Week 7 Photoresistor
2018 Week 7 Photoresistor2018 Week 7 Photoresistor
2018 Week 7 Photoresistor
 
2018 Week 16 Computer Vision
2018 Week 16 Computer Vision2018 Week 16 Computer Vision
2018 Week 16 Computer Vision
 

2017 Week 11 Data Storage and Visualization