欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      EXCEL 數(shù)據(jù)處理與分析(共5篇)

      時(shí)間:2019-05-12 12:23:57下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《EXCEL 數(shù)據(jù)處理與分析》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《EXCEL 數(shù)據(jù)處理與分析》。

      第一篇:EXCEL 數(shù)據(jù)處理與分析

      EXCEL 數(shù)據(jù)處理與分析

      學(xué)院:計(jì)算機(jī)科學(xué)與工程學(xué)院

      學(xué)號(hào):1141906109

      姓名:繆忍忍

      2014年6月27日星期五

      關(guān)于EXCEL的歷史

      1982年

      Microsoft推出了它的第一款電子制表軟件-Multiplan,并在CP/M系統(tǒng)上

      Excel

      獲成功,但在MS-DOS系統(tǒng)上,Multiplan敗給了Lotus1-2-3(一款較早的電子表格軟件)。這個(gè)事件促使了Excel的誕生,正如Excel研發(fā)代號(hào)DougKlunder:做Lotus1-2-3能做的,并且做的更好。

      1983年9月

      比爾蓋茨召集了微軟最高的軟件專家在西雅圖的紅獅賓館召開了3天的“頭腦風(fēng)暴會(huì)議”。蓋茨宣布此次會(huì)議的宗旨就是盡快推出世界上最高速的電子

      表格軟件。

      1985年

      第一款Excel誕生,它只用于Mac系統(tǒng),中文譯名為“超越”。

      1987年

      第一款適用于Windows系統(tǒng)的Excel也產(chǎn)生了(與Windows環(huán)境直接捆綁,在Mac中的版本號(hào)為2.0)。Lotus1-2-3遲遲不能適用于Windows系統(tǒng),到了1988年,Excel的銷量超過了1-2-3,使得Microsoft站在了PC軟件商的領(lǐng)先位置。這次的事件,促成了軟件王國(guó)霸主的更替,Microsoft鞏固了它強(qiáng)有力的競(jìng)爭(zhēng)者地位,并從中找到了發(fā)展圖形軟件的方向。此后大約每?jī)赡?,Microsoft就會(huì)推出新的版本來擴(kuò)大自身的優(yōu)勢(shì),目前Excel的最新版本為11,也被稱作Microsofot Office Excel2003。

      早期,由于和另一家公司出售的名為Excel的軟件同名,Excel曾成為了商標(biāo)法的目標(biāo),經(jīng)過審判,Microsoft被要求在它的正式文件和法律文檔中以MicrosoftExcel來命名這個(gè)軟件。但是,隨著時(shí)間的過去,這個(gè)慣例也就逐漸消逝了。Excel雖然提供了大量的用戶界面特性,但它仍然保留了第一款電子制表軟件VisiCalc的特性:行、列組成單元格,數(shù)據(jù)、與數(shù)據(jù)相關(guān)的公式或者對(duì)其他單元格的絕對(duì)引用保存在單元格中。Excel是第一款允許用戶自定義界面的電子制表軟件(包括字體、文字屬性和單元格格式)。它還引進(jìn)了“智能重算”的功能,當(dāng)單元格數(shù)據(jù)變動(dòng)時(shí),只有與之相關(guān)的數(shù)據(jù)才會(huì)更新,而原先的制表軟件只能重算全部數(shù)據(jù)或者等待下一個(gè)指令。同時(shí),Excel還有強(qiáng)大的圖形功能。

      1993年

      Excel第一次被捆綁進(jìn)Microsoft Office中時(shí),Microsoft就對(duì)Microsoft Word和Microsoft Powerpoint的界面進(jìn)行了重新設(shè)計(jì),以適應(yīng)這款當(dāng)時(shí)極為流行的應(yīng)用程序。

      從1993年,Excel就開始支持Visual Basic for Applications(VBA).VBA是一款功能強(qiáng)大的工具,它使Excel形成了獨(dú)立的編程環(huán)境。使用VBA和宏,可以把手工步驟自動(dòng)化,VBA也允許創(chuàng)建窗體來獲得用戶輸入的信息。但是,VBA的自動(dòng)化功能也導(dǎo)致Excel成為宏病毒的攻擊目標(biāo)。

      1995年

      Excel被設(shè)計(jì)為給您所需要的工具。無論您是做一個(gè)簡(jiǎn)單的摘要、制作銷售趨勢(shì)圖,還是執(zhí)行高級(jí)分析,無論您正在做什么工作,Microsoft Excel能按照

      您希望的方式幫助您完成您的工作。

      1997年

      Excel97是Office97中一個(gè)重要程序,Excel一經(jīng)問世,就被認(rèn)為是當(dāng)前功能強(qiáng)大、使用方便的電子表格軟件。它可完成表格輸入、統(tǒng)計(jì)、分析等多項(xiàng)工作,可生成精美直觀的表格、圖表。為日常生活中處理各式各樣的表格提供了良好的工具。此外,因?yàn)镋xcel和Word同屬于Office套件,所以它們?cè)诖翱诮M成、格式設(shè)定、編輯操作等方面有很多相似之處,因此,在學(xué)習(xí)Excel時(shí)要注意應(yīng)用以

      前Word中已學(xué)過的知識(shí)。

      2001年

      利用Office XP中的電子表格程序--Microsoft Excel2002版,您可以快速創(chuàng)建、分析和共享重要的數(shù)據(jù)。諸如智能標(biāo)記和任務(wù)窗格的新功能簡(jiǎn)化了常見的任務(wù)。協(xié)作方面的增強(qiáng)則進(jìn)一步精簡(jiǎn)了信息審閱過程。新增的數(shù)據(jù)恢復(fù)功能確保您不會(huì)丟失自己的勞動(dòng)成果??伤⑿虏樵児δ苁鼓梢约蓙碜訵eb及任意其他

      數(shù)據(jù)源的活動(dòng)數(shù)據(jù)。

      2003年

      Excel2003使您能夠通過功能強(qiáng)大的工具將雜亂的數(shù)據(jù)組織成有用的Excel

      信息,然后分析、交流和共享所得到的結(jié)果。它能幫助您在團(tuán)隊(duì)中工作的更為出色,并能保護(hù)和控制對(duì)您工作的訪問。另外,您還可以使用符合行業(yè)標(biāo)準(zhǔn)的擴(kuò)展標(biāo)記語言(XML),更方便地連接到業(yè)務(wù)程序。

      2007年

      1.由于在2003中顯示活動(dòng)單元格的內(nèi)容時(shí),編輯欄常會(huì)越位,擋到列標(biāo)和工作表的內(nèi)容。特別是在編輯欄下面的單元格有一個(gè)很長(zhǎng)的公式,此時(shí)單元格內(nèi)容根本看不見,也無法雙擊、拖動(dòng)填充柄。而現(xiàn)在2007中以編輯欄上下箭頭(如果調(diào)整編輯欄高度,則出現(xiàn)流動(dòng)條)和折疊編輯欄按鈕完全解決此問題,不再占用編輯欄下方的空間。調(diào)整編輯欄的高度,有兩種方式——拖曳編輯欄底部的調(diào)整條,或雙擊調(diào)整條。調(diào)整編輯欄的高度時(shí),表格也隨之下移,因此表里的內(nèi)容不會(huì)再被覆蓋到,同時(shí)為這些操作添加了快捷鍵(CTRL+SHIFT+U),以便在編輯欄的單行和多行模式間快速切換。

      2.2003的名稱地址框是固定的,不夠用來顯示長(zhǎng)名稱。而2007則可以左右活動(dòng)的,有水平方向調(diào)整名稱框的功能。用戶可以通過左右拖曳名稱框的分隔符(下凹圓點(diǎn)),來調(diào)整寬度,使其能夠適應(yīng)長(zhǎng)名稱。

      3.2003編輯框內(nèi)的公式限制還是讓人惱火的,2007有幾個(gè)方面增加了改進(jìn)。

      1、公式長(zhǎng)度限制(字符),2003版限制:1K個(gè)字符,2007版限制:8k個(gè)字符;

      2、公式嵌套的層數(shù)限制,2003版限制:7層,2007版限制:64層;

      3、公式中參數(shù)的個(gè)數(shù)限制:2003版限制:30個(gè),2007版限制:255個(gè)。

      EXCEL的主要功能

      主要功能:

      單元1:Excel 入門。

      瀏覽 Excel,瀏覽菜單,選擇多重單元格,創(chuàng)建和編輯工作表,使用模板,使用幫助信息

      單元2:公式和格式。

      創(chuàng)建公式和函數(shù),使用粘貼函數(shù),自動(dòng)求和,填充指令,絕對(duì)引用,格式化數(shù)字,自動(dòng)套用格式,使用條件格式 單元3:預(yù)覽及打印。

      拼寫檢查,設(shè)置打印選項(xiàng),創(chuàng)建頁(yè)眉頁(yè)腳,應(yīng)用Web特征,使用E-mai 功能 單元4:圖表及地圖。

      使用圖表向?qū)?,編輯圖表,創(chuàng)建餅型圖,創(chuàng)建地圖,繪圖及插入對(duì)象 單元5:數(shù)據(jù)庫(kù)入門。

      創(chuàng)建及過濾數(shù)據(jù)庫(kù),過濾和命名區(qū)域,定位和刪除記錄,財(cái)務(wù)公式 單元6:數(shù)據(jù)庫(kù)管理。

      數(shù)據(jù)導(dǎo)入和導(dǎo)出,導(dǎo)入HTML文件,創(chuàng)建透視圖表,發(fā)布透視表到Web 單元7:工作表管理。

      鏈接工作表,鏈接工作簿,合并工作表,設(shè)定密碼,保護(hù)儲(chǔ)存格和對(duì)象,群組及大綱,創(chuàng)建報(bào)表

      單元8:Visual Basic。

      錄制宏,編輯宏,調(diào)試宏,制作宏按鈕 單元9:IF邏輯塊。

      趨勢(shì)分析,變量求解,頻率分布,方案管理器,審核工作表,數(shù)據(jù)確認(rèn),使用IF函數(shù),嵌套IF函數(shù),合并邏輯函數(shù) 單元10:高級(jí)數(shù)據(jù)管理。

      使用 HLOOKUP,使用 VLOOKUP,創(chuàng)建單變量數(shù)據(jù)表,創(chuàng)建雙變量數(shù)據(jù)表,使用Solver 單元11:用戶自定義函數(shù)。

      創(chuàng)建函數(shù),使用應(yīng)用程序?qū)ο?,控制程序流程,編寫子程?單元12:自定義 EXCEL。

      創(chuàng)建批注,創(chuàng)建自定義菜單,創(chuàng)建自定義工具欄,使用模板

      有關(guān)EXCEL統(tǒng)計(jì)分析方法

      一、數(shù)據(jù)處理的方法:分類(拆分)、排序、篩選、匯總(合并)、圖表化

      二、在EXCEL中,對(duì)數(shù)據(jù)進(jìn)行處理的手段(工具)非常豐富,主要有: ①基礎(chǔ)操作(即手工處理,包括分列、排序、篩選等)、②函數(shù)公式(包括數(shù)組公式)、③分組、④分類匯總、⑤合并計(jì)算、⑥數(shù)據(jù)透視表、⑦SQL、⑧編程技術(shù)(VBA及其它)

      有關(guān)函數(shù)的功能及實(shí)例

      Excel中所提的函數(shù)其實(shí)是一些預(yù)定義的公式,它們使用一些稱為參數(shù)的特定數(shù)值按特定的順序或結(jié)構(gòu)進(jìn)行計(jì)算。用戶可以直接用它們對(duì)某個(gè)區(qū)域內(nèi)的數(shù)值進(jìn)行一系列運(yùn)算,如分析和處理日期值和時(shí)間值、確定貸款的支付額、確定單元格中的數(shù)據(jù)類型、計(jì)算平均值、排序顯示和運(yùn)算文本數(shù)據(jù)等等。Excel函數(shù)一共有11類,分別是數(shù)據(jù)庫(kù)函數(shù)、日期與時(shí)間函數(shù)、工程函數(shù)、財(cái)務(wù)函數(shù)、信息函數(shù)、邏輯函數(shù)、查詢和引用函數(shù)、數(shù)學(xué)和三角函數(shù)、統(tǒng)計(jì)函數(shù)、文本函數(shù)以及用戶自定義函數(shù)。如時(shí)間函數(shù)day、date、datedif、weekday、month、year、now,統(tǒng)計(jì)函 數(shù)countif、max、min、counta、count、average,數(shù)學(xué)函數(shù)mod、sum、sumif等等常用的函數(shù)?,F(xiàn)在就我在徐老師的excel高級(jí)應(yīng)用課上學(xué)到的從身份證號(hào)碼中提取出 生年月、性別信息的excel運(yùn)用舉例說明其方便好用的實(shí)用功能。

      (1)根據(jù)身份證號(hào)碼求性別輸入=IF(VALUE(RIGHT(E4,3))/2=INT(VALUE(RIGHT(E4,3))/2),“女”,“男”)。公式解釋:RIGHT(E4,3)用于求出身份證號(hào)碼中代表性別的數(shù)字,實(shí)際求得的為代表數(shù)字的字符串。VALUE(RIGHT(E4,3)用于將上一步所得的代表數(shù)字的字符串轉(zhuǎn)換為數(shù)字。VALUE(RIGHT(E4,3))/2=INT(VALUE(RIGHT(E4,3))/2用于判斷這個(gè)身份證號(hào)碼是奇數(shù)還是偶數(shù),當(dāng)然你也可以用Mod函數(shù)來做出判斷。如果上述公式判斷出這個(gè)號(hào)碼是偶數(shù)時(shí),顯示“女”,否則,這個(gè)號(hào)碼是奇數(shù)的話,則返回“男”。

      (2)根據(jù)身份證號(hào)碼求出生年月 輸入公式“=IF(LEN(E4)=15,MID(E4,7,4),MID(E4,9,4))”,其中: LEN(E4)=15:檢查E4單元格中字符串的字符數(shù)目,本例的含義是檢查身份證號(hào)碼的長(zhǎng)度是否是15位。MID(E4,7,4):從E4單元格中字符串的第7位開始提取四位數(shù)字,本例中表示提取15位身份證號(hào)碼的第7、8、9、10位數(shù)字。MID(E4,9,4):從C2單元格中字符串的第9位開始提取四位數(shù)字,本例中表示提取18位身份證號(hào)碼的第9、10、11、12位數(shù)字。IF(LEN(E4)=15,MID(E4,7,4),MID(E4,9,4)):IF是一個(gè)邏輯判斷函數(shù),表示如果C2單元格是15位,則提取第7位開始的四位數(shù)字,如果不是15位則提取自第9位開始的四位數(shù)字。如果需要顯示為“2010年6月”這樣的格式,則使用DATE格式,并在“單元格格式→日期”中進(jìn)行設(shè)置。

      學(xué)習(xí)數(shù)據(jù)處理的心得體會(huì)

      學(xué)習(xí)《Excel與數(shù)據(jù)處理》這門課程之后,使我受益匪淺。當(dāng)初學(xué)這門課就是為了再次復(fù)習(xí)重溫一下大一計(jì)算機(jī)基礎(chǔ)課程學(xué)習(xí)的內(nèi)容,更加扎實(shí)的掌Excel的使用和簡(jiǎn)單的數(shù)據(jù)處理,我相信這在我將來的學(xué)習(xí)工作中會(huì)幫助我改善工作質(zhì)量,提高效率。通過學(xué)習(xí)使我認(rèn)識(shí)到其實(shí)計(jì)算機(jī)技術(shù)并不是很難的,只要多上機(jī)實(shí)驗(yàn),配合課堂和書本知識(shí),基本的辦公和數(shù)據(jù)處理能力是能夠得到大幅度的提升的,我意識(shí)到從今往后我應(yīng)該積極主動(dòng)地去學(xué)習(xí),主動(dòng)探索未知知識(shí),把它們變?yōu)樽约旱闹R(shí),改掉以前那種只靠學(xué)習(xí)課本的方法。在第一節(jié)課時(shí),覺得這門課對(duì)我來說應(yīng)該不難,里邊有很多內(nèi)容早在大一時(shí)候便就已經(jīng)學(xué)過了,因此便在不知不覺中不想再聽老師的講解,慢慢地卻發(fā)現(xiàn)里邊講的好多內(nèi)容我都不懂,老師在上課過程中的一系列操作問題我都不懂的漸漸地我終于意識(shí)到我該好好地聽老師講課,我雖然懂得一些操作,但都是平時(shí)經(jīng)常用的一些基礎(chǔ)的操作,很多的高級(jí)應(yīng)用操作我都還沒有接觸到,而且缺乏實(shí)踐經(jīng)驗(yàn)。孰能生巧,一個(gè)人理論上再完善,沒有通過大量的練習(xí),在遇到問題時(shí)往往會(huì)不知所措。通過這門課的學(xué)習(xí)我意識(shí)到學(xué)習(xí)與實(shí)踐的重要性,在以后的學(xué)習(xí)中我一定要多練習(xí),多實(shí)踐,以求自己對(duì)知識(shí)掌握得更好。以下是該門課程的主要學(xué)習(xí)內(nèi)容和我的一點(diǎn)感悟。Excel是個(gè)人電腦普及以來用途最廣泛的辦公軟件之一,也是Microsoft Windows平臺(tái)下最成功的應(yīng)用軟件之一。說它是普通的軟件可能已經(jīng)不足以形容它的威力,事實(shí)上,在很多公司,Excel已經(jīng)完全成為了一種生產(chǎn)工具,在各個(gè)部門的核心工作中發(fā)揮著重要的作用。無論用戶身處哪個(gè)行業(yè)、所在公司有沒有實(shí)施信息系統(tǒng),只要需要和數(shù)據(jù)打交道,Excel幾乎是不二的選擇。Excel之所以有這樣的普及性,是因?yàn)樗辉O(shè)計(jì)成為一個(gè)數(shù)據(jù)計(jì)算與分析的平臺(tái),集成了最優(yōu)秀的數(shù)據(jù)計(jì)算與分析功能,用戶完全可以按照自己的思路來創(chuàng)建電子表格,并Excel的幫助下出色的完成工作任務(wù)。在電子表格軟件領(lǐng)域,Excel軟件唯一的競(jìng)爭(zhēng)對(duì)手就是自己。基于這樣的絕對(duì)優(yōu)勢(shì)地位,Excel已經(jīng)成為事實(shí)上的行業(yè)標(biāo)準(zhǔn)。因此,您大可不必花時(shí)間去關(guān)注別的電子表格軟件。即使需要,以Excel的功底去學(xué)習(xí)其他同類軟件,學(xué)習(xí)成本會(huì)非常低。如此,學(xué)習(xí)Excel的綜合優(yōu)勢(shì)就很明顯了Excel一向具有良好的向下兼容特性,每一次升級(jí)都能帶來新的功能,但卻幾乎可以不費(fèi)力的掌握這些新功能并同時(shí)沿用原有的功能。而且,各個(gè)版本的功能有99%的部分都是通用的,文件格式也可以完全通用。所以,無論你現(xiàn)在正在使用哪個(gè)版本的Excel,都不必?fù)?dān)心現(xiàn)有的知識(shí)會(huì)很快被淘汰掉。從這個(gè)角度上講,把時(shí)間投資在學(xué)習(xí)Excel上,是相當(dāng)保值的當(dāng)老師講到一個(gè)精通掌握Excel和數(shù)據(jù)處理的應(yīng)聘者在北上廣等一線城市,月薪高達(dá)一兩萬時(shí),我和我的小伙伴們都驚呆了??梢娙绻苁炀毷褂肊xcel,就能做到一招鮮,吃遍天,無論在哪個(gè)行業(yè)哪家公司,高超的Excel水平都能在職場(chǎng)上助您成功。

      Excel中的函數(shù)很多,功能也非常強(qiáng)大,如能掌握一些常用的函數(shù),將給日常的數(shù)據(jù)處理帶來很大的便利。Excel函數(shù)一共有11類,分別是數(shù)據(jù)庫(kù)函數(shù)、日期與時(shí)間函數(shù)、工程函數(shù)、財(cái)務(wù)函數(shù)、信息函數(shù)、邏輯函數(shù)、查詢和引用函數(shù)、數(shù)學(xué)

      和三角函數(shù)、統(tǒng)計(jì)函數(shù)、文本函數(shù)以及用戶自定義函數(shù)。

      通過老師在課堂上的具體而熟練的操作,使我認(rèn)識(shí)到Excel還有更多的功能等著我們?nèi)ラ_發(fā)和學(xué)習(xí),想要熟練掌握并不是一朝一夕就能做到的,它需要在不斷地工作和學(xué)習(xí)中去鍛煉,去實(shí)踐,才能更好的去駕馭,去為我們的工作帶來更大的便利。

      通過這門課程的學(xué)習(xí),我首先充分認(rèn)識(shí)到了excel在我們以后工作中的重要性,能夠熟練的掌握excel軟件是我以后從事任何工作不可缺少的一種專業(yè)技能。如果以后我們從事會(huì)計(jì)、財(cái)務(wù)、人事、數(shù)據(jù)分析??等相關(guān)職業(yè)時(shí),那么用到Excel的地方隨處可遇,不但要會(huì)用,還要求要用好(比如透視與篩選、函數(shù)的運(yùn)用、圖表的制作??)

      總的來說,我覺得做到以下兩點(diǎn)對(duì)我們學(xué)習(xí)Excel和數(shù)據(jù)處理很重要:

      一、動(dòng)手實(shí)踐才是王道

      Excel的學(xué)習(xí)過程實(shí)際上是一個(gè)動(dòng)手操作,多次練習(xí)的過程,理論知識(shí)再多,再豐富,最終還是要?jiǎng)邮謥硗瓿扇蝿?wù)的。老板叫你做一個(gè)表格,你不能說如何做,你要做出來給老板看。在學(xué)習(xí)Excel方面,一定要結(jié)合理論知識(shí)在Excel軟件里多次練習(xí),這樣你才能發(fā)現(xiàn):哪些地方你會(huì),哪些地方你不會(huì)。例如,把老師課件里的內(nèi)容慢慢的通過上機(jī)來一點(diǎn)點(diǎn)消化吸收,逐漸變成自己的東西。

      二、不懂就要問

      當(dāng)你在使用Excel的時(shí)候,肯定會(huì)遇到這樣那樣的問題,這個(gè)時(shí)候你就要及時(shí)的把這個(gè)問題解決掉,千萬不要跳過去,如果你這次跳過去了,下次遇到了類似的問題還是不會(huì)??梢酝ㄟ^請(qǐng)教老師,身邊的同學(xué)、朋友,可以去百度、谷歌,也可以去論壇發(fā)帖求助,總之你要弄明白這個(gè)問題。通過本課的學(xué)習(xí)使我受益匪淺,在老師的指導(dǎo)下,盡可能多的掌握了Excel的技能,可能現(xiàn)在還不能做到多么熟練,但肯定會(huì)對(duì)以后的學(xué)習(xí)和工作打下更好的基礎(chǔ)。再次感謝老師對(duì)我們的熱心講解(完)

      第二篇:Matlab數(shù)據(jù)處理與分析_復(fù)習(xí)總結(jié)

      1、save 文件名 [變量名表][-append][-ascii]

      load 文件名[變量名表][-ascii]

      2、linspace(a,b,n)與a:(b-a)/(n-1):b等價(jià)

      3、伴隨矩陣:compan(p)其中p是一個(gè)多項(xiàng)式的系數(shù)向量,高次冪系數(shù)排在前,低次冪排在后。

      4、diag(A)函數(shù)提取矩陣A主對(duì)角線元素。

      diag(A,k)提取第k條對(duì)角線的元素。

      diag(V,k)第k條對(duì)角線元素為向量V的元素。

      5、上三角矩陣triu(A)triu(A,k)下三角矩陣tril(A)tril(A,k)

      6、轉(zhuǎn)置運(yùn)算符是單撇號(hào)(‘)

      rot90(A,k)將矩陣A逆時(shí)針旋轉(zhuǎn)90度的k倍 fliplr(A)矩陣的左右翻轉(zhuǎn) flipud(A)矩陣的上下翻轉(zhuǎn)

      7、det(A)方陣的行列式值rank(A)矩陣的秩trace(A)矩陣的跡,對(duì)角線元素之和

      8、(1)if條件語句組end(2)if條件語句組1else

      語句組2end

      (3)if條件1語句組1elseif條件2語句組2……

      elseif條件m語句組melse

      語句組nend9、switch表達(dá)式case表達(dá)式1語句組1case表達(dá)式2語句組2……

      case表達(dá)式m語句組otherwise

      語句組n

      end10、try語句先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯(cuò)誤,則將錯(cuò)誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語句組2。try

      語句組1catch

      語句組2end11、(1)for 循環(huán)變量=表達(dá)式1:表達(dá)式2:表達(dá)式3循環(huán)體語句end

      (2)for 循環(huán)變量=矩陣表達(dá)式循環(huán)體語句end12、while(條件)

      循環(huán)體語句end13、function 輸出形參表=函數(shù)名(輸入形參表)

      注釋說明部分 函數(shù)體語句

      14、[輸出實(shí)參表]=函數(shù)名(輸入實(shí)參表)

      15、全局變量global

      16、plotplotyy

      17、title(圖形名稱)

      xlabel(x軸說明)ylabel(y軸說明)text(x,y,圖形說明)

      legend(圖例1,圖例2,…)

      18、axis([xmin xmax ymin ymax zmin zmax])

      axis equal:縱、橫坐標(biāo)軸采用等長(zhǎng)刻度。axis square:產(chǎn)生正方形坐標(biāo)系(缺省為矩形)。axis auto:使用缺省設(shè)置。axis off:取消坐標(biāo)軸。axis on:顯示坐標(biāo)軸。

      19、grid on/offbox on/offhold on/off 20、subplot(m,n,p)

      21、polar(theta,rho,選項(xiàng))

      22、低層繪圖操作

      23、max minmean(X):返回向量X的算術(shù)平均值;

      median(X):返回向量X的中值; sum(X):返回向量X各元素的和。prod(X):返回向量X各元素的乘積。cumsum(X):返回向量X累加和向量。cumprod(X):返回向量X累乘積向量。std(X)返回一個(gè)標(biāo)準(zhǔn)方差。

      注:默認(rèn)dim=1列處理,dim=2行處理

      24、元素排序[Y,I]=sort(A,dim,mode)

      mode指明升序還是降序,若取’ascend’則按升序,若取’descend’,則按降序;

      25、一維數(shù)據(jù)插值

      Y1=interp1(X,Y,X1,'method')二維數(shù)據(jù)插值

      Z1=interp2(X,Y,Z,X1,Y1,'method')method是插值方法,允許的取值有‘linear’、‘nearest’、‘cubic’、‘spline’

      26、polyfit函數(shù)來求得最小二乘擬合多項(xiàng)式的系

      數(shù),再用polyval函數(shù)按所得的多項(xiàng)式計(jì)算所給出的點(diǎn)上的函數(shù)近似值

      27、多項(xiàng)式乘法:conv(P1,P2):P1、P2是兩個(gè)

      多項(xiàng)式系數(shù)向量;

      多項(xiàng)式除法:[Q,r]=deconv(P1,P2),其中Q返回多項(xiàng)式P1除以P2的商式,r返回P1除以P2的余式。這里,Q和r仍是多項(xiàng)式系數(shù)向量。

      28、Y=polyval(P,x)

      Y=polyvalm(P,x)

      29、多項(xiàng)式求根

      x=roots(P)

      30、LU分解 方陣

      [L,U]=lu(A):滿足A=LU。[L,U,P]=lu(A):滿足PA=LU。

      實(shí)現(xiàn)LU分解后,線性方程組Ax=b的解x=U(Lb)或x=U(LPb),31、QR分解方陣

      [Q,R]=qr(A):滿足A=QR。[Q,R,E]=qr(A):滿足AE=QR。

      實(shí)現(xiàn)QR分解后,線性方程組Ax=b的解x=R(Qb)或x=E(R(Qb))。

      32、Cholesky分解矩陣A是對(duì)稱正定的Cholesky分解將矩陣A分解成一個(gè)下三角矩陣和上三角矩陣的乘積。設(shè)上三角矩陣為R,則下三角矩陣為其轉(zhuǎn)置,即A=R'R。R=chol(A):產(chǎn)生一個(gè)上三角陣R,使R‘R=A。[R,p]=chol(A):這個(gè)命令格式將不輸出出錯(cuò)信息。當(dāng)A為對(duì)稱正定的,則p=0,R與上述格式得到的結(jié)果相同;否則p為一個(gè)正整數(shù)。實(shí)現(xiàn)Cholesky分解后,線性方程組Ax=b變成R'Rx=b,所以x=R(R'b)。

      33、A=sparse(S)將矩陣S轉(zhuǎn)化為稀疏方式存儲(chǔ)

      34、sparse(u,v,S):u,v,S是3個(gè)等長(zhǎng)的向量。S是

      要建立的稀疏矩陣的非0元素。u(i)、v(i)分別是S(i)的行和列下標(biāo) full(A):返回和稀疏存儲(chǔ)矩陣A對(duì)應(yīng)的完全存儲(chǔ)方式矩陣。

      35、符號(hào)計(jì)算

      符號(hào)表達(dá)式的加、減、乘、除運(yùn)算可分別由函數(shù)symadd、symsub、symmul和symdiv來實(shí)現(xiàn),冪運(yùn)算可以由sympow來實(shí)現(xiàn)

      36、符號(hào)表達(dá)式的因式分解與展開

      factor(s):對(duì)符號(hào)表達(dá)式s分解因式。expand(s):對(duì)符號(hào)表達(dá)式s進(jìn)行展開。collect(s):對(duì)符號(hào)表達(dá)式s合并同類項(xiàng)。collect(s,v):對(duì)符號(hào)表達(dá)式s按變量v合并同類項(xiàng)。

      37、limit(f,x,a):求符號(hào)函數(shù)f(x)的極限值。即計(jì)

      算當(dāng)變量x趨近于常數(shù)a時(shí),f(x)函數(shù)的極限值。

      limit(f,x,a,'right'):求符號(hào)函數(shù)f的極限值。'right'表示變量x從右邊趨近于a。

      limit(f,x,a,‘left’):求符號(hào)函數(shù)f的極限值。‘left’表示變量x從左邊趨近于a。

      38、不定積分

      int(s):沒有指定積分變量和積分階數(shù)時(shí),系統(tǒng)按findsym函數(shù)指示的默認(rèn)變量對(duì)被積函數(shù)或符號(hào)表達(dá)式s求不定積分。int(s,v):以v為自變量

      39、定積分

      int(s,v,a,b):求定積分運(yùn)算。a,b分別表示定積分的下限和上限。該函數(shù)求被積函數(shù)在區(qū)間[a,b]上的定積分

      40、無窮級(jí)數(shù)的和需要符號(hào)表達(dá)式求和函數(shù)

      symsum,其調(diào)用格式為:symsum(s,v,n,m)

      41、泰勒級(jí)數(shù)

      taylor(f,v,n,a)

      42、代數(shù)方程求解

      solve(s):求解符號(hào)表達(dá)式s的代數(shù)方程 solve(s,v):求解符號(hào)表達(dá)式s的代數(shù)方程,求解變量為v

      43、常微分方程求解

      Dy表示y’,D2y表示y’’

      dsolve(eq,c,v):求解常微分方程eq在初值條件c下的特解

      第三篇:儀器分析實(shí)驗(yàn)數(shù)據(jù)處理與表達(dá)

      儀器分析實(shí)驗(yàn)數(shù)據(jù)處理與表達(dá)

      1.可疑數(shù)據(jù)的取舍 分析測(cè)定中常常有個(gè)別數(shù)據(jù)與其他數(shù)據(jù)相差較大,成為可疑數(shù)據(jù)(或稱離群值、異常值)。對(duì)于有明顯原因造成的可疑數(shù)據(jù),應(yīng)予舍去,但是對(duì)于找不出充分理由的可疑數(shù)據(jù),則應(yīng)慎重處理,應(yīng)借助數(shù)理統(tǒng)計(jì)方法進(jìn)行數(shù)據(jù)評(píng)價(jià)后再行取舍。

      在3-10次的測(cè)定數(shù)據(jù)中,有一個(gè)可疑數(shù)據(jù)時(shí),可采用Q檢驗(yàn)法決定取舍; 若有兩個(gè)或兩個(gè)以上可疑數(shù)據(jù)時(shí),宜采用Grubbs檢驗(yàn)法。

      2.有效數(shù)字及其運(yùn)算規(guī)則

      由于誤差的存在,任何測(cè)量的準(zhǔn)確度都是有限的,因此在記錄數(shù)據(jù)時(shí)既不可隨意多寫數(shù)字的位數(shù),夸大測(cè)量的精度;也不可輕率少寫數(shù)字的位數(shù),降低測(cè)量的精度。在小數(shù)點(diǎn)后的“0”也不能任意增加或刪去。在進(jìn)行運(yùn)算時(shí),還須注意遵守下列規(guī)則:

      (1)有效數(shù)字的修約按國(guó)家標(biāo)準(zhǔn)GB 8187-1987進(jìn)行:在擬舍棄的數(shù)字中,若左邊的第一個(gè)數(shù)字≤4,則舍去;在擬舍棄的數(shù)字中.若左邊的第一個(gè)數(shù)字≥6,則進(jìn)—;在擬舍棄的數(shù)字中,若左邊的第一個(gè)數(shù)字為5,其右邊的數(shù)字井非全部為0,則進(jìn)一;在擬舍棄的數(shù)字中,若左邊的第一個(gè)數(shù)字為5,其右邊的數(shù)字皆為0,所擬保留的末位數(shù)字為奇數(shù)時(shí),則進(jìn)一,若為偶數(shù)(包括“0”)時(shí),則不進(jìn);有效數(shù)字的修約應(yīng)一次完成,不得連續(xù)進(jìn)行多次修約。

      (2)加減運(yùn)算結(jié)果中,保留有效數(shù)字的位數(shù)應(yīng)與絕對(duì)誤差最大的相同;乘除運(yùn)算結(jié)果中,保留有效數(shù)字的位數(shù)應(yīng)以相對(duì)誤差最大的數(shù)據(jù)為準(zhǔn)。

      (3)對(duì)數(shù)計(jì)算中,對(duì)數(shù)小數(shù)點(diǎn)后的位數(shù)應(yīng)與真數(shù)的有效數(shù)字位數(shù)相同。

      (4)計(jì)算式中用到的常數(shù)如π、e以及乘除因子等,可以認(rèn)為其有效數(shù)字的位數(shù)是無限的,不影響其他數(shù)據(jù)的修約。

      3.分析結(jié)果的表達(dá)

      取得實(shí)驗(yàn)數(shù)據(jù)后,應(yīng)以簡(jiǎn)明的方法表達(dá)出來,通常有列表法、圖解法、數(shù)學(xué) 方程表示法等三種方法,可根據(jù)具體情況選擇一種表達(dá)方法。

      列表法是將—組實(shí)驗(yàn)數(shù)據(jù)中的自變量和因變量的數(shù)值按一定形式和順序一一對(duì)應(yīng)列成表格,比較簡(jiǎn)明、直觀,是最常用的方法。列表時(shí)應(yīng)有完全而又簡(jiǎn)明的表名,在表名不足以說明表中數(shù)據(jù)含義時(shí),則在表名或表格下面再附加說明,如獲得數(shù)據(jù)的有關(guān)實(shí)驗(yàn)條件、數(shù)據(jù)來源等;表中數(shù)據(jù)有效數(shù)字位數(shù)應(yīng)取舍適當(dāng),小數(shù)點(diǎn)應(yīng)上下對(duì)齊,以便比較分析。圖解法是將實(shí)驗(yàn)數(shù)據(jù)按自變量與因變量的對(duì)應(yīng)關(guān)系標(biāo)繪成圖形,直觀反映變量間的各種關(guān)系,便于進(jìn)行分析研究。每圖應(yīng)有簡(jiǎn)明的標(biāo)題,并注明取得數(shù)據(jù)的主要實(shí)驗(yàn)條件、作者姓名(包括合作者姓名)、以及實(shí)驗(yàn)日期。注意坐標(biāo)分度的選擇,其精度應(yīng)與測(cè)量的精度一致。

      圖解法是整理實(shí)驗(yàn)數(shù)據(jù)的重要方法,通常借助標(biāo)準(zhǔn)工作曲線法、曲線外推法圖解微分法和圖解積分法直接或間接獲得樣品的有關(guān)信息。這些處理方法與它們?cè)诨A(chǔ)化學(xué)分析課程中應(yīng)用相似,本教材不再贅述。

      數(shù)學(xué)方程表示法是對(duì)數(shù)據(jù)進(jìn)行回歸分析,以數(shù)學(xué)方程式描述變量之間關(guān)系的方法。儀器分析實(shí)驗(yàn)數(shù)據(jù)的自變量與因變量之間多成直線關(guān)系,或是經(jīng)過適當(dāng)變換后,使之呈現(xiàn)直線關(guān)系,因此儀器分析中比較常用的是一元線性回歸分析,多采用平均值法和最小二乘法完成。在實(shí)驗(yàn)報(bào)告或論文中,往往還需算出相關(guān)系數(shù)r,以說明變量之間的相關(guān)程度;注意,|r|=0時(shí),表明x與y毫無線性關(guān)系,但并不否定x與y之間可能存在其他的非線性關(guān)系。

      儀器分析實(shí)驗(yàn)和化學(xué)分析實(shí)驗(yàn)相比,實(shí)驗(yàn)數(shù)據(jù)和信息量要大得多,要注意利用先進(jìn)的計(jì)算機(jī)技術(shù)進(jìn)行分析處理,例如大家熟悉的Microsoft Excel、Origin等系列軟件就可以根據(jù)一套原始數(shù)據(jù),在數(shù)據(jù)庫(kù)、公式、函數(shù)、圖表之間進(jìn)行數(shù)據(jù)傳遞、鏈接和編輯等操作,從而對(duì)原始數(shù)據(jù)進(jìn)行匯總列表、數(shù)據(jù)處理、統(tǒng)計(jì)計(jì)算、繪制圖表、回歸分析及驗(yàn)證等。

      第四篇:大數(shù)據(jù)處理技術(shù)的總結(jié)與分析

      數(shù)據(jù)分析處理需求分類 1 事務(wù)型處理

      在我們實(shí)際生活中,事務(wù)型數(shù)據(jù)處理需求非常常見,例如:淘寶網(wǎng)站交易系統(tǒng)、12306網(wǎng)站火車票交易系統(tǒng)、超市POS系統(tǒng)等都屬于事務(wù)型數(shù)據(jù)處理系統(tǒng)。這類系統(tǒng)數(shù)據(jù)處理特點(diǎn)包括以下幾點(diǎn):

      一是事務(wù)處理型操作都是細(xì)粒度操作,每次事務(wù)處理涉及數(shù)據(jù)量都很小。二是計(jì)算相對(duì)簡(jiǎn)單,一般只有少數(shù)幾步操作組成,比如修改某行的某列; 三是事務(wù)型處理操作涉及數(shù)據(jù)的增、刪、改、查,對(duì)事務(wù)完整性和數(shù)據(jù)一致性要求非常高。

      四是事務(wù)性操作都是實(shí)時(shí)交互式操作,至少能在幾秒內(nèi)執(zhí)行完成; 五是基于以上特點(diǎn),索引是支撐事務(wù)型處理一個(gè)非常重要的技術(shù)。在數(shù)據(jù)量和并發(fā)交易量不大情況下,一般依托單機(jī)版關(guān)系型數(shù)據(jù)庫(kù),例如ORACLE、MYSQL、SQLSERVER,再加數(shù)據(jù)復(fù)制(DataGurad、RMAN、MySQL數(shù)據(jù)復(fù)制等)等高可用措施即可滿足業(yè)務(wù)需求。

      在數(shù)據(jù)量和并發(fā)交易量增加情況下,一般可以采用ORALCE RAC集群方式或者是通過硬件升級(jí)(采用小型機(jī)、大型機(jī)等,如銀行系統(tǒng)、運(yùn)營(yíng)商計(jì)費(fèi)系統(tǒng)、證卷系統(tǒng))來支撐。

      事務(wù)型操作在淘寶、12306等互聯(lián)網(wǎng)企業(yè)中,由于數(shù)據(jù)量大、訪問并發(fā)量高,必然采用分布式技術(shù)來應(yīng)對(duì),這樣就帶來了分布式事務(wù)處理問題,而分布式事務(wù)處理很難做到高效,因此一般采用根據(jù)業(yè)務(wù)應(yīng)用特點(diǎn)來開發(fā)專用的系統(tǒng)來解決本問題。2 數(shù)據(jù)統(tǒng)計(jì)分析

      數(shù)據(jù)統(tǒng)計(jì)主要是被各類企業(yè)通過分析自己的銷售記錄等企業(yè)日常的運(yùn)營(yíng)數(shù)據(jù),以輔助企業(yè)管理層來進(jìn)行運(yùn)營(yíng)決策。典型的使用場(chǎng)景有:周報(bào)表、月報(bào)表等固定時(shí)間提供給領(lǐng)導(dǎo)的各類統(tǒng)計(jì)報(bào)表;市場(chǎng)營(yíng)銷部門,通過各種維度組合進(jìn)行統(tǒng)計(jì)分析,以制定相應(yīng)的營(yíng)銷策略等。數(shù)據(jù)統(tǒng)計(jì)分析特點(diǎn)包括以下幾點(diǎn):

      一是數(shù)據(jù)統(tǒng)計(jì)一般涉及大量數(shù)據(jù)的聚合運(yùn)算,每次統(tǒng)計(jì)涉及數(shù)據(jù)量會(huì)比較大。二是數(shù)據(jù)統(tǒng)計(jì)分析計(jì)算相對(duì)復(fù)雜,例如會(huì)涉及大量goupby、子查詢、嵌套查詢、窗口函數(shù)、聚合函數(shù)、排序等;有些復(fù)雜統(tǒng)計(jì)可能需要編寫SQL腳本才能實(shí)現(xiàn)。

      三是數(shù)據(jù)統(tǒng)計(jì)分析實(shí)時(shí)性相對(duì)沒有事務(wù)型操作要求高。但除固定報(bào)表外,目前越來越多的用戶希望能做做到交互式實(shí)時(shí)統(tǒng)計(jì);

      傳統(tǒng)的數(shù)據(jù)統(tǒng)計(jì)分析主要采用基于MPP并行數(shù)據(jù)庫(kù)的數(shù)據(jù)倉(cāng)庫(kù)技術(shù)。主要采用維度模型,通過預(yù)計(jì)算等方法,把數(shù)據(jù)整理成適合統(tǒng)計(jì)分析的結(jié)構(gòu)來實(shí)現(xiàn)高性能的數(shù)據(jù)統(tǒng)計(jì)分析,以支持可以通過下鉆和上卷操作,實(shí)現(xiàn)各種維度組合以及各種粒度的統(tǒng)計(jì)分析。

      另外目前在數(shù)據(jù)統(tǒng)計(jì)分析領(lǐng)域,為了滿足交互式統(tǒng)計(jì)分析需求,基于內(nèi)存計(jì)算的數(shù)據(jù)庫(kù)倉(cāng)庫(kù)系統(tǒng)也成為一個(gè)發(fā)展趨勢(shì),例如SAP的HANA平臺(tái)。數(shù)據(jù)挖掘

      數(shù)據(jù)挖掘主要是根據(jù)商業(yè)目標(biāo),采用數(shù)據(jù)挖掘算法自動(dòng)從海量數(shù)據(jù)中發(fā)現(xiàn)隱含在海量數(shù)據(jù)中的規(guī)律和知識(shí)。數(shù)據(jù)挖掘主要過程是:根據(jù)分析挖掘目標(biāo),從數(shù)據(jù)庫(kù)中把數(shù)據(jù)提取出來,然后經(jīng)過ETL組織成適合分析挖掘算法使用寬表,然后利用數(shù)據(jù)挖掘軟件進(jìn)行挖掘。傳統(tǒng)的數(shù)據(jù)挖掘軟件,一般只能支持在單機(jī)上進(jìn)行小規(guī)模數(shù)據(jù)處理,受此限制傳統(tǒng)數(shù)據(jù)分析挖掘一般會(huì)采用抽樣方式來減少數(shù)據(jù)分析規(guī)模。

      數(shù)據(jù)挖掘的計(jì)算復(fù)雜度和靈活度遠(yuǎn)遠(yuǎn)超過前兩類需求。一是由于數(shù)據(jù)挖掘問題開放性,導(dǎo)致數(shù)據(jù)挖掘會(huì)涉及大量衍生變量計(jì)算,衍生變量多變導(dǎo)致數(shù)據(jù)預(yù)處理計(jì)算復(fù)雜性;二是很多數(shù)據(jù)挖掘算法本身就比較復(fù)雜,計(jì)算量就很大,特別是大量機(jī)器學(xué)習(xí)算法,都是迭代計(jì)算,需要通過多次迭代來求最優(yōu)解,例如K-means聚類算法、PageRank算法等。因此總體來講,數(shù)據(jù)分析挖掘的特點(diǎn)是:

      1、數(shù)據(jù)挖掘的整個(gè)計(jì)算更復(fù)雜,一般是由多個(gè)步驟組成計(jì)算流,多個(gè)計(jì)算步驟之間存在數(shù)據(jù)交換,也就是會(huì)產(chǎn)生大量中間結(jié)果,難以用一條sql語句來表達(dá)。

      2、計(jì)算應(yīng)該能夠非常靈活表達(dá),很多需要利用高級(jí)語言編程實(shí)現(xiàn)。二 大數(shù)據(jù)背景下事務(wù)型處理系統(tǒng)相關(guān)技術(shù)

      在google、facebook、taobao等大互聯(lián)網(wǎng)公司出現(xiàn)之后,這些公司注冊(cè)和在線用戶數(shù)量都非長(zhǎng)大,因此該公司交易系統(tǒng)需要解決“海量數(shù)據(jù)+高并發(fā)+數(shù)據(jù)一致性+高可用性”的問題。

      為了解決該問題,從目前資料來看,其實(shí)沒有一個(gè)通用的解決方案,各大公司都會(huì)根據(jù)自己業(yè)務(wù)特點(diǎn)定制開發(fā)相應(yīng)的系統(tǒng),但是常用的思路主要包括以下幾點(diǎn):(1)數(shù)據(jù)庫(kù)分片,結(jié)合業(yè)務(wù)和數(shù)據(jù)特點(diǎn)將數(shù)據(jù)分布在多臺(tái)機(jī)器上。

      (2)利用緩存等機(jī)制,盡量利用內(nèi)存,解決高并發(fā)時(shí)遇到的隨機(jī)IO效率問題。(3)結(jié)合數(shù)據(jù)復(fù)制等技術(shù)實(shí)現(xiàn)讀寫分離,以及提高系統(tǒng)可用性。(4)大量采用異步處理機(jī)制,對(duì)應(yīng)高并發(fā)沖擊。(5)根據(jù)實(shí)際業(yè)務(wù)需求,盡量避免分布式事務(wù)。1相關(guān)系統(tǒng)介紹 1)阿里CORBAR系統(tǒng)

      阿里COBAR系統(tǒng)是一個(gè)基于MYSQL數(shù)據(jù)庫(kù)的分布式數(shù)據(jù)庫(kù)系統(tǒng),屬于基于分布式數(shù)據(jù)庫(kù)中間件的分布式數(shù)據(jù)庫(kù)系統(tǒng)。該系統(tǒng)是前身是陳思儒開發(fā)的“變形蟲”系統(tǒng)(以前調(diào)研過),由于陳思儒離開阿里去了盛大,阿里當(dāng)心“變形蟲”穩(wěn)定性等問題,重新開發(fā)該項(xiàng)目。

      該系統(tǒng)主要采用數(shù)據(jù)庫(kù)分片思路,實(shí)現(xiàn)了:數(shù)據(jù)拆分、讀寫分離、復(fù)制等功能。由于此系統(tǒng)由于只需要滿足事務(wù)型操作即可,因此相對(duì)真正并行數(shù)據(jù)庫(kù)集群(例如TeraData等),此類系統(tǒng)提供操作沒有也不需要提供一些復(fù)雜跨庫(kù)處理,因此該系統(tǒng)存在以下限制:

      (1)不支持跨庫(kù)的join、分頁(yè)、排序、子查詢。(2)insert等變更語句必須包括拆分字段等。(3)應(yīng)該不支持跨機(jī)事務(wù)(以前變形蟲不支持)。

      說白了此類系統(tǒng)不具備并行計(jì)算能力,基本上相當(dāng)于數(shù)據(jù)庫(kù)路由器!

      另外此類系統(tǒng)的在實(shí)際應(yīng)用的關(guān)鍵問題是,根據(jù)什么對(duì)數(shù)據(jù)進(jìn)行切分,因?yàn)榍蟹植缓脮?huì)導(dǎo)致分布式的事務(wù)問題。2)阿里OceanBase系統(tǒng)

      該系統(tǒng)也是淘寶為了解決高并發(fā)、大數(shù)據(jù)環(huán)境下事務(wù)型處理而定制開發(fā)的一個(gè)系統(tǒng)。該系統(tǒng)主要思路和特點(diǎn)如下:(1)他們發(fā)現(xiàn)在實(shí)際生成環(huán)境中,每天更新的數(shù)據(jù)只占總體數(shù)據(jù)的1%不到,因此他們把數(shù)據(jù)分為:基線數(shù)據(jù)和增量更新數(shù)據(jù)。

      (2)基線數(shù)據(jù)是靜態(tài)數(shù)據(jù),采用分布式存儲(chǔ)方式進(jìn)行存儲(chǔ)。

      (3)只在一臺(tái)服務(wù)器上存儲(chǔ)和處理增量更新數(shù)據(jù),并且是在內(nèi)存中存儲(chǔ)和處理更新數(shù)據(jù)。

      (4)在系統(tǒng)負(fù)載輕的時(shí)候,把增量更新批量合并到基線數(shù)據(jù)中。(5)數(shù)據(jù)訪問時(shí)同時(shí)訪問基線數(shù)據(jù)和增量更新數(shù)據(jù)并合并。因此這樣好處是:(1)讀事務(wù)和寫事務(wù)分離

      (2)通過犧牲一點(diǎn)擴(kuò)展性(寫是一個(gè)單點(diǎn)),來避免分布式事務(wù)處理。

      說明:該系統(tǒng)雖然能處理高并發(fā)的事務(wù)型處理,號(hào)稱很牛逼,但其實(shí)也只是根據(jù)電商的事務(wù)處理來定制開發(fā)的專用系統(tǒng),個(gè)人認(rèn)為其技術(shù)難度小于oracle等通用型的數(shù)據(jù)庫(kù)。該系統(tǒng)無法應(yīng)用到銀行或者12306等,因?yàn)槠涫聞?wù)處理的邏輯遠(yuǎn)遠(yuǎn)比電商商品買賣處理邏輯復(fù)雜。

      在目前的大數(shù)據(jù)時(shí)代,一定是基于應(yīng)用定制才能找到好的解決方案!

      3)基于Hbase的交易系統(tǒng)

      在hadoop平臺(tái)下,HBASE數(shù)據(jù)庫(kù)是一個(gè)分布式KV數(shù)據(jù)庫(kù),屬于實(shí)時(shí)數(shù)據(jù)庫(kù)范疇。支付寶目前支付記錄就是存儲(chǔ)在HBASE數(shù)據(jù)庫(kù)中。

      HBASE數(shù)據(jù)庫(kù)接口是非SQL接口,而是KV操作接口(基于Key的訪問和基于key范圍的scan操作),因此HBASE數(shù)據(jù)庫(kù)雖然可擴(kuò)展性非常好,但是由于其接口限制導(dǎo)致該數(shù)據(jù)庫(kù)能支持上層應(yīng)用很窄?;贖BASE應(yīng)用的設(shè)計(jì)中,關(guān)鍵點(diǎn)是key的設(shè)計(jì),要根據(jù)需要支持的應(yīng)用來設(shè)計(jì)key的組成。

      可以認(rèn)為HBASE數(shù)據(jù)庫(kù)只支持作為KEY的這一列的索引。雖然目前HBASE有支持二級(jí)索引的方案,二級(jí)索引維護(hù)將會(huì)比較麻煩。

      2并發(fā)和并行區(qū)別

      并發(fā)是指同時(shí)執(zhí)行通常不相關(guān)的各種任務(wù),例如交易型系統(tǒng)典型屬于高并發(fā)系統(tǒng)。并行是通過將一個(gè)很大的計(jì)算任務(wù),劃分為多個(gè)小的計(jì)算任務(wù),然后多個(gè)小計(jì)算任務(wù)的并行執(zhí)行,來縮短該計(jì)算任務(wù)計(jì)算時(shí)間。兩者主要區(qū)別在于:

      (1)通訊與協(xié)調(diào)方面:在并行計(jì)算中,由于多個(gè)小任務(wù)同屬一個(gè)大的計(jì)算任務(wù),因此小任務(wù)之間存在依賴關(guān)系,小任務(wù)之間需要大量通訊和協(xié)調(diào);相反,并發(fā)中的多個(gè)任務(wù)之間基本相互獨(dú)立,任務(wù)與任務(wù)之間相關(guān)性很小。

      (2)容錯(cuò)處理方面:由于并發(fā)任務(wù)之間相互獨(dú)立,某個(gè)任務(wù)執(zhí)行失敗并不會(huì)影響其它的任務(wù)。但是并行計(jì)算中的多個(gè)任務(wù)屬于一個(gè)大任務(wù),因此某個(gè)子任務(wù)的失敗,如果不能恢復(fù)(粗粒度容錯(cuò)與細(xì)粒度容錯(cuò)),則整個(gè)任務(wù)都會(huì)失敗。

      3本章總結(jié)

      數(shù)據(jù)量大不一定需要并行計(jì)算,雖然數(shù)據(jù)量大,數(shù)據(jù)是分布存儲(chǔ),但是如果每次操作基本上還是針對(duì)少量數(shù)據(jù),因此每次操作基本上都是在一臺(tái)服務(wù)器上完成,不涉及并行計(jì)算。只是需要通過數(shù)據(jù)復(fù)制、數(shù)據(jù)緩存、異步處理等方式來支撐高并發(fā)訪問量

      大數(shù)據(jù)背景下數(shù)據(jù)統(tǒng)計(jì)分析技術(shù)介紹

      隨數(shù)據(jù)量變大,和事務(wù)處理不同的是,單個(gè)統(tǒng)計(jì)分析涉及數(shù)據(jù)量會(huì)非常大,單個(gè)統(tǒng)計(jì)分析任務(wù)涉及數(shù)據(jù)會(huì)分散在多臺(tái)服務(wù)器上,且由于計(jì)算量大,采用單臺(tái)服務(wù)器進(jìn)行計(jì)算,會(huì)導(dǎo)致計(jì)算時(shí)間非常長(zhǎng),單個(gè)統(tǒng)計(jì)分析任務(wù)必須采用并行計(jì)算方式來加快單個(gè)統(tǒng)計(jì)分析任務(wù)執(zhí)行速度。1并行查詢與并行計(jì)算技術(shù)介紹

      在大數(shù)據(jù)背景下的數(shù)據(jù)統(tǒng)計(jì)分析技術(shù)門類很多,常見的有: n MPP并行數(shù)據(jù)庫(kù) : TeraData、GreenPlum、Vertica等。n 基于MapReduce并行計(jì)算框架的數(shù)據(jù)倉(cāng)庫(kù): HIVE(Hadoop平臺(tái))、Tenzing(Google公司)n 基于Hbase的Phoenix系統(tǒng) n HadoopDB系統(tǒng) n EMC公司的hapt系統(tǒng)

      n MPP分布式查詢引擎: Dremel、Impala、Presto、Shard query、Citusdb。n 基于SPARK的Shark、基于Dryad的SCOPE、基于Tez的stinger。n 基于hadoop+index的JethroData系統(tǒng) n 基于內(nèi)存計(jì)算的Druid系統(tǒng)

      這些系統(tǒng)都解決了海量數(shù)據(jù)下的數(shù)據(jù)統(tǒng)計(jì)分析的問題,并且這些系統(tǒng)另外一個(gè)共同特點(diǎn)是都提供了SQL或者類SQL接口。

      為了能夠較好研究這些系統(tǒng),我們需要對(duì)并行查詢與并行計(jì)算的相關(guān)技術(shù)做一個(gè)簡(jiǎn)要的介紹。

      首先所有的系統(tǒng)都可以分為三個(gè)層次: 語義層、并行計(jì)算引擎層、分布式存儲(chǔ)層。語義層提供一個(gè)編程接口讓用戶表達(dá)所需要計(jì)算,并負(fù)責(zé)把該計(jì)算翻譯成底層并行計(jì)算引擎可以執(zhí)行的執(zhí)行計(jì)劃,并由并行計(jì)算引擎來執(zhí)行,最下面一層是分布式存儲(chǔ)層。

      對(duì)于提供類SQL接口并行計(jì)算系統(tǒng),語義層可以認(rèn)為是SQL解析層。1)語義層

      SQL語言是一種聲名式語言,SQL只是表達(dá)了要做什么,而沒有表達(dá)怎么做。為此,SQL解析層主要作用是:將用戶提交的基于SQL的統(tǒng)計(jì)分析請(qǐng)求,轉(zhuǎn)化為底層計(jì)算引擎層可以執(zhí)行的執(zhí)行計(jì)劃。也就是解決“怎么做”的問題。SQL解析層工作主要包括兩個(gè)大方面:(1)通過語法分析技術(shù)來理解要做什么。在關(guān)系數(shù)據(jù)庫(kù)中,一般會(huì)把SQL語言分析后,形成樹型結(jié)構(gòu)的執(zhí)行計(jì)劃。

      (2)在語法分析技術(shù)上,利用各種優(yōu)化技術(shù)和算法,找出一種最經(jīng)濟(jì)物理執(zhí)行計(jì)劃。

      優(yōu)化可以分為兩個(gè)方面:一是邏輯層面優(yōu)化、二是物理執(zhí)行層面優(yōu)化。(1)邏輯層優(yōu)化

      邏輯層面?zhèn)€人認(rèn)為主要是因?yàn)橥瑯颖磉_(dá)一個(gè)分析請(qǐng)求,有的人SQL寫的好,有的人SQL寫的爛,因此在邏輯層面可以通過一些等價(jià)關(guān)系代數(shù)變換,實(shí)現(xiàn)查詢重寫,將寫的比較爛的sql變換為好的寫法。

      比較典型優(yōu)化是:“把投影和過濾下沉,先執(zhí)行過濾和投影操作”,減少中間結(jié)果。

      (2)物理層優(yōu)化

      物理層面優(yōu)化是在邏輯優(yōu)化后,結(jié)合實(shí)際物理執(zhí)行過程,找出最優(yōu)的物理執(zhí)行計(jì)劃。生成物理查詢計(jì)劃的工作包括: ü 增加一些操作符: 包括掃描和排序等。

      ü 確定各個(gè)操作符實(shí)現(xiàn)算法。例如掃描是全表掃描還是利用索引;Join是采用HASH連接、索引連接、合并排序等實(shí)現(xiàn)算法中的那一種。ü 確定操作符之間的數(shù)據(jù)流轉(zhuǎn)方法:物化還是流水線方式。

      ü 采用基于代價(jià)估算方法確定最優(yōu)的物理執(zhí)行計(jì)劃,目前代價(jià)估算主要是以估算該物理計(jì)劃需要的IO量。另外對(duì)于并行數(shù)據(jù)庫(kù),則還要考慮通訊代價(jià),即盡量減少數(shù)據(jù)在各個(gè)機(jī)器之間的傳遞。

      在物理層優(yōu)化的代價(jià)估算過程中,代價(jià)估算需要依靠很多統(tǒng)計(jì)信息,如表有多大,表中相關(guān)列的值分布是什么樣子等。傳統(tǒng)數(shù)據(jù)庫(kù)在數(shù)據(jù)Load過程中會(huì)事先計(jì)算好這些統(tǒng)計(jì)信息。并行計(jì)算中還需要考慮通訊代價(jià)。需要指出是,由于imapla、Presto、HIVE等系統(tǒng)只是一個(gè)查詢引擎,它們可以直接查詢以普通文件方式存儲(chǔ)在HDFS系統(tǒng)上的文件,因此這些系統(tǒng)一般無法使用索引和各種統(tǒng)計(jì)信息來進(jìn)行物理執(zhí)行計(jì)劃的優(yōu)化,這些系統(tǒng)一般只能在邏輯層進(jìn)行一些基于規(guī)則靜態(tài)優(yōu)化。根據(jù)SHARK論文,SHARK系統(tǒng)支持根據(jù)前面一些節(jié)點(diǎn)計(jì)算獲得的信息,來動(dòng)態(tài)優(yōu)化后面執(zhí)行計(jì)劃。

      (3)物化與流水線執(zhí)行方法

      一條SQL語句對(duì)開發(fā)人員而言,感覺只是一次調(diào)用,但是實(shí)際上在數(shù)據(jù)庫(kù)內(nèi)部,一條SQL語句執(zhí)行其實(shí)是有多個(gè)操作符組合而成的的樹型結(jié)構(gòu)計(jì)算流。如下圖:

      針對(duì)該計(jì)算流有兩種執(zhí)行方式:一是基于物化或者是實(shí)體化執(zhí)行方式,另外一種是基于數(shù)據(jù)流的執(zhí)行方式。第一種方法的過程是: 把各個(gè)操作運(yùn)算排序,并把每個(gè)操作運(yùn)算的輸出的中間結(jié)果存儲(chǔ)在磁盤上,直到被另外一個(gè)操作運(yùn)算所讀取。

      另外一種方法是同時(shí)交錯(cuò)進(jìn)行多個(gè)運(yùn)算,由一個(gè)運(yùn)算產(chǎn)生每個(gè)元組直接傳遞給下一個(gè)運(yùn)算,而不將中間結(jié)果存儲(chǔ)到磁盤,也不用等到前一個(gè)運(yùn)算全部運(yùn)算完畢。例如: 兩個(gè)表連接后,再進(jìn)行投影操作。如果采用第一種方法,則需要 把兩表連接中間結(jié)果臨時(shí)寫入磁盤,然后再讀取該結(jié)果執(zhí)行投影操作。而如果采用第二種方法,則連接操作一旦產(chǎn)生一個(gè)元組就可以立刻送到投影操作去進(jìn)行投影操作。

      流水線方法可以極大避免大量的中間結(jié)果磁盤IO。因此數(shù)據(jù)庫(kù)一般會(huì)采取流水線方法來執(zhí)行。流水執(zhí)行方法有兩種模式:一種是需求驅(qū)動(dòng)流水線,也就是從上層主動(dòng)向下層要求元組,另外一種是生產(chǎn)者驅(qū)動(dòng)流水線執(zhí)行方式,由低層主動(dòng)產(chǎn)生元組,由下層向上層推。

      目前大部分?jǐn)?shù)據(jù)庫(kù)引擎采用的是需求驅(qū)動(dòng)流水線,實(shí)現(xiàn)方式采用基于Graefe提出的迭代器模型。該模型把每個(gè)操作都表達(dá)為由三個(gè)接口: open(), getnext(), close()。每個(gè)操作被調(diào)用open()進(jìn)行準(zhǔn)備工作,然后通過反復(fù)迭代被調(diào)用getnext來獲取下一個(gè)元組,最后被調(diào)用close來進(jìn)行清理工作。通過構(gòu)建迭代器網(wǎng)絡(luò),也就是迭代器之間的互相調(diào)用,就可以實(shí)現(xiàn)需求驅(qū)動(dòng)流水線。

      當(dāng)然不是任何操作都可以流水執(zhí)行,流水執(zhí)行條件是:操作要滿足在接收輸入元組時(shí)可以輸出元組。例如排序操作就無法進(jìn)行流水操作,在執(zhí)行排序操作前都必須進(jìn)行實(shí)體化。

      (4)SQL解析層與并行計(jì)算引擎層 由于不同并行計(jì)算引擎層的執(zhí)行計(jì)劃表達(dá)不同,因此不同系統(tǒng)需要將SQL解析成不同的形式物理執(zhí)行計(jì)劃,例如:

      MPP關(guān)系數(shù)據(jù)庫(kù)一般是把SQL解析成樹狀結(jié)構(gòu)的物理執(zhí)行計(jì)劃。

      HIVE、Tezning數(shù)據(jù)庫(kù)是把SQL解析成DAG結(jié)構(gòu)的多個(gè)MAPREDUCE組合。DRemel等則類似MPP關(guān)系數(shù)據(jù)庫(kù),把SQL解析成一個(gè)樹狀結(jié)構(gòu)執(zhí)行計(jì)劃。微軟SCOPE則需要把類SQL解析成DAG結(jié)構(gòu)的Dryad可執(zhí)行的執(zhí)行計(jì)劃。SHARK則需要把SQL解析成基于scala語言的DAG結(jié)構(gòu)執(zhí)行計(jì)劃。

      并發(fā)

      并行

      并行計(jì)算引擎層(1)并行計(jì)算形式 并行化可以分為水平并行(無依賴并行)與垂直并行(流水線并行)兩類。如下圖:

      如果兩個(gè)操作OP1、OP2 無相互依賴關(guān)系,則稱這兩個(gè)操作相互獨(dú)立。水平并行化指的是互相獨(dú)立的多個(gè)操作或者一個(gè)操作內(nèi)互相獨(dú)立的多個(gè)子操作分別由不同的處理機(jī)并行執(zhí)行的形式。例如,排序操作、掃描操作由不同處理機(jī)并行執(zhí)行就是水平并行化的實(shí)例。

      水平并行中一個(gè)非常常見的就是基于數(shù)據(jù)劃分的并行,例如MAPREDUCE,就是通過將數(shù)據(jù)劃分到多臺(tái)服務(wù)器上,并行執(zhí)行MAP和Reduce來進(jìn)行并行運(yùn)算。也有人把這種基于數(shù)據(jù)劃分并行與操作獨(dú)立并行區(qū)分開。

      垂直并行化則是指存在流水線方式依賴關(guān)系的操作分別由不同處理機(jī)并行執(zhí)行的形式。流水線方式依賴:如果OP2無需等待OP1執(zhí)行完畢即可在另一處理機(jī)上開始執(zhí)行。由于一般情況下,流水的級(jí)數(shù)遠(yuǎn)小于處理的數(shù)據(jù)條目,因此流水并行主要意義是在可以避免中間結(jié)果磁盤IO操作,對(duì)并行度的貢獻(xiàn)相對(duì)較小。

      (2)并行計(jì)算面臨的問題與并行計(jì)算框架

      并行計(jì)算需要解決的問題主要包括幾下幾個(gè)方面:自動(dòng)并行化、通訊、任務(wù)調(diào)度、并發(fā)控制、容錯(cuò)、資源管理。由于并行計(jì)算面向上述一系列問題,因?yàn)闃I(yè)界為了簡(jiǎn)化并行程序開發(fā),提供了一系列的并行計(jì)算底層庫(kù)或者框架。

      在高性能計(jì)算領(lǐng)域,最常用于并行計(jì)算編程的庫(kù)是MPI庫(kù),但是該庫(kù)主要只是解決通訊問題。這導(dǎo)致容錯(cuò)、資源管理、任務(wù)調(diào)度、并行化等方面問題需要程序員來解決,因此利用MPI開發(fā)并行程序相對(duì)比較困難。

      最近一些年,各大型互聯(lián)網(wǎng)公司開發(fā)開發(fā)了一系列的通用并行計(jì)算框架。包括谷歌公司的MAPREDUCE框架、微軟公司的Dryad框架(目前微軟已經(jīng)停止該項(xiàng)目開發(fā),轉(zhuǎn)而支持hadoop)、谷歌公司基于BSP模型的Pregel框架、Twitter公司的Storm框架、Yahoo公司S4框架、HortonWorks公司的Tez框架、Berkeley大學(xué)的spark框架等通用并行計(jì)算框架。

      有了這些框架了,程序開發(fā)時(shí)只需要編寫串行執(zhí)行程序即可,而且也不用考慮任務(wù)與任務(wù)之間的并發(fā)控制以及通訊等問題,其它所有問題都有框架來解決,這樣就大大簡(jiǎn)化并行程序開發(fā)難度。例如采用MAPREDUCE框架,我們只需要提供MAP函數(shù)和Reduce函數(shù),這些函數(shù)對(duì)程序員而言,都只是對(duì)本地?cái)?shù)據(jù)操作。目前雖然并行計(jì)算框架很多,但是可以把它們分成幾個(gè)大類(基于BSP并行圖計(jì)算引擎請(qǐng)參考第四章):

      流數(shù)據(jù)并行計(jì)算框架 Storm、S4是屬于流數(shù)據(jù)并行計(jì)算框架,適合對(duì)流數(shù)據(jù)實(shí)時(shí)處理,也就是在數(shù)據(jù)寫入磁盤前對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)并發(fā)運(yùn)算。這類特點(diǎn)是計(jì)算不變,數(shù)據(jù)一直在變化。在上一個(gè)文檔中,對(duì)此框架做過詳細(xì)介紹,這里不再詳細(xì)介紹?;贒AG通用批處理并行計(jì)算框架

      MapReduce、Tez、Dryad、Spark等屬于基于DAG(有向無環(huán)圖)的通用批處理并行計(jì)算框架。這類框架是針對(duì)存儲(chǔ)在存儲(chǔ)設(shè)備上的一批數(shù)據(jù)進(jìn)行分析處理,而且把分析處理流程利用DAG模型來表達(dá)。

      在這些框架中MAPREDUCE是最早出現(xiàn)的框架,而后面出現(xiàn)的一系列框架都為了改進(jìn)MR框架不足而出現(xiàn)的升級(jí)版本。MR框架主要不足是兩個(gè)方面:

      一是編程接口太簡(jiǎn)單,表現(xiàn)在單個(gè)MAPREDUCE無法表達(dá)復(fù)雜運(yùn)算,所以在實(shí)際應(yīng)用環(huán)境中都是通過多個(gè)MR作業(yè)組合來完成一個(gè)任務(wù)。為了簡(jiǎn)化MR作業(yè)組合,在早期出現(xiàn)了一系列項(xiàng)目來執(zhí)行組和式MR作業(yè),例如Cascading項(xiàng)目。另外一個(gè)方面所有問題都必須轉(zhuǎn)換為MAP和REDUCE模式,導(dǎo)致程序編寫比較麻煩。

      二是MR只支持基于數(shù)據(jù)分區(qū)并行方式,不支持流水線并行,采用是步步物化策略來提高可靠性,當(dāng)是這種導(dǎo)致大量中間結(jié)果物化,IO開銷非常大。因此Tez、Dryad、Spark等后續(xù)框架改進(jìn)主要針對(duì)以下兩點(diǎn)進(jìn)行改進(jìn): 一是直接支持基于DAG結(jié)構(gòu)表達(dá)方法,DAG使得用戶能夠非常清晰地寫出非常復(fù)雜的業(yè)務(wù)邏輯; 二是通過支持流水線并性方式或者是盡量將中間結(jié)果放內(nèi)存等方式,解決中間結(jié)果物化導(dǎo)致的IO開銷問題。Dryad和Spark框架在執(zhí)行運(yùn)算時(shí),都會(huì)自動(dòng)識(shí)別可以采取流水線方式執(zhí)行的計(jì)算步驟,并盡量采用流水線執(zhí)行方式來執(zhí)行。容錯(cuò):由于支持流水線并行或者采取把中間結(jié)果放內(nèi)存的方式,因此要必須考慮容錯(cuò)的問題。由于這些框架都采用的是DAG結(jié)構(gòu),DAG中一個(gè)節(jié)點(diǎn)所代表計(jì)算的執(zhí)行是不會(huì)對(duì)輸入進(jìn)行修改(所謂函數(shù)式編程),因此可以多次重復(fù)執(zhí)行不會(huì)影響計(jì)算。因此如果某個(gè)節(jié)點(diǎn)計(jì)算失敗,它可以根據(jù)輸入重復(fù)計(jì)算,而如果輸入數(shù)據(jù)也消失了,則讓前一個(gè)節(jié)點(diǎn)重新計(jì)算。所有這一切都是由框架自動(dòng)執(zhí)行。當(dāng)然需要指出的是對(duì)一些流水線執(zhí)行的多個(gè)計(jì)算步驟,如果某個(gè)計(jì)算節(jié)點(diǎn)失敗,則只能整個(gè)流水線整體失敗。

      基于Tree結(jié)構(gòu)的MPP并行查詢引擎

      MPP并行數(shù)據(jù)庫(kù)與Dremel、impala、Presto、Shard query、Citusdb都采用的是基于Tree結(jié)構(gòu)并行查詢引擎。此類并行計(jì)算引擎共同特點(diǎn)是: 一是針對(duì)SQL專用并行計(jì)算引擎,只支持SQL或者類SQL語義。二是執(zhí)行計(jì)劃都是樹狀結(jié)構(gòu);

      三是以流水線或者將中間結(jié)果放入內(nèi)存方式來實(shí)現(xiàn)快速計(jì)算。四是粗粒度容錯(cuò)機(jī)制。它們之間不同點(diǎn):

      一 MPP并行數(shù)據(jù)庫(kù)中并行查詢引擎與底層存儲(chǔ)是緊耦合的,導(dǎo)致如果采用MPP并行數(shù)據(jù)庫(kù),則只能通過SQL來訪問數(shù)據(jù),無法采用其他計(jì)算引擎直接處理存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

      二 Impala、Presto都只是一個(gè)并行查詢引擎,它們可以直接查詢以文件方式存儲(chǔ)在HDFS上的數(shù)據(jù),這樣同一份數(shù)據(jù)既可以利用這些引擎來實(shí)現(xiàn)交互式查詢,也可以支持利用其他計(jì)算框架進(jìn)行更深入分析。

      三 Dremel 只支持Google自己的基于嵌套結(jié)構(gòu)列式存儲(chǔ)(Column IO)。該引擎也主要適合于聚合型計(jì)算,不支持join操作。

      四 上述引擎中只有MPP并行數(shù)據(jù)庫(kù)可以利用索引以及各種統(tǒng)計(jì)信息來優(yōu)化物理執(zhí)行過程,因此該系統(tǒng)執(zhí)行效率應(yīng)該是最高。

      五 Dremel、impala都只適合中間結(jié)果越來越小的查詢,因?yàn)檫@些系統(tǒng)都是把中間結(jié)果放在內(nèi)存,一旦某個(gè)中間節(jié)點(diǎn)輸出結(jié)果超過內(nèi)存,則整個(gè)任務(wù)會(huì)失敗,例如大表之間Join。

      六 shard query和citusdb 都是在單機(jī)版本關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)上,采用增加一層中間件方式來支持并行查詢。

      n基于Tree并行計(jì)算引擎與基于DAG并行計(jì)算引擎本質(zhì)區(qū)別

      基于Tree結(jié)構(gòu)并行計(jì)算引擎與基于DAG并行計(jì)算引擎從表面上看,它們之間的主要區(qū)別是在于語義層面:前者主要專用與SQL類,而后者更通用。但是MPP并行關(guān)系數(shù)據(jù)庫(kù)引擎、Imapla等都會(huì)支持通過UDF來擴(kuò)展和解決標(biāo)準(zhǔn)SQL語言表達(dá)能力,另外SQL語言本身可以通過嵌套查詢、子查詢、union等各種方法表達(dá)很復(fù)雜的計(jì)算過程,因此從語義表達(dá)層面來講他們之間不存在本質(zhì)區(qū)別。

      這兩者之間主要區(qū)別還是在于表達(dá)執(zhí)行計(jì)劃結(jié)構(gòu)方面:樹結(jié)構(gòu)是一個(gè)逐步匯聚的一個(gè)計(jì)算過程,無法表達(dá)split結(jié)構(gòu),因此基于DAG表達(dá)結(jié)構(gòu)更靈活和通用。個(gè)人認(rèn)為:樹型結(jié)構(gòu)可能更加適合采用迭代器模型來實(shí)現(xiàn)流水線式的操作(只有樹結(jié)構(gòu)才有上下層的關(guān)系,因此方便實(shí)現(xiàn)上層操作符嵌套調(diào)用下層操作符)。所以不是所有計(jì)算都可以通過一個(gè)復(fù)雜SQL語句來表達(dá)!

      (5)自動(dòng)并行化、數(shù)據(jù)重分布、本地調(diào)度

      并行計(jì)算引擎最重要的一個(gè)職責(zé)是自動(dòng)并行。根據(jù)前面的并行計(jì)算基礎(chǔ)知識(shí),并行計(jì)算的形式主要包括:基于數(shù)據(jù)劃分水平并行、基于流水線垂直并行、基于無依賴水平并行三種方式。

      大數(shù)據(jù)屬于數(shù)據(jù)密集型計(jì)算,數(shù)據(jù)數(shù)量遠(yuǎn)遠(yuǎn)超過計(jì)算步驟數(shù)量。因此基于數(shù)據(jù)劃分并行方式是最有效的一種并行計(jì)算方法。在整個(gè)并行計(jì)算過程中,基于數(shù)據(jù)劃分中涉及數(shù)據(jù)可以分為兩大類:原始數(shù)據(jù)與中間結(jié)果數(shù)據(jù)。n 原始數(shù)據(jù)劃分以及SN、SD架構(gòu)討論

      原始數(shù)據(jù)則可能存在兩種情況:一是在Shared-nothing架構(gòu)中,原始數(shù)據(jù)本身就已經(jīng)劃分好了,例如HDFS或者SN架構(gòu) MPP數(shù)據(jù)庫(kù);另外一種情況如shared-disk結(jié)構(gòu)中,原始數(shù)據(jù)沒有劃分。

      第一種情況下針對(duì)原始數(shù)據(jù)劃分并行計(jì)算,就要受該劃分的限制。例如在MAPREDUCE中,map輸入是存儲(chǔ)在HDFS上的數(shù)據(jù)文件,因此MAP實(shí)例個(gè)數(shù)一是不能少于該數(shù)據(jù)文件分片數(shù),二是MAP實(shí)例最好運(yùn)行在該數(shù)據(jù)文件所在機(jī)器,也就是要求任務(wù)調(diào)度時(shí),能把該任務(wù)調(diào)度到特定機(jī)器上,即所謂“本地調(diào)度”,將計(jì)算盡量移動(dòng)到數(shù)據(jù)。第二種情況下,由于所有計(jì)算節(jié)點(diǎn)都可以看到所有數(shù)據(jù),因此此時(shí)可以根據(jù)計(jì)算特點(diǎn)靈活選擇:數(shù)據(jù)劃分粒度、并行度、參與計(jì)算的節(jié)點(diǎn)。例如在ORALCE并性機(jī)制中,ORALCE可以針對(duì)某張表,按block或者partition 為單位進(jìn)行劃分。根據(jù)上述分析我們可以發(fā)現(xiàn)SD架構(gòu)相對(duì)SN架構(gòu),在針對(duì)原始數(shù)據(jù)第一級(jí)并性計(jì)算時(shí),SD架構(gòu)更靈活,SN架構(gòu)面臨的一個(gè)缺陷就是如果原始數(shù)據(jù)分布不均衡,則存在計(jì)算傾斜問題。

      但是現(xiàn)在大部分大的數(shù)據(jù)庫(kù)廠商的MPP數(shù)據(jù)庫(kù)還是采用了SN架構(gòu)。根據(jù)網(wǎng)上所查資料來看,主要原因有兩點(diǎn):

      一是SD架構(gòu)下,磁盤是一個(gè)共享資源,計(jì)算節(jié)點(diǎn)越多磁盤爭(zhēng)搶概率越大(和RAID隨機(jī)IO沖突道理一樣),導(dǎo)致該架構(gòu)可擴(kuò)展性不夠好,也就是可能計(jì)算節(jié)點(diǎn)越多,效率相反不會(huì)提高。

      二是從緩存角度來看,SD架構(gòu)下每個(gè)機(jī)器緩存都要面向全數(shù)據(jù)庫(kù),會(huì)導(dǎo)致命中概率底下;目前ORACLE-RAC開發(fā)一個(gè)fusion cache技術(shù),實(shí)現(xiàn)了一個(gè)全局共享緩存來解決上述問題,但是可想而知這會(huì)影響系統(tǒng)可擴(kuò)展性。因此超過一定規(guī)模數(shù)據(jù)分析系統(tǒng),都是采用SN架構(gòu)。

      中間結(jié)果數(shù)據(jù)劃分與數(shù)據(jù)重分布

      中間結(jié)果是由各個(gè)計(jì)算節(jié)點(diǎn)產(chǎn)生的,因此中間結(jié)果生成是就是分布在各個(gè)參與計(jì)算節(jié)點(diǎn)之上的,因此:

      一 :SD架構(gòu)下數(shù)據(jù)共享好處,對(duì)中間結(jié)果無效。

      二 :如果由于計(jì)算任務(wù)之間需要,需要在任務(wù)之間傳遞中間結(jié)果,則即使是SD架構(gòu)也存在數(shù)據(jù)重分布的問題,主要是中間結(jié)果重分布,也就是中間結(jié)果傳輸。另外從該過程我們還可以得出另外一個(gè)結(jié)論:

      一: 對(duì)于復(fù)雜的數(shù)據(jù)處理,索引只能影響第一級(jí)計(jì)算,對(duì)于中間結(jié)果,由于只使用一次,因此沒有必要去針對(duì)中間結(jié)果建立索引。也就是即使我們將數(shù)據(jù)存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)中,也只有第一級(jí)計(jì)算能有效利用數(shù)據(jù)庫(kù)索引。

      二:即使采用并行數(shù)據(jù)庫(kù),如果我們的整個(gè)計(jì)算過程不能用一個(gè)SQL語句來表達(dá),則我們必須自己解決中間結(jié)果的劃分與并性計(jì)算的問題。

      (6)并行計(jì)算引擎架構(gòu)與資源管理

      所有并行計(jì)算引擎實(shí)現(xiàn)基本上都是主從結(jié)構(gòu),即一個(gè)MASTER + 多個(gè)slave節(jié)點(diǎn)的結(jié)構(gòu)。由client向MASTER提交一個(gè)job,然后由Master負(fù)責(zé)將邏輯執(zhí)行計(jì)劃變成實(shí)際執(zhí)行計(jì)劃,并由Master負(fù)責(zé)將各個(gè)任務(wù)分發(fā)到各個(gè)slave中,并負(fù)責(zé)各個(gè)任務(wù)的調(diào)度。MPP數(shù)據(jù)庫(kù)查詢引擎架構(gòu)

      MAPREDUCE架構(gòu)和該架構(gòu)缺點(diǎn)

      Mapreduce框架中,JobTracker承當(dāng)MASTER的職責(zé),一般和HDFS中的NadeNode節(jié)點(diǎn)安裝在一個(gè)服務(wù)器上。TaskTracker安裝在各個(gè)DataNode上,承擔(dān)Slave的角色。

      流程如下:

      (1)首先用戶程序(Client Program)提交了一個(gè)job,job的信息會(huì)發(fā)送到Job Tracker中,Job Tracker是Map-reduce框架的中心,他需要與集群中的機(jī)器定時(shí)通信(heartbeat), 需要管理哪些程序應(yīng)該跑在哪些機(jī)器上,需要管理所有job失敗、重啟等操作。

      (2)TaskTracker是Map-reduce集群中每臺(tái)機(jī)器都有的一個(gè)部分,他做的事情主要是監(jiān)視自己所在機(jī)器的資源情況(資源的表示是“本機(jī)還能起多少個(gè)map-task,多少個(gè)reduce-task”,每臺(tái)機(jī)器起map/reduce task的上限是在建立集群的時(shí)候配置的),另外TaskTracker也會(huì)監(jiān)視當(dāng)前機(jī)器的tasks運(yùn)行狀況。

      (3)TaskTracker需要把這些信息通過heartbeat發(fā)送給JobTracker,JobTracker會(huì)搜集這些信息以給新提交的job分配運(yùn)行在哪些機(jī)器上。MAPREDUCE結(jié)構(gòu)存在以下缺點(diǎn):(1)jobtracker只能安裝在一臺(tái)服務(wù)器上,集中式作業(yè)控制導(dǎo)致可擴(kuò)展性不好,另外JobTracker負(fù)責(zé)事情太多,容易成為性能瓶頸。

      (2)資源調(diào)度與編程模型緊耦合,只支持MAPREDUCE一種編程模型。(3)資源劃分太簡(jiǎn)單,每個(gè)TaskTracker只是簡(jiǎn)單把整個(gè)機(jī)器資源按map task slot和reduce task slot來劃分,而沒有考慮不通任務(wù)所需的內(nèi)存和CPU等的資源不同。

      針對(duì)上述特點(diǎn),hadoop平臺(tái)開發(fā)通用的資源管理器yarn,只負(fù)責(zé)資源管理和分配,即通過把jobtrack中的資源管理分配自和并行應(yīng)用程序調(diào)度與控制分離,從而實(shí)現(xiàn)雙層調(diào)度框架:由yarn把資源分配給各計(jì)算引擎MASTER,再由MASTER分配給各個(gè)TASK。

      資源管理器YARN

      流程如下:

      1)client 通過一個(gè)CLC(container launch context)向ResourceManager提交一個(gè)應(yīng)用

      2)RM 啟動(dòng)該應(yīng)用的 AplicationMaster。AplicationMaster啟動(dòng)后先向ResourceManager注冊(cè),并利用心跳信息,定期向ResourceManager報(bào)告自己存活性和資源分配請(qǐng)求

      3)ResourceManager分配一個(gè)container(container包括CPU個(gè)數(shù)和所需內(nèi)存數(shù)量)時(shí),AplicationMaster構(gòu)造一個(gè)CLC,并在該container對(duì)應(yīng)機(jī)器上Nodemanager上啟動(dòng)該container。AplicationMaster 監(jiān)控該container的運(yùn)行狀態(tài),并且該資源需要被回收時(shí),由AplicationMaster停止該container。監(jiān)控container內(nèi)部的作業(yè)的執(zhí)行進(jìn)度是AplicationMaster的職責(zé)。4)一旦整個(gè)運(yùn)行完畢,AM從RM中解除注冊(cè),并且干凈退出。

      這種架構(gòu)優(yōu)點(diǎn)是:

      優(yōu)點(diǎn)一:減小了JobTracker(也就是現(xiàn)在的ResourceManager)的資源消耗,并且讓監(jiān)測(cè)每一個(gè)Job子任務(wù)(tasks)狀態(tài)的程序分布式化了,更安全、更優(yōu)美。也就是ApplicationMaster是每個(gè)應(yīng)用一個(gè),并且不通應(yīng)用對(duì)應(yīng)的ApplicationMaster的實(shí)例可以運(yùn)行在不同服務(wù)器上。

      優(yōu)點(diǎn)二:能夠支持不同的編程模型ApplicationMaster是一個(gè)可變更的部分,用戶可以對(duì)不同的編程模型寫自己的ApplicationMaster,讓更多類型的編程模型能夠跑在Hadoop集群中。

      優(yōu)點(diǎn)三:對(duì)于資源的表示比之前以剩余slot數(shù)目更合理。

      存儲(chǔ)層

      數(shù)據(jù)存儲(chǔ)層主要包括以下幾類:

      一類是基于MPP數(shù)據(jù)庫(kù)集群,這類系統(tǒng)特點(diǎn)是存儲(chǔ)層與上層并型計(jì)算引擎是緊耦合,屬于封閉性的系統(tǒng)。

      二是采用分布式文件系統(tǒng),例如SharK、Stinger、HIVE、Impala、Scope等。Shark、Stinger、Hive、Imapla都采用HDFS文件系統(tǒng)作為存儲(chǔ)層,Scope采用微軟自己開發(fā)的分布式文件系統(tǒng)。此類系統(tǒng)特點(diǎn)是存儲(chǔ)層與上層計(jì)算引擎層之間是松耦合關(guān)系。三是存儲(chǔ)層基于單機(jī)版本關(guān)系數(shù)據(jù)庫(kù),例如CitusDB采用PostSQL數(shù)據(jù)庫(kù)系統(tǒng)、shardquery采用Mysql數(shù)據(jù)庫(kù)系統(tǒng)。此類系統(tǒng)類似于一個(gè)中間件,也可以認(rèn)為上層和底層存儲(chǔ)層屬于松耦合關(guān)系。

      四是可以支持各種異構(gòu)的存儲(chǔ)系統(tǒng),例如Presto、Tenzing。Presto設(shè)計(jì)即支持HDFS也支持存儲(chǔ)在Mysql中的數(shù)據(jù),但是目前只支持HDFS;Tenzing底層支持:Google File System、MySQL、Bigtable。

      不同存儲(chǔ)系統(tǒng)對(duì)上層計(jì)算有一些影響,典型如Tenzing系統(tǒng)會(huì)利用底層存儲(chǔ)系統(tǒng)的一些特性:

      (1)例如如果低層是mysql數(shù)據(jù)庫(kù),則可以直接利用mysql索引來過濾(2)如果底層是bigtable數(shù)據(jù)庫(kù),則可以直接利用bigtable 范圍scan來過濾(3)如果底層是列存儲(chǔ)系統(tǒng),則可以只掃描需要掃描的列。

      (4)如果底層是列存儲(chǔ)系統(tǒng),且頭文件里面有該列最大值和最小值,則可以利用該信息直接跳過某些文件的掃描。

      另外需要指出的是,目前已上所有系統(tǒng)都有一個(gè)趨勢(shì)就是采用列式存儲(chǔ)。例如HIVE開發(fā)了行列混合的RCFILE文件格式(先按行劃分,保證每行的數(shù)據(jù)不會(huì)垮機(jī)器存儲(chǔ),然后再按劣存儲(chǔ)),shark系統(tǒng)開發(fā)了內(nèi)存中的列式存儲(chǔ)格式,citusDB開發(fā)了專用postSQL數(shù)據(jù)庫(kù)的列式存儲(chǔ)引擎。Druid等專用系統(tǒng)簡(jiǎn)單介紹 1)JethroData系統(tǒng) JethroData的特點(diǎn)是hadoop+index。該系統(tǒng)對(duì)存儲(chǔ)在HDFS上的結(jié)構(gòu)化數(shù)據(jù)建立索引,并把索引文件也以普通文件方式存儲(chǔ)在HDFS系統(tǒng),并在查詢處理時(shí)采取以下過程:

      (1)查詢主節(jié)點(diǎn)負(fù)責(zé)分析SQL語句后,針對(duì)sql中的where條件部分,利用索引文件來得到符合where過濾條件后的rowid集合。

      (2)該rowid集合涉及各datanode節(jié)點(diǎn),采用并發(fā)方式來讀取數(shù)據(jù)。(3)所有數(shù)據(jù)匯總到查詢主節(jié)點(diǎn),進(jìn)行匯總與計(jì)算,并將最終結(jié)果返回給客戶端??梢钥闯觯捎谠撓到y(tǒng)設(shè)計(jì)思路是希望通過索引來加速數(shù)據(jù)選擇,因此只適合每次查詢處理只涉及少量一部分?jǐn)?shù)據(jù)。

      2)Druid系統(tǒng)

      本系統(tǒng)是美國(guó)metamarket公司開發(fā)的面向海量數(shù)據(jù)的實(shí)時(shí)統(tǒng)計(jì)分析系統(tǒng),以實(shí)現(xiàn)針對(duì)上億級(jí)別海量數(shù)據(jù)統(tǒng)計(jì)分析的延遲在1秒以內(nèi)。該系統(tǒng)于2012年10月開源。該系統(tǒng)可以認(rèn)為是一個(gè)分布式的內(nèi)存OLAP系統(tǒng)。

      該系統(tǒng)主要分析的數(shù)據(jù)為交易記錄,每條交易記錄包括三個(gè)部分:交易發(fā)生的時(shí)間點(diǎn)、多個(gè)維度屬性、多個(gè)數(shù)值型度量屬性。例如:

      該系統(tǒng)設(shè)計(jì)用來可以回答以下問題“有多少個(gè)針對(duì)Justin Bieber的編輯來自San Francisco? ”、“一個(gè)月內(nèi)來自Calgary的增加編輯字?jǐn)?shù)的平均數(shù)是多少?”。而且要求:能夠在高并發(fā)環(huán)境下,在1秒以內(nèi)完成任意維度組合的統(tǒng)計(jì),且保證系統(tǒng)高可用;還系統(tǒng)還要能夠具備實(shí)時(shí)數(shù)據(jù)分析能力,也就是能夠查詢分析到最新的數(shù)據(jù),延時(shí)時(shí)間為秒級(jí)。

      為了達(dá)到上述目標(biāo),該公司先后通過測(cè)試發(fā)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)技術(shù)和NOSQL數(shù)據(jù)庫(kù)都無法滿足其需求。關(guān)系型數(shù)據(jù)庫(kù)由于磁盤io瓶頸導(dǎo)致性能無法滿足需求,而NOSQL數(shù)據(jù)庫(kù)雖然可以采用預(yù)計(jì)算方法來達(dá)到高性能,但是預(yù)計(jì)算無法滿足分析需求靈活多變。

      為解決該問題,該公司自己開發(fā)DRUID系統(tǒng),主要技術(shù)思路如下:(1)將原始數(shù)據(jù)(alpha數(shù)據(jù))進(jìn)行一定粒度合并,合并成beta數(shù)據(jù)。(2)將beta數(shù)據(jù)全部放入內(nèi)存,并通過分布式內(nèi)存方式解決單臺(tái)服務(wù)器內(nèi)存

      上限問題。

      (3)針對(duì)緯度屬性建立索引,以加速數(shù)據(jù)的選取。

      (4)采用分布式方式進(jìn)行并行統(tǒng)計(jì),為了保證分布式統(tǒng)計(jì)高效,該系統(tǒng)不支持join,而且對(duì)聚合計(jì)算不支持中位數(shù)等無法分布計(jì)算的聚合計(jì)算函數(shù)。(5)利用數(shù)據(jù)復(fù)制解決系統(tǒng)高可靠性問題。4 本章總結(jié)

      1)MPP并行數(shù)據(jù)庫(kù)得益于流水線的執(zhí)行以及基于統(tǒng)計(jì)優(yōu)化等方面,使得MPP并行數(shù)據(jù)庫(kù)的執(zhí)行效率是最高的。但缺點(diǎn)包括:

      n 數(shù)據(jù)導(dǎo)入時(shí)間長(zhǎng),導(dǎo)入時(shí)要做各種預(yù)處理,例如一些統(tǒng)計(jì)信息; n 執(zhí)行引擎和存儲(chǔ)緊耦合導(dǎo)致數(shù)據(jù)難以被其他分析引擎進(jìn)行分析;

      n 基于樹型結(jié)構(gòu)執(zhí)行計(jì)劃,導(dǎo)致MPP并行數(shù)據(jù)庫(kù)表達(dá)能力有限,更適合做統(tǒng)計(jì)與查詢,而不適合數(shù)據(jù)分析處理;

      n 容錯(cuò)性差,特別是一個(gè)任務(wù)涉及數(shù)據(jù)量越大,該缺陷越明顯。2)HIVE、Tenzing、Shark、SCOPE、Stinger等系統(tǒng)可以認(rèn)為基本屬于同一類系統(tǒng)。這類系統(tǒng)共同特點(diǎn)是:”通用并行計(jì)算引擎框架+SQL解析層”。并且可以將HIVE、Tenzing看成是基于第一代系統(tǒng),而Shark、Scope、Stinger是第二代系統(tǒng)。這一類系統(tǒng)特點(diǎn)如下:

      n 存儲(chǔ)層、執(zhí)行引擎層、SQL解析層三者分離,可以方便替換執(zhí)行引擎,對(duì)使用者而言,同一份數(shù)據(jù)可以采用不同并行執(zhí)行引擎來分析。

      n 在執(zhí)行效率方面,由于存儲(chǔ)和上層分離因此一半只能具備邏輯優(yōu)化能力,另外由于Tree結(jié)構(gòu)執(zhí)行計(jì)劃更容易采用流水線執(zhí)行方式,因此這類系統(tǒng)執(zhí)行效率總體來講不如MPP關(guān)系數(shù)據(jù)庫(kù),它們之間排序是MPP數(shù)據(jù)庫(kù) > 第二代系統(tǒng) > 第一代系統(tǒng)。

      n 在執(zhí)行效率方面,另外一點(diǎn)是這類系統(tǒng)一般內(nèi)置對(duì)索引的支持不是太好或者不支持。

      n 在大規(guī)模計(jì)算容錯(cuò)方面,這類系統(tǒng)要優(yōu)于MPP關(guān)系數(shù)據(jù)庫(kù)。

      3)Impala、Dremel等可以認(rèn)為屬于同一類系統(tǒng),此類系統(tǒng)介于前兩者系統(tǒng)之間。這類系統(tǒng)特點(diǎn)是:

      n 和MPP數(shù)據(jù)庫(kù)類似,基于Tree結(jié)構(gòu)執(zhí)行計(jì)劃,專注于查詢統(tǒng)計(jì),因此效率高于第二類系統(tǒng),但是可能和第二類系統(tǒng)的第二代相當(dāng)。

      n 與MPP數(shù)據(jù)庫(kù)不同的是這類系統(tǒng)只是一個(gè)引擎,與存儲(chǔ)系統(tǒng)松耦合。也就是SQL解析層與執(zhí)行層緊偶合,然后和存儲(chǔ)層松藕合。

      n 只適合做中間結(jié)果越來越小查詢分析,中間結(jié)果都放內(nèi)存,對(duì)內(nèi)存要求較高,例如無法實(shí)現(xiàn)大表之間的join。因此,在大型互聯(lián)網(wǎng)企業(yè)中,數(shù)據(jù)量太大,就會(huì)出現(xiàn)所謂“高價(jià)值、低密度”情況,反映到數(shù)據(jù)處理上,互聯(lián)網(wǎng)企業(yè)不會(huì)長(zhǎng)期存儲(chǔ)原始數(shù)據(jù),而是會(huì)把原始數(shù)據(jù)先經(jīng)過一部分預(yù)處理,經(jīng)過部分提煉后,把提煉后數(shù)據(jù)進(jìn)行長(zhǎng)期存儲(chǔ)和分析。也就是如下流程:

      例如淘寶,把每天數(shù)據(jù)直接寫入Hadoop平臺(tái),然后通過每天運(yùn)行相對(duì)固定

      mapreduce作業(yè)來做ETL,然后在計(jì)算結(jié)果基礎(chǔ)上為提供各種分析功能。其中海量原始數(shù)據(jù)經(jīng)過固定ETL后被刪除,由于只使用一次,因此沒有必要花很大精力把這些數(shù)據(jù)整理成適合分析與挖掘格式。例如在這種場(chǎng)景下,索引也沒有太大的價(jià)值,因此沒有必要花費(fèi)大量代價(jià)來建立索引。

      MPP并行數(shù)據(jù)庫(kù),適合存儲(chǔ)高密度價(jià)值數(shù)據(jù),并且是長(zhǎng)期存儲(chǔ)和多次使用,所以MPP并行數(shù)據(jù)庫(kù)會(huì)花大量經(jīng)歷在Load階段,把數(shù)據(jù)處理成適合分析格式。通過上述系統(tǒng)地介紹與比較,我們可以得出一個(gè)這樣結(jié)論:在大數(shù)據(jù)領(lǐng)域,沒有一個(gè)通用的解決方案,而需要根據(jù)具體業(yè)務(wù)場(chǎng)景,選擇合適的技術(shù)!

      4)通過上述系統(tǒng)研究,我們可以發(fā)現(xiàn)一點(diǎn)就是Join操作,特別是大表之間join操作是最消耗資源,也是最優(yōu)化難度較高的操作,特別是在并行join的實(shí)現(xiàn)難度較大。例如Druid和Dremel等都基本放棄了join操作。因此個(gè)人認(rèn)為應(yīng)該從業(yè)務(wù)上和從數(shù)據(jù)預(yù)處理方面,通過適當(dāng)數(shù)據(jù)冗余來盡量避免在分析過程過程中執(zhí)行join操作。

      四 大數(shù)據(jù)背景下數(shù)據(jù)分析挖掘技術(shù)介紹 1 Mahout與MLlib項(xiàng)目

      數(shù)據(jù)分析挖掘主要涉及兩個(gè)方面:一是數(shù)據(jù)預(yù)處理;二是數(shù)據(jù)挖掘。

      在數(shù)據(jù)預(yù)處理方面,根據(jù)掌握資料來看,大型互聯(lián)網(wǎng)公司主要以MapReduce、Storm等計(jì)算框架為主,這些平臺(tái)可以較好解決大數(shù)據(jù)預(yù)處理面臨并行計(jì)算和處理靈活性的問題。但是個(gè)人認(rèn)為spark、tez等屬于MapReduce升級(jí)版本,因此后面這些計(jì)算框架在這方面的應(yīng)用會(huì)越來越廣泛。

      在數(shù)據(jù)挖掘算法執(zhí)行方面,主要問題解決數(shù)據(jù)挖掘算法并行計(jì)算問題。早期在數(shù)據(jù)挖掘算法并行化方面項(xiàng)目主要是Mahout項(xiàng)目,該項(xiàng)目基于MAPREDUC 并行計(jì)算框架實(shí)現(xiàn)了推薦、分類等常用數(shù)據(jù)挖掘算法的并行化。

      但由于數(shù)據(jù)挖掘算法存在以下兩個(gè)方面特點(diǎn)導(dǎo)致基于MAPREDUCE框架來做數(shù)據(jù)數(shù)據(jù)挖掘算法執(zhí)行引擎效率不高:一是機(jī)器學(xué)習(xí)算法一般比較復(fù)雜,通常需要多次迭代計(jì)算,而MapReduce框架的步步物化導(dǎo)致中間結(jié)果會(huì)反復(fù)的序列化和反序列化導(dǎo)致效率不高;二是數(shù)據(jù)與數(shù)據(jù)之間依賴特別多,在計(jì)算過程中機(jī)器與機(jī)器之間的通訊非常多,而MapReduce框架下Map與Reduce之間存在路障同步, 導(dǎo)致大量時(shí)間被消耗在同步等待上面,效率不高。

      因此目前Mahout項(xiàng)目在2014年1月份在0.9版本發(fā)布后,該項(xiàng)目拋棄了MAPREDUCE框架,轉(zhuǎn)而采用SPARK作為底層計(jì)算框架。

      除Mahout項(xiàng)目外,SPARK自己采用SPARK專門針對(duì)機(jī)器學(xué)習(xí)領(lǐng)域開發(fā)MLlib項(xiàng)目。但是MLlib項(xiàng)目出現(xiàn)時(shí)間比較晚,因此在成熟度方面不如Mahout。Mahout項(xiàng)目目前支持的數(shù)據(jù)挖掘算法如下:

      MLLib支持的數(shù)據(jù)挖掘算法包括:

      2 圖數(shù)據(jù)處理處理概述

      在數(shù)據(jù)分析處理領(lǐng)域,隨社交網(wǎng)絡(luò)興起,對(duì)圖數(shù)據(jù)處理的需求越來越多。例如像Facebook和Twitter這樣的社交網(wǎng)絡(luò),其數(shù)據(jù)天生就適合于圖表示法。對(duì)圖數(shù)據(jù)的處理和傳統(tǒng)數(shù)據(jù)庫(kù)處理一樣,也可以分為兩種類型的需求: OLTP工作負(fù)載,能夠快速低延遲訪問小部分圖數(shù)據(jù)。

      OLAP工作負(fù)載,能夠?qū)D對(duì)象中的大部分?jǐn)?shù)據(jù)進(jìn)行批量分析與處理。1)圖數(shù)據(jù)OLTP處理(1)圖數(shù)據(jù)庫(kù)分類

      適合圖書據(jù)OLTP處理的系統(tǒng),主要是各種圖數(shù)據(jù)庫(kù)。從目前來看圖數(shù)據(jù)庫(kù)主要可以分為兩類:

      一是基于圖存儲(chǔ)模型的專用圖數(shù)據(jù)庫(kù),如Neo4j、OrientDB、Infinite Graph等;

      二是以通用KV存儲(chǔ)系統(tǒng)或者關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)開發(fā)的圖數(shù)據(jù)庫(kù),例如Titan系統(tǒng)(2013年推出)可以后端存儲(chǔ)可以基于HBASE或者是Cassandra,Twitter公司的FlockDB圖形數(shù)據(jù)庫(kù)和facebook公司Tao圖形數(shù)據(jù)庫(kù)是基于mysql來進(jìn)行開發(fā)。根據(jù)報(bào)道美國(guó)NSA就是利用2011年開源的Apache Accumulo(屬于分布式KV數(shù)據(jù)庫(kù))來存儲(chǔ)社會(huì)關(guān)系網(wǎng)絡(luò)數(shù)據(jù)。

      (2)圖數(shù)據(jù)查詢

      圖數(shù)據(jù)查詢其實(shí)就是”遍歷”圖(Traverse)。圖數(shù)據(jù)庫(kù)查詢語言可以使用Gremlin、Cypher等查詢語言來查詢圖。例如Neo4j就支持Cypher查詢語言。Cyper查詢語言需要以一個(gè)節(jié)點(diǎn)來啟動(dòng)(START)查詢,然后使用MATCH關(guān)鍵詞以WHERE關(guān)鍵字過濾節(jié)點(diǎn)或者關(guān)系的屬性,最后以RETRUN關(guān)鍵詞來指定查詢所返回的數(shù)據(jù)是節(jié)點(diǎn)、關(guān)系還是節(jié)點(diǎn)或者關(guān)系的屬性字段。例如: START barbara = node:nodeindex(name=”Barbara”);MATCH(barbara)—(connected_node)RETURNconnected_node.(3)兩類圖數(shù)據(jù)庫(kù)區(qū)別

      第一類與第二類圖數(shù)據(jù)庫(kù)區(qū)別在于以下幾點(diǎn):

      查詢功能方面

      第一類圖數(shù)據(jù)庫(kù)可以以非常高效率方式支持復(fù)雜查詢,既支持從指定起點(diǎn)開始,以任意深度來遍歷圖,并且還可以支持各種過濾。這樣就可以很方便的執(zhí)行各種圖專用查詢?nèi)蝿?wù),例如“查找兩個(gè)節(jié)點(diǎn)間所有路徑或者最短路徑”等。相反第二類數(shù)據(jù)庫(kù)則只能支持較為簡(jiǎn)單查詢,如FlockDB就只支持深度為1的關(guān)系遍歷(個(gè)人認(rèn)為也可以實(shí)現(xiàn),只是效率不高)??蓴U(kuò)展性方面 大部分第一種圖形數(shù)據(jù)庫(kù)都不支持分布,個(gè)人認(rèn)為可能分布后這種復(fù)雜查詢難以做到高效,因此可擴(kuò)展性不好。而第二種由于只支持簡(jiǎn)單的圖便歷,一般通過采取按“邊”切分的方法來進(jìn)行分布存儲(chǔ),因此可擴(kuò)展性較好。

      2)圖數(shù)據(jù)OLAP處理

      對(duì)圖數(shù)據(jù)進(jìn)行復(fù)雜分析,就需要分布式的批處理框架。例如大規(guī)模的PageRank計(jì)算。在這個(gè)領(lǐng)域出現(xiàn)并行圖計(jì)算框架常見有Apache Giraph、Apache Hama、GraphLab、Pregel、GraphX等。

      Pregel是Google根據(jù)BSP并行計(jì)算模型開發(fā)的圖計(jì)算引擎,目前該系統(tǒng)沒有開源。GraphX是Spark項(xiàng)目組基于Spark框架開發(fā)的圖計(jì)算引擎;而GraphLab則是直接在MPI框架基礎(chǔ)上開發(fā)的專用圖計(jì)算引擎。下面簡(jiǎn)單介紹幾種主流并行圖計(jì)算引擎。3 并行圖計(jì)算引擎

      1)基于BSP模型的Pregel引擎

      簡(jiǎn)介

      Pregel是Google公司開發(fā)的并行圖計(jì)算引擎,主要用于實(shí)現(xiàn)各種機(jī)器學(xué)習(xí)算法。Pregel的輸入是一個(gè)有向圖,該有向圖每一個(gè)頂點(diǎn)都有一個(gè)相應(yīng)由String描述的頂點(diǎn)標(biāo)識(shí)符。每一個(gè)頂點(diǎn)都有一個(gè)與之對(duì)應(yīng)可修改用戶自定義值。每一條有向邊都和其源頂點(diǎn)關(guān)聯(lián),并且也擁有一個(gè)可修改的用戶自定義值,并同時(shí)還記錄了其目標(biāo)頂點(diǎn)的標(biāo)識(shí)符。

      Pregel可以采用多種文件格式進(jìn)行圖的保存,比如可以用text文件、關(guān)系數(shù)據(jù)庫(kù)、Bigtable。為了避免規(guī)定死一種特定文件格式,Pregel將從輸入中解析出圖結(jié)構(gòu)的任務(wù)從圖的計(jì)算過程中進(jìn)行了分離。計(jì)算結(jié)果可以以任何一種格式輸出并根據(jù)應(yīng)用程序選擇最適合的存儲(chǔ)方式。Pregel library本身提供了很多常用文件格式的readers和writers,但是用戶可以通過繼承Reader和Writer類來定義他們自己的讀寫方式。

      編寫一個(gè)Pregel程序需要繼承Pregel中已預(yù)定義好的一個(gè)基類——Vertex類。

      用戶覆寫Vertex類的虛函數(shù)Compute(),該函數(shù)會(huì)在每一個(gè)超級(jí)步中對(duì)每一個(gè)頂點(diǎn)進(jìn)行調(diào)用。預(yù)定義的Vertex類方法允許Compute()方法查詢當(dāng)前頂點(diǎn)及其邊的信息,以及發(fā)送消息到其他的頂點(diǎn)。Compute()方法可以通過調(diào)用GetValue()方法來得到當(dāng)前頂點(diǎn)的值,或者通過調(diào)用MutableValue()方法來修改當(dāng)前頂點(diǎn)的值。同時(shí)還可以通過由出邊的迭代器提供的方法來查看修改出邊對(duì)應(yīng)的值?;贐SP的執(zhí)行模型

      讀取輸入初始化該圖,當(dāng)圖被初始化好后,運(yùn)行一系列的超級(jí)步直到整個(gè)計(jì)算結(jié)束,這些超級(jí)步之間通過一些全局的同步點(diǎn)分隔,輸出結(jié)果結(jié)束計(jì)算。在每個(gè)超級(jí)步中,頂點(diǎn)的計(jì)算都是并行的,每個(gè)頂點(diǎn)執(zhí)行相同的用于表達(dá)給定算法邏輯的用戶自定義函數(shù)。每個(gè)頂點(diǎn)可以修改其自身及其出邊的狀態(tài),接收前一個(gè)超級(jí)步(S-1)中發(fā)送給它的消息,并發(fā)送消息給其他頂點(diǎn)(這些消息將會(huì)在下一個(gè)超級(jí)步中被接收),甚至是修改整個(gè)圖的拓?fù)浣Y(jié)構(gòu)。邊,在這種計(jì)算模式中并不是核心對(duì)象,沒有相應(yīng)的計(jì)算運(yùn)行在其上。

      算法是否能夠結(jié)束取決于是否所有的頂點(diǎn)都已經(jīng)“vote”標(biāo)識(shí)其自身已經(jīng)達(dá)到“halt”狀態(tài)了。在第0個(gè)超級(jí)步,所有頂點(diǎn)都處于active狀態(tài),所有的active頂點(diǎn)都會(huì)參與所有對(duì)應(yīng)superstep中的計(jì)算。頂點(diǎn)通過將其自身的status設(shè)置成“halt”來表示它已經(jīng)不再active。這就表示該頂點(diǎn)沒有進(jìn)一步的計(jì)算需要執(zhí)行,除非被再次被外部觸發(fā),而Pregel框架將不會(huì)在接下來的superstep中執(zhí)行該頂點(diǎn),除非該頂點(diǎn)收到其它頂點(diǎn)傳送的消息。如果頂點(diǎn)接收到消息被喚醒進(jìn)入active狀態(tài),那么在隨后的計(jì)算中該頂點(diǎn)必須顯式的deactive。整個(gè)計(jì)算在所有頂點(diǎn)都達(dá)到“inactive”狀態(tài),并且沒有message在傳送的時(shí)候宣告結(jié)束。

      2)graphLab(1)簡(jiǎn)介 GraphLab一套基于c++的開源圖計(jì)算庫(kù),提供了在共享內(nèi)存情況下的異步、動(dòng)態(tài)和并行圖計(jì)算的高層抽象API。該庫(kù)采用MPI和TCPIP來實(shí)現(xiàn)進(jìn)程間通訊,采用Pthreads實(shí)現(xiàn)進(jìn)程內(nèi)的多線程并發(fā)計(jì)算,支持從HDFS和標(biāo)準(zhǔn)文件系統(tǒng)中讀取數(shù)據(jù)。GraphLab定義了多種用于存儲(chǔ)圖的文件格式,包括“tsv”,“snap”, “adj” “bintsv4”。

      (2)與Pregel的不同

      GraphLab不是采用BSP的嚴(yán)格執(zhí)行模型,GraphLab的基于BSP的Pregel的典型的改進(jìn)是在更好的“異步迭代計(jì)算”和“動(dòng)態(tài)計(jì)算”。因此該框架計(jì)算效率比Pregel更好。

      異步計(jì)算:很多重要的MLDM算法迭代更新一大批參數(shù),圖結(jié)構(gòu)導(dǎo)致參數(shù)更新依賴其它的參數(shù)。同步系統(tǒng)會(huì)以上一次更新的參數(shù)基礎(chǔ)上一次更新所有的參數(shù)(BSP模型中超級(jí)步之間市全局路障同步),而異步系統(tǒng)則以最近的參數(shù)作為輸入來更新參數(shù)。異步迭代更新可以極大加 快MLDM算法的計(jì)算速度。因?yàn)槿绻捎猛接?jì)算,則存在木桶效應(yīng),整體速度取決于最慢的那臺(tái)機(jī)器。在大規(guī)模云計(jì)算環(huán)境下,負(fù)載不均衡、網(wǎng)絡(luò)不均衡、硬件差異和多租戶等會(huì)導(dǎo)致不同 機(jī)器之間的速度存在差異。另外由于圖分割不均衡,以及計(jì)算復(fù)雜性等導(dǎo)致各個(gè)節(jié)點(diǎn)計(jì)算量也不均衡。動(dòng)態(tài)計(jì)算:很多MLDM算法的迭代計(jì)算收斂都不對(duì)稱,例如在參數(shù)優(yōu)化是,通常很多參數(shù)在很少幾次迭代中就會(huì)快速收斂,而剩下少數(shù)參數(shù)則即使經(jīng)過多次迭代也會(huì)收斂很慢。因此如果我們等同更新所有的參數(shù),則會(huì)浪費(fèi)大量的時(shí)間在重復(fù)計(jì)算那些已近收斂的參數(shù)上。最近的一些計(jì)算框架部分支持動(dòng)態(tài)計(jì)算,例如Pregel可以通過讓某些節(jié)點(diǎn)跳過一些超級(jí)步來部分支持動(dòng)態(tài)計(jì)算。(3)GraphLab的計(jì)算模型

      graphLab包括三個(gè)部分:數(shù)據(jù)圖、更新函數(shù)、同步操作。數(shù)據(jù)圖表達(dá)用戶可修改 的程序狀態(tài),存儲(chǔ)可變的用戶自定義數(shù)據(jù)和計(jì)算之間依賴。更新函數(shù)通過一個(gè)scope的數(shù)據(jù)變換來表達(dá)用戶對(duì)數(shù)據(jù)圖的計(jì)算和操作。同步操作并發(fā)維護(hù)全局匯總。

      一個(gè)點(diǎn)的scope代表存儲(chǔ)在這個(gè)點(diǎn)上的數(shù)據(jù) 和所有與這個(gè)點(diǎn)相鄰的點(diǎn)和邊上的所有數(shù)據(jù)。update f(v ,s(v))--->(s(v), 邊集合)。經(jīng)過一個(gè)更新函數(shù)后,新計(jì)算出 的s(v)會(huì)被寫回圖,并返回一個(gè)定點(diǎn)集合,針對(duì)該集合的每個(gè)點(diǎn)再執(zhí)行 f(u ,s(u))

      為了更高效的并行執(zhí)行,GraphLab容許GraphLab框架動(dòng)態(tài)的選擇執(zhí)行順序,即RemoveNext(T)的返回值。因?yàn)楹芏郙LDM算法需要執(zhí)行優(yōu)先級(jí)別,因此也可以指定點(diǎn)的優(yōu)先級(jí),這樣GraphLab會(huì)綜合考慮優(yōu)先級(jí)以及網(wǎng)絡(luò)情況來調(diào)度。

      (3)GraphLab的并行計(jì)算

      根據(jù)領(lǐng)域知識(shí),將圖分割為K份,K值遠(yuǎn)大于機(jī)器數(shù)量。每個(gè)分區(qū)被稱為atom, 以一個(gè)文件形式存儲(chǔ)類似HDFS的分布式文件系統(tǒng)上。Atom中存儲(chǔ)的是增加點(diǎn)和變的操作記錄,可以通過回放的方式來重構(gòu)圖。

      采取把點(diǎn)著色的方法,先保證每個(gè)點(diǎn)和相鄰點(diǎn)之間的顏色都不相同。通過一個(gè)顏色一個(gè)顏色的并發(fā)執(zhí)行,來實(shí)現(xiàn)邊一致性。把這種成為顏色步,與BSP的超步模型相對(duì)應(yīng)。該引擎保證在執(zhí)行下一個(gè)顏色步之前,所有的修改都被傳遞,實(shí)現(xiàn)顏色步之間的路障同步。

      由Master根據(jù)atom索引來計(jì)算atom的位置,并負(fù)責(zé)機(jī)器與atom之間的分配關(guān)系。然后每個(gè)機(jī)器讀取atom文件來加載圖。每個(gè)機(jī)器上有一個(gè)調(diào)度器負(fù)責(zé)調(diào)度屬于自己的子圖的點(diǎn)的計(jì)算。調(diào)度器負(fù)責(zé)把每個(gè)需要執(zhí)行update 函數(shù)之前所需要的數(shù)據(jù)和鎖準(zhǔn)備好后,放入一個(gè)流水處理隊(duì)列中,再由一個(gè)worker線程池來執(zhí)行,通過一個(gè)分布式算法來確定所有機(jī)器上的調(diào)度器中的T為空,也就是整個(gè)計(jì)算結(jié)束。

      3)graphX

      基于SPARK圖形計(jì)算引擎,GraphX提供的API可以很方便的表達(dá)各種針對(duì)的轉(zhuǎn)換、過濾和查詢操作,但是GraphX不能直接實(shí)現(xiàn)迭代并行圖計(jì)算算法,但是可以基于這些API用來實(shí)現(xiàn)各種并行圖計(jì)算算法。在GraphX論文中描述了利用GraphX來實(shí)現(xiàn)Pregel、PowerGraph的方法。

      GraphX的優(yōu)勢(shì)是可以很方便的與shark等進(jìn)行集成,例如直接對(duì)shark查詢后的結(jié)果進(jìn)行圖計(jì)算。

      4)總結(jié)

      (1)上述計(jì)算引擎都可以以靈活方式來存儲(chǔ)圖,基本上都可以以文件方式來存儲(chǔ)圖數(shù)據(jù),實(shí)現(xiàn)計(jì)算引擎與存儲(chǔ)分離。

      (2)圖計(jì)算引擎都根據(jù)MDML算法特點(diǎn)采用專用計(jì)算模型,以提高效率。(3)所有圖計(jì)算引擎在計(jì)算時(shí),基本都是需要把數(shù)據(jù)都加載到內(nèi)存中。(來自preglel論文:當(dāng)前整個(gè)的計(jì)算狀態(tài)都是駐留在內(nèi)存中的。我們已經(jīng)開始將一些數(shù)據(jù)存到本地磁盤,同時(shí)我們會(huì)繼續(xù)在這個(gè)方向進(jìn)行深入的研究,希望可以支持

      第五篇:數(shù)據(jù)處理與分析初體驗(yàn)-2017教學(xué)案例

      數(shù)據(jù)統(tǒng)計(jì)與分析初體驗(yàn)

      ——《條形統(tǒng)計(jì)圖一》教學(xué)案例

      《條形統(tǒng)計(jì)圖一》是統(tǒng)計(jì)學(xué)知識(shí)的入門,小學(xué)生對(duì)條形統(tǒng)計(jì)圖的學(xué)習(xí)實(shí)際上是對(duì)統(tǒng)計(jì)概念的初步認(rèn)識(shí)和進(jìn)行統(tǒng)計(jì)活動(dòng)的初步嘗試。通過讓學(xué)生親身經(jīng)歷數(shù)據(jù)的收集、分類計(jì)數(shù)、數(shù)據(jù)呈現(xiàn)等統(tǒng)計(jì)過程,使他們充分了解統(tǒng)計(jì)的意義和作用;條形統(tǒng)計(jì)圖作為眾多統(tǒng)計(jì)圖表中的基礎(chǔ),又要讓學(xué)生了解條形統(tǒng)計(jì)圖的各個(gè)組成部分,包括標(biāo)題、項(xiàng)目、單位長(zhǎng)度及單位名稱、統(tǒng)計(jì)數(shù)據(jù)等,為之后的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。同時(shí),在教學(xué)中要注重培養(yǎng)發(fā)散型思維,加深理解使用條形統(tǒng)計(jì)圖的優(yōu)點(diǎn),激發(fā)學(xué)習(xí)的興趣。

      教學(xué)目標(biāo):

      1、通過引導(dǎo),使學(xué)生認(rèn)識(shí)到運(yùn)用圖表進(jìn)行數(shù)據(jù)分析時(shí)的速度和便利性優(yōu)勢(shì)。

      2、讓學(xué)生初步理解條形統(tǒng)計(jì)圖,并能根據(jù)統(tǒng)計(jì)圖表提出并回答簡(jiǎn)單的問題。

      3、讓學(xué)生體驗(yàn)完整的數(shù)據(jù)統(tǒng)計(jì)過程,包括數(shù)據(jù)收集、數(shù)據(jù)整理、數(shù)據(jù)展示、數(shù)據(jù)分析,初步了解統(tǒng)計(jì)的方法和意義。

      4、使學(xué)生充分認(rèn)識(shí)條形統(tǒng)計(jì)圖應(yīng)用于解決實(shí)際問題的作用,激發(fā)學(xué)生的學(xué)習(xí)興趣。

      【思考一】:如何引入條形統(tǒng)計(jì)圖,關(guān)鍵是在引入的同時(shí)要通過對(duì)比,讓學(xué)生了解條形統(tǒng)計(jì)圖在數(shù)據(jù)展示和數(shù)據(jù)分析方面的優(yōu)勢(shì)。

      [片段一](一般性做法):

      首先引入本節(jié)課的課題;隨后向?qū)W生展示數(shù)幅條形統(tǒng)計(jì)圖,讓學(xué)生觀察這些條形統(tǒng)計(jì)圖。

      在學(xué)生觀察的同時(shí),引導(dǎo)學(xué)生回答條形統(tǒng)計(jì)圖的結(jié)構(gòu)和構(gòu)成,這些條形統(tǒng)計(jì)圖有什么共同點(diǎn),圖上有哪些要素等。

      師:請(qǐng)大家觀察一下這些條形統(tǒng)計(jì)圖,思考一下條形統(tǒng)計(jì)圖上有些什么共同點(diǎn)。

      生1:都有橫線和豎線。上面還有一些刻度,有名稱,有數(shù)字。生2:有長(zhǎng)短不一的直條。生3:還有標(biāo)題?!?/p>

      [體會(huì)]:通過對(duì)數(shù)幅條形統(tǒng)計(jì)圖找共同點(diǎn)的方法,學(xué)生們能很快的了解條形統(tǒng)計(jì)圖的要素,也能較快明白條形統(tǒng)計(jì)圖是用于數(shù)據(jù)展示作用的圖表。但是這樣的引入方式,總感覺很少學(xué)生能體會(huì)條形統(tǒng)計(jì)圖表示數(shù)據(jù)時(shí)的優(yōu)勢(shì)所在,因此對(duì)該知識(shí)點(diǎn)的掌握并不深入。

      [片段二](我的新做法):

      首先,給學(xué)生三行數(shù)字,讓學(xué)生找出其中的最大值,看誰找的快。

      師:小朋友們,我們先來玩?zhèn)€找數(shù)游戲,誰能最快找出最大的數(shù)字。找到就直接大聲說出來。

      出示圖片:遞進(jìn)式

      師:數(shù)字越來越多,找起來怎么樣? 生:數(shù)字越多,越難找。

      之后,同樣的三組數(shù)據(jù),將其用條形統(tǒng)計(jì)圖來表示,讓學(xué)生來找一找最長(zhǎng)的直條。

      師:現(xiàn)在我給你們一些直條圖,誰能最快找出最長(zhǎng)的直條。找到

      直接用手指一指。

      出示圖片:遞進(jìn)式 師:你又有發(fā)現(xiàn)了什么? 生:直條很多也不難找。

      師:沒錯(cuò),這些直條圖能讓我們很快的找出我們想要的數(shù)字,直條很多也不難找。

      [體會(huì)]:為了讓學(xué)生能更好的理解和學(xué)好條形統(tǒng)計(jì)圖,我認(rèn)為最關(guān)鍵的是要讓學(xué)生明白條形統(tǒng)計(jì)圖的優(yōu)勢(shì),因此我設(shè)計(jì)了此環(huán)節(jié),目的是通過對(duì)比,讓學(xué)生親身感受到條形統(tǒng)計(jì)圖在數(shù)據(jù)展示方面的便利性和查找數(shù)據(jù)的快速性。

      【思考二】:讓學(xué)生經(jīng)歷數(shù)據(jù)收集、數(shù)據(jù)整理、數(shù)據(jù)展示、數(shù)據(jù)分析的全過程,深入體會(huì)統(tǒng)計(jì)的意義、目的和效果。[片段三]:

      師:我們現(xiàn)在要條形統(tǒng)計(jì)圖表示一下全班每個(gè)月份的生日人數(shù)?應(yīng)該怎么開始?

      生:先統(tǒng)計(jì)一下每個(gè)月的生日人數(shù)。

      師:很好,這叫做數(shù)據(jù)收集,那么請(qǐng)1月份生日的同學(xué)舉手。師:嗯,一共有4個(gè)人?!?/p>

      師:現(xiàn)在我們已經(jīng)都統(tǒng)計(jì)好了,接下來應(yīng)該怎么辦呢? 生2:最好先把這些數(shù)字做成表格。

      師:很好,這一步叫做數(shù)據(jù)整理。我們先用曾經(jīng)學(xué)過的表格的知識(shí)將統(tǒng)計(jì)好的人數(shù)紀(jì)錄下來。

      師:那接下來我們又應(yīng)該怎么辦呢? 生3:把表格里的數(shù)據(jù)用條形統(tǒng)計(jì)圖來表示。

      師:不錯(cuò),這一步就叫做數(shù)據(jù)展示了,讓我們來看一看用條形統(tǒng)計(jì)圖的展示結(jié)果。

      師:那么接下來我們就要進(jìn)行數(shù)據(jù)分析,我問幾個(gè)問題,看看你們能不能通過條形統(tǒng)計(jì)圖分析出來呢?在這張條形統(tǒng)計(jì)圖中,我指到某個(gè)月,你能迅速看出這個(gè)月有幾個(gè)人生日嗎?4、5、6、7月?

      問:你們是怎么看的?

      師:是的,從直條的上端橫著往左看是幾,直條就表示幾個(gè)人。師: 8月、9月、10月(齊說)

      11、12月(手勢(shì))

      師:所以要知道這個(gè)月有幾個(gè)人生日,在條形統(tǒng)計(jì)圖中看什么?(看直條)是的,直條就表示統(tǒng)計(jì)的數(shù)據(jù)。

      問:那你能一眼看出哪個(gè)月過生日的人最多嗎?哪個(gè)月過生日的人最少嗎?

      生:9月最多。6月最少。

      師:你怎么知道的?(9月的直條最長(zhǎng),6月的直條最短)問:所以人數(shù)的多少和什么有關(guān)?和直條的什么有關(guān)?是什么關(guān)系?

      師小結(jié):是呀,直條越長(zhǎng),數(shù)量越多;直條越短,數(shù)量越少。問:仔細(xì)觀察這張條形統(tǒng)計(jì)圖,你都看到了些什么?(同桌討論)生:標(biāo)題、項(xiàng)目、單位名稱、直條:表示統(tǒng)計(jì)數(shù)據(jù)、一格表示1。師小結(jié):是啊,統(tǒng)計(jì)表上的每一塊內(nèi)容,我們都在條形統(tǒng)計(jì)圖上表示出來。統(tǒng)計(jì)的數(shù)據(jù),我們用直條的長(zhǎng)短來表示。特別要注意的是,這張圖里一格表示1。

      [體會(huì)]:當(dāng)今世界的迅速發(fā)展使得我們進(jìn)入大數(shù)據(jù)時(shí)代,我們的生活中無處都離不開數(shù)據(jù),使用數(shù)據(jù)的全過程包括數(shù)據(jù)收集、數(shù)據(jù)整理、數(shù)據(jù)展示、數(shù)據(jù)分析,條形統(tǒng)計(jì)圖作為眾多數(shù)據(jù)圖表的基礎(chǔ)之一,包含了數(shù)據(jù)展示和數(shù)據(jù)分析的功能,但其前端工作數(shù)據(jù)收集與數(shù)據(jù)整理同樣不容忽視,而這兩部分恰恰也是我們平時(shí)教學(xué)中所忽略的。

      基于此,我設(shè)計(jì)了片段三這一環(huán)節(jié),讓學(xué)生完整的感受數(shù)據(jù)處理的全過程。學(xué)生們?cè)诶蠋煹囊龑?dǎo)下,想到了用統(tǒng)計(jì)的知識(shí)來解決問題,并一起動(dòng)手親身參與到整個(gè)數(shù)據(jù)統(tǒng)計(jì)的過程當(dāng)中,明白了在制作條形統(tǒng)計(jì)圖之前還需要進(jìn)行數(shù)據(jù)收集和數(shù)據(jù)整理的環(huán)節(jié),而且前兩個(gè)環(huán)節(jié)往往更加重要,也需要花費(fèi)更多的時(shí)間。

      在整個(gè)數(shù)據(jù)統(tǒng)計(jì)過程中,我選取了整個(gè)班級(jí)的生日數(shù)據(jù)作為數(shù)據(jù)樣本,在有限的時(shí)間內(nèi)使每個(gè)學(xué)生都參與到數(shù)據(jù)統(tǒng)計(jì)中來,現(xiàn)實(shí)生活與教學(xué)知識(shí)的有機(jī)融合,使學(xué)生的主動(dòng)性得到了很好的發(fā)展,并進(jìn)一步體會(huì)到統(tǒng)計(jì)這一數(shù)學(xué)知識(shí)解決生活中實(shí)際問題的過程,較好地培養(yǎng)了學(xué)生的統(tǒng)計(jì)觀念和學(xué)習(xí)興趣。

      下載EXCEL 數(shù)據(jù)處理與分析(共5篇)word格式文檔
      下載EXCEL 數(shù)據(jù)處理與分析(共5篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        數(shù)據(jù)處理與統(tǒng)計(jì) 教案(模版)

        數(shù)據(jù)處理與統(tǒng)計(jì) 一.教學(xué)目標(biāo): 1.知識(shí)與技能: 理解公式、函數(shù)、地址、數(shù)據(jù)引用的含義; 熟練掌握公式和函數(shù)的應(yīng)用; 2.過程與方法: 培養(yǎng)學(xué)生動(dòng)手操作和觀察交流的能力; 培養(yǎng)自我解決問......

        分析化學(xué)--分析結(jié)果的數(shù)據(jù)處理

        §2-2 分析結(jié)果的數(shù)據(jù)處理 一、可疑測(cè)定值的取舍 1、可疑值:在平行測(cè)定的數(shù)據(jù)中,有時(shí)會(huì)出現(xiàn)一二個(gè)與其它結(jié)果相差較大的測(cè)定值,稱為可疑值或異常值(離群值、極端值) 2、方法 ㈠......

        誤差和分析數(shù)據(jù)處理習(xí)題(5篇模版)

        第二章 誤差和分析數(shù)據(jù)處理 1、在定量分析中,精密度和準(zhǔn)確度的關(guān)系是 A、精密度高,準(zhǔn)確度一定高,B、準(zhǔn)確度是保證精密度的前提 C、精密度是保證準(zhǔn)確度的前提 2、從精密度好就可......

        運(yùn)營(yíng)分析報(bào)告數(shù)據(jù)處理流程

        運(yùn)營(yíng)分析報(bào)告數(shù)據(jù)處理流程 1、 將每日運(yùn)維發(fā)來的四張表累加,整月數(shù)據(jù)加總完后,如有字符型數(shù)據(jù),將字符型數(shù)據(jù)轉(zhuǎn) 換成數(shù)字型。 2、 注意串行數(shù)據(jù),運(yùn)維導(dǎo)出的txt數(shù)據(jù),會(huì)有少數(shù)數(shù)據(jù)串......

        電子CAD實(shí)驗(yàn)報(bào)告與數(shù)據(jù)處理

        《電子CAD技術(shù)》 實(shí) 驗(yàn) 報(bào) 告 物理與電子工程學(xué)院 自動(dòng)化系 08自動(dòng)化(2)班 方晨 08111013 實(shí)驗(yàn)一、Protel 99 SE認(rèn)識(shí)實(shí)驗(yàn) 如何修改密碼?又如何增加和刪除訪問成員? 只有具備......

        數(shù)據(jù)處理與統(tǒng)計(jì)教學(xué)設(shè)計(jì)

        數(shù)據(jù)處理與統(tǒng)計(jì)教案 課題:數(shù)據(jù)處理與統(tǒng)計(jì) 教材:江蘇科學(xué)技術(shù)出版社出版《初中信息技術(shù)》上冊(cè) 贛榆縣羅陽中學(xué)宋海波 一 、教學(xué)目標(biāo): 知識(shí)和技能:熟悉公式的基本組成和公式的復(fù)制......

        實(shí)驗(yàn)設(shè)計(jì)與數(shù)據(jù)處理心得(合集五篇)

        實(shí)驗(yàn)設(shè)計(jì)與數(shù)據(jù)處理心得體會(huì) 剛開始選這門課的時(shí)候,我覺得這門課應(yīng)該是很難懂的課程,首先我們做過不少的實(shí)驗(yàn)了,當(dāng)然任何自然科學(xué)都離不開實(shí)驗(yàn),大多數(shù)學(xué)科(化工、化學(xué)、輕工、材......

        數(shù)據(jù)處理與遞歸教案(推薦5篇)

        數(shù)據(jù)的處理與遞歸循環(huán)方法解決問題 教學(xué)課時(shí):1課時(shí) 教學(xué)目標(biāo): 知識(shí)與技能:學(xué)會(huì)用辦公軟件熟練處理數(shù)據(jù),掌握VB中重要的語句和方法,并能解決實(shí)際生活中遇到的問題。 過程與方法:通......