大数据平台架构的组成部分是什么-鼎天盛华(北京)软件技术有限公司

Website Home

cs是客房端服务器模式bs是浏览器服务器模式。

它们最主要的区别是cs架构的应用程序需要在用户的计算机上进行安装。

如我们常用的word,excel等应用软件属于cs架构而bs架构的应用程序不需要在用户的计算机上进行安装,只需要有一个浏览器就可以运行bs架构的应用程序?

如现在网上一般的电子商务网站即属于此类型;

数据分析和机器学习大数据基本都是建立在Hadoop系统的生态上的,其实一个Java的环境。

很多人喜欢用Python和R来进行数据分析,但是这往往对应一些小数据的问题,或者本地数据处理的问题。

如何将二者进行结合使其具有更大的价值?

Hadoop现有的生态系统和现有的Python环境如上图所示。

MaxComputeMaxCompute是面向离线计算的大数据平台,提供TB/PB级的数据处理,多租户、开箱即用、隔离机制确保安全。

MaxCompute上主要分析的工具就是SQL,SQL非常简单、容易上手,属于描述型?

Tunnel提供数据上传下载通道,不需要经过SQL引擎的调度?

PandasPandas是基于numpy的数据分析的工具,里面最重要的结构是DataFrame,提供一系列绘图的API,背后是matplotlib的操作,非常容易和Python第三方库交互;

PyODPS架构PyODPS即利用Python进行大数据分析,其架构如上图所示。

底层是基础API,可以利用其操作MaxCompute上的表、函数或者资源?

再上面是DataFrame框架,DataFrame包括两部分,一部分是前端,定义了一套表达式的操作,用户写的代码会转化成表达式树,这与普通的语言是一样的。

用户可以自定义函数,也可以进行可视化,与第三方库进行交互;

后端最下面是Optimizer,其作用是对表达式树进行优化。

ODPS和pandas都是通过compiler和analyzer提交到Engine来执行;

背景为什么要做DataFrame框架;

对于任何一个大数据分析工具,都会面临三个维度上的问题:表达力,API、语法、编程语言是否简单、符合直觉。

数据,存储、元数据是否能压缩、有效。

引擎,计算的性能是否足够。

所以就会面临pandas和SQL两个选择。

如上图所示,pandas的表达力非常好,但是其数据只能放在内存中,引擎是单机的,受限于本机的性能。

SQL的表达力有限,但是可以用于大量的数据,数据量小的时候没有引擎的优势,数据量大的时候引擎会变得很有优势。

ODPS的目标是综合这两者的优点。

PyODPSDataFramePyODPSDataFrame是使用Python语言写的,可以使用Python的变量、条件判断、循环?

可以使用pandas类似的语法,定义了自己的一套前端,有了更好的表达力。

后端可以根据数据来源来决定具体执行的引擎,是visitor的设计模式,可扩展。

整个执行是延迟执行,除非用户调用立即执行的方法,否则是不会直接执行的。

从上图中可以看出,语法非常类似于pandas。

表达式和抽象语法树从上图可以看出,用户从一个原始的Collection来进行GroupBy操作,再进行列选择的操作,最下面是Source的Collection。

取了两个字段species,这两个字段是做By操作的,pental_length是进行聚合的操作取聚合值。

Species字段是直接取出来,shortest字段是进行加一的操作?

Optimizer(操作合并)后端首先会使用Optimizer对表达式树进行优化,先做GroupBy,然后在上面做列选择,通过操作合并可以去除petal_length做聚合操作,再加一,最终形成了GroupBy的Collection。

Optimizer(列剪枝)用户join了两个dataframe,再取来自dataframe的两个列的时候,如果提交到一个大数据的环境,这样一个过程是非常低下的,因为不是每个列都用到了。

所以要对joined下的列进行剪枝操作?

比如,dataframe1我们只用到了其中的一个字段,我们只需要将字段截取出来做一个projection来形成新的Collection,dataframe2也类似。

这样,对这两部分进行校验操作的时候就能极大的减少数据的输出量。

Optimizer(谓词下推)如果对两个dataframe进行joined然后再分别进行过滤的话,这个过滤操作是应该下推到下面来执行的,这样就能减少joined的输入的量?

可视化提供了visualize()来方便用户进行可视化?

在右边的例子中可以看到,ODSPSQL后端会compile成一条SQL执行?

后端从上图中可以看出,计算后端是非常灵活的。

用户甚至可以joined一个pandas的dataframe和maxcompute上一个表的数据!

AnalyzerAnalyzer的作用是针对具体的后端,将一些操作进行转化。

比如:有些操作比如value_counts,pandas本身支持,因此对于pandas后端,无需处理?

对于ODPSSQL后端,没有一个直接的操作来执行,所以在analyzer执行的时候,会被改写成groupby+sort的操作。

还有一些算子,在compile到ODPSSQL时,没有内建函数能完成,会被改写成自定义函数!

ODPSSQL后端ODPSSQL后端怎么进行SQL编译再执行的操作!

