TPC-DS數(shù)據(jù)分析案例簡介_第1頁
TPC-DS數(shù)據(jù)分析案例簡介_第2頁
TPC-DS數(shù)據(jù)分析案例簡介_第3頁
TPC-DS數(shù)據(jù)分析案例簡介_第4頁
TPC-DS數(shù)據(jù)分析案例簡介_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

數(shù)據(jù)分析與數(shù)據(jù)可視化實戰(zhàn)1第1章TPC-DS數(shù)據(jù)分析案例簡介目錄企業(yè)級數(shù)據(jù)分析環(huán)境的搭建結(jié)構(gòu)化查詢語言SQL數(shù)據(jù)可視化基礎用戶數(shù)據(jù)分析與數(shù)據(jù)挖掘?qū)崙?zhàn)第2章第3章第4章第5章第6章第7章數(shù)據(jù)分析與數(shù)據(jù)庫初步認識2供應鏈數(shù)據(jù)分析與數(shù)據(jù)挖掘?qū)崙?zhàn)數(shù)據(jù)集簡介數(shù)據(jù)分析與挖掘技術(shù)有著很強的實踐性,僅僅停留在紙上談兵的階段是不夠的。本章介紹了將會貫穿全書始終的實戰(zhàn)案例——TPC-DS數(shù)據(jù)集,一個與真實情景高度相仿的企業(yè)級數(shù)據(jù)集。本章首先對TPC-DS數(shù)據(jù)集中的4個業(yè)務網(wǎng)絡結(jié)構(gòu)進行了簡介,接下來對各數(shù)據(jù)表的關鍵字段語義和字段之間的關鍵數(shù)量關系進行了定義,最后由TPC-DS數(shù)據(jù)集引申到真實的企業(yè)級數(shù)據(jù)分析場景,探討了TPC-DS數(shù)據(jù)集數(shù)據(jù)分析任務背后的啟示以及挑戰(zhàn),為后續(xù)的數(shù)據(jù)分析案例實戰(zhàn)進行鋪墊。本章學習目標包括以下幾點:1.理解TPC-DS數(shù)據(jù)集的業(yè)務網(wǎng)絡結(jié)構(gòu);2.掌握TPC-DS數(shù)據(jù)集各數(shù)據(jù)表的關鍵字段語義以及字段之間的關鍵數(shù)量關系;3.理解TPC-DS數(shù)據(jù)集對于企業(yè)級數(shù)據(jù)分析的啟示。本章要點/學習目標數(shù)據(jù)集結(jié)構(gòu)解析啟示與挑戰(zhàn)本章內(nèi)容1233TPC-DS數(shù)據(jù)集

TPC-DS數(shù)據(jù)集是事務性能管理委員會(TransactionProcessingPerformanceCouncil,TPC)發(fā)布的用戶數(shù)據(jù)庫評測的基準之一,是用于評測決策支持系統(tǒng)的標準測試集。TPC-DS是一個與真實場景非常接近的數(shù)據(jù)集。在教程中,我們將其視為一個快消行業(yè)龍頭企業(yè)的數(shù)據(jù)庫,主要通過門店(store)、目錄(catalog)以及網(wǎng)絡(website)三個渠道向世界各地的用戶提供產(chǎn)品。TPC-DS數(shù)據(jù)集共擁有7張事實表與17張維度表。4數(shù)據(jù)集結(jié)構(gòu)解析門店銷售網(wǎng)絡(storesales網(wǎng)絡)5目錄銷售網(wǎng)絡(catalogsales網(wǎng)絡)6數(shù)據(jù)集結(jié)構(gòu)解析網(wǎng)站銷售網(wǎng)絡(websitesales網(wǎng)絡)7數(shù)據(jù)集結(jié)構(gòu)解析庫存網(wǎng)絡(inventory網(wǎng)絡)8數(shù)據(jù)集結(jié)構(gòu)解析啟示與挑戰(zhàn)TPC-DS數(shù)據(jù)集是高度簡化的企業(yè)級數(shù)據(jù)庫,大型企業(yè)的實際情況會更加錯綜復雜。不同業(yè)務網(wǎng)絡所需要考慮的問題和思考問題的角度有很大的區(qū)別,供應鏈庫存網(wǎng)絡與三大銷售網(wǎng)絡的運營目標和運營方法論之間存在著天壤之別。門店銷售業(yè)務、目錄銷售業(yè)務與電商銷售業(yè)務雖然在業(yè)務上相似,但是其運營策略、促銷手段、用戶留存等方面也存在很大的區(qū)別。針對TPC-DS數(shù)據(jù)集所進行的分析是多角度的,涵蓋了從庫存到營銷到售后的整個價值鏈環(huán)節(jié),主要包括了面向用戶分析以及面向產(chǎn)品分析兩個主要的分析維度。9本章小結(jié)TPC-DS是數(shù)據(jù)庫學術(shù)界和產(chǎn)業(yè)界使用的工業(yè)基準(Benchmark)數(shù)據(jù)集,有標準的數(shù)據(jù)表結(jié)構(gòu)、數(shù)據(jù)生成器以及測試查詢,是數(shù)據(jù)庫產(chǎn)品性能測試的公共基準。TPC-DS數(shù)據(jù)集復雜性較高,與企業(yè)實際數(shù)據(jù)庫結(jié)構(gòu)相似度較高,能夠較好地模擬企業(yè)真實的數(shù)據(jù)分析需求,其較為全面的維度也給了不同學科背景的用戶模擬不同分析場景提供了支持。本章以TPC-DS數(shù)據(jù)集作為貫穿始終的數(shù)據(jù)集,通過數(shù)據(jù)分析案例設計演示在企業(yè)數(shù)據(jù)集上的數(shù)據(jù)分析與數(shù)據(jù)可視化實現(xiàn)技術(shù),為學習者建立模擬實戰(zhàn)環(huán)境,增強學習者數(shù)據(jù)分析技術(shù)的實際應用能力。1011ZStack協(xié)議棧開發(fā)3-2

