版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据分析与数据可视化实战1第1章TPC-DS数据分析案例简介目录企业级数据分析环境的搭建结构化查询语言SQL数据可视化基础用户数据分析与数据挖掘实战第2章第3章第4章第5章第6章第7章数据分析与数据库初步认识2供应链数据分析与数据挖掘实战数据集简介数据分析与挖掘技术有着很强的实践性,仅仅停留在纸上谈兵的阶段是不够的。本章介绍了将会贯穿全书始终的实战案例——TPC-DS数据集,一个与真实情景高度相仿的企业级数据集。本章首先对TPC-DS数据集中的4个业务网络结构进行了简介,接下来对各数据表的关键字段语义和字段之间的关键数量关系进行了定义,最后由TPC-DS数据集引申到真实的企业级数据分析场景,探讨了TPC-DS数据集数据分析任务背后的启示以及挑战,为后续的数据分析案例实战进行铺垫。本章学习目标包括以下几点:1.理解TPC-DS数据集的业务网络结构;2.掌握TPC-DS数据集各数据表的关键字段语义以及字段之间的关键数量关系;3.理解TPC-DS数据集对于企业级数据分析的启示。本章要点/学习目标数据集结构解析启示与挑战本章内容1233TPC-DS数据集
TPC-DS数据集是事务性能管理委员会(TransactionProcessingPerformanceCouncil,TPC)发布的用户数据库评测的基准之一,是用于评测决策支持系统的标准测试集。TPC-DS是一个与真实场景非常接近的数据集。在教程中,我们将其视为一个快消行业龙头企业的数据库,主要通过门店(store)、目录(catalog)以及网络(website)三个渠道向世界各地的用户提供产品。TPC-DS数据集共拥有7张事实表与17张维度表。4数据集结构解析门店销售网络(storesales网络)5目录销售网络(catalogsales网络)6数据集结构解析网站销售网络(websitesales网络)7数据集结构解析库存网络(inventory网络)8数据集结构解析启示与挑战TPC-DS数据集是高度简化的企业级数据库,大型企业的实际情况会更加错综复杂。不同业务网络所需要考虑的问题和思考问题的角度有很大的区别,供应链库存网络与三大销售网络的运营目标和运营方法论之间存在着天壤之别。门店销售业务、目录销售业务与电商销售业务虽然在业务上相似,但是其运营策略、促销手段、用户留存等方面也存在很大的区别。针对TPC-DS数据集所进行的分析是多角度的,涵盖了从库存到营销到售后的整个价值链环节,主要包括了面向用户分析以及面向产品分析两个主要的分析维度。9本章小结TPC-DS是数据库学术界和产业界使用的工业基准(Benchmark)数据集,有标准的数据表结构、数据生成器以及测试查询,是数据库产品性能测试的公共基准。TPC-DS数据集复杂性较高,与企业实际数据库结构相似度较高,能够较好地模拟企业真实的数据分析需求,其较为全面的维度也给了不同学科背景的用户模拟不同分析场景提供了支持。本章以TPC-DS数据集作为贯穿始终的数据集,通过数据分析案例设计演示在企业数据集上的数据分析与数据可视化实现技术,为学习者建立模拟实战环境,增强学习者数据分析技术的实际应用能力。1011ZStack协议栈开发3-2
Zstack协议栈工程解析Zstack协议栈工程解析
在“TexasInstruments\ZStack-CC2530-2.4.0-1.4.0\Projects\zstack\Samples”目录下可以看到TI官方提供的3个关于ZStack协议栈的例程,分别是GenericApp、SampleApp和SimpleApp。本书所有的基于协议栈的项目均是在SimpleApp的基础上进行修改而实现的。本节通过解析ZStack协议栈工程来介绍ZStack协议栈的工作原理及工作流程。
下面以ZigBee多点自组织网络的开发为例来解析ZStack协议栈的工作原理及其工作流程,并对关键代码进行解释。
打开ZigBee多点自组织网络开发项目后,在Workspace下拉框选项中可以看到3个子工程,分别是协调器、路由节点和终端节点,如图3.9所示。通过选择不同的子工程,就可以选择不同的源文件和编译选项。
ZigBee网络中一般含有三类节点类型:协调器(负责建立ZigBee网络、数据收发)、终端节点(数据采集、接收控制)和路由节点(在终端节点的基础上增加了路由转发的功能)。为了更容易理解ZStack协议栈的工作原理,这里先简单介绍协调器、终端节点和路由节点在ZigBee网络中的工作流程,如图3.10所示。Zstack协议栈工程解析
打开ZigBee多点自组织网络开发项目后,在Workspace下拉框选项中可以看到3个子工程,分别是协调器、路由节点和终端节点,如图3.9所示。通过选择不同的子工程,就可以选择不同的源文件和编译选项。
图3.9子工程选项Zstack协议栈工程解析ZigBee网络中一般含有三类节点类型:协调器(负责建立ZigBee网络、数据收发)、终端节点(数据采集、接收控制)和路由节点(在终端节点的基础上增加了路由转发的功能)。为了更容易理解ZStack协议栈的工作原理,这里先简单介绍协调器、终端节点和路由节点在ZigBee网络中的工作流程,如图3.10所示。
图3.10终端节点、路由节点和协调器在ZigBee网络中的工作流程由图3.10可知,终端节点、路由节点和协调器的工作流程基本相同,只有在执行用户任务时稍有不同。下面根据图3.10来解析ZStack协议栈的工作流程。解析ZStack协议栈最简单、最直接的方法就是从工程的入口,即main函数开始解析。Zstack协议栈工程解析1.ZStack协议栈OSAL调度关键代码解析在工程的“ZMain”目录下有一个ZMain.c文件,该文件中的main函数就是整个协议栈工程的入口,代码解析如下。Zstack协议栈工程解析要想理解ZStack协议栈的工作原理,关键是要理解main函数中的osal_init_system()和osal_start_system()函数,其中osal_init_system()函数的代码如下:Zstack协议栈工程解析在osal_init_system()函数中初始化了ZStack协议栈的核心功能,包括内存分配系统初始化、电源管理系统初始化、任务初始化和内存释放等功能。对开发人员来讲,最重要的是要理解其中的系统任务初始化函数osalInitTasks(),分析该函数的代码可以发现,该函数初始化了7个系统任务,并为每个任务赋予了任务标识符taskIDZstack协议栈工程解析通过将上述各任务的初始化函数展开之后可以发现:macTaskInit()、nwk_init()、APS_Init()任务的初始化函数代码不是开源的,TI公司将这些关键代码封装成库,开发人员无法查看其中的代码;Hal_Init()、MT_TaskInit()和SAPI_Init()等任务初始化函数的作用是对相应的任务信息进行注册,并调用osal_set_event(uint8task_id,uint16event_flag)函数将各任务的事件添加到任务事件数组tasksEvents[]中。下面以SAPI_Init()函数为例来进行解析,代码如下Zstack协议栈工程解析上述代码的最后调用了osal_set_event(task_id,ZB_ENTRY_EVENT)函数,其作用是设置1个入口事件来启动任务,该函数的代码如下:Zstack协议栈工程解析通过上述代码分析可知,osal_set_event()函数的关键是将事件存储到任务事件数组中。解析完任务初始化代码之后,再来解析启动系统osal_start_system()函数的代码,该函数的作用是轮询各个任务,并执行各任务的事件处理函数。Zstack协议栈工程解析将osal_start_system()函数展开之后,可以发现系统启动之后进入了一个死循环,并循环调用osal_run_system()函数,代码如下:Zstack协议栈工程解析展开osal_run_system()函数之后,可以发现该函数的主要作用是先遍历任务事件数组,遍历过程从优先级最高的任务开始,在遍历过程中会判断该任务是否有未执行完的事件,如果该任务有未执行完的事件,则跳出while循环,然后调用(tasksArr[idx])(idx,events)进入该任务的事件处理函数;如果在遍历中该任务的已经执行完毕,即没有事件,则继续循环检查下一个任务。当系统中的所有任务都执行完成后,系统会自动进入睡眠状态,以节约资源。代码如下:Zstack协议栈工程解析Zstack协议栈工程解析通过对上述代码的分析可知,关键的代码在“events=(tasksArr[idx])(idx,events)”中,tasksArr数组存储了各任务的事件处理函数,通过查看tasksArr数组的定义可以知道,系统定义了7个事件处理函数。Zstack协议栈工程解析在上面7个任务的事件处理函数中,只能查看Hal_ProcessEvent、MT_ProcessEvent、ZDApp_event_loop和SAPI_ProcessEvent函数的代码,其余函数均被TI公司封装成库。系统调用(tasksArr[idx])(idx,events)其实就是调用Hal_ProcessEvent(idx,events)、MT_ProcessEvent(idx,events)、ZDApp_event_loop(idx,events)和SAPI_ProcessEvent(idx,events)等事件处理函数。下面以SAPI_ProcessEvent(idx,events)为例进行代码解析,解析如下:Zstack协议栈工程解析Zstack协议栈工程解析Zstack协议栈工程解析由上述代码可知,SAPI的事件处理函数可以处理SYS_EVENT_MSG、ZB_ALLOW_BIND_TIMER、ZB_BIND_TIMER、ZB_ENTRY_EVENT和ZB_USER_EVENTS事件。在这些事件中,开发人员只需要理解ZB_ENTRY_EVENT和ZB_USER_EVENTS事件的处理过程就可以了。ZB_ENTRY_EVENT事件为ZStack协议栈工程的入口事件,包括ZigBee入网的过程处理等;ZB_USER_EVENTS为用户自定义事件,通过查看该事件的宏定义可得知该事件被宏定义为0xFF,说明用户最多只能自定义8个用户事件,但8个自定义事件对于开发者来讲已经足够了。Zstack协议栈工程解析在ZB_ENTRY_EVENT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论