轉職資料分析師!你為什麼需要學 SQL?
想轉職資料分析師的你,除了 Python 到底為什麼還要學 SQL?快速拆解資料分析流程,以及 SQL 在其中扮演的角色。剖析 SQL 入門學習痛點,帶你一個技巧就學好 SQL!
對文章有興趣來不及看?點選右上角「
橘色小書籤」收藏 文章,再也不怕錯過就是一輩子!
資料科學浪潮襲來的第一個十年
從 2012 年 10 月哈佛商業評論拋出「資料科學家是 21 世紀最性感的職業」那刻起,資料科學從美國加州矽谷向全世界颳起洶湧大浪至今要邁向第一個十年,報章雜誌與社群媒體不停向我們大量放送資料科學、大數據、機器學習、深度學習與人工智慧等這些聽起來熟悉卻又陌生的字彙。
各行各業因應著資料科學浪潮的襲來,開始從商業智能的運行上重新思索資料驅動的決策機制,造就「以程式處理並分析資料」的相關職缺在就業市場的需求量大增,我們可以說每一個資料科學領域的從業人員都站在軟體工程、統計分析以及商業思維三個面向的交會點上,但又能依照在三個面向的興趣或者擅長,再細膩區分出職稱為資料工程師(對軟體工程較有興趣或擅長)、資料科學家(對統計分析較有興趣或擅長)或者資料分析師(對商業思維較有興趣或擅長)。
鑽研與區分上述的辭彙與職稱令人感到困惑,若是返璞歸真檢視「以程式處理並分析資料」的本質,就會赫然發現這個學門或者工作內容其實並不是橫空出世的,只是在這個時間點,由於科學計算的盛行、套件設計模式的成熟以及運算成本的降低,讓「擅長寫程式的分析師」與「擅長分析的工程師」水到渠成地浮現,在資料科學浪潮襲來的第一個十年依然屹立於鎂光燈下。
橫看成嶺側成峰的資料分析流程
從資產負債、損益與現金流問題角度觀看的分析被稱作為財務分析(Financial analysis),從消費者、產品、競爭定價與通路問題角度觀看的分析被理解為行銷分析(Marketing analysis),從供應鏈、競爭廠商、議價力、消費者與替代品問題角度觀看的分析被解釋為策略分析(Strategy analysis)。
一個分析,各自表述,能夠隨著聽者的主修背景知識而產生不同的解讀;但是回溯這些大量的應用場景回到其源頭,分析不外乎是在扮演稱職的「橋樑」角色,企圖將問題與解決方案合理地串連起來。像是財務分析串連了提升企業營運狀況的問題和解決方案、行銷分析串連了強化產品服務利潤的問題和解決方案、策略分析串連了提升企業競爭力的問題和解決方案。
我們理解了分析是串連問題與解決方案之間的橋樑,而如果在進行財務問題、行銷問題與策略問題等的分析時採用了「基於資料、事實與可量化的方法」,就被認定為採用了資料分析的方法論。這個意涵表示著資料分析在多數情況下可能並不是第一主角,而是伴隨一個應用場景登場的第二主角。而如同在財務分析、行銷分析與策略分析中多樣化的框架或者方法論,常見的資料分析流程也有著不同樣貌,像是類似馬斯洛需求金字塔理論的資料科學需求金字塔:
圖片來源:https://hackernoon.com/the-ai-hierarchy-of-needs-18f111fcc007
或者 Gartner 以企業導入難度和商業價值作出區隔的分析成熟度遞增階段:
圖片來源:https://www.gartner.com/en/documents/1964015/best-practices-in-analytics-integrating-analytical-capab
或是我自己最喜歡的資料分析專案流程管線:
圖片來源:https://r4ds.had.co.nz
從上述幾個常見資料分析流程中我們可以歸納,一個資料分析專案大抵是資料(Data)提煉為資訊(Information)的過程,廣泛來說,從商業使用者的需求發想、需求規格的討論交流、測試資料的規劃取得、資料處理、探索資料、模型預測、溝通分享以及正式部署。
資料分析專案也不一定會涵蓋所有環節,也沒有既定的標準來論斷環節涵蓋較完整的專案其效益就必然高於環節涵蓋較簡短的專案,具體來說,能夠有效地向產品經理、行銷經理與管理團隊等合作部門精準地傳達資料分析專案的結果與量化的效益數字,就能顯著為資料分析專案的成果加值,提升分析團隊在組織內的價值。
SQL 在資料分析流程扮演強韌的資料供應角色
資料分析任務中常見的資料來源包含有:文字檔案(特定符號區隔的純文字檔案、JSON)、試算表、API 以及資料庫。若以一個在發展已趨成熟的公司任職的資料分析師來說,最高比例的資料來源應該是內部的資料庫,這時就需要倚賴 SQL(Structured Query Language)結構化查詢語言來對資料庫進行查詢以及操作。
在前述不論是資料科學需求金字塔中的 Collect、Storage 與 Aggregate 層;分析成熟度遞增中的 Descriptive Analytics 與 Diagnostic Analytics 階段;資料分析專案流程管線中的 Import、Tidy 與 Transform 環節,都是 SQL 粉墨登場的舞台。
我們可以將 SQL 在資料分析工具中定位為比較基礎、不是那麼絢麗的一個角色,它樸實地將資料分析專案與資料存儲之間的橋樑搭起來,甚至在資料庫管理員與資料工程師的手中,SQL 更是建構資料存儲的主角。光彩耀眼的視覺化、預測模型之下所仰賴的是 SQL 在底層建構出強韌的資料供應管線。
SQL 被資料科學從業人員視為最重要的語言之一
發展已趨成熟的大型公司中由於高度專業分工,通常會將資料庫與使用者部門(包含資料科學團隊、產品經理或者行銷團隊)的權限區隔,藉由「需求」的內部文件傳遞來進行資料供應,但是這樣的設計並不符合當今資料科學蓬勃發展的時節。
不論是資料需求的內容、使用者或頻率等,都具備極高度的變動,因此有相當高比例的公司已經採取將存取權限共享給專案的核心利害關係人,確保資料供給能夠滿足需求。
SQL 對於資料科學從業人員的高度重要性亦能夠從第三方資料佐證,例如全世界最大的資料科學社群 Kaggle 在 2020 年針對網站會員所發出的機器學習與資料科學調查問卷中,SQL 就被資料科學從業人員評為「日常最常使用的語言」的第二名,僅次於 Python 程式語言。
圖片來源:https://www.kaggle.com/yaojenkuo/notebook-kaggle-survey-2020
近日 Google 推出的資料分析專業證書中設計八堂課程,圍繞著問題解決、試算表、資料庫、視覺化與程式設計,視為資料分析師的五個核心能力,其中 SQL 與資料庫在資料準備、資料清理與資料分析三堂課程中,佔有相當大的比重。
因為 SQL 早於 1970 年代即問世,又受到眾多軟體工程師的喜愛與熟悉,許多近年廣受資料科學團隊歡迎的資料存儲、大數據技術或資料分析套件,也是以 SQL 和資料庫作為開發和使用介面的設計原型,假如對於 Pandas DataFrame、R dplyr、Dask、data.table、Spark DataFrame、Hive 等大數據技術有興趣,未來想進一步學習,更可以先扎根 SQL 與資料庫的基礎,能有效降低學習門檻。
透過 Exercise Based Learning 把 SQL 學起來
平心而論,比起其他泛用程式語言(C 語言、Java、Python 等)或者科學計算專用語言(R 語言、Matlab、SAS 等),SQL 的學習難度是比較容易的,原因在於 SQL 是一個與英文語法、文法高度相似的語言。不過,對於初學者而言,仍然有三個需要克服的學習門檻:一是資料庫環境;二是與生活脫節且無趣的範例資料;三是缺乏練習。
學習痛點一:資料庫環境
學習 SQL 我們習慣從用途最廣泛也最為簡易的「查詢」資料語法入門,但是在可以驗證自己所寫的查詢會跑出甚麼樣的結果之前,卻需要先透過「操作」資料語法建立資料庫、建立表格並且插入資料列,這也導致很多初學者會在一開始較困難的「操作」資料語法就因為錯誤而打退堂鼓。
我的 SQL 入門課《SQL 的五十道練習》考量到這點,一開始先讓初學者對已經建立好的資料庫表格查詢,待學完查詢語法,最後一個章節再帶入如何建立與操作跟學習資料庫一模一樣的環境。
學習痛點二:與生活脫節且無趣的範例資料
多數課程或教科書所使用的範例資料都與生活脫節且無趣,像是國家人口資料、超級市場銷售資料或者班級成績資料,《SQL 的五十道練習》考量到這點,使用了像是 IMDb 網站的電影、演員資料、NBA 網站的球員、球隊資料、約翰霍普金斯大學的 Covid 19 資料以及中選會 2020 選舉資料,希望能夠讓學習過程中因為這些貼近生活的範例資料饒富趣味。
學習痛點三:缺乏練習
想要有效地將 SQL 納入自己的技能組合,需要在每個知識點運用 LPAA 循環:Learn、Practice、Apply、Assess。
首先透過課程影片聽老師觀念講解,接著在學習環境跟著影片中的範例實作、再來是自己寫作練習題,最後是若測資一直無法順利通過就可以看練習題詳解影片。這也是《SQL 的五十道練習》課程設計的精神。
採用 EBL (Exercise Based Learning) 的學習理念,可以確保學生在每個章節都會走一遍 LPAA 循環,五十道練習都是明確給定預期輸入和預期輸出的題目設計,點選網址連結就可以開始練習。
在這篇文章,我們談了在第一個十年前景看起來仍然燦爛的資料科學、簡介提煉資訊價值的資料分析流程、SQL 在資料科學中之中扮演強韌的要角以及初學者應該透過練習確實將 SQL 納入自己的技能組合。
如果您是符合下列描述的初學者:
-
日常工作、學習或研究需要使用資料庫作為分析的數據來源。
-
對於數據分析、資料科學有興趣,未來想從事相關工作。
-
對於 Pandas DataFrame、R dplyr、Dask、data.table、Spark DataFrame、Hive 等大數據技術有興趣,未來想學習相關知識。
邀請您加入我的好學校課程 《SQL 的五十道練習:初學者友善的資料庫入門》,一起建立貼近生活的資料庫環境,完成五十道練習,把 SQL 學起來!
看完文章要用時卻忘光光?點選下方按鈕
收藏此文章,我隨時都在這等你回來!
🎉 太棒了!你又學會了新知識!
▶ 用 5 分鐘再多學一點
▶ 推薦線上課程
撰稿:郭耀仁
是一位資料分析師、也是資料科學的專業講師,畢業自台灣大學商學研究所,現於台大工商管理學系與台大共同教育中心兼任講師;在台大資工系統訓練班與中華電信學院講授資料科學課程。在專業講師之前任職過 Coupang 資深資料分析師、SAS Taiwan 資料分析顧問、中信銀儲備幹部與 McKinsey Taiwan 研究助理,閒暇時喜歡長跑與寫作。在 Hahow 好學校開設六門資料科學線上課程涵蓋 Python、SQL 與 R 語言;亦有在博碩文化、碁峰資訊出版多本資料科學書籍。