以下文章來源於資料指象 ,作者指象。
編者薦語:SQL, 就是廚子手中刀。快,能斬牛骨羊排;韌,能切涼皮熱乾麵兒。是做米其林三星大廚,還是街邊小攤豬肉榮,全看手藝。SQL 的最高境界,便是化無形為有形,以不變應萬變。
資料科學家,必備資料開發基本功。
妄談:高等統計、機器學習、神經網路….
不如腳踏實地從基本功開始,學點基本功和SQL一技之能。
1,指標度量:客戶想要什麼?
當我們接觸到一個數據開發的需求時,我們首先要知道客戶想要的是什麼?理清客戶的訴求,是我們評估可行性方案的第一步。第一步我們要清楚的是每一個數據指標。需要我們拆解出來:什麼是原子指標,複合指標以及衍生指標?這離不開對業務場景的理解。
原子指標:又叫基礎指標,指表達業務實體原子量化屬性的且不可再分的概念集合,如交易筆數、交易金額、交易使用者數等。
複合指標:指建立在基礎指標之上,透過一定運算規則形成的計算指標集合,如平均使用者交易額、資產負債率等。
衍生指標:又叫派生指標、指基礎指標或複合指標與維度成員、統計屬性、管理屬性等相結合產生的指標,如交易金額的完成值、計劃值,累計值、同比、環比、佔比等。
2,資料從哪裡來
資料的可獲取性取決於資料的來源,資料的來源也決定了我們處理的方式,資料開發最耗時的部分是資料抽取,即ETL中的E。需要我們對混雜的資料進行模型化,模型化之後我們就可以使用結構化查詢語句(SQL)去加工處理。
普通的文字檔案,我們可以藉助指令碼語言比如:AWK、Pig、R、Python;讓大家欣慰的是R中的sqldf包可以用SQL語句處理資料框;同樣Python中的Pysqldf包也可以使用SQL語句處理資料框。所以對於資料開發來說:SQL可以解決90%的工作。
業務系統結構化的資料表,一般是同步到HDFS做資料儲存,利用hive利器來處理ETL工作。
3,建倉:如何組織好大量的資料
資料倉庫建模是一個綜合性技術,需要使用到 ER 建模、關係建模、維度建模等技術。如何將來源多樣,格式混雜的資料透過ETL處理組織到一個高效能、低成本、高效率、高質量的數倉中,讓業務有資料看、用好數、有價值是資料開發最為重要的任務。
順便科普一下數倉主要的四種建模方式:
正規化建模(Third Normal Form,3NF)是在構建資料模型常用的一個方法,該方法主要由 Inmon 所提倡,主要解決關係型資料庫的資料儲存,利用的一種技術層面上的方法。目前在關係型資料庫中的建模方法,大部分採用的是三正規化建模,即透過實體關係(Entity Relationship,ER)模型描述企業業務。
維度建模是資料倉庫領域另一位大師 Ralph Kimball 所倡導,是資料倉庫工程領域最流行的數倉建模經典。維度建模以分析決策的需求出發構建模型,構建的資料模型為分析需求服務,因此它重點解決使用者如何更快速完成分析需求,同時還有較好的大規模複雜查詢的響應效能。維度建模是專門用於分析型資料庫、資料倉庫、資料集市建模的方法。
Data Vault模型是 Dan Linstedt 在 20 世紀 90 年代提出的,主要在對自然界中發現的複雜網路建模。
Anchor對Data Vault模型做了進一步規範化處理,初衷是設計一個高度可擴充套件的模型,其核心思想是所有的擴充套件只是新增而不是修改,因此將模型規範到6NF,基本變成了k-v結構化模型。
4,資料的應用
基於資料倉中的資料,我們可以開發下一步,提供一個滿足業務的資料應用。業務資料應用通常分為兩種:一是描述應用,二是推斷應用。
描述應用多為資料表格的展示及圖表的視覺化,支援業務的多維度分析主要用來描述業務現狀。推斷應用是資料的延展應用多為挖掘發現資訊沉澱為認知基於使用者偏好的推薦,風險預測等主要為了推動業務增長。
5,資料開發沒有邊界
資料開發其實是沒有邊界的,不僅可以寫出很風流的SQL,也懂數倉建模,更懂統計分析,很多開發同學對挖掘演算法也頗有研究。沒有邊界就沒有發展的限制,一切都是為了生活,技多不壓身,為業務和人民(幣)服務。積極滿足業務需求和質量需求。
業務需求是終端使用者作出決策所需的資訊內容。開發人員需要作出判斷,原始資料來源是否能夠解決使用者的業務需求,也可能會發現資料來源額外的能力,從而擴充套件終端使用者的決策支援能力。從更廣泛的意義上講,業務需求和資料來源的內容都是不斷髮生變化的,需要不斷地進行校驗和討論。
質量需求是事前調研清楚源資料真實情況。事中保證數倉表真實反映業務場景,對於資料質量有說明可解釋。事後對資料質量有監控,及時發現不符合預期的資料情況。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。各位也可以關注我的Facebook,按讚我的臉書並私訊「10」,送你十週入門數據分析電子書唷!期待你與我互動起來~