【大數據線 07】NoSQL 的資料處理

大家好我是Wayne我今天要跟各位介紹的是Azure Cosmos DB這是在Azure上面一個功能非常非常強大而且非常非常好用的資料庫服務特別要強調是它是一個PaaS服務為什麼會有像Cosmos DB這樣的服務呢是因為我們有非常非常多客戶他們在整個他們的系統開發或是服務開發的過程他們遇到一些問題最主要問題是像現在我們是一個全球化的年代很多很多的系統跟服務它的user其實是散落在全世界各地的在這樣的情況下我們如果用傳統的資料庫的方式來這些程式要存取這樣的資料往往遇到的問題是我們同一份資料必須要replicate到全世界不同的區域因為我們的使用者散落在不同區域如果這個資料不replicate到全世界各地的話使用往往在存取資料的時候他們會遇到latency很高速度很慢的問題Cosmos
DB其實主要的特點就是針對這個問題我們用很好的方式來解決它怎麼說呢Cosmos DB它是一個它有幾個特點第1個它是完全託管的所以說它是個PaaS服務第2個它是支援資料自動replicate到全世界各地指定的地方去而且第3個它支援非常大的scale所以你可以在裏面放大量的資料同時間你的整個效能並不會被影響所以因為Cosmos DB有這樣的特點所以它往往被拿來用在一些像是我們常常看到的use case像是gaming就是做遊戲或者是做IoT或者是電子商務等等因為這些應用都非常非常需要整個資料存取速度很快然後提供給使用者很好的體驗大家都很擔心說比如說gaming或是eCommerce它的如果任何的操作有delay的話user
experience就會不好所以在這樣的情況下Cosmos DB就是一個很好的解決方案Cosmos DB有幾個特點第1個它支援非常多不同的界面來存取資料什麼叫不同界面呢今天熟悉SQL的各位可以用SQL來存取Cosmos DB裏面的資料熟悉cassandra的各位也可以用cassandra熟悉MongoDB的人可以用MongoDB或甚至是原來就有在使用Azure的Storage的Table的API的人也可以把你的API幾乎不用改就可以存取到Cosmos
DB上面的資料最特別的是我們支援GremlinGremlin它是一個database的操作的語法然後它的重點是你也可以把你的資料以graph的形式存在Cosmos DB這樣最大的benefit就是我們往往在分析一些最常見的比如說像是social network比如說某個人like甚麼topic某個人hashtag某個topic這種資料結構如果用傳統的relational database來處理的話我們會必須要使用大量的join才可以分析到我們要的資料但是如果用graph的data
structure來做它是非常簡單而且速度很快、效能很高的所以大家可以看到Cosmos DB它除了功能強大以外它整個資料支援的資料structure跟interface也支援很多主要目的就是希望說我們可以幫助我們客戶本來在各自用的是不同的技術可能是SQL、可能是cassandra、可能是MongoDB都可以透過MongoDB來幫助大家解決大家在程式開發或系統維運上面的一些問題然後所以Cosmos DB最大的特點是它已經在我們所有Azure的regions上面是available然後它支援自動跟手動的failover這幫助大家大大的降低維運的難度還有affair再來它的scale是非常非常方便的只要大家發現說這個response time不夠然後或者是說可能太多request我們只需要在Azure
portal上面按一個按鈕馬上就可以把我們的response time跟throughput增加然後其實其他的整個系統和程式不用改code程式架構不用改所以它的benefit是非常非常好的再來更大的特點是我們是保證你的存取的latency只要在一開始我們設定好的這個scale下面它latency是guarantee的如果你發現說疑現在的request太多了你的latency增加了怎麼辦呢很點單就到Azure portal上面去按一個按鈕把你的這個在Cosmos DB上面我們有一個衡量performance的方法我們叫Request
Units去增加你的Request Units所以你就可以很簡單的讓你的Application的response time跟latency很快就降回到正常的情況最後更特別的是在很多資料庫系統裏面這個consistency這個概念是直接做在database裏面使用者沒有機會去選擇說我的這個database特別是分散是的database我要希望這個database它的consistency level要多高什麼樣的情況到底符合使用者的需求在很多產品裏面其實使用者是沒有得選擇但是在Cosmos
DB裏面最特別是使用者能夠選擇依照自己的use case去選擇不同的consistency level就像我們講的可能有Strong然後不同的情況我們是希望說你的寫入的資料馬上就可以在另外一個區域讀取到或者是說你允許在幾秒內這個資料就replicate過去或是幾次操作內所以這邊有非常非常大的彈性讓我們的使用者可以去做選擇當然最後一個就是要講就是說我們支援了很多種不同樣的interface讓本來在用不同技術、不同產品的人都可以有機會leverage我們Cosmos DB的好處然後再來最特別的是我們的SLA
service license agreement大家可以看到它基本上我們是HA是可以做到99.999% 5個9這個是availability非常高的同時我們甚至可以guarantee你有99%的機會你的latency是小於10ms但這個前提就是說你的request
units跟你的scale要設定的對再來就是往往我們用傳統的relational database的時候我們會有一些比如說index的選擇或是data structure的選擇你欄位table怎麼design但是用Cosmos你並沒有這樣的困擾第1個Cosmos的index它是自動做的它可以幫大家自動做或者是大家要fine tune也可以手動做這沒有問題第2個我們是一個document的概念所以並沒有schema的概念所以可以因應不同的資料的結構不同的需求在一個collection裏面我們就可以放進不同的資料在裏面當然這資料存取或者filter,
query等等就是application development要去take care這一段但是以Cosmos DB來講我們有這樣的彈性可以做到這樣的事情再來當然我們最重要的是compliancecompliance部分在Cosmos
DB我們也是基本上都是Azure的compliance的certification我們過的非常非常多而且我們基本上在底層是有encrypt然後在security的部分不管是firewall或是data encryption也都可以去做相對應的設定跟選則所以一個很常見很常見的架構就會搭配我們Azure的Traffic Manager然後在不同的我們的區域裏面就可以去存取Cosmos DB當然這Cosmos
DB它我們就開啟replication的功能所以這樣子就可以讓不同區域的程式都存取到離它最近的資料這樣保證整個程式的latency跟response time都可以達到最好的程度接下來我就會跟各位demo一下Cosmos DB的樣貌這就是我們的一個Cosmos DB大家可以看到我的這個畫面上面我們現在的資料我們其實replicate到West
US 2就是美國西部還有我們的東南亞的部分我接下來會做個demodemo什麼呢我事先準備2台VM1台在東南亞1台在美國西部我們透過一些Cosmos DB的程式的參數讓大家觀察一下說這個latency跟response time的情況是什麼然後再來我會做一個很簡單的scale讓大家看看說立即、馬上這個latency的變化是什麼大家可以看到我的畫面我畫面其實現在就是2台VM上方是在東南亞的VM下方就是在美國西部的VM我們事先準備了一個程式這個程式它很簡單它做的事情就是去存取那個Cosmos
DB然後存取Cosmos DB之後我們會把整個存取的latency把它顯示在畫面上然後畫成一個圖表的形式舉例來說我這個上方的這個程式大家就可以看到我們其實立即的在query Cosmos DB然後query
Cosmos DB左邊這個資料就是它的latencylatency的單位是秒所以大家可以看到一開始可能有一些是0.49秒它會慢慢降就可以降到很低一樣的我們來看一下這個美國西部美國西部我們在沒有微調參數的情況下美國西部的這個程式它預設會去東南亞存取資料我們可以看一下這個latency的情況在底下我們看到了這個latency的情況它其實並不是那麼樣的並不是那麼樣的好我們可以看到1秒2秒或者是這樣的情況其實 所以說它的狀況並不是那麼latency其實有點高所以我們可以Cosmos DB一個最大好處是我們可以tune它的參數所以我這個參數一下去它其實就會去找離它最近的這個資料庫然後我們來看一下它latency的表現各位可以看到整個latency的狀況就跟剛剛不一樣可能就會在0.07秒或是甚至0.01秒甚至是更低的情況下而且當我們現在畫面上看到說這個latency的情況好像有點高我們覺得說這latency可能是我們的request的太多了所以我們就可以到Azure
portal上面來看一下一看果然在Azure portal上面它有顯示我們說我們的throughput已經基本上超過我們當初provision的這時候應該怎麼辦很簡單其實我們就可以來我們的Azure portal上面做一個很簡單的設定這個就是我現在讀取的資料庫的collection我們可以透過這個scale這個選項很簡單我們就把scale加大我們本來是400現在存成把它調整成1000然後做一個存檔存檔以後我們可以回來看一下我們的畫面然後看看我們這個atency的變化是不是有可以降低了各位可以看一下你會發現說我們整個latency就開始整個低下來非常非常小上面這個圖我在重新的跑一次讓它的那個數值可以更明顯各位可以看到現在的單位幾乎都是0.01或0.07、0.08這樣的情況在跑然後它其實是非常非常穩定的在跑然後我們可以一方面回到我們的畫面上我們看到我們這個setting已經update完成了各位就可以看到說怎麼樣當你的應用程式如果你在存取的是Cosmos DB的時候怎麼樣很簡單的就像我就可以做一個更新、做一個操作去維運同時程式的latency其實是相當相當低的這個就是我今天介紹Cosmos
DB的內容還有一些簡單的demo讓大家瞭解說Cosmos DB怎麼樣很方便可以幫助各位然後以及在維運上可以降低大家的affair 謝謝大家

