入門數據分析的第一個大門檻:SQL/Hive取數-聊聊自身學習SQL的經歷以及三個自學網站分享

最近注意了幾所大學都創建了數據相關的學程或社群,例如中山管院:商業大數據逢甲資料科學大講堂,也有企業在做推廣(例如國泰金控數數發團隊),覺得現在的學生真幸福,不禁回想自己5年前剛入這行時的學習過程…

當初的基礎僅有還不錯的統計學、一點點excel、一點點R。隨著工作難度的增加,這一點點技能已經不敷使用。開始到處找書、找案例、找課程。學習過程幾乎是缺哪補哪,沒有什麼系統章法,走了不少冤望路。

而我自己感覺學的最艱辛的,就是學習SQL的經歷了。學習SQL的經歷-我將從自己接觸SQL的心路歷程,來分享SQL的重要性&不好學的原因。

SQL重要嗎?

剛入行我是很純粹的分析師,例如 “分析廣告推廣的效果如何?”、“分析新的產品訂價該如何設計?”

當時基本數據都已經有報表了,所以可以根據報表的歷史數據往下分析。然而,隨著分析的角度不斷深入,或是分析的項目越來越多元,或是老闆的問題越來越多樣化…..報表的數據已經不足夠了。

為了滿足分析所需的各種數據,我只得頻繁的跟DBA要數據,但心裡總是不踏實,要是有人質疑我的分析結果的話,我自己能保證input都是合理的嗎?

不能,因為最原始的數據不是我掌握的。

我必須要會自己取數!!

這是我開始學SQL以及發現”取數”有多重要的時期

我在研究所學計量經濟學時,網上或課程都已經提供了數據,接著開始做清洗、挖掘、選特徵、建模等操作。我想大多數人學習數據分析時,也是一樣的場景。

但真實環境中,數據都是存在數資料庫中,不會SQL,無法將數據取出來,基本上寸步難行。所以我們可以看到很多人說,數據分析60%以上時間都是在取數,身為一個數據分析师,操作SQL是一個必備技能

到了現在(2020年),我觀察到的職場環境,對SQL的要求已經不僅限於數據分析師,甚至營運、PM,凡事要依賴/參考數據做出決策的職位,或多或少都會要求具備基本的SQL操作的能力。

SQL難學嗎?

我認為SQL上手不難,但要精通SQL很難,因為只能通過長時間的實戰才能掌握好它。

當時分析部門剛成立沒多久,大家的背景也都是分析為主,專精SQL的人不多。我記得每晚6點吧,team leader會在牆上教我們一些SQL的語法,從最簡單的select、通配符,到表關聯,計算函數count()等等的,奠定了我最基礎的SQL語言。

配合真實環境的操作以及網上的資源(推薦:w3c的sql手冊 SQLBolt、 Hive Tutorial),我開始進入可以自己取數

一切就順利了嗎?不…年輕人還是太天真了。

我發現我取的數,光是跟報表對就對不上,到底差異在哪?

我跟DBA要了幾個報表的代碼來看時,看到腳本用到的多表關聯和子査詢多層嵌套讓我不禁懷疑人生,網上少提的CASE WHEN組合邏輯查詢也遍地開花,一個報表的取數SQL數百行甚至上千行的代碼也不足為奇。

我還是太淺了,買本書好好啃吧

我這麼想,畢竟研究所的學習,最大收穫就是自己找資料。然而尋尋覓覓,外面的書籍內容,講的最多的卻是資料庫設計、數據管理、底層架構。

對數據分析師來說,査詢才是做的最多的操作,畢竟使用工具是為了完成分析畢、竟我們不是運維也不是數據開發工程師,實際工作中也確實用不到這些知識。

因此我的學習過程就是看DBA的腳本,以及從分散各處的資訊,配合業務方千奇百怪的需求,實際操作、一點一滴、片段式的逐漸累積。

我想每個人在通往熟練使用SQL的道路上都會有這個“陣痛期”。當然,如今我已度過這個“陣痛期”,SQL也算熟練,但每每想到那段時間的摸索過程,還是覺得辛苦。

我認為SQL上手不難,但要精通SQL很難,因為只能通過長時間的實戰才能掌握好它。而且SQL的學習資源是最缺乏的(相較Excel、機器學習、R、GA等)。

學好SQL的優點

創業公司 CitusData的雲產品負責人 Craig Kerstiens 曾發表了一篇文章SQL: One of the Most Valuable Skills來說這件事,我覺得有很大的共鳴,Craig 是這麼說的:

  • 它對於不同的職業角色和學科來說都是有價值的;
  • 一旦學會了就不需要重新再學;
  • 它讓你看起來像個超級英雄。一旦你掌握了它,而其他人不懂,你就顯得特別强大

有句話我特別有感:

SQL是我所知道的最神奇的概念之一。它已經有近五十年的歷史,而且沒有被其他東西替代的迹象。我們已經創建了無數種科技來存儲和處理數據,但似乎總是嘗試在這些科技中重新實現SQL(例如Hive、Presto、KSQL)。

想更認識 Hive SQL 嗎?

歡迎你參考我在 Hahow 上架的課程入門數據分析,掌握 Hive SQL 取數能力

hahow-入門數據分析,掌握Hive SQL取數能力

歡迎分享你的心得

🙌 你是數據分析新手嗎?入行必學SQL課程由此開始 >>>

X
Scroll to Top