一周学习笔记及问题.docx
《一周学习笔记及问题.docx》由会员分享,可在线阅读,更多相关《一周学习笔记及问题.docx(19页珍藏版)》请在冰豆网上搜索。
一周学习笔记及问题
一周学习笔记
一.公司组织架构及流程(售前相关)
8a产品在日常演进和市场推广过程中,会涉及研发、售前、售后、销售等众多组织部门,需要诸多部门、众多岗位的参与和配合。
1.公司部门以及架构
各业务部门、单元的职能和接口人介绍如下:
•产品行销部:
产品行销部部门经理赵伟总(公司副总裁、GMO)。
部门包括市场组、测试培训中心、售后实施组和专业服务组,此外还包括专职研发的工具开发组。
产品行销部专注于8a产品的市场推广、技术支持和项目实施工作;
•研发:
研发最终负责人为公司CTO武新总。
与8a产品有关的研发部门包括研发一部、研发二部和工具开发组,其中工具开发组负责人杨伟伟;
•电信事业部(COM):
电信事业部部门经理袁丁总。
部门包括销售和售前人员,专注于电信行业的8a产品推广;
天津营销中心(TJC):
天津营销中心部门负责人张良总,包括销售、售前技术支持、方案组等业务单元。
8a市场组与TJC工作往来频繁,所支持的销售很多来自TJC。
产品行销部组织架构:
2.各相关配合部门主要负责人
•市场组:
8a产品线市场组负责人庞松,组内按照行业划分,包括JG行业、OEM合作伙伴、金融行业以及安全行业;
•测试培训中心(T&T):
测试培训中心负责人杨伟伟,下设POC测试组和培训组;
ØPOC组:
小组负责人孙卡,POC按照行业领域划分为三个小组,包括电信(孙卡)、安全(赵景喜)、李运涛(XX)。
POC职责是在项目签约前为用户提供产品能力测试验证
(注:
很多项目在签约前,用户会提出对产品进行功能验证和性能测试等要求)
Ø培训组:
小组负责人沈丽平,组员包括陈婷、白帆。
培训组负责完成对公司内部新入职员工和用户的产品培训工作;
(注:
很多项目商务合同明确要求提供产品培训,此外很多项目售前推进阶段需要为用户或者集成商提供产品培训)
Ø专业服务组:
专业服务组负责人白军奎,专业服务组的职责包括:
(1)作为通向研发的唯一接口,负责完成行销部与研发的所有交流协调工作;
(2)发版申请过程中,完成对售前的技术支持工作;(3)为一线技术人员提供专业技术支持。
产品服务部:
产品服务部是8a产品售后项目实施部门,部门负责人杜国旺。
部门下设多个小组,如实施组、维护组等。
3.通常一般产品周期的流程
售前人员为保障项目顺利推进,会参与到很多流程工作中,有些流程仅限于产品行销部内部,有些会与商务部、销售等部门有工作交集。
本节按照项目推进的顺序,全面介绍8a市场组售前可能遇到的工作流程和处理原则。
下图为8a一个项目完整生命周期示意图,图中标注了所有可能需要售前参与或主导推动的工作流程,一个项目从技术交流到最后完成实施验收,不一定要经历下述所有阶段或流程,但为确保能够为售前人员提供有价值的参考,本手册将详细叙述下述所有流程。
3.1技术交流任务申请响应
发起方:
销售经理
响应方:
售前经理
流程介绍:
销售经理通过电话、邮件等方式通知8a行销部对口的售前负责人,要求协助完成与用户(最终用户或集成商)的技术交流,交流的方式包括技术文档编写、电话解答或者与销售一起前往客户现场为对方进行产品宣讲和技术交流。
输入条件:
如果销售要求售前前往客户现场完成技术交流,则需要销售邮件提供《任务申请单.doc》(模板参见第四章附件1:
任务申请单.doc);
输出物:
如果售前出差到客户现场,交流结束后需要编写《出行报告.doc》(模板参见第四章附件2:
出行报告.doc)
3.2解决方案评估
发起方:
售前经理
响应方:
专业服务组
流程介绍:
在了解客户需求并为客户编制解决方案阶段,可能涉及部分场景过于复杂或某些技术性能指标售前经理不能确定,此时需要借助公司技术专家团队共同完成技术评估和方案编制。
在专业服务组无法解决时,需要售前经理主导请求调动更多技术专家,共同完成方案审议。
输入条件:
出行报告、需求调研报告等;
输出物:
解决方案;
3.3外发版本
发起方:
销售经理
响应方:
售前经理
流程介绍:
在售前阶段为提供客户现场测试版本,或者项目签约售后实施阶段提供现场正式发货版本,销售经理会发起发版流程。
首先销售经理在CRM上提交发版申请,商务发版负责人会邮件告知响应售前经理启动发版程序。
售前经理在收到商务发版负责人邮件通知后,须填写《T3_GBase8a项目发版申请V1_ProjectName_YYYY-MM-DD_YourName.xls》,回复邮件主送商务发版负责人,抄送上级主管、专业服务组负责人。
输入条件:
商务发版负责人发版申请邮件
输出物:
发版申请单(注:
发版申请单请参见附件3《T3_GBase8a项目发版申请V1_ProjectName_YYYY-MM-DD_YourName.xls》)
3.4POC测试申请
发起方:
售前经理
响应方:
POC负责人
流程介绍:
某些项目由于用户方要求,需要协调POC人员为用户完成产品功能、性能验证测试。
售前经理在收到用户方请求后,须向POC负责人发起POC申请。
POC负责人确认通过后会为项目指派POC测试工程师,售前经理牵头协调用户方、销售、POC工程师,完成POC测试。
输入条件:
•POC技术评估表(注:
文档模板请参见附件4《GPS_南大通用8aPOC项目技术评估表_;
•测试用例;(必须)
•表结构;(可协商)
•测试预期;(可协商)
输出物:
POC响应确认邮件;
3.5投标流程
发起方:
招标单位
响应方:
售前经理(和销售经理)
流程介绍:
在确认招标单位发起公开招标后,售前经理启动投标流程。
8a产品线市场组售前经理负责投标响应文件技术部分的编制,商务部分由商务部专人负责。
项目的售前经理负责评估投标文件编写的工作量,视情况向市场组负责人申请人力支持。
项目售前经理负责牵头投标工作,包括分工、框架搭建、整合、组织评审、校对、投标等。
输入条件:
招标单位发起公开招标,并获得招标文件;
输出物:
投标响应文件;
3.6项目售后交接
发起方:
售前经理
响应方:
售后负责人
流程介绍:
当项目签约或确认项目将要签约时,售前经理须向售后申请启动项目交接流程。
项目交接意味着项目由售前主导阶段进入了售后主导阶段,同时意味着项目即将启动部署实施。
项目售后交接属于项目关键节点,售前经理需要将售前阶段的材料、方案、文档当整理齐备,为售后实施尽可能的提供详尽的素材。
输入条件:
项目交接表(注:
请参见附件5《南大通用项目交接信息表_v1.1_项目名称_填写时间_填写人员.xls》)
输出物:
项目交接会议纪要;
二.产品相关知识(8a产品线为主)
1.8a产品线产品的技术特点
GBase8a列存储数据库基础上开发的一款SharedNothing架构的分布式并行数据库集群,具备高性能、高可用、高扩展特性,可以为超大规模数据管理提供高性价比的通用计算平台,并广泛地用于支撑各类数据仓库系统、BI系统和决策支持系统。
1.1.产品技术特点
GBase8aMPPCluster具备以下技术特征:
●低硬件成本:
完全使用x86架构的PCServer,不需要昂贵的Unix服务器和磁盘阵列;
●集群架构与部署:
完全并行的MPP+SharedNothing的分布式架构,采用Non-Master部署,节点对等的扁平结构;
●海量数据分布压缩存储:
可处理PB级别以上的结构化数据,采用hash分布、random存储策略进行数据存储;同时采用先进的压缩算法,减少存储数据所需的空间,可以将所用空间减少1~20倍,并相应地提高了有效的I/O性能;
●数据加载高效性:
基于策略的数据加载模式,集群整体加载速度可达2TB/h;
●高扩展、高可靠:
支持在线扩展,实际扩展能力达到64个SafeGroup(最多64×3=192个节点),同时提供断点续做和非对称方式的数据重分布模式。
支持全量、增量备份/恢复;
●高可用、易维护:
数据通过2个副本提供冗余保护,自动故障探测和管理,自动同步元数据和业务数据。
提供图形化监控工具和企业管理器等管理工具,简化管理员对数据库的管理工作;
●高并发:
读写没有互斥,支持简化模式的MVCC,支持数据的边加载边查询,单个节点并发能力大于300用户;
●行列转换存储:
提供行列转换存储方案,从而提高了列存数据库特殊查询场景的查询响应耗时;
●标准化:
支持SQL92标准;支持CAPI、ODBC、JDBC、ADO.NET等国际接口规范;
1.28a产品架构图
1.3MPP+sharenoting架构
GBase8aMPPCluster采用完全并行的MPP+SharedNothing的分布式扁平架构,这种架构中的每一个节点(node)都是独立的、自给的、节点之间对等,而且整个系统中不存在单点瓶颈,具有非常强的扩展性。
1.4.核心组件
GBase8aMPPCluster产品总共包含三大核心组件,即GCluster、GCware和GNode。
GCWare用于各节点GCluster和GNode实例间共享信息,GCluster负责集群调度,每个GNode就是最基本的存储和计算单元。
GCluster:
GCluster负责SQL的解析、SQL优化、分布式执行计划生成、执行调度。
GCWare:
GCWare用于各节点GCluster和GNode实例间共享信息(包括集群结构,节点状态,节点资源状态等信息),以及控制多副本数据操作时,提供可操作节点,并在多副本操作中,控制各节点数据一致性状态。
GCWare对于集群的管理工作是以节点为基本单位的。
GNode:
GNode是GCluster中最基本的存储和计算单元。
GNode是由GCWare管理的一个8a实例,每个GCluster节点上有一个GNode实例运行。
GNode负责集群数据在节点上的实际存储,并从GCluster接收和执行经分解的SQL执行计划,执行结果返回给GCluster。
数据加载时,GNode直接从集群加载服务接收数据,写入本地存储空间。
1.5.高可用
GBase8aMPPCluster通过SafeGroup组内冗余机制来保证集群的高可用特性:
●每个SafeGroup可提供1个或2个副本数据冗余;
●SafeGroup内数据副本自动同步;
●复制引擎自动管理数据同步;
图42SafeGroup高可用性管理示意图
1.6.高性能在线扩展
GBase8aMPPCluster具备在线扩展技术:
●通过SafeGroup动态扩展集群节点,实际可扩展到64×3(192)个节点;
●每个节点可以处理10TB有效数据,同时提供计算和存储能力;
●GCware负责新节点的数据同步;
图43GBase8aMPPCluster在线扩展技术示意图
因为GBase8aMPPCluster采用高性能单节点的MPP扁平架构,因此进行集群扩展时,可以保证平滑扩展和性能的线性增长特性。
图44GBase8aMPPCluster高性能高扩展示意图
1.7.高性能数据加载
数据加载功能作为GBase8aMPPCluster的一部分而存在,目的是将用户从其他数据源得到的原始数据文件,按照某种加载规则分发至集群节点,集群各节点接收数据入库保存到本地磁盘。
集群加载采用C/S架构,包括数据分发服务器和数据分发客户端两个应用程序。
数据分发服务器接收到客户端的数据加载请求后,服务器端负责原始数据文件切分和数据文件的下发;各节点调用本地的集群加载服务接收数据入库并保存到本地磁盘。
图45数据加载示意图
1.8.OLAP函数
GBase8aMPPCluster提供OLAP函数,用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持。
可根据分析人员的要求,快速灵活地进行大数据量的复杂查询处理,以便他们准确掌握企业的经营状况,了解被服务对象的需求,制定正确的方案。
1.9.行列混合存储
GBase8aMPPCluster采用的行列混合存储的存储结构,改善了当列数较多,查询命中的数据记录又非常离散时,会频繁访问I/O的状况,大大缩短了延迟查询响应耗时,从而提高了查询效率。
GBase8aMPPCluster提供的行列混合存储技术,它通过创建行存列的机制,减少I/O访问的次数,从而有效地提高I/O性能。
2.竞争对手情况
GBase8aMPPCluster核心优势
GBase8aMPPCluster相比其他同类数据库产品,核心优势如下:
●高性能:
复杂查询、即席查询性能是传统数据库的10倍以上
●高性价比
PCServer+Linux+本机磁盘盘,超过小型机+Unix+阵列的性能
●高速同步加载
超过2TB/Hour的装载速度
●高压缩率:
4~20倍以上压缩比,节省存储,可存储长期历史数据
●扩展能力强:
在线增加节点,无需停业务
●管理维护简单
智能索引免维护,工具完善易操作
IBMDB2DPF
IBMDB2DatabasePartitionFeature的整体架构如下:
GBase8aMPPCluster与IBMDB2DPF的对比优势,如下:
对比项
OracleDB2DPF
GBase8aMPPCluster
架构
DPF是基于DB2中的传统分区功能开发
的MPP模块。
存储结构还是依存于传统的存储结构。
真正的面向OLAP的MPP架构。
各个节点服务器之间完全独立。
功能
没有列存储技术,使用高端设备来实现高性能
列存储,高效I/O,大幅度提升性能
压缩率低,最多只能到5:
1左右
高压缩比,4~20倍压缩
资源管理机制缺乏,需要过多的人工干预。
依存人工建立的大量数据索引。
智能优化,无需人工干预
性能
由于一般采用SAN架构,随着数据量增大,可扩展性比较差
无需磁阵,X86服务器水平线性扩展
性价比
许多功能都是按模块单独销售,如高可用性;随着业务的发展,业务对数据仓库需求侧重点也会不同,而按模块销售会使业务会受到严重制约可扩展性
性能高,功能模块多,价格低,性价比优势显著
服务
支持
费用高,响应慢
本地服务,成本低,响应快
TeraData
TeraData的整体架构如下:
GBase8aMPPCluster与TeraData的对比优势,如下:
对比项
TeraData
GBase8aMPPCluster
架构
私属硬件交换机,软硬件绑定
通用X86服务器
功能
由于设计原理原因,装载数据时只有对空表加载时才能获得好的性能
表中数据多少对加载速度无影响
压缩率低,通常只能达到80%左右
列存储,高压缩比,4~20倍压缩
管理
维护
升级时中断业务时间过长,一般需要一周左右
升级只需几个小时
性价比
购买、升级费用非常昂贵
性能高,价格低,性价比优势显著
服务
支持
费用高,响应慢
本地服务,成本低,响应快
HPVertica
HPVertica为纯软件的MPP产品,GBase8aMPPCluster与HPVertica的对比优势,如下:
对比项
HPVertica
GBase8aMPPCluster
功能
严重依靠projection提供不同方案的性能。
拥有多个分析视图,projection表的数量也将增加(相同数据的多个副本),而这抵销了压缩的带来的好处
一份数据,采用智能索引技术进行自动性能优化
性能
对用户并发查询数据库数据支持不够好,此时如果查询到达可利用的内存上限,性能下降则非常明显;
并发数水平线性扩展
如果任何查询需要调优,往往会受限于projection中的复制数据,灵活性较差,性能受到影响
智能索引,自动优化,无需复制数据
国内
案例
无
众多
EMCGreenPlum
EMCGreenPlum的整体架构如下:
GBase8aMPPCluster与EMCGreenPlum的对比优势,如下:
对比项
EMCGreenPlum
GBase8aMPPCluster
架构
存在Master节点,容易形成单点故障。
且当集群节点较多时,容易产生单点性能瓶颈。
对于Master节点之间的切换和故障解除后的恢复,过程中易于引起系统运行环境的混乱,造成无法正常工作。
为纯粹的扁平结构的ShareNothing架构,不存在性能上的单点瓶颈和单点故障问题。
Greenplum基于PostgerSQL数据库软件实现,实际上整个系统相当于一个数据库联邦,因此当Greenplum遭遇断电等极端情况时,由于每个PostgerSQL系统的当时情况存在差异,造成节点全部断电后无法自动全部重启,需要人工干预。
GBase产品支持全部节点断电重启后正常运行;这种需求对中移动带来的益处是在极端的电力失效场景下,整个MPP系统仍可以迅速恢复对外提供服务。
受限于PosgerSQL,在单节点上没有并行架构,对多CPU多核的使用效率不高。
可充分发挥单节点上多核SMP多核优势,实现节点上双向并行。
功能
无增量备份,每次备份都是全备,这样备份归档会占用很多空间
支持全量备份和增量备份
不能缩减节点
可以扩展节点,也可以缩减节点
压缩态数据不支持更新和删除操作
高压缩数据依然可以增删改
性能
系统空间膨胀过快,空间回效率低下,时间长,并且严重影响系统性能,如系统表空间可能膨胀将近百倍
系统空间很小,对性能无影响
对并发查询数据库数据支持不够好,一般支持几个复杂长时间SQL查询,当任务更多时会自动失败
单机300并发,水平线性扩展
与常见ETL、报表工具连通时兼容性及性能都比较差
接口完全标准化,兼容性好,与主流中间件、ETL、报表工具都可对接
管理
维护
无图形化管理工具
GUI工具:
企业管理器、监控管理工具
Master与Standby切换、回切相关繁琐,管理维护不方便,并且经常失败
完全对等的扁平架构,无Master节点,无切换问题
三.常见技术问题
(1)GBase8a是MPP集群架构,是否有临时表概念?
什么情况会用到临时表?
是自动的还是须要人工设定?
答:
GBase8a若采用集群方式部署,运行时有可能会根据需要自动生成临时表。
一般情况下,数据在加载到集群中各节点时,表的分布有三种:
复制表、分布表和非复制表。
因为非复制表只保存一份,存在数据丢失隐患,所示实际中很少用到。
平时用到最多的是分布表和复制表,对于参与关联运算较多的维度表或小表,采用复制表方式存储,减少节点间拉表成本;对于大的事实表,一般采用分布表方式,分布可以采用随机分布或Hash分布。
如果两个分布表做等值Join,为了减少节点间拉表的运行成本,GBase8a会自动评估决定是否将其中相对小的分布表临时合并成复制表,这样在每个节点与另一张分布表做Join。
被临时合并并复制的表在这个过程中就生成了临时表。
临时表是为提高运算性能系统自动采取的一种策略。
运算结束后,临时表会被释放。
(2)索引是什么机制?
答:
GBase8a在数据入库时,能够自动在每一列上建立粗粒度的智能索引,索引包含统计信息,可以直接使用,降低不必要的磁盘IO。
对于多表关联和等值查询的应用场景,针对经常访问的数据列,可以人工为其建立Hash索引,数据在加载到集群时通过Hash分布的方式分不到集群每一个节点上,发挥每一个节点的运算能力,实现任务分摊,达到集群效能的最大利用。
(3)如何理解索引的“粗粒度”?
答:
GBase8a的智能索引在字段上基于数据包自动建立索引,常驻内存,即为粗粒度。
(4)如何理解全文检索?
答:
全文检索面向的为半结构化数据,如微博、短信等半结构化内容用全文索引效率就明显提高。
其他如文本、网页等内容,文本存在DFS中,索引存在数据库中,全文抽取插件可以支持8种文件格式。
总的原则是小数据存在字段中,大文件存在DFS中。
全文的关键字和索引内容存在数据库中,采用单字切分技术,和语种无关,命中率可达100%。
(5)8a的应用场景?
答:
主要有即席查询、R-OLAP应用、数据仓库和数据集市、低价值密度的数据查询分析等(如日志)。
从应用角度在金融领域用于反洗钱、信用卡分析、绩效考核数据、用户上网分析、审计平台等。
电信领域用于日志管理、经分系统等。
(6)你们Select*操作是否比较麻烦?
答:
对,因为需要把每个字段都列出来。
但是自8512版本我们支持行、列混合存储,对于经常被select*的场景,可以使用行存列的方式实现。
(7)如何理解列存储与行存储在增删改查方面大数据优势的原理及具体体现
答:
行存:
增删改查需要建立索引,根据索引一行一行排查找到具体行进行增删改查,同时要记录日志等文件。
耗费大量I/O。
列存:
增原理:
8a大批量数据入库时,可以边查询操作,边入库,两不耽误。
使用的是AB版本,查的是原数据版本,入库则入副版本,副本入完后与原数据版本置换同步;改原理:
修改时原数据加标记—包头偏移量处加标记,修改后新数据插入到最后(等于增)。
每列最后一个包不进行压缩,减少插入数据的工作量;删原理:
删除时原数据加标记—包头偏移量处加标记,以后查操作会跳过该标记内容;大数据查:
只涉及需要查找的列,而且每列有智能索引,可以先按包排查,再在筛出的包内排查。
不需像行存一样所有的列每条记录去排查;智能索引:
不是物理存在的表,是加载数据库时提取包头内容在内存形成的表。
(8)外部数据源加载到多个分发节点时,如果部分节点加载成功,部分节点加载失败,成功部分数据是否保留还是回滚?
答:
加载如果报success,则是所有可用节点数据都加载成功,如果有任何一个节点加载出问题,则所有节点都没有任何数据加载进去。
(9)群组中安全组的节点个数是否必须一样?
答:
可以不一样,但是建议实际应用中保持一样。
(10)能否与pl/sql连接,或可以与哪些常用的客户端工具配合使用,是否支持标准SQL所有语法?
答:
不能与oracle的pl/sql连接,GBase8a客户端有自己的企业管理器,支持标准SQL语法。
(11)与开发语句如JAVA,C,.NET等语句的连驱动的完善?
答:
有。
GBase8a有完善的符合国际标准化的接口,如JDBC、ODBC、ADO.NET以及CAPI。
(12)hash分布选取列的原则:
答:
选取groupby和join的varchar列;
选取的列重复值不应该太大,否则各节点分布不均匀。
(13)Sql语法跟mysql很类似,交流时如何向客户说明跟mysql关系?
答:
目前主流的数据库,都支持SQL92标准。
8a产品以mysql为原型开发,跟第三方BI工具支持mysql接口,方便客户部署和迁移。
四.学习过程中遇见的问题和体会
1.在学习过程中,对8a以及8aMPP数据库的原理有一定的了解,但没有具体测试数据以及场景的应用数据做支撑,希望能够获取一些以往招标或者测试过程中具体场景的一些数据,根据不同的应用场景和相应的数据做对比,这样能够对8a产品的特性认识更加清晰。
2.在学习中,查找到一个用户需求的公式即最小磁盘空间需求(MDSR),MDSR=原始数据*数据库以及相关工作空间*副本选项因子*RAID因子*操作系统和文件系统因子*数据库压缩因子,MDSR=原始数据*1.2*3*16/15*1.2*25%=原始数据*1.152,我想问的是这个公式在8a产品中是经过总结具有