Zstack協(xié)議棧工程解析Zstack協(xié)議棧工程解析

在“TexasInstruments\ZStack-CC2530-2.4.0-1.4.0\Projects\zstack\Samples”目錄下可以看到TI官方提供的3個關于ZStack協(xié)議棧的例程,分別是GenericApp、SampleApp和SimpleApp。本書所有的基于協(xié)議棧的項目均是在SimpleApp的基礎上進行修改而實現(xiàn)的。本節(jié)通過解析ZStack協(xié)議棧工程來介紹ZStack協(xié)議棧的工作原理及工作流程。

下面以ZigBee多點自組織網(wǎng)絡的開發(fā)為例來解析ZStack協(xié)議棧的工作原理及其工作流程,并對關鍵代碼進行解釋。

打開ZigBee多點自組織網(wǎng)絡開發(fā)項目后,在Workspace下拉框選項中可以看到3個子工程,分別是協(xié)調(diào)器、路由節(jié)點和終端節(jié)點,如圖3.9所示。通過選擇不同的子工程,就可以選擇不同的源文件和編譯選項。

ZigBee網(wǎng)絡中一般含有三類節(jié)點類型:協(xié)調(diào)器(負責建立ZigBee網(wǎng)絡、數(shù)據(jù)收發(fā))、終端節(jié)點(數(shù)據(jù)采集、接收控制)和路由節(jié)點(在終端節(jié)點的基礎上增加了路由轉(zhuǎn)發(fā)的功能)。為了更容易理解ZStack協(xié)議棧的工作原理,這里先簡單介紹協(xié)調(diào)器、終端節(jié)點和路由節(jié)點在ZigBee網(wǎng)絡中的工作流程,如圖3.10所示。Zstack協(xié)議棧工程解析

打開ZigBee多點自組織網(wǎng)絡開發(fā)項目后,在Workspace下拉框選項中可以看到3個子工程,分別是協(xié)調(diào)器、路由節(jié)點和終端節(jié)點,如圖3.9所示。通過選擇不同的子工程,就可以選擇不同的源文件和編譯選項。

圖3.9子工程選項Zstack協(xié)議棧工程解析ZigBee網(wǎng)絡中一般含有三類節(jié)點類型:協(xié)調(diào)器(負責建立ZigBee網(wǎng)絡、數(shù)據(jù)收發(fā))、終端節(jié)點(數(shù)據(jù)采集、接收控制)和路由節(jié)點(在終端節(jié)點的基礎上增加了路由轉(zhuǎn)發(fā)的功能)。為了更容易理解ZStack協(xié)議棧的工作原理,這里先簡單介紹協(xié)調(diào)器、終端節(jié)點和路由節(jié)點在ZigBee網(wǎng)絡中的工作流程,如圖3.10所示。

