
小白學數據:一篇文章看懂NoSQL數據庫
如果你關注大數據科技動向,可能聽說過一個叫NoSQL數據庫的名詞,這可能讓人有些云里霧里。其實我們處在一個激動人心的技術更迭時代,以甲骨文為代表的SQL數據庫已經稱霸了企業市場30年,而近年來的NoSQL則是強有力的更新換代的競爭者。這篇文章就通過問答的方式來給小白解釋NoSQL數據庫系統是什么,無論你的技術背景如何都能看得懂。對于數據分析從業人員來說,了解數據庫的趨勢可以讓你的職業生涯如虎添翼;而對于工程師來說,了解新的基礎系統更是必不可少的行業知識。
幾個基本問題
小白問:數據庫是什么東西,可以吃嗎?
答:……不可以。數據庫呢,就是存儲數據的地方,就像冰箱是存儲食物的地方一樣。
小白問:誒?我的數據就存儲在自己電腦里面的excel表里里,還要數據庫干嘛?
答:自己的數據的確很方便,但是對于企業來說就不一樣了。一個公司里面可能有成千上萬的Excel表格,還在不同的電腦上,而他們的員工和客戶需要實時看到企業給他們提供的所有數據,這種文件管理的方法就很麻煩,總不能每分鐘都把一個新的巨大無比的excel文件發給所有客戶呀!而且數據庫更有用的是進行查詢,企業會給內部或者客戶開發不同的應用,而這些應用需要數據的時候可以直接實用數據庫的查詢語句快速得到結果。
小白問:哦,那是說所有的人都直接在這個系統上查數據和改數據嗎?
答:是的,數據庫也會幫助你處理“并發”,也就是如果多個人同時在改數據的情況。比如你在支付寶給小灰轉賬,而小灰這個時候又偏偏剛好在給你轉賬,這時候數據庫系統就要保證你們兩個人最后余額都是正確的,并且在你們進行交易的時候別人如果同時查詢你們倆人的余額都會得到精確的結果。在一個企業系統中,一秒鐘可能有成千上萬個這樣的查詢和改動發生呢。
小白問:那SQL又是什么鬼?
答:SQL是一種可以查詢關系型數據庫的語言,關系型數據庫也叫SQL數據庫。
所謂關系型數據庫就是數據是以表格的形式進行存儲的,就和你電腦上的Excel表一樣,數據是一行一列整整齊齊的躺著的。表格之間有著這樣或那樣的關系,可以通過某信息連接在一起 。想查這些表格里的任何數據的程序員們就可以把他們想要的數據形式轉化成SQL語句然后發給數據庫,得到數據結果。比如你可以有一個食物管理的數據庫,里面有兩個表(食物表和主人表),長成下面的這個樣子:
食物編號食物名稱數量 喜愛程度主人編號
1 獼猴桃 4 53
2 菠菜 10 2 2
3巧克力 99 1001
主人編號主人姓名 主人性別
1小白 女
2小黑 男
3小灰 男
我們可以寫一句簡單的SQL語句直接調出所有男主人擁有的食品及數量。
SELECT 主人姓名,食物名稱,數量
FROM 食物表,主人表
WHERE 食物表.主人編號=主人表.主人編號 AND 主人性別=‘男’
=>
主人姓名食物名稱數量
小黑菠菜10
小灰獼猴桃 4
深入聊聊
小白問:哦,那NoSQL到底有什么過人之處呢?
答:因為近年來企業要處理的數據越來越多,越來越復雜,就出現了兩個之前關系型數據庫解決不了的問題:快速增長的數據規模和日漸復雜的數據模型。
第一個問題就是數據越來越多,公司以前買的裝關系型數據庫的那臺電腦放不下了,那這個時候就有兩種選擇:
一種就是直接去買一臺更大空間的計算機取代現有的機器。這個方法是有限制的,因為這種機器的價格一般非常昂貴,而且這個空間總是有一個上限的。
另外一種選擇就是再買一臺機器,然后把新的數據放到新機器里的另外一個SQL數據庫里面,這個過程也叫“分片”(sharding)。 這個時候程序員要開始杯具的加班了。因為這個轉換的過程非常容易出問題,而且會給使用數據庫的應用增加很多的復雜度。比如我們之前的例子,在查詢食品和數量的語句的時候我們要將同樣的語句同時發給兩個服務器,然后把最后的結果綜合起來,給應用的開發增加了很多不必要的負擔。分片還有很多別的缺點我就不一一贅述了。
而NoSQL數據庫的服務器本身就支持很多個機器存儲數據進行分布式查詢,這樣當空間不夠用的時候就直接去扛一臺新的機器回來連接到已有的計算機集群上裝好數據庫即可,程序員可以回家睡個好覺啦。
小白問:明白了,那另外一個關系型數據庫沒有解決的問題呢?
答:另外的一個問題就是把數據放到SQL數據之前要進行數據建模,也就是要考慮好每一個表里面每一列都代表什么,不同的表格之間要怎樣相互關聯起來。這對很多公司來說是一件非常耗費時間和精力的事情,因為他們的數據源的種類太多了。而且在數據進入數據庫之后,如果在表中增加新的一列(比如想把食物的種類加進第一個表中)或者是要改變某一列的特性的話,對于系統來說是非常困難的,因為表中的數據已經一行行的存好了。
而NoSQL數據庫就減輕了數據建模的負擔,比如上面的表里面的一行可以變成下面JSON文檔的樣子:
{
食物名稱:獼猴桃,
數量:4,
喜愛程度:5,
主人:{
姓名:小灰,
性別:男
}
}
這樣很方便的可以修改數據模型的樣子,而且從源數據不需要怎么改就可以放入數據庫。目前用有一個行業叫做ETL,就是專門做數據形狀轉化的:他們將不同的源數據打磨到想要的表格的模子里,然后放入關系型數據庫。這個行業價值好幾十億美元呢,很瘋狂吧?用了NoSQL,公司可以節省好多時間和人民幣呢。
答:NoSQL其實有很多不同的種類的,適用在不同的情況中并且分別有不同的存儲方法。JSON是文檔類NoSQL的典型格式,我們平時使用的word和pdf文件都可以很容易放入文檔型數據庫進行查詢。而其他種類的NoSQL也可能是用圖或者哈希表的模型來存儲數據。如果你的數據存儲的是一個社交網絡類型的應用,那么對你來說用一個基于圖的數據庫可能更加合適,因為你關心的社交網絡場景中的問題都可以得到比較快速的回答。
答:哪有,NoSql其實是Not Only SQL,就是不僅僅是SQL,有一些NoSQL數據庫還支持直接用SQL來做查詢呢。兩者的區別主要是我上面提到的兩點: 1.對數據建模的要求不同:NoSQL的建模程序比較簡單靈活;2.對數據增加的處理方式不同:使用NoSQL可以直接進行分布式處理。在數據規模增長需要增加新的機器的時候,不需要程序員對使用數據庫的應用進行代碼進行改動,直接在數據庫集群中增加一臺新的計算機就可以啦。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25