看板 Soft_Job 關於我們 聯絡資訊
※ [本文轉錄自 studyabroad 看板 #1KsDZyDQ ] 作者: dryman (dryman) 看板: studyabroad 標題: Re: [問題] 想走Big Data的選系困擾 時間: Mon Feb 9 23:57:46 2015 我現在也是在big data業界工作(OpenX)處理的是廣告實時競價 去除重複資料後,一分鐘的資料量也有25GB 先講兩個結論: 1. CS 是最接近的科系,但也有很多東西是CS沒有教,你要自己學的 這其實不意外。例如,怎麼把程式寫到production level 在業界明明就是非常需要的能力,但沒什麼研究價值 2. Process data in large scale != data science * * * 很多人以為big data就是要做大型數據分析 不過如果你沒有一個能靠數據吃飯的business model,你連資料都養不起 OpenX的資料量還不算是非常大的,但也是要700台來裝這些數據 資料甚至還不能留太久 我們的主要業務不是在分析數據,而是將數據處理成報表,才能跟客戶收錢 這種資料工程師要做的事情可以簡化成三件事: 1. 去除無效或重複資料 2. 將相關的資料join 3. join好的資料非常大,類似傳統資料庫的hyper cube 從這樣的資料再去切出各種角度的報表 英文比較好表達這個:aggregation 把這三件事做到好,才是一家公司有辦法養大數據的基礎 很不幸的,沒有學校會想要教你這些,因為這實在是沒有學術價值啊 * * * 資料工程要做的三件事雖然目標簡單,但要做到large scale一點也不直觀 雖然現在hadoop ecosystem上層工具很多,但我建議還是要能做到map-reduce API的程度 這裡面最困難的還是去除無效資料 如何篩選相關資料,然後送進同一台機器兩兩比對是否重複或無效 這種邏輯不直接寫到Map-Reduce API我還真無法想像該怎麼寫 另外跟金錢相關的資料,常常需要在currency間轉換 currency的轉換要留到最後一步做,太早變成浮點數,數據會在數次aggregation後失真 這種我們需要客製的資料結構來存,用上層工具(hive/pig)來做也是相當困難 這些東西該怎麼學?我是自己學的 買一本hadoop definitive guide,全本讀完 書裡面很多東西沒涵蓋到,就把API先瀏覽過一遍,才會發現很多有用的小工具 到最後就是在source code裡面挖東西了 我在寫自己的input/output format時,就是從它的source code裡面找靈感 學習過程也不是學完再做東西,都是一邊學一邊做 可以先從最簡單的目標開始寫: 1. 如何寫一個select count(1) from... group by xxx 進階一點select sum, avg, ... from ... group by xxx 2. 如何寫one-to-many join, many-to-many join 3. 如何寫「去除一分鐘內的重複資料」的map-reduce job * * * 以上是比較基礎的資料工程師要做的工作 更進階的會需要更多深入的資料結構及演算法 題目也會變得更靈活 例如,比起sort全部的資料,只找最高的一百個 用map-reduce加上自訂的資料結構效能可以比原本快非常多倍 或是如果你只在乎一個query最後會產生多少行,而且只在乎大略的數字 那你可以使用hyperloglog的演算法來做 又或是你如果想預先知道一個query會不會data skew 可以使用count min sketch 我自己的工作幾乎沒有資料分析 但需要很多技巧來將資料處理的演算法變得scalable 這也是big data工作的一種型態,我個人覺得應該是比資料分析還缺人啦 至少就我們公司來說,有太多PhD來應徵data science,而合格的data engineer 幾乎找不到... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 108.205.154.164 ※ 文章網址: https://www.ptt.cc/bbs/studyabroad/M.1423497468.A.35A.html
leo80042: 頭推 02/10 00:00
shenerica: 原po專業 02/10 00:13
Tyrannus: thanks for sharing :) 02/10 00:13
BigShotBob: 這篇專業 現在這種處理方法幾乎都要另外開一門課 02/10 00:15
BigShotBob: 可參考CMU 10605 非常實用 有影片可以看 02/10 00:17
branburg: 專業推 的確CS很多技術也很多要需自學! 02/10 01:22
branburg: 資料分析也許需從Orthogonality層面著手~ 02/10 01:36
※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: TonyQ (61.231.167.14), 02/10/2015 06:49:50
TonyQ: 經原作者同意轉載。 02/10 06:50
demo1945: 專業 02/10 07:56
jammy50605: 推 02/10 08:20
kofi0916: 謝分享 02/10 08:22
y2468101216: 推 但看不太懂 02/10 09:01
gn01838335: 學到一些知識 02/10 09:02
kenshin528: 分析 演算法 跟程式化真的是不同領域的訓練 02/10 09:31
KASUGAOSAKA: 中肯 02/10 09:36
gmoz: 好文 02/10 10:27
xtxml: 推,雖然不是這個領域的,但受益良多,感謝:) 02/10 10:34
guanting886: 推一個 02/10 11:04
dryman: 希望能用這篇文章拋磚引玉 :) 02/10 11:15
Fracon: 謝謝分享! 02/10 11:25
vn509942: 感謝分享 02/10 12:06
kspacey: 推 02/10 12:25
nfsong: 推 02/10 12:46
cpper: 用Impala下SQL Query一次解決 select xx from yy group oo 02/10 12:54
cpper: 所以沒想過寫map reduce code, 總覺得麻煩 02/10 12:55
a7904120: 推 雖然看不太懂 02/10 13:02
drajan: impala只是ad hoc query而已 沒有用到map reduce吧 02/10 13:40
qrtt1: Big Data Now,每年都出一本。可以看看概念,有免費或是 02/10 13:48
qrtt1: kindle 超便宜版本 http://oreil.ly/177rZWF 02/10 13:49
dryman: 我家資料就算已經aggregate過,還是塞不進impala...XD 02/10 14:53
kenshin528: 歡迎使用spark sql XD 02/10 15:51
popcorny: 推 02/10 15:59
gmoz: impala跟MR 的用途還是有差啦 要做一些複雜的應用impala不夠 02/10 16:21
easybaby: 02/10 22:53
AmosYang: 推分享 02/11 20:49
heerowei0802: 推分享 02/12 10:58
MOONY135: 跟我目前做的很相似 還留在產報表 還沒進入分析 02/12 22:58
viper9709: 推分享 02/12 23:41
roger00: 推分享 02/15 20:02