SQL不難啊,為什麼不容易精通?自學與實務的4個落差

數據分析工作,我認為SQL才是首先要掌握的語言,但可能它是一個已經很久的語言,也比較樸實不搶眼,所以常常被忽略了。

一直到這幾年,隨著許多前輩的分享,及越來越多學校開設了商業分析學程,大家對資料分析整個流程有更深的認識,也越來越多人會學習SQL。

我是經濟背景,剛踏入數據分析師,其實也完全沒碰過資料庫,都是自學的,如果你想了解我當初學習的過程,或是還不太清楚SQL對數據分析的重要,可以參考<入門數據分析的第一個大門檻:SQL/Hive取數-從自身經歷聊聊學習SQL的體驗以及三個自學SQL網站分享>

總之,自學的過程中我覺得:不難啊,滿簡單的。

但真實工作開展中,我還是會在“取數”的過程卡住很久,而現在帶新人時,面試時我也都考過他們基本能力,但到實際工作中,還是….有點慘不忍睹…

奇怪,明明看似不難啊,為什麼到工作中就沒法快速上手?

經過一陣子的思考,我發現SQL精通的過程,很依賴大量的實務練習,造成實務跟自學的落差,有以下原因:

1.只是在學語句,無法靈活運用

傳統的學習方式,一個單元就講解一個語句,基礎知識都是一步一步拆解完,這種學習方法不容易達到靈活運用的程度。因為工作中,數據的前處理,可能就包含聚合函數、join、 子查詢、各種函數等的組合,考靠驗綜合運用的能力,如何組裝每一步操作才是難點,但這部分知識目前市面上內容幾乎都沒講。

2.案例缺乏商業場景

講解的案例,常見的有學生成績、電影排行數據,我可能學會了篩選數據可以用WHERE子句,但在工作中,什麼場景要用到這個語句呢?我為什麼需要篩選?分析過程中用的遍地開花的CASE WHEN也只被簡單帶過。

3 數據量太小,無法訓練“數據敏感度”

分析開展前,通常會先對數據進行了解,例如數據是什麼格式,有沒有異常數據,數據分佈的情況,這些依賴我們的“數據敏感度”

但平台所提供的案例頂多幾百筆,我肉眼喵兩下就看出來了。工作中,幾十萬、幾千萬、幾億筆的數據量比比皆是,也只有在這種大量數據的情況下,數據敏感度才有機會獲得一定程度的鍛鍊。

4.實操環境的不足

親自動手永遠是練習寫程式最快的方法

大多資源沒有線上環境可以實操,而可實操操的網站(SQLbolt),提供的也多是小數據集、缺乏商業場景的數據,這又回到了上述提到的問題。

這邊想再延伸聊一下"分析平台",不論csv、關係數據庫,都是數據儲存的一個載體,但他們並不是為大數據而生的,隨著網路產業的發展,越來越多公司開始探索大數據應用,數據挖掘、數據分析與數據探索等關注度越來越高,也越來越多企業開始導入hadoop這套最主流的大數據架構

這幾年常聽到的數據中台、乃至數據湖的概念,都是以hadoop為基礎的延伸。可以說,要成為優秀的數據工作者,Hadoop是逃不開的知識,尤其是其中的數據倉庫工具Hive更是重要。

Hive是hadoop生態系統非常重要的一個工具,它提供了一種類SQL的語言,可以查詢存儲在Hadoop分布式文件系統(HDFS)中的數據,也可以查詢Hadoop數據庫(Hbase)中的數據

有能力的公司會自建hadoop UI平台,有的公司會用開源的HUE,不論哪個,其背後的計算引擎、調度機制、集群管理都與傳統的關係數據庫有不小的差異,然而hadoop的部屬比較複雜,所以很難有機會練習到

Hue是一个開源的Hadoop UI系统,通過Hue我們可以在Web控制台與Hadoop進行進行交互處理數據。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.