標籤

健康,健康养生 猴棗散 迪士尼美語 -膠原BB ABC Juice health lose weight Abel Benson cat Clean beauty skin distance education Dragon Boat Festival Zongzi Financial Guru Chicken Ball Recipe Hifu療程 HK MC 激光脫毛 Ocean Park ohmykids PhD Piaget伯爵手表价格 PMS 月經 FSH SEO company universities Youfind 万国手表 中醫 乾紋 人生 企业培训 企业培训管理 企业教练培训 企业教练技术培训 教练技术培训 企业教练技术 企业文化 企业文化培训 培训 企业管理 培训课程 企业管理培训课程 课程 健康 养生 醫療 健康,健康养生 內分泌 冷凍光學 冷凍溶脂 凍肉 食品 勵志故事 化妝品 化妝水 半導體脫毛 半導體鐳射 卫浴 去斑效果 品牌 報警 失蹤 如新集團 娛樂 學習 室內設計 寶寶健康 寶寶飲食 小技巧 彩光嫩膚 愿景 个人培训 愿景个人培训 愿景诚信领袖培训 优势 护肤 保养 按摩 探索 推拉窗 換膚 教育 散文 文化 文化,學習 新型產品 鋁材 新聞 綜合 旅游 生活 旅遊 旅遊自然 旅遊項目 昆明 大觀樓 時尚 時尚購物 時評 替假 柏傲灣 the pavilia bay 柏傲灣呎價 柏傲灣示範單位 正本會 正能量 歷史 鋁窗 毛髮 民間 海藻矽 減肥 激光 激光祛斑 無創 無創拉皮 熱話 猴棗散 玉溪 撫仙湖 玻璃王座 白鳳丸功效 皮膚 皺紋 科技 租赁 競技 細白晶透光能面膜機 維修鋁窗 網上購物 緊致去紋 美容 美容療程 美白 美白牙齒 牙黃 美食 美麗 翻譯 肌膚 脫毛 脫毛法 膠原 膠原BB 膠原滋生 膠原自生 膠原蛋白 自資大學 航線 色斑 艺术 落地窗 蜕变七十 蜕变七十培训 補水 裝修市場 設計 維修 護膚 護膚產品 诚信领袖培训 个人修养 購物網站 跟團去歐洲 迪士尼美語 透明質酸 金箔面膜 金融 財經 鉆石能量水系統 互聯網 鋁窗維修 鋼具 鑽石能量水 鑽石能量水機 鑽石能量水系統 陶瓷 陶瓷十大品牌 陶瓷工艺品 陶瓷艺术品 邮票 随笔 面膜 领袖素质培训 養生 養陰丸 香港 香港商宏逸精品有限公司台灣分公司 香港迪士尼 马拉代尔 小说 骨骼健康资讯 高麗蔘 魔法軍團