圖3.10終端節(jié)點、路由節(jié)點和協(xié)調(diào)器在ZigBee網(wǎng)絡中的工作流程由圖3.10可知,終端節(jié)點、路由節(jié)點和協(xié)調(diào)器的工作流程基本相同,只有在執(zhí)行用戶任務時稍有不同。下面根據(jù)圖3.10來解析ZStack協(xié)議棧的工作流程。解析ZStack協(xié)議棧最簡單、最直接的方法就是從工程的入口,即main函數(shù)開始解析。Zstack協(xié)議棧工程解析1.ZStack協(xié)議棧OSAL調(diào)度關鍵代碼解析在工程的“ZMain”目錄下有一個ZMain.c文件,該文件中的main函數(shù)就是整個協(xié)議棧工程的入口,代碼解析如下。Zstack協(xié)議棧工程解析要想理解ZStack協(xié)議棧的工作原理,關鍵是要理解main函數(shù)中的osal_init_system()和osal_start_system()函數(shù),其中osal_init_system()函數(shù)的代碼如下:Zstack協(xié)議棧工程解析在osal_init_system()函數(shù)中初始化了ZStack協(xié)議棧的核心功能,包括內(nèi)存分配系統(tǒng)初始化、電源管理系統(tǒng)初始化、任務初始化和內(nèi)存釋放等功能。對開發(fā)人員來講,最重要的是要理解其中的系統(tǒng)任務初始化函數(shù)osalInitTasks(),分析該函數(shù)的代碼可以發(fā)現(xiàn),該函數(shù)初始化了7個系統(tǒng)任務,并為每個任務賦予了任務標識符taskIDZstack協(xié)議棧工程解析通過將上述各任務的初始化函數(shù)展開之后可以發(fā)現(xiàn):macTaskInit()、nwk_init()、APS_Init()任務的初始化函數(shù)代碼不是開源的,TI公司將這些關鍵代碼封裝成庫,開發(fā)人員無法查看其中的代碼;Hal_Init()、MT_TaskInit()和SAPI_Init()等任務初始化函數(shù)的作用是對相應的任務信息進行注冊,并調(diào)用osal_set_event(uint8task_id,uint16event_flag)函數(shù)將各任務的事件添加到任務事件數(shù)組tasksEvents[]中。下面以SAPI_Init()函數(shù)為例來進行解析,代碼如下Zstack協(xié)議棧工程解析上述代碼的最后調(diào)用了osal_set_event(task_id,ZB_ENTRY_EVENT)函數(shù),其作用是設置1個入口事件來啟動任務,該函數(shù)的代碼如下:Zstack協(xié)議棧工程解析通過上述代碼分析可知,osal_set_event()函數(shù)的關鍵是將事件存儲到任務事件數(shù)組中。解析完任務初始化代碼之后,再來解析啟動系統(tǒng)osal_start_system()函數(shù)的代碼,該函數(shù)的作用是輪詢各個任務,并執(zhí)行各任務的事件處理函數(shù)。Zstack協(xié)議棧工程解析將osal_start_system()函數(shù)展開之后,可以發(fā)現(xiàn)系統(tǒng)啟動之后進入了一個死循環(huán),并循環(huán)調(diào)用osal_run_system()函數(shù),代碼如下:Zstack協(xié)議棧工程解析展開osal_run_system()函數(shù)之后,可以發(fā)現(xiàn)該函數(shù)的主要作用是先遍歷任務事件數(shù)組,遍歷過程從優(yōu)先級最高的任務開始,在遍歷過程中會判斷該任務是否有未執(zhí)行完的事件,如果該任務有未執(zhí)行完的事件,則跳出while循環(huán),然后調(diào)用(tasksArr[idx])(idx,events)進入該任務的事件處理函數(shù);如果在遍歷中該任務的已經(jīng)執(zhí)行完畢,即沒有事件,則繼續(xù)循環(huán)檢查下一個任務。當系統(tǒng)中的所有任務都執(zhí)行完成后,系統(tǒng)會自動進入睡眠狀態(tài),以節(jié)約資源。代碼如下:Zstack協(xié)議棧工程解析Zstack協(xié)議棧工程解析通過對上述代碼的分析可知,關鍵的代碼在“events=(tasksArr[idx])(idx,events)”中,tasksArr數(shù)組存儲了各任務的事件處理函數(shù),通過查看tasksArr數(shù)組的定義可以知道,系統(tǒng)定義了7個事件處理函數(shù)。Zstack協(xié)議棧工程解析在上面7個任務的事件處理函數(shù)中,只能查看Hal_ProcessEvent、MT_ProcessEvent、ZDApp_event_loop和SAPI_ProcessEvent函數(shù)的代碼,其余函數(shù)均被TI公司封裝成庫。系統(tǒng)調(diào)用(tasksArr[idx])(idx,events)其實就是調(diào)用Hal_ProcessEvent(idx,events)、MT_ProcessEvent(idx,events)、ZDApp_event_loop(idx,events)和SAPI_ProcessEvent(idx,events)等事件處理函數(shù)。下面以SAPI_ProcessEvent(idx,events)為例進行代碼解析,解析如下:Zstack協(xié)議棧工程解析Zstack協(xié)議棧工程解析Zstack協(xié)議棧工程解析由上述代碼可知,SAPI的事件處理函數(shù)可以處理SYS_EVENT_MSG、ZB_ALLOW_BIND_TIMER、ZB_BIND_TIMER、ZB_ENTRY_EVENT和ZB_USER_EVENTS事件。在這些事件中,開發(fā)人員只需要理解ZB_ENTRY_EVENT和ZB_USER_EVENTS事件的處理過程就可以了。ZB_ENTRY_EVENT事件為ZStack協(xié)議棧工程的入口事件,包括ZigBee入網(wǎng)的過程處理等;ZB_USER_EVENTS為用戶自定義事件,通過查看該事件的宏定義可得知該事件被宏定義為0xFF,說明用戶最多只能自定義8個用戶事件,但8個自定義事件對于開發(fā)者來講已經(jīng)足夠了。Zstack協(xié)議棧工程解析在ZB_ENTRY_EVENT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論