歡迎來到大數據的世界!
你好!今天,我們要深入探討現代計算領域中最令人興奮的課題之一:大數據 (Big Data)。你可能在新聞或科技影片中聽過這個詞。它聽起來像是只有超級電腦才能處理的東西,但讀完這些筆記後,你會發現它其實是一種處理我們世界每分每秒所產生海量資訊的邏輯方法。
別擔心,如果起初覺得有些吃力也沒關係——我們將會把它拆解成小部分來逐一擊破!
1. 到底什麼是大數據?
在「舊時代」(大約 20 年前),數據通常指試算表中的數字或列表中的姓名。而今天,數據代表了一切:你在 TikTok 上的按讚記錄、GPS 定位、心率監測數據,甚至是智能冰箱的溫度。
大數據是指那些規模極大或過於複雜,導致傳統數據處理軟體(例如單機電腦上的簡單資料庫)無法處理的數據集。
大數據的「3V」特性
要判斷某樣東西是否真的屬於大數據,我們通常會觀察三個特定特徵。記住這些特徵的一個好方法是運用 3V 記憶法:
1. 容量 (Volume): 這指的是數據的數量。我們不再談論 MB 或 GB;我們談論的是 TB (\(10^{12}\) bytes)、PB (\(10^{15}\) bytes),甚至更多!
2. 速度 (Velocity): 這指的是產生並處理新數據的速度。想像一下 Twitter:每秒鐘都有成千上萬條推文發布。這些數據就像一條永不停歇的「流」。
3. 多樣性 (Variety): 這指的是數據的類型。它不只是整齊的文字行,還包含影片、音訊、照片、GPS 坐標和感測器數據。
重點速覽:3V 特性
• 容量 (Volume) = 數量(有多少?)
• 速度 (Velocity) = 速度(有多快?)
• 多樣性 (Variety) = 類型(有多雜亂?)
2. 結構化數據與非結構化數據
大數據面臨的最大挑戰之一,就是它並不總是能「放進」整齊的盒子裡。我們將數據分為兩大類:
結構化數據 (Structured Data)
這類數據能完美地放入包含行和列的表格中。想想學校的登記表:姓名、學生編號和出席率。電腦非常容易對其進行搜尋和排序。
例子:網上商店的價格列表。
非結構化數據 (Unstructured Data)
這就是那些「混亂」的數據。它沒有預先定義的格式。若沒有人工智能等特殊工具,電腦很難理解這些內容。
例子:10 分鐘的 YouTube 影片、手寫筆記或語音訊息。
你知道嗎? 今天產生的所有數據中,大約 80% 都是非結構化數據!這就是為什麼大數據技術如此重要——它們幫助我們從混亂中理出頭緒。
關鍵結論:結構化數據是有組織的(表格);非結構化數據是無組織的(影片、文字)。大數據通常需要同時處理這兩者。3. 為什麼傳統資料庫會失效?
你可能會問:「為什麼我們不能只使用一個超大版本的普通資料庫呢?」
大多數傳統資料庫都是關係型資料庫 (Relational Databases)。它們使用互相連結的表格。雖然它們非常適合處理中小規模的結構化數據,但在處理大數據時,由於以下兩個原因會顯得吃力:
1. 向上擴展 (Scaling Up) 與向外擴展 (Scaling Out): 要讓傳統資料庫變快,通常必須購買更大、更昂貴的電腦(向上擴展)。而在處理大數據時,我們傾向於使用數百台廉價電腦協同工作(向外擴展)。
2. 剛性的結構 (Rigid Schemas): 傳統資料庫要求你在儲存數據之前,就必須準確定義數據的樣子。但大數據的變化速度太快,無法滿足這一點。
4. 分散式處理 (Distributed Processing)
由於單台電腦不足以應付大數據,我們採用分散式處理。這是一種「分而治之」的方法。
它是如何運作的:
1. 將一項巨大任務拆解成細小的部分。
2. 這些部分被發送到一個叢集 (Cluster)(一組互相連結的多台電腦)。
3. 每台電腦同時解決它那份細小的部分(這稱為平行處理/並行處理)。
4. 將結果發送回並組合成為最終答案。
常見錯誤:
別把「分散式」和「聯網」搞混了。雖然它們確實使用了網絡,但分散式處理專指多台電腦為了完成同一項任務而協同工作,從而提高效率。
關鍵結論:分散式處理使用一組電腦叢集來進行平行處理數據,這比單機處理快得多。5. 數據建模:節點 (Nodes) 與邊 (Edges)
有時候,大數據的核心在於關係。想想 Facebook 或 Instagram。所謂的「數據」不僅僅是你的姓名,還包括你與誰是朋友、你喜歡什麼、你追蹤了誰。
為了描繪這些關係,我們使用圖論 (Graph Theory) 的概念:
• 節點 (Nodes): 代表「實體」(人或事物)。在社交媒體上,你就是一個節點。
• 邊 (Edges): 這是連結節點的線。它們代表關係。如果你追蹤了一位名人,你的節點與他們的節點之間就會有一條「邊」。
透過觀察這些節點和邊,公司可以推薦新朋友,或者展示你朋友們購買過的商品廣告。這是大數據分析的關鍵部分!
重點速覽:
容量 (Volume): 「多少」
速度 (Velocity): 「多快」
多樣性 (Variety): 「什麼類型」
節點 (Nodes): 「是誰」
邊 (Edges): 「連結」
結語與鼓勵
大數據聽起來可能是一個「龐大」的題目,但請記住,這一切都是為了尋找聰明的方法來處理「過多的內容」。專注於 3V 以及分散式處理(分擔工作負載)的概念,你就能順利掌握這一章!繼續練習這些定義,你在考試中一定會表現出色!