㈠ 什麼是大數據時代
大數據時代
(巨量資料(IT行業術語))
編輯
最早提出「大數據」時代到來的是全球知名咨詢公司麥肯錫,麥肯錫稱:「數據,已經滲透到當今每一個行業和業務職能領域,成為重要的生產因素。人們對於海量數據的挖掘和運用,預示著新一波生產率增長和消費者盈餘浪潮的到來。」 「大數據」在物理學、生物學、環境生態學等領域以及軍事、金融、通訊等行業存在已有時日,卻因為近年來互聯網和信息行業的發展而引起人們關注。
中文名
大數據時代
外文名
Big data
提出者
麥肯錫
類 屬
科技名詞
目錄
1 產生背景
2 影響
▪ 大數據
▪ 大數據的精髓
▪ 數據價值
▪ 可視化
3 特徵
4 案例分析
5 產業崛起
6 提供依據
7 應對措施
產生背景
編輯
進入2012年,大數據(big data)一詞越來越多地被提及,人們用它來描述和定義信息爆炸時代產生的海量數
大數據時代來臨
據,並命名與之相關的技術發展與創新。它已經上過《紐約時報》《華爾街日報》的專欄封面,進入美國白宮官網的新聞,現身在國內一些互聯網主題的講座沙龍中,甚至被嗅覺靈敏的國金證券、國泰君安、銀河證券等寫進了投資推薦報告。[1]
數據正在迅速膨脹並變大,它決定著企業的未來發展,雖然很多企業可能並沒有意識到數據爆炸性增長帶來問題的隱患,但是隨著時間的推移,人們將越來越多的意識到數據對企業的重要性。
正如《紐約時報》2012年2月的一篇專欄中所稱,「大數據」時代已經降臨,在商業、經濟及其他領域中,決策將日益基於數據和分析而作出,而並非基於經驗和直覺。
哈佛大學社會學教授加里·金說:「這是一場革命,龐大的數據資源使得各個領域開始了量化進程,無論學術界、商界還是政府,所有領域都將開始這種進程。」[2]
影響
編輯
大數據
現在的社會是一個高速發展的社會,科技發達,信息流通,人們之間的交流越來越密切,生活也越來越方便,大數據就是這個高科技時代的產物。[3]
隨著雲時代的來臨,大數據(Big data)也吸引了越來越多的關注。大數據(Big data)通常用來形容一個公司創造的大量非結構化和半結構化數據,這些數據在下載到關系型資料庫用於分析時會花費過多時間和金錢。大數據分析常和雲計算聯繫到一起,因為實時的大型數據集分析需要像MapRece一樣的框架來向數十、數百或甚至數千的電腦分配工作。[2]
在現今的社會,大數據的應用越來越彰顯他的優勢,它佔領的領域也越來越大,電子商務、O2O、物流配送等,各種利用大數據進行發展的領域正在協助企業不斷地發展新業務,創新運營模式。有了大數據這個概念,對於消費者行為的判斷,產品銷售量的預測,精確的營銷范圍以及存貨的補給已經得到全面的改善與優化。[4]
「大數據」在互聯網行業指的是這樣一種現象:互聯網公司在日常運營中生成、累積的用戶網路行為數據。這些數據的規模是如此龐大,以至於不能用G或T來衡量。
大數據到底有多大?一組名為「互聯網上一天」的數據告訴我們,一天之中,互聯網產生的全部內容可以刻滿1.68億張DVD;發出的郵件有2940億封之多(相當於美國兩年的紙質信件數量);發出的社區帖子達200萬個(相當於《時代》雜志770年的文字量);賣出的手機為37.8萬台,高於全球每天出生的嬰兒數量37.1萬……[1]
截止到2012年,數據量已經從TB(1024GB=1TB)級別躍升到PB(1024TB=1PB)、EB(1024PB=1EB)乃至ZB(1024EB=1ZB)級別。國際數據公司(IDC)的研究結果表明,2008年全球產生的數據量為0.49ZB,2009年的數據量為0.8ZB,2010年增長為1.2ZB,2011年的數量更是高達1.82ZB,相當於全球每人產生200GB以上的數據。而到2012年為止,人類生產的所有印刷材料的數據量是200PB,全人類歷史上說過的所有話的數據量大約是5EB。IBM的研究稱,整個人類文明所獲得的全部數據中,有90%是過去兩年內產生的。而到了2020年,全世界所產生的數據規模將達到今天的44倍。[5] 每一天,全世界會上傳超過5億張圖片,每分鍾就有20小時時長的視頻被分享。然而,即使是人們每天創造的全部信息——包括語音通話、電子郵件和信息在內的各種通信,以及上傳的全部圖片、視頻與音樂,其信息量也無法匹及每一天所創造出的關於人們自身的數字信息量。
這樣的趨勢會持續下去。我們現在還處於所謂「物聯網」的最初級階段,而隨著技術成熟,我們的設備、交通工具和迅速發展的「可穿戴」科技將能互相連接與溝通。科技的進步已經使創造、捕捉和管理信息的成本降至2005年的六分之一,而從2005年起,用在硬體、軟體、人才及服務之上的商業投資也增長了整整50%,達到了4000億美元。[5]
大數據的精髓
大數據帶給我們的三個顛覆性觀念轉變:是全部數據,而不是隨機采樣;是大體方向,而不是精確制導;是相關關系,而不是因果關系。[6]
A.不是隨機樣本,而是全體數據:在大數據時代,我們可以分析更多的數據,有時候甚至可以處理和某個特別現象相關的所有數據,而不再依賴於隨機采樣(隨機采樣,以前我們通常把這看成是理所應當的限制,但高性能的數字技術讓我們意識到,這其實是一種人為限制);
B.不是精確性,而是混雜性:研究數據如此之多,以至於我們不再熱衷於追求精確度;之前需要分析的數據很少,所以我們必須盡可能精確地量化我們的記錄,隨著規模的擴大,對精確度的痴迷將減弱;擁有了大數據,我們不再需要對一個現象刨根問底,只要掌握了大體的發展方向即可,適當忽略微觀層面上的精確度,會讓我們在宏觀層面擁有更好的洞察力;
C.不是因果關系,而是相關關系:我們不再熱衷於找因果關系,尋找因果關系是人類長久以來的習慣,在大數據時代,我們無須再緊盯事物之間的因果關系,而應該尋找事物之間的相關關系;相關關系也許不能准確地告訴我們某件事情為何會發生,但是它會提醒我們這件事情正在發生。
數據價值
大數據時代,什麼最貴?
十年前,葛大爺曾說過,「21世紀什麼最貴?」——「人才」,深以為然。只是,十年後的今天,大數據時代也帶來了身價不斷翻番的各種數據。由於急速拓展的網路帶寬以及各種穿戴設備所帶來的大量數據,數據的增長從未停歇,甚至呈井噴式增長。[7]
一分鍾內,微博推特上新發的數據量超過10萬;社交網路「臉譜」的瀏覽量超過600萬……
這些龐大數字,意味著什麼?
它意味著,一種全新的致富手段也許就擺在面前,它的價值堪比石油和黃金。
事實上,當你仍然在把微博等社交平台當作抒情或者發議論的工具時,華爾街的斂財高手們卻正在挖掘這些互聯網的「數據財富」,先人一步用其預判市場走勢,而且取得了不俗的收益。
讓我們一起來看看——他們是怎麼做的。
這些數據都能幹啥。具體有六大價值:
●1、華爾街根據民眾情緒拋售股票;
●2、對沖基金依據購物網站的顧客評論,分析企業產品銷售狀況;
●3、銀行根據求職網站的崗位數量,推斷就業率;
●4、投資機構搜集並分析上市企業聲明,從中尋找破產的蛛絲馬跡;
●5、美國疾病控制和預防中心依據網民搜索,分析全球范圍內流感等病疫的傳播狀況;
●6、美國總統奧巴馬的競選團隊依據選民的微博,實時分析選民對總統競選人的喜好。[1]
可視化
「數據是新的石油。」亞馬遜前任首席科學家Andreas Weigend說。Instagram以10億美元出售之時,成立於1881年的世界最大影像產品及服務商柯達正申請破產。
大數據是如此重要,以至於其獲取、儲存、搜索、共享、分析,乃至可視化地呈現,都成為了當前重要的研究課題[1] 。
「當時時變幻的、海量的數據出現在眼前,是怎樣一幅壯觀的景象?在後台注視著這一切,會不會有接近上帝俯視人間星火的感覺?」
這個問題我曾請教過劉建國,中國著名的搜索引擎專家。劉曾主持開發過國內第一個大規模中英文搜索引擎系統「天網」。
要知道,劉建國曾任至網路的首席技術官,在這樣一家每天需應對網民各種搜索請求1.7億次(2013年約為8.77億次)的網站中,如果只是在後台靜靜端坐,可能片刻都不能安心吧。網路果然在提供搜索服務之外,逐漸增添了網路指數,後又建立了基於網民搜索數據的重要產品「貼吧」及網路統計產品等。
劉建國沒有直接回答這個問題,他想了很久,似乎陷入了回憶,嘴角的笑容含著詭秘。
倒是有公司已經在大數據中有接近上帝俯視的感覺,美國洛杉磯就有企業宣稱,他們將全球夜景的歷史數據建立模型,在過濾掉波動之後,做出了投資房地產和消費的研究報告。
在數據可視化呈現方面,我最新接收到的故事是,一位在美國思科物流部門工作的朋友,很聰明的印度裔小夥子,被Facebook高價挖角,進入其數據研究小組。他後來驚訝地發現,裡面全是來自物流企業、供應鏈方面的技術人員和專家,「Facebook想知道,能不能用物流的角度和流程的方式,分析用戶的路徑和行為。」
特徵
編輯
數據量大(Volume)
第一個特徵是數據量大。大數據的起始計量單位至少是P(1000個T)、E(100萬個T)或Z(10億個T)。
類型繁多(Variety)
第二個特徵是數據類型繁多。包括網路日誌、音頻、視頻、圖片、地理位置信息等等,多類型的數據對數據的處理能力提出了更高的要求。
價值密度低(Value)
第三個特徵是數據價值密度相對較低。如隨著物聯網的廣泛應用,信息感知無處不在,信息海量,但價值密度較低,如何通過強大的機器演算法更迅速地完成數據的價值「提純」,是大數據時代亟待解決的難題。
速度快、時效高(Velocity)
第四個特徵是處理速度快,時效性要求高。這是大數據區分於傳統數據挖掘最顯著的特徵。
既有的技術架構和路線,已經無法高效處理如此海量的數據,而對於相關組織來說,如果投入巨大採集的信息無法通過及時處理反饋有效信息,那將是得不償失的。可以說,大數據時代對人類的數據駕馭能力提出了新的挑戰,也為人們獲得更為深刻、全面的洞察能力提供了前所未有的空間與潛力。[2]
案例分析
編輯
個案一
你開心他就買你焦慮他就拋[2]
華爾街「德溫特資本市場」公司首席執行官保羅·霍廷每天的工作之一,就是利用電腦程序分析全球3.4億微博賬戶的留言,進而判斷民眾情緒,再以「1」到「50」進行打分。根據打分結果,霍廷再決定如何處理手中數以百萬美元計的股票。
霍廷的判斷原則很簡單:如果所有人似乎都高興,那就買入;如果大家的焦慮情緒上升,那就拋售。
這一招收效顯著——當年第一季度,霍廷的公司獲得了7%的收益率。
個案二
國際商用機器公司(IBM)估測,這些「數據」值錢的地方主要在於時效。對於片刻便能定輸贏的華爾街,這一時效至關重要。曾經,華爾街2%的企業搜集微博等平台的「非正式」數據;如今,接近半數企業採用了這種手段。
●「社會流動」創業公司在「大數據」行業生機勃勃,和微博推特是合作夥伴。它分析數據,告訴廣告商什麼是正確的時間,誰是正確的用戶,什麼是應該發表的正確內容,備受廣告商熱愛。
●通過喬希·詹姆斯的Omniture(著名的網頁流量分析工具)公司,你可以知道有多少人訪問你的網站,以及他們呆了多長時間——這些數據對於任何企業來說都至關重要。詹姆斯把公司賣掉,進賬18億美元。
●微軟專家吉拉德喜歡把這些「大數據」結果可視化:他把客戶請到辦公室,將包含這些公司的數據圖譜展現出來——有些是普通的時間軸,有些像蒲公英,有些則是鋪滿整個畫面的泡泡,泡泡中顯示這些客戶的粉絲正在談論什麼話題。
●「臉譜」數據分析師傑弗遜的工作就是搭建數據分析模型,弄清楚用戶點擊廣告的動機和方式。
處理和分析工具
用於分析大數據的工具主要有開源與商用兩個生態圈。
開源大數據生態圈:
1、Hadoop HDFS、HadoopMapRece, HBase、Hive 漸次誕生,早期Hadoop生態圈逐步形成。
2、. Hypertable是另類。它存在於Hadoop生態圈之外,但也曾經有一些用戶。
3、NoSQL,membase、MongoDb
商用大數據生態圈:
1、一體機資料庫/數據倉庫:IBM PureData(Netezza), OracleExadata, SAP Hana等等。
2、數據倉庫:TeradataAsterData, EMC GreenPlum, HPVertica 等等。
3、數據集市:QlikView、 Tableau 、 以及國內的Yonghong Data Mart 。
產業崛起
編輯
越來越多的政府、企業等機構開始意識到數據正在成為組織最重要的資產,數據分析能力正在成為組織的核心競爭力。具體有以下三大案例:
1、2012年3月22日,奧巴馬政府宣布投資2億美元拉動大數據相關產業發展,將「大數據戰略」上升為國家意志。奧巴馬政府將數據定義為「未來的新石油」,並表示一個國家擁有數據的規模、活性及解釋運用的能力將成為綜合國力的重要組成部分,未來,對數據的佔有和控制甚至將成為陸權、海權、空權之外的另一種國家核心資產。
2、聯合國也在2012年發布了大數據政務白皮書,指出大數據對於聯合國和各國政府來說是一個歷史性的機遇,人們如今可以使用極為豐富的數據資源,來對社會經濟進行前所未有的實時分析,幫助政府更好地響應社會和經濟運行。
3、而最為積極的還是眾多的IT企業。麥肯錫在一份名為《大數據,是下一輪創新、競爭和生產力的前沿》的專題研究報告中提出,「對於企業來說,海量數據的運用將成為未來競爭和增長的基礎」,該報告在業界引起廣泛反響。
IBM則提出,上一個十年,他們拋棄了PC,成功轉向了軟體和服務,而這次將遠離服務與咨詢,更多地專注於因大數據分析軟體而帶來的全新業務增長點。IBM執行總裁羅睿蘭認為,「數據將成為一切行業當中決定勝負的根本因素,最終數據將成為人類至關重要的自然資源。」
在國內,網路已經致力於開發自己的大數據處理和存儲系統;騰訊也提出2013年已經到了數據化運營的黃金時期,如何整合這些數據成為未來的關鍵任務。
事實上,自2009年以來,有關「大數據」 主題的並購案層出不窮,且並購數量和規模呈逐步上升的態勢。其中,Oracle對Sun、惠普對Autonomy兩大並購案總金額高達176億美元,大數據的產業價值由此可見一斑。[1-2]
提供依據
編輯
大數據是信息通信技術發展積累至今,按照自身技術發展邏輯,從提高生產效率向更高級智能階段的自然生長。無處不在的信息感知和採集終端為我們採集了海量的數據,而以雲計算為代表的計算技術的不斷進步,為我們提供了強大的計算能力,這就圍繞個人以及組織的行為構建起了一個與物質世界相平行的數字世界[1-2] 。
大數據雖然孕育於信息通信技術的日漸普遍和成熟,但它對社會經濟生活產生的影響絕不限於技術層面,更本質上,它是為我們看待世界提供了一種全新的方法,即決策行為將日益基於數據分析做出,而不是像過去更多憑借經驗和直覺做出。
事實上,大數據的影響並不僅僅限於信息通信產業,而是正在「吞噬」和重構很多傳統行業,廣泛運用數據分析手段管理和優化運營的公司其實質都是一個數據公司。麥當勞、肯德基以及蘋果公司等旗艦專賣店的位置都是建立在數據分析基礎之上的精準選址。而在零售業中,數據分析的技術與手段更是得到廣泛的應用,傳統企業如沃爾瑪通過數據挖掘重塑並優化供應鏈,新崛起的電商如卓越亞馬遜、淘寶等則通過對海量數據的掌握和分析,為用戶提供更加專業化和個性化的服務。
最讓人吃驚的例子是,社交媒體監測平台DataSift監測了Facebook(臉譜) IPO當天Twitter上的情感傾向與Facebook股價波動的關聯。在Facebook開盤前Twitter上的情感逐漸轉向負面,25分鍾之後Facebook的股價便開始下跌。而當Twitter上的情感轉向正面時,Facebook股價在8分鍾之後也開始了回彈。最終當股市接近收盤、Twitter上的情感轉向負面時,10分鍾後Facebook的股價又開始下跌。最終的結論是:Twitter上每一次情感傾向的轉向都會影響Facebook股價的波動。
這僅僅只是基於社交網路產生的大數據「預見未來」的眾多案例之一,此外還有谷歌通過網民搜索行為預測流感爆發等例子。不僅在商業方面,大數據在社會建設方面的作為同樣令人驚嘆,智能電網、智慧交通、智慧醫療、智慧環保、智慧城市等的蓬勃興起,都與大數據技術與應用的發展息息相關。
「大數據」可能帶來的巨大價值正漸漸被人們認可,它通過技術的創新與發展,以及數據的全面感知、收集、分析、共享,為人們提供了一種全新的看待世界的方法。更多地基於事實與數據做出決策,這樣的思維方式,可以預見,將推動一些習慣於靠「差不多」運行的社會發生巨大變革。
應對措施
編輯
一個好的企業應該未雨綢繆,從現在開始就應該著手准備,為企業的後期的數據收集和分析做好准備,企業可以從下面六個方面著手,這樣當面臨鋪天蓋地的大數據的時候,以確保企業能夠快速發展,具體為下面六點。
目標
幾乎每個組織都可能有源源不斷的數據需要收集,無論是社交網路還是車間感測器設備,而且每個組織都有大量的數據需要處理,IT人員需要了解自己企業運營過程中都產生了什麼數據,以自己的數據為基準,確定數據的范圍。
准則
雖然每個企業都會產生大量數據,而且互不相同、多種多樣的,這就需要企業IT人員在現在開始收集確認什麼數據是企業業務需要的,找到最能反映企業業務情況的數據。
重新評估
大數據需要在伺服器和存儲設施中進行收集,並且大多數的企業信息管理體系結構將會發生重要大變化,IT經理則需要准備擴大他們的系統,以解決數據的不斷擴大,IT經理要了解公司現有IT設施的情況,以組建處理大數據的設施為導向,避免一些不必要的設備的購買。
重視大數據技術
大數據是最近幾年才興起的詞語,而並不是所有的IT人員對大數據都非常了解,例如如今的Hadoop,MapRece,NoSQL等技術都是2013年剛興起的技術,企業IT人員要多關注這方面的技術和工具,以確保將來能夠面對大數據的時候做出正確的決定。
培訓企業的員工
大多數企業最缺乏的是人才,而當大數據到臨的時候,企業將會缺少這方面的採集收集分析方面的人才,對於一些公司,特別是那種人比較少的公司,工作人員面臨大數據將是一種挑戰,企業要在平時的時候多對員工進行這方面的培訓,以確保在大數據到來時,員工也能適應相關的工作。
培養三種能力
Teradata大中華區首席執行官辛兒倫對新浪科技表示,隨著大數據時代的到來,企業應該在內部培養三種能力。第一,整合企業數據的能力;第二,探索數據背後價值和制定精確行動綱領的能力;第三,進行精確快速實時行動的能力。
做到上面的幾點,當大數據時代來臨的時候,面臨大量數據將不是束手無策,而是成竹在胸,而從數據中得到的好處也將促進企業快速發展。
望採納,謝謝
㈡ 華為大數據解決方案是什麼
大數據解決方案的邏輯層
邏輯層提供了一種組織您的組件的方式。這些層提供了一種方法來組織執行特定功能的組件。這些層只是邏輯層;這並不意味著支持每層的功能在獨立的機器或獨立的進程上運行。大數據解決方案通常由以下邏輯層組成:
1、大數據來源
2、數據改動 (massaging) 和存儲層
3、分析層
4、使用層
結束語
對開發人員而言,層提供了一種對大數據解決方案必須執行的功能進行分類的途徑,為組織建議必需執行這些功能所需的代碼。但是,對於想要從大數據獲取洞察的業務用戶,考慮大數據需求和范圍通常會有所幫助。原子模式解決了訪問、處理、存儲和使用大數據的機制,為業務用戶提供了一種解決需求和范圍的途徑。下一篇文章將介紹用於此用途的原子模式。
㈢ 如何通過雪球查詢股票之前的變動狀況
一. 雪球公司介紹
雪球 聰明的投資者都在這里。
web 1.0:新聞資訊,股價信息,K線圖
web 2.0:SNS 訂閱,分享,聊天
web 3.0:移動 APP,交易閉環
雪球現在員工數還不到100,其中技術人員佔一半。去年9月C輪融資4kw刀。我們現在的技術棧由下列組件組成:Java,Scala,Akka,Finagle,Nodejs,Docker ,Hadoop。我們當前是租用IDC機房自建私有雲,正在往「公私混合雲」方向發展。
在雪球上,用戶可以獲取滬深港美2w+股票的新聞信息,股價變化情況,也可以獲取債券,期貨,基金,比特幣,信託,理財,私募等等理財產品的各類信息,也可以關注雪球用戶建立的百萬組合,訂閱它們的實時調倉信息,還可以關注雪球大V。雪球當前有百萬日活躍用戶,每天有4億的API調用。App Store 財務免費榜第 18 名。歷史上曾排到財務第二,總免費榜第 19。
二. 雪球當前總體架構
作為一個典型的移動互聯網創業公司,雪球的總體架構也是非常典型的設計:
最上層是三個端:web端,android端和iOS端。流量比例大約為 2:4:4 。web3.0 的交易功能,在 web 端並不提供。
接入層以及下面的幾個層,都在我們的自建機房內部。雪球當前只部署了一個機房,還屬於單機房時代。正在進行「私有雲+公有雲混合部署」方案推進過程中。
我們當前使用 nodejs 作為 web 端模板引擎。nodejs 模塊與android 和 ios 的 app 模塊一起屬於大前端團隊負責。
再往下是位於 nginx 後面的 api 模塊。跟 linkedin 的 leo 和微博的 v4 一樣,雪球也有一個遺留的大一統系統,名字就叫 snowball 。最初,所有的邏輯都在 snowball 中實現的。後來慢慢的拆出去了很多 rpc 服務,再後來慢慢的拆出去了一些 http api 做成了獨立業務,但即便如此,snowball 仍然是雪球系統中最大的一個部署單元。
在需要性能的地方,我們使用 netty 搭建了一些獨立的介面,比如 quoto server,是用來提供開盤期間每秒一次的股價查詢服務,單機 qps 5w+,這個一會再細說;而 IM 服務,起初設計里是用來提供聊天服務,而現在,它最大的用途是提供一個可靠的 push 通道,提供 5w/s 的消息下發容量,這個也一會再細說。
雪球的服務化拆分及治理採用 twitter 開源的 finagle rpc 框架,並在上面進行了一些二次開發和定製。定製的功能主要集中在 access log 增強,和 fail fast,fail over 策略及降級開關等。 finagle 的實現比較復雜,debug 和二次開發的門檻較高,團隊內部對此也進行了一些討論。
雪球的業務比較復雜,在服務層中,大致可以分為幾類:第一類是web1.0,2.0 及基礎服務,我們稱為社區,包括用戶,帖子,新聞,股價,搜索等等,類比對象就是新浪財經門戶+微博;第二類是組合及推薦,主要提供股票投資策略的展示和建議,類比對象是美國的motif;第三類是通道,類似股市中的「支付寶」,接入多家券商,提供瞬間開戶,一鍵下單等等各種方便操作的功能。
雪球的業務實現中,包含很多非同步計算邏輯,比如搜索建索引,比如股票漲跌停發通知,比如組合收益計算等等,為此,我們設計了一個獨立的 Thread/Task 模塊,方便管理所有的後台計算任務。但隨著這些 task 越來越多,邏輯差異越來越大,一個統一的模塊並不是總是最佳的方案,所以,我們又把它拆成了兩大類:流式的,和批量式的。
雪球的推薦體系包括組合推薦「買什麼」和個性化推薦。我們最近正在重新梳理我們的大數據體系,這個感興趣的話可以單聊。
最下面是基礎設施層。雪球基礎設施層包括:redis,mysql,mq,zk,hdfs,以及容器 docker。
線上服務之外,我們的開發及後台設施也很典型:gitlab開發,jenkins打包,zabbix 監控系統向 openfalcon 遷移,redimine向confluence遷移,jira,以及內部開發的 skiing 後台管理系統。
** 三. 雪球架構優化歷程**
首先描述一下標題中的「股市動盪」定語修飾詞吧:
上證指數從年初的3000點半年時間漲到了5000多,6月12號達到最高點5200點,然後就急轉直下,最大單日跌幅 8.48%,一路跌回4000點以下。最近一周都在3900多徘徊。
3月最後一周,A股開戶 166萬戶,超過歷史最高紀錄 2007年5月第二周165萬戶。
4月份,證監會宣布A股支持單用戶開設多賬戶。
6月底,證金公司代表國家隊入場救市。
7月份,證監會宣布嚴打場外配資。
中國好聲音廣告第一晚,帶來超過平時峰值200倍的注冊量
挑戰:小 VS 大:
小:小公司的體量,團隊小,機器規模小
大:堪比大公司的業務線數量,業務復雜度,瞬間峰值沖擊
雪球的業務線 = 1個新浪財經 + 1 個微博 + 1 個 motif + 1 個大智慧/同花順。由於基數小,API調用瞬間峰值大約為平時峰值的 30+ 倍。
挑戰:快速增長,移動互聯網 + 金融,風口,A股大盤劇烈波動。
首先,在app端,在我們核心業務從 web2.0 sns 向 3.0 移動交易閉環進化的過程中,我們開發了一個自己的 hybrid 框架:本地原生框架,加離線 h5 頁面,以此來支撐我們的快速業務迭代。當前,雪球前端可以做到 2 周一個版本,且同時並行推進 3 個版本:一個在 app store 等待審核上線,一個在內測或公測,一個在開發。我們的前端架構師孟祥宇在今年的 wot 上有一個關於這方面的詳細分享,有興趣的可以稍後再深入了解。
雪球App實踐—構建靈活、可靠的Hybrid框架 http://wot.51cto.com/2015mobile/ http://down.51cto.com/data/2080769
另外,為了保障服務的可用性,我們做了一系列的「端到端服務質量監控」。感興趣的可以搜索我今年4月份在環信SM meetup上做的分享《移動時代端到端的穩定性保障》。其中在 app 端,我們採用了一種代價最小的數據傳輸方案:對用戶的網路流量,電池等額外消耗幾乎為0
每個請求里帶上前一個請求的結果
succ or fail : 1 char
失敗原因:0 - 1 char
請求介面編號: 1 char
請求耗時:2 - 3 char
其它:網路制式,etc
炒股的人大多都會盯盤:即在開盤期間,開著一個web頁面或者app,實時的看股價的上下跳動。說到「實時」,美股港股當前都是流式的數據推送,但國內的A股,基本上都是每隔一段時間給出一份系統中所有股票現價的一個快照。這個時間間隔,理論上是3秒,實際上一般都在5秒左右。 交了錢簽了合同,雪球作為合作方就可以從交易所下屬的數據公司那裡拿到數據了,然後提供給自己的用戶使用。
剛才介紹總體架構圖的時候有提到 quote server ,說到這是需要性能的地方。
業務場景是這樣的,雪球上個人主頁,開盤期間,每秒輪詢一次當前用戶關注的股票價格變動情況。在內部,所有的組合收益計算,每隔一段時間需要獲取一下當前所有股票的實時價格。起初同時在線用戶不多,這個介面就是一個部署在 snowball 中的普通介面,股價信息被實時寫入 redis ,讀取的時候就從 redis 中讀。後來,A股大漲,snowball 抗不住了。於是我們就做了一個典型的優化:獨立 server + 本地內存存儲。開盤期間每次數據更新後,數據接收組件主動去更新 quote server 內存中的數據。 後續進一步優化方案是將這個介面以及相關的處理邏輯都遷移到公有雲上去。
對於那些不盯盤的人,最實用的功能就是股價提醒了。在雪球上,你除了可以關注用戶,還可以關注股票。如果你關注的某隻股票漲了或跌了,我們都可以非常及時的通知你。雪球上熱門股票擁有超過 50w 粉絲(招商銀行,蘇寧雲商)粉絲可以設置:當這支股票漲幅或跌幅超過 x%(默認7%)時提醒我。曾經連續3天,每天超過1000股跌停,證監會開了一個會,於是接下來2天超過1000股漲停
原來做法:
股票漲(跌)x%,掃一遍粉絲列表,過濾出所有符合條件的粉絲,推送消息
新做法:
預先建立索引,開盤期間載入內存
1%:uid1,uid2
2%:uid3,uid4,uid5
3%:uid6
問題:有時候嫌太及時了:頻繁跌停,打開跌停,再跌停,再打開。。。的時候
內部線上記錄:
4台機器。
單條消息延時 99% 小於 30秒。
下一步優化目標:99% 小於 10 秒
IM 系統最初的設計目標是為雪球上的用戶提供一個聊天的功能:
送達率第一
雪球IM:Netty + 自定義網路協議
Akka : 每個在線client一個actor
推模式:client 在線情況下使用推模式
多端同步:單賬號多端可登錄,並保持各種狀態同步
移動互聯網時代,除了微信qq以外的所有IM,都轉型成了推送通道,核心指標變成了瞬間峰值性能。原有架構很多地方都不太合適了。
優化:
分配更多資源:推送賬號actor池
精簡業務邏輯:重復消息只存id,實時提醒內容不推歷史設備,不更新非活躍設備的session列表等等
本地緩存:拉黑等無法精簡的業務邏輯遷移到本地緩存
優化代碼:非同步加密存儲,去除不合理的 akka 使用
akka這個解釋一下:akka 有一個自己的 log adapter,內部使用一個 actor 來處理所有的 log event stream 。當瞬間峰值到來的時候,這個 event stream 一下子就堵了上百萬條 log ,導致 gc 顛簸非常嚴重。最後的解決辦法是,繞過 akka 的 log adapter,直接使用 logback 的 appender
線上記錄:5w/s (主動限速)的推送持續 3 分鍾,p99 性能指標無明顯變化
7月10號我們在中國好聲音上做了3期廣告。在廣告播出之前,我們針對廣告可能帶來的對系統的沖擊進行了壓力測試,主要是新用戶注冊模塊,當時預估廣告播出期間2小時新注冊100萬
壓測發現 DB 成為瓶頸:
昵稱檢測 cache miss > 40%
昵稱禁用詞 where like 模糊查詢
手機號是否注冊 cache miss > 80%
注冊新用戶:5 insert
優化:
redis store:昵稱,手機號
本地存儲:昵稱禁用詞
業務流程優化:DB insert 操作同步改非同步
下一步優化計劃:
將 sns 系統中所有的上行操作都改成類似的非同步模式
介面調用時中只更新緩存,而且主動設置5分鍾過期,然後寫一個消息到 mq 隊列,隊列處理程序拿到消息再做其它耗時操作。
為了支持失敗重試,需要將主要的資源操作步驟都做成冪等。
前置模塊HA:
合作方合規要求:業務單元部署到合作方內網,用戶的敏感數據不允許離開進程內存
業務本身要求:業務單元本身為有狀態服務,業務單元高可用
解決方案:
使用 Hazelcast In-Memory Data Grid 的 replication map 在多個 jvm 實例之間做數據同步。
java 啟動參數加上 -XX:+DisableAttachMechanism -XX:-UsePerfData,禁止 jstack,jmap 等等 jdk 工具連接
關於前置模塊,其實還有很多很奇葩的故事,鑒於時間關系,這里就不展開講了。以後有機會可以當笑話給大家講。
組合凈值計算性能優化:
一支股票可能在超過20萬個組合里(南車北車中車,暴風科技)
離線計算,存儲計算後的結果
股價3秒變一次,涉及到這支股票的所有組合理論上也需要每 3 秒重新計算一次
大家可能會問,為什麼不用戶請求時,實時計算呢?這是因為「組合凈值」中還包括分紅送配,分股,送股,拆股,合股,現金,紅利等等,業務太過復雜,開發初期經常需要調整計算邏輯,所以就設計成後台離線計算模式了。當前正在改造,將分紅送配邏輯做成離線計算,股價組成的凈值實時計算。介面請求是,將實時計算部分和離線計算部分合並成最終結果。
實際上,我們的計算邏輯是比較低效的:循環遍歷所有的組合,對每個組合,獲取所有的價值數據,然後計算。完成一遍循環後,立即開始下一輪循環。
優化:
分級:活躍用戶的活躍組合,其它組合。
批量:拉取當前所有股票的現價到 JVM 內存里,這一輪的所有組合計算都用這一份股價快照。
關於這個話題的更詳細內容,感興趣的可以參考雪球組合業務總監張岩楓在今年的 arch summit 深圳大會上的分享:構建高可用的雪球投資組合系統技術實踐 http://sz2015.archsummit.com/speakers/201825
最後,我們還做了一些通用的架構和性能優化,包括jdk升級到8,開發了一個基於 zookeeper 的 config center 和開關降級系統
四. 聊聊關於架構優化的一些總結和感想
在各種場合經常聽說的架構優化,一般都是優化某一個具體的業務模塊,將性能優化到極致。而在雪球,我們做的架構優化更多的是從問題出發,解決實際問題,解決到可以接受的程度即可。可能大家看起來會覺得很凌亂,而且每個事情單獨拎出來好像都不是什麼大事。
我們在對一個大服務做架構優化時,一般是往深入的本質進行挖掘;當我們面對一堆架構各異的小服務時,「架構優化」的含義其實是有一些不一樣的。大部分時候,我們並不需要(也沒有辦法)深入到小服務的最底層進行優化,而是去掉或者優化原來明顯不合理的地方就可以了。
在快速迭代的創業公司,我們可能不會針對某一個服務做很完善的架構設計和代碼實現,當出現各種問題時,也不會去追求極致的優化,而是以解決瓶頸問題為先。
即使我們經歷過一回將 snowball 拆分服務化的過程,但當我們重新上一個新的業務時,我們依然選擇將它做成一個大一統的服務。只是這一次,我們會提前定義好每個模塊的 service 介面,為以後可能的服務化鋪好路。
在創業公司里,重寫是不能接受的;大的重構,從時間和人力投入上看,一般也是無法承擔的。而「裱糊匠」式做法,哪裡有性能問題就加機器,加緩存,加資料庫,有可用性問題就加重試,加log,出故障就加流程,加測試,這也不是雪球團隊工作方式。我們一般都採用最小改動的方式,即,准確定義問題,定位問題根源,找到問題本質,制定最佳方案,以最小的改動代價,將問題解決到可接受的范圍內。
我們現在正在所有的地方強推3個數據指標:qps,p99,error rate。每個技術人員對自己負責的服務,一定要有最基本的數據指標意識。數字,是發現問題,定位根源,找到本質的最重要的依賴條件。沒有之一。
我們的原則:保持技術棧的一致性和簡單性,有節制的嘗試新技術,保持所有線上服務依賴的技術可控,簡單來說,能 hold 住。
能用cache的地方絕不用db,能非同步的地方,絕不同步。俗稱的:吃一塹,長一智。
特事特辦:業務在發展,需求在變化,實現方式也需要跟著變化。簡單的來說:遺留系統的優化,最佳方案就是砍需求,呵呵。
㈣ 大數據在未來發展怎麼樣啊
大數據行業主要上市公司:易華錄(300212)、美亞柏科(300188)、海量數據(603138)、同有科技(300302)、海康威視(002415)、依米康(300249)、常山北明(000158)、思特奇(300608)、科創信息(300730)、神州泰岳(300002)、藍色游標(300058)等
本文核心數據:大數據應用領域分布 互聯網大數據、金融大數據、政府大數據市場規模 應用場景等
應用領域分布:互聯網、政府、金融為大數據主要應用領域
從具體行業應用來看,互聯網、政府、金融和電信引領大數據融合產業發展,合計規模佔比為77.6%。互聯網、金融和電信三個行業由於信息化水平高,研發力量雄厚,在業務數字化轉型方面處於領先地位;政府大數據成為近年來政府信息化建設的關鍵環節,與政府數據整合與開放共享、民生服務、社會治理、市場監管相關的應用需求持續火熱。此外,工業大數據和健康醫療大數據作為新興領域,數據量大、產業鏈延展性高,未來市場增長潛力大。
註:金融大數據市場規模為前瞻根據中國大數據市場規模與金融大數據所佔市場份額數據測算所得,僅供參考。