编译器可以从上到下遍历表达式树,找到Join或者Union?

对于子过程,进行递归compile。

再到Engine来具体执行时,会使用Analyzer对表达式树进行改写,compile自上而下的子过程,自底向上compile成SQL子句,最终得到完整的SQL语句,提交SQL并返回任务。

pandas后端首先访问这个表达式树,然后对每个表达式树节点对应到pandas操作,整个表达式树遍历完之后就会形成DAG;

Engine执行按DAG拓扑顺序执行,不断地把它应用到pandas操作,最终得到一个结果。

对于大数据环境来说,pandas后端的作用是做本地DEBUG;

当数据量很小时,我们可以使用pandas进行计算;

难点+坑后端编译出错容易丢失上下文,多次optimize和analyze,导致难以查出是之前哪处visitnode导致。

解决:保证每个模块独。

立性、测试完备。

bytecode兼容问题,maxcompute只支持Python2.7的自定义函数的执行!

SQL的执行顺序;

ML机器学习机器学习是输入输出一个dataframe;

比如,有一个iris的dataframe,先用name字段来做一个分类字段,调用split方法将其分成60%的训练数据和40%的测试数据?

然后初始化一个RandomForests,其里面有一棵决策树,调用train方法训练训练数据,调用predict方法形成一个预测数据,调用segments[0]就可以看到可视化结果?

未来计划分布式numpy,DataFrame基于分布式numpy的后端。

内存计算,提升交互式体验!

标签Python传统的数据架构关注的重点,局限在所有管理对象涉及的实体数据(内容),而“数据空间”关注和管理的对象,还要扩展到:一是以人工语境对“内容”进行解释性描述的元数据(变化)!

二是记录“内容”和“变化”的归档数据(历史)?

三是反映管理决策框架运行环境的日志数据(状态)等接入与展示层:提供PC、移动智能端、卫星应急指挥系统及指挥连接大屏等接入层应用的信息接口,实现连接大屏互动与数据共享。

一、董事会董事会成员基本上都是公司股东,可能一人,可能是多人,董事会有董事长一名;

董事会一般不参与P2P平台正常运营,只在有重大决策、股东会议的时候才会出面。

二、首席执行官首席执行官有两种,一种是职业经理人,一种是联合创始人,职业经理人就是只是董事会请来为公司打工的,联合创始人则是最早发起创办P2P平台的成员之一!

一般情况下,P2P平台首席执行官最好是来自金融领域,因为首席执行官掌握着公司日常运营最高权力,所以金融知识一定要扎实过硬,并且要有较强的金融行业从业背景,比如在证券、银行、保险等行业工作过。

三、运营部运营部一般包含一名运营总监,一名运营经理,若干名普通运营人员。

p2p平台运营总监需要很强的互联网工从业背景,比如易投资CEO邵军,就有多年互联网从业经验?

四、风控部风控部是P2P平台最核心的部门,因为互联网金融的本质是金融,而金融的本质又在于风险控制。

P2P平台的风控大多数是由风控部门负责,但如果遇到较大的项目,首席执行官乃至董事长都需要参与进去,毕竟风控关系着平台的命脉?

风控部门一般由一名风控总监和若干名风控专员组成。

五、产品部P2P平台产品部门分为两种,一种产品是我们投资的网站、app,还一种产品是金融产品,也即是平台所卖项目设计规划?

如果平台较大,则为区分的很详细,如果平台较小,金融产品部门的工作一般会由首席执行官和运营总监、风控总监商讨完成。

六、技术部技术部门是P2P平台另一个核心部门,有些平台的技术是外包出去的,像这种平台大家投资就需要谨慎了,有技术的公司才有创造力。

七、财务部财务部也是较为重要的部门,财务掌握着整个公司资金的流水,财务对公司经营状况了解的非常详细。

八、客服部客服部在P2P平台中扮演着口碑营销的职责,客服后续的服务决定了用户是否会继续投资。

九、行政部主要是一些日常行政、人事招聘?

十、市场部负责一些市场活动推广、公关!

十一、培训部培训新员工,了解公司基本知识!

十二、企划部主要是建议公司品牌形象?

十三、法务部一般就是公司的律师,有些平台是外包出去的;

三层架构数据层数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档SOA强调的是一种架构思想,组件化的灵活的开发方式,举例,盖房子,原来是用代码一行行的累积,就像盖房子一块砖头一块砖头的砌墙,一片一片的加瓦。

SOA架构的思想就主张不要再一块砖一片瓦的干,一面墙一个屋顶一根梁等等都是人家做好的,拿过来自己搭起来就把房子盖好了,需要每家的房子要求不一样再自己改,墙上开个窗,屋顶搞个烟囱都随你自己搞,自己搞的这部分就是需要你自己做造型砌砖的地方。

好处就是开发效率高,系统稳定,实施维护便捷,不管是开发还是维护成本都低廉?

支持方正的方正飞鸿中间件平台。