學習大資料相關知識的小夥伴們,應該經常會接觸到一些nosql資料庫。然而,很多新人往往對於nosql的概念以及其為什麼會在大資料中被廣泛提及和使用產生困惑,下面漢斯老師來給大家加深一下對nosql的理解。
nosql直觀的定義是非關係型資料庫。
這裡我們要從關係型資料庫開始說起。關係型資料庫就是我們日常開發或生產時常用的資料庫,比如oracle資料庫,mysql資料庫等等。關係型資料庫的特點在於其儲存的結構化。大家回想一下,當我們想要儲存資料到某個關係型資料庫時,我們往往需要首先在資料庫中建立乙個表,然後定義表結構。所有需要儲存的資訊,需要以表字段的形式逐一定義出名稱,型別以及長度等屬性。當我們定義好這張表後,我們才能把資料按照定義好的格式儲存進資料庫中。那麼這個時候,就會出現問題了。直觀的比如下兩個問題:
a. 如果某一條資料缺失其中部分表字段的值,但我們又需要儲存它,那麼我們只能按預設的結構把這條資料儲存進去,即使其很多表字段的值為空。
b. 若因為某種原因需要增加乙個表字段,則所有的資料,包括已經完成儲存的一些資料也需要被增加表字段,即使對於這些資料來說,這個表字段完全沒有意義。
當然,除了比較直觀的問題外,還有一些較為隱晦但卻很重要的問題,比如說:
c. 傳統關係型資料庫在讀取資料時,是將一條資料的全部資訊整行都讀取到記憶體中,即使我們有時候只是需要其中一兩個字段。
如上的一些問題,在資料儲存量較小時,其實並不會造成太多的困擾。然而當我們進入到大資料的背景下來討論這些問題時,這些問題就比較棘手了。試想一下,如果我今天要儲存海量的會員資料,然而有的會員資料資訊多,有的會員資料資訊比較少,這個時候我要怎麼定義表結構?如果按照最大化原則來做,是不是會造成大量的無效儲存?如果有一天又要增加新的表字段,是不是所有的資料都要被改動?如此龐雜的表結構,在對海量資料進行統計分析時,如果都載入出來,是不是會極大地降低查詢語句的執行效率?這些問題,事實上就是竄通關係型資料庫在面對海量資料時的缺陷,而為了彌補這些缺陷,非關係型資料庫就被提出來了。
非關係型資料庫能解決這些問題的關鍵,就在於其儲存方式是非結構化的(或半結構化的)並且很多非關係型資料庫是列式儲存。
非結構化儲存意味著在nosql資料庫中,你不需要預先定義好錶結構,每一條資料的表結構都可以是不一樣的。這就解決了上面a和b的問題。而列式儲存,則讓資料庫具備了快速查詢或計算海量資料中某乙個或幾個欄位的能力,這又解決了c問題。
事實上,非關係型資料庫絕不只是為了解決上面這些問題而被廣泛應用的,非關係型資料庫與關係型資料庫的區別也並非如此膚淺。然而對於初學者來說,首先要正確認識非關係型資料庫最直觀的特點。
什麼是SAAS平台?三分鐘了解
過去十年,是工業網際網路孕育的十年,是理論發展和實踐摸索的十年。在 工業4.0 和 中國製造2025 政策的推動下,發展智慧型製造已成為全球製造業的目標。隨著智慧型製造熱潮的到來,製造企業對於智慧型化車間的管理需求越來越多。作為工業網際網路三大要素之一的saas平台,也廣泛被熱議。什麼是saas平台...
沉默三分鐘
網上見此真情之文,藉以自表 原文 http www.hecaitou.net p 3018 沉默三分鐘是心祭。那麼多年了,國旗終於為平民而降。那麼多天了,全民哀悼終於實現。與此同時,火炬停止傳遞,因為這不是乙個歡慶的時刻。很多年後回顧2008年,我 也許寧可它從日曆中消失。還沒有哪一年和今年一樣,才...
《每天感恩三分鐘》
每天感恩三分鐘 有位104歲的老太太耳聰目明,老而彌堅。有人向她請教長壽秘訣,老太太笑了 我有一帖靈丹妙藥,那就是每天化三分鐘時間感恩。她說,化一分鐘感恩父母 丈夫 兒女 鄰居和陌生人 一分鐘感恩大自然給予的種種關懷和體貼 一分鐘感恩每乙個祥和 溫暖和快樂的日子 感恩使她心裡永遠流淌著幸福的泉水,有...