今天來跟大家說說身為資料分析者,你應該學習那些技能,以及這些技能大約需要花多久時間可以習得。首先,讓我們先來看看,資料的分析流程,從以下流程中,我將逐一介紹,每一個階段你可會需要使用到的技能。
要玩轉資料,首先你必須取得資料。誠然,在練習的過程中,你可以很輕易地取得各種各樣的資料,如Kaggle上任一比賽的資料就是很好的練習工具。但是如果很不幸的你想解決的問題,無法輕易地找到資料,那麼你可能需要一些技巧來蒐集資料,如建構網站蒐集使用者資料、網路爬蟲汲取資料或是任何感應裝置接入資料。當然這一切的一切,都取決於你想解決的問題以及你對各種技術的興趣,不過因為時間(反正在這邊的大家對架網站也不會太有興趣喇ㄎㄎ)以及個人能力因素(我完全不懂IOT...囧),接下來的文章僅針對網路爬蟲做介紹,除了基礎教學之外,也會放一些進階的技巧。
資料庫又分為SQL(唸西闊)關聯式資料庫以及NOSQL(Not Only SQL)非關聯式資料庫。關聯式資料庫講求的是資料的管理功能,因為有建立關聯的關係,所以可以透過更改源頭的table自動更新關聯過去的Table,相關的知識可以搜索資料庫正規化,目前關聯式資料庫最大的供應商為Oracle SQL及MS SQL,不過因為其價格並非凡人可以隨意接進,所以目前無產階級最常使用的關聯是資料庫為MySQL(不過也已經被Oracle買下,不知何年何月會開始收錢)。另外,聽說也滿多人在使用PostgreSQL,似乎是因為全文檢索的功能很好用,如果有相關需求也可以可考慮。
非關聯式資料庫則不需經過正規化,直接將所有的資料用一張表儲存起來。如果大家對詳細的關聯式跟非關聯式資料庫的差異有興趣,直接Google即可,會有很多文章滿足你求知的慾望的,鳩咪。至於非關聯式資料庫的種類,iThome有文章寫得很清楚,不過我個人只有使用過MongoDB以及Elasticsearch,MongoDB我覺得就已經滿好用,如果只是要做初步的資料分析,絕對已經足夠,而之所以會關注到Elasticsearch,則是因為其全文檢索功能非常完備,不過因為它網路上的server(Elasticsearch Cloud)比較貴,之後就沒有繼續使用了。
而在接下來的文章中,由於我們分析資料的特性,不太需要使用到資料管理的功能,所以只會使用非關聯式資料庫,並以MongoDB作為示範、mlab作為雲端MongoDB的server,然後透過Python與其互動(新增、刪除以及查詢)。
做上面那圖太累了,明日待續....