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

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

在執行數據分析工作時,我認為 SQL 才是首先要掌握的語言,但可能它是一個已經很久的語言,也比較樸實不搶眼,所以常常被忽略了。一直到這幾年,隨著許多前輩的分享,及越來越多學校開設了商業分析學程,大家對資料分析整個流程有更深的認識,也越來越多人會學習 SQL。

我是經濟背景,剛踏入數據分析師,其實也完全沒碰過資料庫,都是自學的,在SQL自學-這過程中,我覺得:不難啊,滿簡單的。但真實工作開展中,我還是會在「取數」的過程卡住很久,而現在帶新人時,面試時我也都考過他們基本能力,但到實際工作中,還是有點慘不忍睹

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

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

落差一、只是在學語句,無法靈活運用

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

sql w3

落差二、案例缺乏商業場景

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

落差三、數據量太小,無法訓練“數據敏感度”

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

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

sql小數據

落差四、實操環境的不足

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

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

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

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

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

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

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

<插播小廣告> 因此我自己寫的hive內容跟作業,也一直在思考怎麼設計出滿常用到且比較複雜的例子,並且設計出通用的數據表,而且絕對不是幾百筆數據,怎麼說也要10萬級別起跳的數據量才有感。另外為了不是紙上談兵,也在開發一個可以真正操作的大數據平台。入門數據分析,掌握Hive SQL取數能力】已經上架Hahow,如果你有興趣可以點擊此購買或查看詳細介紹!

想更認識 Hive SQL 嗎?

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

歡迎分享你的心得

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

X
Scroll to Top