NoSQL 數(shù)據(jù)庫因其功能性、易于開發(fā)性和可擴展性而廣受認可,它們越來越多地用于大數(shù)據(jù)和實時 Web 應(yīng)用程序,在本文中,我們通過示例討論 NoSQL、何時使用 NoSQL 與 SQL 及其用例。
創(chuàng)新互聯(lián)建站長期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為呼和浩特企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站建設(shè),呼和浩特網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
NoSQL是一種下一代數(shù)據(jù)庫管理系統(tǒng) (DBMS)。NoSQL 數(shù)據(jù)庫具有靈活的模式,可用于構(gòu)建具有大量數(shù)據(jù)和高負載的現(xiàn)代應(yīng)用程序。
“NoSQL”一詞最初是由 Carlo Strozzi 在 1998 年創(chuàng)造的,盡管自 1960 年代后期以來就已經(jīng)存在類似的數(shù)據(jù)庫。然而,NoSQL 的發(fā)展始于 2009 年初,并且發(fā)展迅速。
在處理大量數(shù)據(jù)時,任何關(guān)系數(shù)據(jù)庫管理系統(tǒng) (RDBMS) 的響應(yīng)時間都會變慢。為了解決這個問題,我們可以通過升級現(xiàn)有硬件來“擴大”信息系統(tǒng),這非常昂貴。但是,NoSQL 可以更好地橫向擴展并且更具成本效益。
NoSQL 對于非結(jié)構(gòu)化或非常大的數(shù)據(jù)對象(例如聊天日志數(shù)據(jù)、視頻或圖像)非常有用,這就是為什么 NoSQL 在微軟、谷歌、亞馬遜、Meta (Facebook) 等互聯(lián)網(wǎng)巨頭中特別受歡迎的原因。
一些流行的 NoSQL 數(shù)據(jù)庫包括:
隨著企業(yè)更快地積累更大的數(shù)據(jù)集,結(jié)構(gòu)化數(shù)據(jù)和關(guān)系模式并不總是適合。有必要使用非結(jié)構(gòu)化數(shù)據(jù)和大型對象來更好地捕獲這些信息。
傳統(tǒng)的 RDBMS 使用 SQL(結(jié)構(gòu)化查詢語言)語法來存儲和檢索結(jié)構(gòu)化數(shù)據(jù),相反,NoSQL 數(shù)據(jù)庫包含廣泛的功能,可以存儲和檢索結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化和多態(tài)數(shù)據(jù)。
有時,NoSQL 也被稱為“ 不僅僅是 SQL ”,強調(diào)它可能支持類似 SQL 的語言或與 SQL 數(shù)據(jù)庫并列。SQL 和 NoSQL DBMS 之間的一個區(qū)別是 JOIN 功能。SQL 數(shù)據(jù)庫使用 JOIN 子句來組合來自兩個或多個表的行,因為 NoSQL 數(shù)據(jù)庫本質(zhì)上不是表格的,所以這個功能并不總是可行或相關(guān)的。
但是,一些 NoSQL DBMS 可以執(zhí)行類似于 JOIN的操作——就像 MongoDB 一樣。這并不意味著不再需要 SQL DBMS,相反,NoSQL 和 SQL 數(shù)據(jù)庫傾向于以不同的方式解決類似的問題。
一般來說,在以下情況下,NoSQL 比 SQL 更可?。?/p>
許多行業(yè)都在采用 NoSQL,取代關(guān)系數(shù)據(jù)庫,從而為某些業(yè)務(wù)應(yīng)用程序提供更高的靈活性和可擴展性,下面給出了 NoSQL 數(shù)據(jù)庫的一些企業(yè)用例。
內(nèi)容管理是一組用于收集、管理、傳遞、檢索和發(fā)布任何格式的信息的過程,包括文本、圖像、音頻和視頻。NoSQL 數(shù)據(jù)庫可以通過其靈活和開放的數(shù)據(jù)模型為存儲多媒體內(nèi)容提供更好的選擇。
例如,福布斯在短短幾個月內(nèi)就構(gòu)建了一個基于 MongoDB 的定制內(nèi)容管理系統(tǒng),以更低的成本為他們提供了更大的敏捷性。
大數(shù)據(jù)是指太大而無法通過傳統(tǒng)處理系統(tǒng)處理的數(shù)據(jù)集,實時存儲和檢索大數(shù)據(jù)的系統(tǒng)在分析 歷史 數(shù)據(jù)的同時使用流處理來攝取新數(shù)據(jù),這是一系列非常適合 NoSQL 數(shù)據(jù)庫的功能。
Zoom使用 DynamoDB(按需模式)使其數(shù)據(jù)能夠在沒有性能問題的情況下進行擴展,即使該服務(wù)在 COVID-19 大流行的早期使用量激增。
物聯(lián)網(wǎng)設(shè)備具有連接到互聯(lián)網(wǎng)或通信網(wǎng)絡(luò)的嵌入式軟件和傳感器,能夠在無需人工干預(yù)的情況下收集和共享數(shù)據(jù)。隨著數(shù)十億臺設(shè)備生成數(shù)不清的數(shù)據(jù),IoT NoSQL 數(shù)據(jù)庫為 IoT 服務(wù)提供商提供了可擴展性和更靈活的架構(gòu)。
Freshub就是這樣的一項服務(wù),它從 MySQL 切換到 MongoDB,以更好地處理其大型、動態(tài)、非統(tǒng)一的數(shù)據(jù)集。
擁有數(shù)十億智能手機用戶,可擴展性正成為在移動設(shè)備上提供服務(wù)的企業(yè)面臨的最大挑戰(zhàn)。具有更靈活數(shù)據(jù)模型的 NoSQL DBMS 通常是完美的解決方案。
例如,The Weather Channel使用 MongoDB 數(shù)據(jù)庫每分鐘處理數(shù)百萬個請求,同時還處理用戶數(shù)據(jù)并提供天氣更新。
物聯(lián)網(wǎng)、區(qū)塊鏈、大數(shù)據(jù)有什么區(qū)別
在不久的將來,物聯(lián)網(wǎng)的設(shè)備將爆增,有可能是千億,也可能是萬億,像這么一個龐大的網(wǎng)絡(luò),如果還是以中心化的組網(wǎng)模式去管理的話,數(shù)據(jù)中心的基礎(chǔ)設(shè)施投入維護應(yīng)該是沒辦法估量的。
大數(shù)據(jù)本質(zhì)上來講,屬于數(shù)據(jù)庫的一個小分支,這樣就把這個問題歸結(jié)為和數(shù)據(jù)庫的關(guān)系。數(shù)據(jù)庫在軟件、在互聯(lián)網(wǎng)界、在IT界其實是個特別古老的研究領(lǐng)域,從最初的文件系統(tǒng)到ER模型到后來引發(fā)的大家都知道的傳統(tǒng)數(shù)據(jù)庫的三大成就,關(guān)系模型、事務(wù)處理、查詢優(yōu)化,一直到后來互聯(lián)網(wǎng)盛行以后的NOSql數(shù)據(jù)庫的崛起,數(shù)據(jù)庫技術(shù)在不停發(fā)展、在變化,那么也包括以XML為代表的半結(jié)構(gòu)化,文本、語音等非結(jié)構(gòu)化的數(shù)據(jù)處理等等。
區(qū)塊鏈和數(shù)據(jù)庫的關(guān)系看起來其實也就是這樣一種關(guān)系,從數(shù)據(jù)庫技術(shù)演進的過程,我們可以發(fā)現(xiàn),它總是來源于要怎么去滿足新的業(yè)務(wù)需求,然后創(chuàng)造出新的這些數(shù)據(jù)處理技術(shù)。比如從最開始的文件系統(tǒng),為什么我們需要ER的這種模型呢,是因為金融行業(yè)的發(fā)展,大家對于這些快速的記帳、高并發(fā)數(shù)據(jù)寫入和訪問,有了進一步的需求,從而導(dǎo)致了實體關(guān)系模型的產(chǎn)生以及快速的發(fā)展。后來為什么NOSql數(shù)據(jù)庫會出現(xiàn)呢?就是因為互聯(lián)網(wǎng)的快速發(fā)展對數(shù)據(jù)庫提出了更高更新的要求,所以本質(zhì)上我們認為整個互聯(lián)網(wǎng)就是一個大的數(shù)據(jù)庫。
事物總是在不斷發(fā)展的,當(dāng)然我們通過NOSql數(shù)據(jù)庫、云存儲這些技術(shù)解決的互聯(lián)網(wǎng)海量實時數(shù)據(jù)處理問題之后,下一個問題一定就來了,那就是如何以規(guī)?;姆绞絹斫鉀Q數(shù)據(jù)的真實性和有效性。
舉個例子,可能跟我們的飲食相關(guān),從一開始的溫飽問題,到營養(yǎng)結(jié)構(gòu)問題,再到大家所關(guān)注的食品安全問題,數(shù)據(jù)庫的發(fā)展其實也是一樣,當(dāng)我們通過ER實體關(guān)系模型,通過NOSql數(shù)據(jù)庫能夠很好的解決數(shù)據(jù)存儲和數(shù)據(jù)訪問的這些問題的時候,接下來大家要去關(guān)心的,要去解決的那一定是真實性、有效性的問題。
所以到了這個階段,以區(qū)塊鏈為代表的這些技術(shù),對數(shù)據(jù)真實有效不可偽造、無法篡改的這些要求,相對于現(xiàn)在的數(shù)據(jù)庫來講,肯定是一個新的起點和新的要求。我們可以清晰的感受到,數(shù)據(jù)庫與區(qū)塊鏈融合趨勢,其實是非常緊密的、無法阻擋,好像剛才說的電影,內(nèi)容的制作方開始向虛擬現(xiàn)實、增強現(xiàn)實這個方向發(fā)展一樣;從數(shù)據(jù)庫的角度,區(qū)塊鏈就是一種新型的數(shù)據(jù)組織方式。我們認為大數(shù)據(jù)、區(qū)塊鏈?zhǔn)莾烧吆弦坏摹?/p>
物聯(lián)網(wǎng)時代的大數(shù)據(jù)策略
互聯(lián)網(wǎng)時代,PC、Pad、智能手機等設(shè)備無處不在,數(shù)以億計的用戶通過微博、微信、SNS、博客等途徑產(chǎn)生大量的自媒體數(shù)據(jù),電商、新聞類網(wǎng)站、搜索引擎每時每刻都在記錄著豐富的用戶行為信息,海量的數(shù)據(jù)促進了云計算,分布式技術(shù)的發(fā)展,而這些技術(shù)反過來不僅推動了Web和移動互聯(lián)網(wǎng)的革新,也推動了物聯(lián)網(wǎng)的飛速前進?,F(xiàn)在,我們正逐漸邁入物聯(lián)網(wǎng)時代,實現(xiàn)萬物互聯(lián)的愿景,如果說之前人是信息生產(chǎn)的主體,那么或許不久的將來設(shè)備將成為主角,它們將源源不斷地產(chǎn)生與人相關(guān)的衣食住行信息,這些信息會通過云計算、數(shù)據(jù)挖掘等技術(shù)實現(xiàn)價值的升華從而為用戶提供更優(yōu)質(zhì)、貼心的服務(wù)。那么物聯(lián)網(wǎng)時代會產(chǎn)生什么樣的數(shù)據(jù),應(yīng)該采用什么樣的大數(shù)據(jù)策略呢?
THINKstrategies 的總經(jīng)理 Jeff Kaplan 在自己的博文《 當(dāng)物聯(lián)網(wǎng)遇見大數(shù)據(jù) 》中寫道:
“你不能使用現(xiàn)在的策略,因為可以被捕獲、管理并利用的數(shù)據(jù)將更加多樣化,同時用例也會更加豐富。附加到各種設(shè)備和對象上的傳感器會產(chǎn)生各種類型的數(shù)據(jù)。這些數(shù)據(jù)將會用于各種響應(yīng)式的、主動的或者 創(chuàng)造性的目的 。IT部門的任務(wù)就是與業(yè)務(wù)部門一起工作,完全理解物聯(lián)網(wǎng)方面的用例,然后尋找滿足業(yè)務(wù)需求的技術(shù)。特別是,IT部門必須識別出最優(yōu)的分析平臺和工具,讓業(yè)務(wù)用戶能夠獲取到需要的數(shù)據(jù),分析數(shù)據(jù)的含義并快速地做出響應(yīng)?!?/p>
Gartner公司的副總裁、著名分析師 Joe Skorupa 認為:
“分布在世界各地的物聯(lián)網(wǎng)設(shè)備將產(chǎn)生大量的輸入數(shù)據(jù),將所有的數(shù)據(jù)傳送到一個位置進行處理無論從技術(shù)上還是從經(jīng)濟上都是無法實現(xiàn)的。最近的趨勢——將應(yīng)用程序集中起來以便于降低成本并增強安全性——并不適合物聯(lián)網(wǎng)。組織必須將數(shù)據(jù)集中到多個分布式的小型數(shù)據(jù)中心中,在此對數(shù)據(jù)進行初步的處理并發(fā)送到一個中心站點進行額外的處理。數(shù)據(jù)中心管理員需要在這些區(qū)域部署更加具有前瞻性的容量以滿足業(yè)務(wù)發(fā)展的需要?!?/p>
Patrick McFadin則在自己的博文《 物聯(lián)網(wǎng):數(shù)據(jù)都去了哪里? 》中闡述了一個具體的數(shù)據(jù)策略解決方案。他認為整個過程可以分為三個階段:產(chǎn)生數(shù)據(jù)并通過Internet傳遞、中央系統(tǒng)收集并組織數(shù)據(jù)、持續(xù)的數(shù)據(jù)分析與使用。
第一階段需要決定數(shù)據(jù)創(chuàng)建的標(biāo)準(zhǔn)以及如何通過網(wǎng)絡(luò)進行傳遞。Patrick McFadin認為可以通過HTTP、MQTT和CoAP三種常用的標(biāo)準(zhǔn)協(xié)議傳遞數(shù)據(jù)。HTTP通用程度高,但是它的頭中包含大量冗余信息,不太適合帶寬比較低的場景。MQTT基于發(fā)布/訂閱模型,新的設(shè)備或者服務(wù)能夠非常容易地連到中央系統(tǒng)上消費消息。另外,它在消息大小上比HTTP更輕量,但是缺點是不包含加密標(biāo)準(zhǔn)。CoAP適合于低功耗、低帶寬的場景,與MQTT的訂閱模式相比它更側(cè)重于一對一的連接。
第二階段則需要根據(jù)設(shè)備、網(wǎng)絡(luò)以及功耗的限制決定是實時地收集數(shù)據(jù)還是在某個時間批量收集,同時還需要決定如何存儲數(shù)據(jù)。如果是實時收集,那么必須要考慮數(shù)據(jù)庫的寫入速度,這對于傳統(tǒng)的數(shù)據(jù)庫而言可能是一個挑戰(zhàn),但是像 Cassandra 這樣的NoSQL數(shù)據(jù)庫卻能夠輕松應(yīng)對。
一旦完成了數(shù)據(jù)的收集與存儲,接下來就是分析了,這才是整個過程最核心的部分。此時需要考慮需要何時使用分析結(jié)果,是否需要立即或近乎實時的分析,還是僅僅需要對歷史數(shù)據(jù)進行處理。越來越多的人在使用Apache Spark分析大數(shù)據(jù),使用Spark Streaming滿足近乎實時的要求,如果將這些技術(shù)與Cassandra這樣的NoSQL數(shù)據(jù)庫結(jié)合在一起使用,那么開發(fā)者就能夠處理并分析大規(guī)模、快速移動的數(shù)據(jù)集。
那么是不是所有的物聯(lián)網(wǎng)廠商都需要自己去構(gòu)建相關(guān)的數(shù)據(jù)解決方案呢?也不盡然,在云計算的時代大可以利用云服務(wù)提供商的資源,以降低相關(guān)的成本,對小公司或初創(chuàng)公司更是如此。
Mike Kavis最近在自己的博文《 物聯(lián)網(wǎng)將徹底改變你的大數(shù)據(jù)策略 》中闡述了自己的方案,他認為:
“在物聯(lián)網(wǎng)時代,面對PB級的數(shù)據(jù),企業(yè)將難以以一己之力完成基礎(chǔ)設(shè)施的建設(shè)。物聯(lián)網(wǎng)所產(chǎn)生的大量數(shù)據(jù)不僅會驅(qū)動現(xiàn)在的數(shù)據(jù)中心發(fā)生根本性的變化,同時也會驅(qū)動相關(guān)企業(yè)采用新的大數(shù)據(jù)策略。由于缺乏相關(guān)技能以及持續(xù)增長的數(shù)據(jù)對基礎(chǔ)設(shè)施采購的需求,企業(yè)將逐步放棄DIY模式,轉(zhuǎn)而使用PaaS和托管的解決方案,借助于數(shù)據(jù)庫即服務(wù)(例如Amazon的Redshift、Hortonworks和Cloudera的企業(yè)級Hadoop)、托管的大數(shù)據(jù)服務(wù)(例如Treasure Data)以及矩陣式的數(shù)據(jù)中心服務(wù)(例如GoGrid)實現(xiàn)自己的物聯(lián)網(wǎng)數(shù)據(jù)分析方案。
總之,物聯(lián)網(wǎng)的價值在于數(shù)據(jù)。企業(yè)對數(shù)據(jù)的分析工作啟動地越快,挖掘出的業(yè)務(wù)價值就越多。而云服務(wù)提供商的目的就是通過加大相關(guān)的投入,消除數(shù)據(jù)收集、管理的風(fēng)險以及復(fù)雜性,讓客戶能夠?qū)W⒂诜治??!?/p>
以上是小編為大家分享的關(guān)于物聯(lián)網(wǎng)時代的大數(shù)據(jù)策略的相關(guān)內(nèi)容,更多信息可以關(guān)注環(huán)球青藤分享更多干貨