个人中心
个人中心
添加客服WX
客服
添加客服WX
添加客服WX
关注微信公众号
公众号
关注微信公众号
关注微信公众号
升级会员
升级会员
返回顶部
电力集团电商运营大数据平台技术项目可行性研究报告411页
电力集团电商运营大数据平台技术项目可行性研究报告411页.docx
下载文档 下载文档
综合其它
上传人:职z****i 编号:1179164 2024-09-13 411页 21MB
1、电力集团电商运营大数据平台技术项目可行性研究报告XX工程咨询有限公司二零XX年XX月电力集团电商运营大数据平台技术项目可行性研究报告建设单位:XX建筑工程有限公司建设地点:XX省XX市编制单位:XX工程咨询有限公司20XX年XX月411可行性研究报告编制单位及编制人员名单项目编制单位:XX工程咨询有限公司资格等级: 级证书编号:(发证机关:中华人民共和国住房和城乡建设部制)编制人员: XXX高级工程师XXX高级工程师XXX高级工程师XXXX有限公司二XX年XX月XX日目 录1文档简介111.1文档目标111.2目标读者111.3关键术语122项目概述132.1建设背景132.1.1痛点及需提升2、的能力132.1.2大数据趋势132.2建设目标142.2.1总体目标142.2.2分阶段建设目标142.3与相关系统的关系152.3.1电e宝152.3.2XX电子商城162.3.3互联网金融162.3.4统一账户平台162.3.5风控系统172.4公司介绍和优势特点172.4.1IDEADATA172.4.2TRANSWARP182.4.3我们的优势193业务需求分析223.1总体需求223.2数据管理223.2.1数据采集223.2.2数据交换233.2.3数据存储与管理233.2.4数据加工清洗243.2.5数据查询计算243.3数据分析与挖掘243.4数据展现254系统架构设计2643、.1总体设计目标264.2总体设计原则264.3案例分析建议274.3.1中国联通大数据平台274.3.2恒丰银行大数据平台334.3.3华通CDN运营商海量日志采集分析系统434.3.4案例总结464.4系统总体架构设计474.4.1总体技术框架475系统功能设计495.1概述495.2平台管理功能495.2.1多应用管理495.2.2多租户管理525.2.3作业调度管理705.3数据管理715.3.1数据管理框架715.3.2数据采集745.3.3数据交换765.3.4数据存储与管理775.3.5数据计算925.3.6数据查询1045.4数据ETL1185.5数据分析与挖掘1205.5.14、数据分析流程1215.5.2R语言开发环境与接口1225.5.3并行化R算法支持1225.5.4可视化R软件包1255.5.5编程语言支持1265.5.6自然语言处理和文本挖掘1275.5.7实时分析1275.5.8分析管理1285.5.9分析支持1315.5.10指标维护1315.5.11分析流程固化1315.5.12分析结果发布1325.5.13环境支持1326技术要求实现1336.1产品架构1336.1.1基础构建平台1366.1.2大数据平台组件功能介绍1366.1.3系统分布式架构1676.2运行环境支持1686.2.1系统操作支持以及环境配置1686.2.2与第三方软件平台的兼容说5、明1696.3客户端支持1706.3.1客户端支持1706.3.2移动端支持1706.4数据支持1706.5集成实现1726.6运维实现1736.6.1运维目标1736.6.2运维服务内容1746.6.3运维服务流程1766.6.4运维服务制度规范1776.6.5应急服务响应措施1786.6.6平台监控兼容1786.6.7资源管理1796.6.8系统升级1816.6.9系统监控平台功能1816.7平台性能1906.7.1集群切换1906.7.2节点切换1916.7.3性能调优1926.7.4并行化高性能计算1966.7.5计算性能线性扩展1996.8平台扩展性2006.9可靠性和可用性20166、.9.1单点故障消除2016.9.2容灾备份优化2026.9.3系统容错性2066.10开放性和兼容性2076.10.1高度支持开源2106.10.2操作系统支持以及软件环境配置2226.10.3兼容性与集成能力2236.11安全性2246.11.1身份鉴别2246.11.2访问控制2256.11.3安全通讯2296.12核心产品优势2306.12.1高速运算、统计分析和精确查询2306.12.2有效的资源利用2316.12.3高并发、低延迟性能优化2326.12.4计算资源有效管控2336.12.5API设计和开发工具支持2346.12.6友好的运维监控界面2356.12.7扩容、备份、恢复7、机制2406.12.8集群自动负载均衡2416.12.9计算能力扩展2416.13自主研发技术优势2416.13.1高稳定、高效的计算引擎Inceptor2426.13.2完整的SQL编译引擎2436.13.3高性能的SQL分析引擎2436.13.4SQL统计分析能力2446.13.5完整的CURD功能2456.13.6Hyperbase高效的检索能力2456.13.7基于Hyperbase和SQL引擎的高并发分布式事务2476.13.8Hyperbase非结构化数据的支持2486.13.9机器学习与数据挖掘2486.13.10Transwarp Stream2516.13.11内存/SSD/8、磁盘混合存储2536.13.12MR/Spark/流处理统一平台2546.13.13多租户支持能力2556.13.14多租户安全功能2556.13.15标准JDBC与ODBC接口2567系统性能指标和测试结果说明2577.1性能测试报告2577.1.1测试目标2577.1.2测试内容2577.1.3测试环境2577.1.4测试过程和结果2597.2TPC-DS测试报告2617.2.1测试目标2617.2.2测试内容2617.2.3测试环境2637.2.4测试过程和结果2647.3某银行性能测试报告2657.3.1测试目标2657.3.2测试内容2657.3.3测试环境2657.3.4测试过程和9、结果2668系统测试2768.1系统测试方法2768.2系统测试阶段2778.3系统测试相关提交物2789项目实施2799.1项目实施总体目标2799.2项目管理2799.3业务确认2809.4数据调研2819.5系统设计阶段2819.6集成部署阶段2829.7ETL过程设计2839.8ETL开发与测试2839.9系统开发阶段2849.10系统测试阶段2859.11系统上线及验收2869.12提交物2889.13系统的交接与知识转移28910项目管理29010.1项目总体管理29010.1.1项目实施总流程29010.1.2项目实施中各阶段的主要任务29010.1.3项目组织架构29410.110、.4项目负责人及主要成员29910.1.5项目管理制度35910.2项目质量管理36110.2.1范围36210.2.2过程目标36210.2.3角色与职责36210.2.4过程活动36310.3项目计划36611技术服务36711.1现场支持服务36711.2标准售后技术服务36811.2.1提供预防性维护36811.2.2系统升级服务36811.2.3系统性能优化36811.2.4提供系统完整文档36911.2.5定期系统健康检查服务36911.2.6应急预案37011.3承诺37011.3.1我方对XX电商的承诺37011.3.2关于开发队伍的承诺37111.4技术保证37111.4.111、方案实用性保证37111.4.2应用系统的运行能力的保证37111.4.3预防性维护检修内容37111.4.4服务响应37211.4.5关于软件维护的保证37211.4.6专业服务保证37311.4.7售后服务流程及时限37312人员培训37412.1Hadoop系统培训37412.2业务使用培训37612.3分析挖掘培训37612.4运行维护培训37712.5开发培训37812.5.1培训目标38112.5.2培训方式38212.5.3培训资源38213成功案例38413.1恒丰银行企业数仓和历史数据分析探索平台38613.2民生银行总行-大数据集中处理平台38713.3民生银行信用卡部-大12、数据集中分析平台38813.4四川省农信社-新一代电子银行大数据集中处理平台38913.5浙江农信社大数据分析平台39013.6平安银行-贷款清单报表展示系统39113.7江苏邮储银行-历史数据集中管理平台39213.8EMS-智能物流大数据平台39413.9广东移动-139协同运营中心大数据平台39513.10中国联通大数据平台(近千节点规模)39613.11山东省公安厅-智能交通项目39713.12江苏电信-网络优化大数据平台39813.13中国电力科学研究院南京分院-电力大数据平台39913.14华通CDN运营商海量日志采集分析系统40013.15中国工商总局-工商大数据公示系统402113、3.16华数广电-用户行为分析40313.17锦江电商-智能推荐平台40413.18TERADATA数据仓库维护保障技术服务40513.19XX电商数据分析综合服务平台项目实施40513.20XX电商集团数据分析与处理服务40713.21XX电商大客户智能匹配软件40813.22联想招标信息获取与分析40913.23中国平安互联网动态情报获取与分析大数据服务41114附录4131 文档简介1.1 文档目标该平台是电商公司重点建设项目,旨在推动XX商城、电e宝、互联网金融业务的运营管理工作,加强运营大数据研究分析,为科学、高效决策提供强有力的支撑。截止到目前为止,各个业务系统涉及到的监控指标一百14、三十多个,涵盖了包括交易、客户、流量、产品、安全的各个方面。等到项目建成后将会对各个系统运行的状态进行实时的、全方位的立体监控。根据XX提出的的针对大数据平台(以下简称“本系统”)建设的各项业务和技术需求,经过综合考虑,提出XX电商运营大数据平台技术建议书,对XX电商运营大数据平台的建设给出详细的技术体系架构建议。目的是将XX电商运营大数据平台建设项目(以下简称“本项目”)的技术实现系统化、具体化,让读者更直观的了解我方针对本项目的方案规划、系统设计、系统实施等方面的建设思路,并可基于此进行系统后续的系统咨询、设计和实施。1.2 目标读者XX电商运营大数据平台技术建议书(以下简称“本方案”)涵15、盖了XX电商运营大数据平台的业务需求分析、系统架构设计、系统功能设计、技术要求实现、系统性能指标和测试结果说明、系统配置方案、系统测试、项目实施、项目管理、安全保密、知识产权、技术服务、人员培训以及成功案例等内容。本方案适用于XX电商运营大数据平台的建设、开发、运行、维护、管理等工作的指导,供相关各级部门在具体建设项目中参考使用。1.3 关键术语l XX电商运营大数据平台XX电商运营大数据平台是指在XX电商相关内外部各种数据来源的结构化、半/非结构化数据的数据中心和应用中心的集合,能够提供各种数据分析和服务应用,满足各级机构对数据支撑服务及管理的工作需要。l Hadoop系统本文提及的Hado16、op系统特指基于Hadoop生态圈(包括Spark、Hive、HBase、HDFS等相关技术)构建的大数据平台软件产品。l 相关系统相关系统是指与大数据平台有关系的各类系统,如电e宝,XX电子商城,互联网金融,统一账户平台,风控系统等。l ETLETL是数据抽取(Extract)、转换(Transform)、清洗(Cleansing)、装载(Load)的过程。从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义的数据模型装载数据。l 多维分析多维分析是指对多维数据采取切片、切块、钻取、旋转等各种分析操作,以求剖析数据,使最终用户能从多角度、多侧面的观察数据库中的数据,从而深入了解包含在数据17、中的信息、内涵。l 数据挖掘数据挖掘(Data Mining,简称DM)就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。l KPIKey Performance Indication(关键业绩指标)的缩写,是通过对组织内部某一流程的输入端、输出端的关键参数进行设置、取样、计算、分析,衡量流程绩效的一种目标式量化管理指标,是把企业的战略目标分解为可运作的远景目标的工具,是企业绩效管理系统的基础。 2 项目概述2.1 建设背景2.1.1 痛点及需提升的能力XX作为世界500强公司之一,拥有丰富的客户资源,海量的数据积累。18、在大数据时代,要充分挖掘数据价值,跟上时代的步伐。XX电商目前建有多个业务系统,各个业务系统之间在近期做了一些互联互通,系统间主要通过相互蜘蛛网式的两两互通建立共享,数据分散,缺少统一的数据模型、数据标准和统一的业务逻辑,各系统间数据还存在一些不一致的现象,共享不足,无法实现企业数据的充分有效利用,无法支撑决策和分析层面的数据利用。数据存在冗余、分散、安全性差、一致性差等问题,应建立有效的数据管控体系,打破信息孤岛、实现企业信息数据共享、提升数据价值。另外,除了业务系统的结构化数据之外,XX商城本身的非/半结构化数据,也是采集及利用不足,需利用大数据技术加强应用。2.1.2 大数据趋势随着移动19、互联网、云计算、物联网和大数据技术的广泛应用,现代社会已经迈入全新的大数据时代。掌握大数据资产,进行智能化决策,已成为企业胜出的关键。越来越多的企业开始重视大数据战略布局,重新定义自己的核心竞争力,从数据中揭示规律,了解过去、知悉现在、洞察未来,数据驱动企业运行与决策的科学性,构建智慧企业,打造核心竞争力。数据的爆炸式增长以及价值的扩大化,将对企业未来的发展产生深远的影响,数据将成为企业的核心资产。如何应对大数据,挖掘大数据的价值,让大数据为企业的发展保驾护航,将是未来信息技术发展道路上关注的重点。2.2 建设目标2.2.1 总体目标根据总体信息化规划,遵循“互联网+”的理念,建设XX电商运营20、大数据平台,实现XX电商数据资源的集中及整合,构建XX电商统一的数据模型,提高企业数据的处理效率与共享程度。实现对XX电商企业内部数据和外部数据的分析挖掘,对内对外提供数据服务。为全网提供决策支持、产品创新、交叉营销等支撑服务。XX电商运营大数据平台将在Hadoop和云计算等技术的基础上,对现有XX电子商城、电e宝,互联网金融,统一账户平台,风控系统的历史数据、数据模型、报表应用等进行抽取、归集、整合,全面整合业务数据。数据来源涵盖XX电商相关的业务系统,并可接入同业及相关市场甚至互联网信息,建立从业务层到管理层到决策层的智能分析体系,实现对XX电商各种业务数据进行分类、管理、统计和分析等功能21、,给各级管理人员提供各类准确的统计分析预测数据,使其能够及时掌握全面的经营状况,为宏观决策提供支持;为基层业务人员提供详尽的数据,供其对各自的工作目标、当前和历史状况进行准确的把握,对业务活动进行有效支撑;满足XX经营管理及决策支持,建设国内一流,世界领先的大数据平台。2.2.2 分阶段建设目标l 第一阶段目标利用大数据技术,搭建大数据平台,实现统一数据交换、数据管控、企业级数据分析、数据可视化展现服务等功能。完成各类数据资源的归集、加工和整理,建立XX电商统一的数据模型,实现数据的标准化和规范化。对XX电商业务系统的数据进行采集和存储。提供界面简洁、数据及时的展现平台,助力XX电商实现数据的22、分析统计目标,协助决策,助力业务目标的实现。l 第二阶段目标采集XX内部及外部半结构化、非结构化数据,全方位整合XX电商数据资源,利用专业的数据分析工具,提升数据分析质量与效率,完善数据分析应用模型及相关指标,深入推广重点应用方向,逐步提供面向移动互联网的快速服务,不断优化生产工作流程,实现降本增效,为科学运营和决策提供支撑。2.3 与相关系统的关系2.3.1 电e宝电e宝具有充值、提现、转账、支付等8项基本功能,以及电力交费、XX商城、电费小红包、供电窗、财富好管家、金财贷、XX商旅、掌上电力等8项特色功能。未来还将拓展信用卡还款、电费充值卡、e充电、电掌柜、智慧生活、健康医疗、电力阅读、积23、分兑换等8项储备功能。目前接触到的电e宝实际使用功能方面最多的是充值、提现、转账、消费。1:充值充值指用户在注册的电e宝中充值,充值以后用户可以用该金额进行商城的购物交易、电费充值等等功能。2:提现 提现是用户可以将电e宝中的余额提现到自己的银行卡中3:转账 转账分为内转、外转两种转账类型。内转指的是电e宝账户转账到电e宝账户中。外传指的是将电e宝中的余额转到非自己绑定的银行卡中。4:消费消费大体上分为:电子商城订单消费、代收电费两种方式。电子商城订单消费1) 电子商城订单消费指的是个人客户或者企业客户在XX商城上购买产品后所有的交易必须通过电e宝进行支付,类似在淘宝购物使用支付宝支付。2) 24、代收电费代收电费分为掌上电力代收、电e宝支付代收两个渠道,客户使用上面的两个渠道进行电费缴费时也会使用到电e宝进行支付。5:其他功能其他功能包括供电窗、财富好管家等等。2.3.2 XX电子商城XX商城由个人商城(B2C)和企业商城(B2B)两部分组成,分别面向个人及企业客户提供商品在线交易,经营范围涵盖智能家居、新能源、电力专业三大板块 ,产品品类有智能家居电器、电力图书、电动车、分布式电源解决方案、电工电气、合同能源管理、客户侧电力工程服务等等。目前商城中产生的线上交易都通过电e宝交易,不过有一部分交易是不通过电e宝交易的而是通过人工线下录入的方式,比如:电动汽车、充电桩、分布式电源等,而这25、些采用线下交易的品类指标都是通过协商采用文本文件的方式导入到现有的系统中。2.3.3 互联网金融互联网金融分为:金财贷、财富好管家、高温险三个部分。为客户提供财险、寿险、信托、理财、P2P(个人TO个人)等各方面的保险、理财业务。但是目前该系统并没有正式的接入到大数据平台项目组中,涉及到的指标数据都是通过交涉以文本形式导入到现有的系统当中。2.3.4 统一账户平台统一账户平台数据库为MongoDB,现在也没有接入到大数据平台项目组中。这个平台目前接入了XX电子商城、电e宝和掌上电力的用户信息,凡是接入到统一平台的用户都会生成一个唯一的标识信息,如果同一个用户在两个系统(比如XX电子商城和电e宝26、)都有注册信息的话,那么在接入用户信息的时候则会根据用户登录的系统来划分用户系统的来源。目前涉及到的指标数据是通过交涉以文本形式导入到现有的系统当中,后期会以接口的形式提供服务。2.3.5 风控系统风控系统即风险控制系统,主要保障和监视各个系统的运转情况,常见的风险分为:注册、登陆、交易、浏览等等。除了保障系统的运转,他还会记录下用户的一些行为动作,比如浏览网页或者app的足迹、app下载次数等信息,可以为后边的大数据分析提供数据支撑。目前该系统并没有正式的接入到大数据平台项目组中,涉及到的指标数据都是通过交涉以文本形式导入到现有的系统当中。2.4 公司介绍和优势特点2.4.1 IDEADAT27、A北京XX信息科技有限公司(IDEADATA)成立于2011年3月,总部设在北京,在南京及沈阳等地设有技术研发中心和办事机构。公司注册资金2080万,是北京市高新技术企业。公司专注于企业级数据(仓)库和大数据领域的技术和应用,业务和技术能力发展迅速,核心和骨干成员均具有领域内资深的业务经验、技术能力以及落地实践,对基于从集群到云平台、从传统数据库到MPP以及Hadoop的各种数据管理和应用平台架构及演进路线图均有深刻的理解和积累。公司通过不断的实践积累,独立研发了包括结构化、半结构化/非结构化数据结构在内的一系列从数据获取(抽取)、数据管理到数据应用的多项拥有自主知识产权的产品和服务,包括数据28、平台交互系统、数据BI分析系统、智能地址匹配系统、互联网信息获取与分析系统(iRIS)、自然语言处理(iNLP)和机器学习挖掘算法等方面。另外,公司积极与国内外大数据领域先进的解决方案、平台和工具厂商包括Teradata、南大通用、IBM、星环科技(Transwarp)、Trinity和SAS等都有深入和紧密的合作关系及基础。在质量管理体系上,公司以GB/T19001-2008质量管理体系-要求为标准,进行周密的质量管理体系策划,建立了完整的质量管理体系,获得了认证中心颁发的质量管理体系认证证书。公司在组织结构中设立了过程管控委员会,专职负责贯彻实施公司质量方针、质量目标,维护ISO9001质29、量管理体系有效运行,控制产品质量,实现产品和服务质量的持续改进。公司财务及营运状况良好,具有一般纳税人资格,具备独立、完整的会计核算和内部控制体系,配备专业的会计核算与管理人员,财务核算制度健全,能够据以如实核算,准确及时的反映生产经营成果。公司严格执行企业会计准则和企业会计制度的有关规定,以权责发生制为记账原则,以实际成本为计价基础,财务报表在所有重大方面均能公允反映公司的财务状况以及经营成果和现金流量。公司始终坚持“服务的价值在于帮助客户成功”的理念,为客户提供的产品和服务追求“专业、专注、极致、价值”。2.4.2 TRANSWARP星环信息科技(上海)有限公司(以下简称“星环公司”)是一30、家高科技大数据公司。公司致力于大数据基础软件的研发,目前拥有超过300人的Hadoop专业团队,大部分来自于IBM、Intel、Microsoft、Oracle、EMC等知名企业,其中技术研发人员占80%以上。无论是团队规模,还是人员的整体能力,在全球大数据平台领域都处于领先位置。在国际知名咨询机构Gartner发布的XX版数据仓库及数据管理解决方案市场的魔力象限报告中,来自中国的公司星环科技(Transwarp)是唯一一家上榜的中国公司,也是魔力象限远见者(Visionaries)领域中全球最具有前瞻性的公司。图2-1 Gartner XX数据仓库魔力象限评测结果星环科技从事大数据核心平台的31、研发与服务,基于TDH大数据平台软件全国产化,将大数据技术与传统数据仓库结合,已经为国内多家金融银行机构提供专业化的数据仓库服务,包括江苏银行、恒丰银行、民生银行、中泰证券等。星环公司已经在国内建立200多个大数据应用案例,覆盖行业包括金融、运营商、互联网、政府、能源、制造业、军工、教育、交通运输、公安等行业,目前是国内市场落地案例最多、应用范围最为广泛的大数据平台提供商,星环公司已经成为全球瞩目的大数据平台商。2.4.3 我们的优势北京XX信息科技有限公司与星环信息科技(上海)有限公司紧密协作,参与XX电商运营大数据平台项目建设,与其他友商相比具有以下四方面的优势特点:(1) 大数据平台产品32、技术优势SQL on Hadoop技术领先国内外厂商。SQL 99、SQL 2003标准的全面兼容性,支持PL/SQL、分布式事务、分布式内存OLAP/Cube等平台特性,为企业级数仓建设奠定坚实的平台基础。国内首家实现并成功运用Hadoop on Docker分布式容器集群管理平台技术。Transwarp Operating System (TOS)是为大数据应用量身订做的云操作系统,支持一键部署TDH,基于优先级的抢占式资源调度和细粒度资源分配,让大数据应用轻松拥抱云服务。(2) 具有基于Hadoop平台成功建设企业级数仓的丰富经验星环Hadoop平台产品已在国内100多个大数据项目建设中33、得以应用,行业覆盖金融、运营商、互联网、政府、能源等行业,其中有多个基于Hadoop平台完全实现企业级数仓系统的成功案例,在企业级数仓平滑可靠迁移及替换国外MPP数仓系统、高性价比提升企业数仓性能方面,积累了丰富的实践经验。作为Hadoop 创新应用的开拓者,星环公司目前已成为在国内市场落地案例最多、应用范围最为广泛的大数据平台提供商。(3) 大数据分析挖掘团队的专业实施经验优势XX公司在大数据可视化交互展现和多维分析查询、大数据分析挖掘、自然语言处理(iNLP)、地址清洗匹配服务等方面积累了自有的产品技术并成功运用到邮政、金融保险、IT等行业。经历多年大数据实战项目的锻炼,培养建立起了一支专34、业的大数据分析挖掘团队,能够运用多种分析挖掘工具和并行化算法库,从大数据中挖掘客户价值,为政府、企业的经营分析、决策支持提供专业的技术支持服务。(4) XX电商项目实施经验优势XX公司有多名人员参与过XX电商平台的建设,主导了后台数据层面的设计和开发,包括模型的设计、ETL的设计和开发,并和前端人员紧密合作,支撑前端人员实现展现目标。对现有XX电商的相关业务系统非常熟悉,了解底层数据模型、整体架构、数据质量等细节,明悉数据处理工作中的难点及重点问题。因而,我方的XX运营大数据平台具有项目实施经验结合极具优势的大数据平台产品技术,我方有充分的信心,在短时间内高质量、高可靠地完成本项目任务。3 业35、务需求分析3.1 总体需求大数据平台应支持多级使用方式。大数据平台要求使用Hadoop系统应实现主流数据仓库的功能,同时支持与现有系统Oracle数据库及其他数据库的无缝连接。大数据平台需支持多应用管理,即支持对应用的服务级别管理(SLA)。能够实现应用的访问资源控制,支持资源隔离。同时支持多租户功能,例如多租户管理、租户的操作员管理、租户的分等分级分组管理、租户的度量管理、租户的角色管理、租户应用授权、租户数据隔离、租户的资源隔离等功能。大数据平台应具有统一运维监控方面,可以图形化的实现安全管理、用户管理、监控运维、服务调度、应用部署、资源管理、作业编排、服务接口等。大数据平台应同时支持作业36、调度管理,即实现统一的作业调度与编排管理功能,支持使用工作流的可视化的方式对工作任务进行统一编排和调度。同时支持作业的资源管理、流程管理、任务管理、数据管理、应用管理、租户管理、多ETL调度任务的部署和并行处理等功能。3.2 数据管理XX电商运营大数据平台的数据管理,包含数据采集、数据交换、数据存储与管理(包含结构化数据管理、半/非结构化数据管理、数据存储等)、数据清洗加工、数据计算和查询等方面的内容。3.2.1 数据采集大数据平台需要采集各类内外部数据,形式多样,需支持不同频度、不同形态的数据采集。采集方式包含网上数据填报、流方式、批量导入方式、外部数据文件导入、异构数据库导入、主动数据抽取37、增量追加方式、网上爬虫方式等,数据形态包括结构化数据、半结构化数据、非结构化数据。3.2.2 数据交换与大数据平台对接的系统很多,这些系统数据库结构各异。因此,数据交换方面,需要考虑各类数据格式、各类传输频次的数据导入导出。数据源包括各业务系统数据接入、互联网数据采集、合作伙伴系统数据接入、外部临时数据导入支持等。数据格式主要包含文本文件,XML等多种方式,传输频次包含非实时、准实时、实时形式。同时支持数据源管理功能,实现大数据平台内各存储区之间的数据交换功能,提供可自定义的对外数据服务接口能力,同时支持数据接口热扩展能力。3.2.3 数据存储与管理结构化数据管理包括对结构化数据的采集管理、38、数据加工管理、数据存储管理、对外接口、实时监控、安全管理、数据重构等功能。半/非结构化数据管理包括半/非结构化数据的采集管理、数据内容搜索、数据生命周期管理、数据加工管理、数据存储管理、对外接口、混合查询、实时监控、自然语言查询、智能化知识检索功能。数据存储管理功能包括数据分区划分方式、适用场景、对应计算处理框架、硬件配置推荐等。同时需要支持多存储层级,实现数据的多温度管理,能够将数据存储在不同IO读写速度的不同介质上。支持对数据生命周期进行管理。支持多种索引模式,具有索引分析与选择功能和工具。支持多数据副本管理功能,能够进行数据平衡、索引平衡的检测。支持自动平衡功能和数据自动重分布功能,提供39、数据平衡和索引平衡的工具。支持在线变动节点管理功能,支持在线增加、删除节点时,数据和索引的倾斜探测和自动平衡功能,保证平滑扩展和性能的线性增长。支持多种数据分区管理、多数据类型管理、多文件格式管理、数据自定义标签管理、数据块读写锁处理、数据文件元数据备份和恢复,支持数据压缩、表压缩功能,节省数据空间。3.2.4 数据加工清洗支持数据从来源端经过抽取、转换、加载至目标端的过程。支持多数据源,包括Teradata、Vertica、DB2、Oracle、Sybase、文本、Excel、Hadoop等数据源。实现传统数据库、数据仓库与Hadoop以及Hadoop集群之间的数据抽取、转换、加载等功能。支40、持数据加工功能,提供数据加工规则管理,支持不同形态数据加工管理;支持数据清洗功能,包括数据清洗环节管理、数据清洗规则管理、数据清洗监控、数据清洗预览、应用主数据进行清洗管理等功能。3.2.5 数据查询计算支持对多计算框架管理,计算框架包括批处理计算框架、内存计算框架、流计算框架等。支持并行计算及并发处理功能,支持多服务器、多CPU、多进程并行及并发处理数据的机制。支持PL/SQL存储过程、分布式事务及ACID属性及自定义函数功能。能够实现OLAP查询功能,需要内置OLAP函数,支持超大数据立方,支持雪花、星型等复杂模型。支持CUBE,支持国际SQL92、SQL2003标准,能够实现数据字典、动41、态SQL执行、视图、子查询、JOIN 查询功能。支持全文检索。支持中文字符集,实现中文分词功能,支持结构化数据和半/非结构化数据联合查询,支持预定义维度数据查询,支持简单查询、组合查询、模糊查询等。3.3 数据分析与挖掘本方案对R语言提供支持。支持ANSI SQL、Python、R、Java、C/C+等语言的使用。应提供图形化界面操作支持,操作界面要求简体中文。支持对TB以上级别的数据进行分析挖掘的功能,应对分析挖掘中的中间数据和结果数据的灵活存储提供支持,应对多数据来源输入输出提供支持。支持处理过程的数据预览功能。支持数据分析挖掘算法管理,每个算法能够灵活选择数据源。支持对分析挖掘的脚本和模42、型的共享,可实现用户分析挖掘脚本和模型的发布与管理。支持数据的探索和发现,实现通过作图、制表、方程拟合、计算特征量等手段探索数据结构和规律。对统计分析方法、数据挖掘、模型预测提供支持,并实现其分布式并行计算。对常用场景实现提供支持。场景包括客户画像、产品推荐、自然语言处理、语义分析、舆情分析、文本挖掘、客户行为预测等。对分析挖掘的脚本和模型的快速应用、服务提供支持,能够快速生成分析报告和图表、发布实时/非实时的分析应用、使用Web方式访问分析应用成果。实现对分析指标管理、分析过程的管理以及对挖掘模型固化的支持。3.4 数据展现支持多数据来源输入输出;支持表格、图形、地图等可视化元素展示,对电子43、地图、GPS定位的应用、服务提供支持。支持数据互动、过滤、钻取、刷取、关联、变换等功能。支持多维度多种类的自定义。支持数据脱敏的展示。支持多种展示端的展示,包括PC端、移动端、大屏等。其中移动端应基于邮政移动应用平台架构建设。4 系统架构设计4.1 总体设计目标建立XX电商运营大数据平台,实现XX电商数据资源(结构化、半结构化和非结构化数据)的归集、整理、加工和分析,并利用大数据相关技术及数据分析挖掘工具,建立数据应用模型,为全网提供决策支持、产品创新、交叉营销、流程优化、服务支撑以及风险管控等服务,有效地挖掘数据的价值,实现XX电商数据资源的“共享、共用、共赢”。4.2 总体设计原则(一) 44、标准化:本系统采用的技术架构均遵循网络协议和传输标准的要求,相关开源及原创技术均符合国际技术组织条款规范。提供文档标准化,满足GB8567-1988、GB/T11457-89的行业标准;(二) 可扩展性:由于用户以后的需求会不断发展,使用人数将随之扩大,业务压力不断上升,只要横向扩展增加服务器台数,不用添加其它附加设备,以保证用户的原投资被利用。(三) 可用性和可靠性:我们的方案在充分考虑用户实际情况的基础上,充分考虑了各方面的均衡负载,从而减少其它因素造成的故障。(四) 易用性:该系统使用界面良好,用户无需安装客户端软件,只需通过IE 浏览器就可进行实时操作,同时系统架构设计优良,可以很方便45、进行系统升级。(五) 开发式结构:该系统内置“数据交换适配平台”可以与第三方系统相融合,可以读取第三方系统的相关数据,可以为第三方系统提供其需要的相关数据,提供标准的Web Service接口,具有开放式结构。(六) 完善和可靠性:具有设计独到的功能使用及数据访问权限控制,保证统一、规范管理。(七) 实时性:该系统支持负载均衡技术,及时响应多人实时并发操作。(八) 先进性:基于统一的整体架构,采用先进的、成熟的、可靠的技术与软硬件平台,保证数据仓库系统易扩展、易升级、易操作、易维护等特性。(九) 高效性:线性扩展的TDH的数据仓库平台,保证了ETL时间的窗口以及查询效率,数据抽取的特殊性,通常46、在夜间业务稀少的情况下进行数据抽取,减少了对其他系统的影响。(十) 正确性:数据质量贯穿数据仓库系统建设的每个环节,数据仓库系统通过合理的数据质量管理方法论保证数据质量。4.3 案例分析建议4.3.1 中国联通大数据平台联通集团公司按照工信部的的要求(见工业和信息化部、国务院国有资产监督管理委员会关于开展基础电信企业网络与信息安全责任考核有关工作的指导意见和工业和信息化部办公厅关于印发的通知),于2013年启动IDC/ISP日志留存系统的建设,其中集团侧的集中留存系统软件由联通研究院负责开发。为了满足海量数据条件下的处理效率的要求,集团侧集中留存系统软件除研究院自主开发外,基于Hadoop的数47、据存储部分计划进行外包,通过软件技术服务,来进行系统优化和维护支撑。4.3.1.1 项目概述目前,联通集团公司全国IDC出口的访问日志预计两个月产生的数据量约20PB至30PB,每秒写入大概6千万至7千万条数据,在如此巨大的数据量下,原有Teradata和Oracle已经不能满足快速读写的性能要求了。同时为了实现快速检索以及分析处理的性能要求,需要引入分布式大数据平台,利用分布式文件存储系统,提高数据的存储入库能力,利用Hadoop/HBase架构克服磁盘I/O瓶颈导致的数据读写延迟;基于联通IDC出口流量详单数据进行快速存储和检索以及分析处理,同样要求数据处理平台具备快速读写的高性能。中国联48、通公司全国IDC日至留存项目对分布式集群的要求非常高:(1) 日志数据量非常大,存储的总日志数据量将达到20PB-30PB。(2) 要求集群的数据吞吐量非常高,每秒的日志写入量将达到6千万至七千万条,未来还会增长更多,每秒的数据写入量为上百GB(3) 数据访问的性能要求非常高,对日志的分析需要分钟级、甚至秒级返回结果。(4) 数据计算量大,日常日志扫描任务就需要扫描上百TB,甚至上PB的数据。(5) 集群的扩展性要求非常高,能够灵活扩展至上千个节点的集群。根据此次中国联通的需求,以及项目的特点和技术要求,推荐采用商用的、成熟的、基于星环Transwarp Data Hub的企业级大数据平台套件49、,构建中国联通IDC日志留存平台的基础大数据平台,用于满足海量日志的高速存储、计算、分析、挖掘的需求。4.3.1.2 项目实施情况星环科技通过协助联通集团搭建基于星环Transwarp Data Hub的大数据平台,成功为联通集团搭建了信息安全管理系统大数据存储处理子系统项目所采用的平台系统。分布式大数据平台采用Hadoop/HBase架构,能够支持对联通IDC出口流量详单的存储和快速检索和分析处理。系统拓扑:图4-1联通大数据平台技术架构整个集群由FTP集群和Hadoop集群组成,其中: FTP集群: 由129台服务器组成,hostname对应为idcisp-ftp-001 idcisp-f50、tp-129 功能:主要存放从各大机房传输过来的数据,放到对应目录下 由SuperListen进程进行监控,并将数据统一传输到Hadoop集群的HDFS上Hadoop集群: 组成:Zookeeper 11台,NameNode 2台,Resource Manager 1台,hamster 5台, DataNode921台 功能:安装了tdh相关的组件Hadoop、Hyperbase、Inceptor,存储从ftp服务器传输过来的数据,并定时导入到Hyperbase中,供上层应用或程序的调用快速返回查询结果,同时也可以通过inceptor进行统计分析,暂时保存的数据是2+1月每天存储Hyperba51、se中的数据大概10T左右,存储的是2+1月,除了存储在Hyperbase中的数据,HDFS也会有原始数据的备份,现在空间占用大概在65%左右。Transwarp Data Hub平台部署拓扑图:图4-2联通大数据平台网络拓扑实际部署星环的Hadoop集群,存储能力达到全国IDC出口访问日志两个月的存储能力,约为20PB,总带宽16764G,每G每秒生成话单4000条计算,每秒新写入数据为67056000条访问日志。入库方式: 传统的API put方式平均每秒每台机器只能入库约2万条数据,900台机器的极限是1.8千万条/秒。远远低于数据灌入速度。 Bulkload是唯一的选择:定制化的Bul52、kload入库效率约为单节点每秒12万,900台机器的入库能力超过10.8千万条/秒 数据通过通过FTP服务器集群中部署HDFS写入Agent方式直接由ftp集群直接上传到HDFS中。注:之前IP溯源Bulkload对三张表(一张内容表+2张索引表)的入库效率为4万条/秒/节点。此次为了最大限度的利用Bulkload的效率,一方面去除了2张索引表,另一方面也优化了已有Bulkload 代码。优化内容: 数据入库时负载均衡,优化rowkey中日期时间,避免数据写热点。 8位UUID尾缀避免同一时间点上的数据相互覆盖。 Rowkey上优化时间排序,加速读过程,保证数据从最近到最远排序。 保留60天53、历史数据,每天各建一张表,提升每张表的可管理性 建表时预设15000个Region,提升Bulkload入库效率。 不建索引表,改用定制化的API满足查询需求,进一步增大入库带宽。根据中国联通对IDC出口的流量详单的存储与快速检索、分析的处理的要求,星环科技为联通集团提供了如下技术组件与模块:表4-1 组件列表组件名称组件功能支持运行的应用Transwarp InceptorTDH平台组件服务,提供对SQL99, SQL2003的完整支持,同时支持Oracle PL/SQL,快速开发日志统计与分析Transwarp HyperbaseTDH平台组件服务,提供对海量日志数据的快速存储与高并发访问54、,提供高效的索引功能针对存储的日志数据的快速检索Transwarp HadoopTDH平台组件服务,分布式基础平台对高吞吐量的日志数据进行快速的存储Transwarp ManagerTDH平台组件服务,TDH管理工具,图形化、自动化安装、部署、配置、监控、报警管理功能联通集团搭建的信息安全管理系统大数据存储处理子系统,所采用的硬件设备如下表所示:表4-2 节点配置表服务器推荐配置及说明节点数量目前已经超过900个节点CPU两路8核处理器2*E5-2620内存64GB ECC DDR3硬盘10个2TB的SATA硬盘, 15000RPM,不使用RAID;2个300G的SAS硬盘,15000RPM,55、RAID1,作为系统盘网络双电口万兆(10Gbps)以太网卡星环科技作为大数据平台技术提供商,集团侧集中留存系统软件除研究院自主开发外,基于Hadoop的数据存储部分计划进行外包,通过软件技术服务,来进行系统优化和维护支撑。表4-3 项目概况所属公司编号人员项目各个阶段实施进度以及人员参与情况架设计集群部署概要设计详细设计应用开发系统测试试运行上线运行2014.12 2014.122015.1 2015.12015.1 2015.12015.1 2015.32015.3 2015.62015.6 2015.82015.8 2015.102015.11联通研究院参与人员1系统设计师2开发工程师156、3开发工程师24开发工程师3星环科技人员1架构师2实施工程师3运维工程师服务外包公司人员1项目经理2开发工程师13开发工程师24开发工程师34.3.1.3 项目成果项目所搭建的星环Transwarp Data Hub平台,克服在海量数据的条件下,因磁盘I/O性能带来的数据处理瓶颈,分布式大数据平台采用Hadoop/HBase架构,项目成果如下:搭建了超过900个节点的星环Transwarp Data Hub集群,满足约20000T(20PB)至30000T(30PB)的数据存储能力以及每秒写入大概6千万至7千万条数据的读写性能。经测算,数据平台的性能为: 高速数据插入吞吐量远高于单节点30MB57、/S; 单节点在索引上检索性能不低于1W条/秒; 提供数据据高并发查询,单节点SQL并发度不低于3000次/秒; 提供SQL对数据的高速统计分析,线性扫描性能单节点不低于80MB/S。通过Hyperbase对外提供的SQL接口,上层应用通过SQL进行数据访问和查询,极大的降低了对开发人员专业技能的要求,降低了系统维护成本,同时提高了应用开发效率。通过Hyperbase集成的Elastic Search功能,应用层可以通过全文索引进行日志数据的检索,根据关键字的检索响应时间在20ms以内,整个集群可以承载的基于关键词的检索并发度远高于100万/秒。对海量IDC出口访问日志的分析性能极为高效,日扫58、描数据量超过100TB。入库效率单节点每秒12万条日志,集群总体入库能力目前超过10.8千万条/秒。每天Hyperbase新增存储日志量超过50TB。4.3.1.4 项目意义基于星环Transwarp Data Hub搭建的中国联通IDC日志留存大数据平台,目前已经部署了900多个x86服务器节点,是目前国内非互联网公司范围内规模最大的单一客户、单一集群的企业级大数据平台,从全球的非互联网行业看,如此大的部署规模也不常见,是国内集团级、总部级客户中非常成功的落地项目,充分证明星环科技Transwarp Data Hub大数据平台可以为企业级客户提供成熟的、稳定的的大规模部署方案,中国联通IDC59、日志留存大数据平台为XX电商运营大数据平台的建设提供了宝贵的经验,可以帮助XX电商搭成功建起高效、稳定的、充分满足邮政需求以及符合XX电商特色的大数据平台。4.3.2 恒丰银行大数据平台恒丰银行股份有限公司是12家全国性股份制商业银行之一,其前身为1987年经国务院同意、中国人民银行批准成立的烟台住房储蓄银行。2003年经中国人民银行批准,正式改制为恒丰银行股份有限公司,成为全国性股份制商业银行。目前,恒丰银行在全国设有14家一级分行,2家总行直管行,共256家分支机构;另外还发起设立了5家村镇银行。截至2015年末,恒丰银行资产规模达到1.05万亿元,全年净利润同比增长14%,净资产收益率R60、OE超过15%,新增分支机构74家,与上年相比实现翻番,创历年新高。在英国银行家杂志发布的“2015年全球银行1000强”排名中,恒丰银行位列第170位。恒丰银行较好的实现了盈利与稳健发展的平衡。盈利能力方面,恒丰银行在香港中文大学发布的亚洲银行竞争力研究报告中位列亚洲银行业第5位;稳健发展能力方面,恒丰银行在中国银行业协会发布的“商业银行稳健发展能力陀螺(GYROSCOPE)评价体系”中,在综合能力排名中位列全国性商业银行第7位,全国性股份制商业银行前三。4.3.2.1 项目概述随着利率市场化进程加快、互联网金融业态的发展,传统银行与实体经济的业务横向联系与深度融合进展迅速,业务数据的内容不61、断丰富,建立在数据处理技术之上业务洞察能力也需要不断提升。恒丰银行处于业务发展的新阶段,新业务模式的创新离不开数据的支持,也对数据信息服务的总体能力提出了新的要求。基于大数据平台技术,整合现有行内数据,接入行外数据,搭建处理能力更强,更易于扩展,性能更高的统一数据平台。不仅可以很好的满足高计算、高存储、高负载的要求,更能够对海量的数据进行数据存储、清洗、加工、建模等,把先前无法利用的数据充分利用,提升对数据的认识,抓住机遇为恒丰银行数据平台建设做好最基础、最扎实的工作。根据恒丰银行的实际应用需要,分别搭建基于大数据平台的企业数据仓库和历史数据分析探索平台,满足海量数据的低成本高效存储、加工、使62、用,完成企业数据仓库应用的迁移和优化重构,满足移动互联渠道场景的高并发低延时数据服务需求,协助业务数据分析团队自主的数据探索和业务建模。恒丰银行传统数据仓库是建立在IOE体系之下,支持TB级别数据存储并提供复杂数据查询功能的数据管理体系。传统数据仓库建设多年,已接入数据源30多个,配套监管数据集市、数据分析集市,风险数据集市三个数据集市,负责十几个管理应用和监管系统的数据需求,下游建有银行管理类系统如综合经营分析系统(管理驾驶舱)、自定义查询平台等,并为各分行提供数据下发服务。随着恒丰银行业务发展,与外部机构的跨界合作的展开,历史数据越来越多,半结构化数据、非结构数据也越来越多,数据的统一存储63、和处理已面临硬件成本压力。充分发挥大数据平台的技术优势,确保系统平稳安全运行,恒丰银行基于星环科技Transwarp Data Hub大数据技术构建全新的IT信息系统架构,为各数据应用系统提供功能完善、稳定可靠的大数据应用基础技术平台,更好的支持各类型海量业务数据的存储、加工、使用和数据价值提炼。基于星环科技Transwarp Data Hub平台,恒丰银行将原有的基于Oracle的数据仓库平台平滑迁移至星环大数据平台,提升数据仓库的批处理能力,同时也建设历史数据探索的能力,基于大数据架构,完成了符合恒丰银行现状的开创型应用,例如:准实时系统日志分析应用、客户实时风险监测、基于互联网点击流数据64、的用户体验优化与客户行为分析、客户标签化画像应用等。图4-3恒丰银行大平台架构恒丰银行搭建的基于星环科技Transwarp Data Hub的大数据平台承载了恒丰银行分布在全国的数千万用户数据,服务于全国用户与行内业务人员,数据总存储量达到几十TB。根据恒丰银行的项目建设的需求,我们推荐恒丰银行采用基于星环Transwarp Data Hub大数据平台来构建新一代数字银行平台,满足恒丰银行数据仓库的迁移、数据集市的搭建,同时协助恒丰银行构建客户360度视图应用,准实时日志和精准营销等应用。技术组件和相关方案如下所示:(1) Transwarp Hadoop,完成海量数据的存储。(2) Tran65、swarp Inceptor,完成传统基于关系型数据库SQL应用的语义解析和编译,使得基于传统关系型数据库的应用可以直接迁移至星环大数据平台,在Transwarp Data Hub平台实现企业级数据仓库的核心组件。(3) Transwarp Hyperbase,完成银行海量历史交易明细数据的存储,支持高并发的快速查询。(4) Transwarp Discover,完成客户画像,风险预警等分析挖掘任务。(5) Transwarp Stream,完成实时日志的采集与报警。4.3.2.2 项目实施情况星环科技协助恒丰银行搭建了行内统一基于Transwarp Data Hub的数据平台,一期工作完成将66、原有Oracle数据仓库中的全量数据进行迁移,同时在大数据平台完成了数据批处理、数据建模、数据集市等工作。数据移植说明: 数据仓库原有数据全部移植到新的大数据平台之上,并对数据结构进行重构。数据移植的基本流程如下图所示:图4-4恒丰银行大平台数据移植流程除Sqoop数据抽取阶段,剩下的主要的数据处理阶段放在大数据平台上实现,避免了对原数据仓库正常运行的影响。数据仓库日终ETL体系流程说明:(1) 每日业务系统日终完成后会生成相关数据文件提供给数据平台,数据平台获取文件并加载文件数据。(2) 对每个业务系统提供的数据文件,数据平台必须对文件进行合法性校验。合法则加载文本,不合法通知业务系统人员对67、数据文本的导出进行调整。(3) ODM构建文本的映射外表,通过PL/SQL存储过程将ODM数据备份到HDM层。(4) 部分原数据仓库的基础整合模型保留在FDM层,通过PL/SQL还原原仓库数据处理程序,并逐步将FDM层数据转移到CDM层公共模型中。(5) ODM层数据每日经过清洗、加工、整合后放在CDM层公共数据模型层,在公共模型层之上构建DSI服务接口,向外部集市或应用提供数据服务。(6) 集市回流数据依照ODM-HDM的处理方法进行数据的备份。 如图所示:图4-5恒丰银行大数据平台数据同步流程(1) 每日在线数据平台处理数据经过处理后,经数据复制将数据同步到历史数据平台。(2) 校验成功后68、的文本同步到历史数据平台进行归档。(3) 历史数据平台的数据与在线数据平台保持一致,存期延长。(4) 历史数据平台之上建立历史数据查询模型,提供历史数据查询服务。图4-6恒丰银行大数据平台数据模型转换为完整支持恒丰银行数据仓库项目的建设,星环科技为恒丰银行提供了如下技术组件与模块:表4-4 组件列表组件名称组件功能支持运行的应用Transwarp InceptorTDH平台组件服务,提供对SQL99, SQL2003的完整支持,同时支持Oracle PL/SQL,为原有应用平滑迁移提供基础数据仓库、数据集市、批处理、ETLTranswarp HyperbaseTDH平台组件服务,提供对海量历史69、数据的快速存储与高并发访问历史数据存储与查询、数据集市Transwarp DiscoverTDH平台组件服务,对海量数据进行快速的分析和挖掘客户画像、风险监测Transwarp StreamTDH平台组件服务,对实时数据进行计算实时交易预警、实时点击流分析Transwarp HadoopTDH平台组件服务,分布式基础平台影像存储、日志存储、点击流数据存储Transwarp ManagerTDH平台组件服务,TDH管理工具,图形化、自动化安装、部署、配置、监控、报警管理功能经过恒丰银行的测试确认,从性能的角度出发,恒丰银行采用如下硬件设备:表4-5硬件配置列表服务器推荐配置及说明节点数量一期1670、个节点,未来规划150节点CPU两路8核处理器2*E5-2650 v3内存256GB ECC DDR3硬盘10个600GB的SAS硬盘, 15000RPM,不使用RAID;2个300G的SAS硬盘,15000RPM,RAID1,作为系统盘网络双电口万兆(10Gbps)以太网卡固态硬盘800GB 星环科技作为大数据平台技术提供商,在恒丰银行大数据平台建设项目中,为客户提供了强大平台技术支持,同时与应用厂商进行紧密的配合,确保了项目一期建设的顺利上线。表4-6 项目实施概况编号角色所属公司项目各个阶段实施进度以及人员参与情况需求架构概要详细应用开发/迁移系统测试试运行上线分析设计设计设计运行20171、5.7 2015.72015.7 2015.72015.7 2015.82015.7 2015.82015.8 2015.102015.10 2015.112015.11 2015.112015.12 至今1架构师星环科技2实施工程师3项目经理应用厂商4实施工程师15实施工程师26实施工程师37实施工程师4物理拓扑图:图4-7恒丰银行大数据平台网络拓扑性能指标: 日终批处理时间数据平台每日几千个数据处理作业,日终时间窗口控制在3个小时到4个小时之间。日终扫描数据量达10TB,按照业务系统供数最晚时间1:30计算,在凌晨5点左右全部完成数据处理作业,个别作业错误不影响整体进度。 最大并发查询用户72、1000个用户同时使用数据平台查询数据,简单查询响应时间在100毫秒以内,关联统计查询在200毫米以内,复杂的统计分析应用响应时间在分钟级。4.3.2.3 项目成果恒丰银行所搭建的基于星环科技Transwarp Data Hub的大数据平台是国内第一个完全采用Hadoop来搭建金融机构企业级数据仓库平台的成功案例。在短短半年的时间内,就将原有Oracle数据仓库的复杂数据处理过程,以及金融机构的模型,迁移至星环Transwarp Data Hub平台,同时在数据仓库上面,建设了客户关系管理集市和审计集市,同时存储了恒丰银行多年来全部数据,接入了30几个业务系统,批处理性能比原有Oracle数据73、库平台提升5倍以上,历史数据查询的性能比原来提升几十倍,90%的历史查询应用都可以在200毫秒内返回结果,而总体投资仅占原有平台的1/3。图4-8恒丰银行大数据平台数仓架构本项目充分证明,星环科技Transwarp Data Hub大数据平台,能够全面支撑企业级数据仓库的搭建。4.3.2.4 项目意义恒丰银行大数据平台的一期建设完成了将传统基于Oracle的数据仓库迁移至星环大数据平台,并在基于星环Transwarp Data Hub大数据平台的数据仓库上搭建了基于三范式模型的数据集市,充分证明了星环Transwarp Data Hub平台能够支持企业在大数据平台建设数据仓库、数据集市的应用,74、同时如果已有数据仓库平台,也可以短期内快速完成数据仓库的迁移。恒丰银行基于Transwarp Data Hub大数据平台的数据仓库项目,是大数据技术在行业复杂应用落地项目中的重要里程碑,充分证明星环Transwarp Data Hub平台能够支持企业最重要也最复杂的数据仓库应用。全球著名大数据调研机构Gartner在近期的大数据市场调研报告中,已经将星环Transwarp Data Hub平台列入数据仓库魔力象限,并在技术成熟度,技术领先度的维度中,排名全球大数据厂商第一名。图4-9 Gartner数据仓库魔力象限因此,恒丰银行基于大数据平台的数据仓库建设经验,可以为此次XX电商运营大数据平台75、建设提供宝贵的经验。目前从全球大数据厂商来看,除星环科技外,还没有其他厂商能够在金融、银行这样的高端行业,拥有完全通过大数据技术实现企业数据仓库的成功案例。在恒丰银行项目中,星环科技已经积累了大量的基于大数据平台建设传统数据仓库理论基础和实践经验,同时在产品的性能和功能上也充分的得到了验证,尤其星环Transwarp Inceptor组件,能够快速协助XX电商将传统基于Teradata数据仓库平台的应用快速的迁移至星环大数据平台,从而极大降低了项目风险。采用星环Transwarp Data Hub平台构建XX电商运营大数据平台,是XX电商的正确选择。4.3.3 华通CDN运营商海量日志采集分析76、系统浙江华通云数据科技有限公司是一家致力于云基础设施、云网络(CDN、VPN)以及各类云应用建设和服务企业。通过云数据中心、覆盖全国主要城市的CDN网络,为通信运营商、服务提供商、互联网企业及终端用户提供云应用和服务。依托丰富的网络资源和云资源优势,打造成为全国性的云应用服务中心。4.3.3.1 项目概述华通CDN运营商需要构建了全国性的CDN平台,针对CDN服务过程中产生的海量日志数据进行流式采集和分析,并将海量日志的处理及分析结果输出给使用者。华通CDN运营商已经在全国部署了上千台服务器,日志采集系统需要满足上数百个节点、每秒上千万次的日志数据实时采集能力;日志从采集、分析到提供给第三方的77、延时不超过5分钟;日志存储集群支持2PB的数据存储;支持将采集的数据实时汇聚并写入日志管理分析平台进行后续的统计分析;实现针对命中率、时延、可用性、流量等指标的统计功能。4.3.3.2 项目实施情况星环科技根据华通CDN日志采集和分析系统的需求,在前端600多个CDN服务器节点上,部署了600多个代理服务器,用来实时采集日志数据,搭建了100个节点的X86服务器来部署星环Transwarp Data Hub平台,用Transwarp Hadoop来采集日志数据,并通过Transwarp Inceptor进行分析,快速得到分析结果。图4-10 华通CDN日志采集和分析系统架构数据采集完成缓存服务78、器日志数据从节点到中心的数据采集汇聚,在每个节点内部署日志采集Agent,通过UDP方式采集服务器syslog日志,节点Agent将采集的数据通过流式传输的方式发送至中心汇聚服务器,中心汇聚服务器将汇聚的日志数据写入数据存储分析平台,系统部署600+ Agent,20个汇聚服务器,平台采用Transwarp Data Hub方案构建,支持峰值928w/sec的数据写入和分析,将数据进行清洗整理后,进行实时压缩处理,输出至第三方系统。平台依赖于Transwarp Inceptor对采集的日志流数据进行实时的统计分析,为业务质量监控和后续服务的优化提供数据支撑。图4-11华通CDN日志采集平台物理79、部署单台日志采集服务器每条处理的日志数为10万条,按照服务器最多的A类节点其峰值每秒产生4万条日志计算一个拉远节点每天所需存储的日志数为,代理服务器本地配置8T的存储空间至少可满足1周的日志存储。按照流式处理的峰值计算,1秒内完成所有日志的传输,单条日志0.2K的情况下单个拉远节点日志传输对上行带宽的要求。星环科技为华通CDN海量日志采集与分析系统提供了如下技术组件与模块:表4-7 组件列表组件名称组件功能支持运行的应用Transwarp InceptorTDH平台组件服务,用于对海量日志数据进行实时、高效的分析,并通过标准的SQL完成各种分析报告日志分析,点击命中率报告Transwarp F80、lumeTDH平台组件服务,对实时日志数据进行采集,提供分布式的采集方式实时日志采集Transwarp HadoopTDH平台组件服务,分布式基础平台,用于存储海量的日志数据,提供极高的吞吐量日志存储Transwarp ManagerTDH平台组件服务,TDH管理工具,图形化、自动化安装、部署、配置、监控、报警管理功能华通CDN海量日志采集与分析系统,采用如下硬件设备:表4-8 硬件配置列表服务器推荐配置及说明节点数量100个节点CPU两路6核处理器2*E5-2620内存64GB ECC DDR3硬盘10个2TB的SATA硬盘, 7200RPM,不使用RAID;2个300G的SAS硬盘,15081、00RPM,RAID1,作为系统盘网络双电口万兆(10Gbps)以太网卡星环科技作为大数据平台技术提供商,在华通CDN日志采集和分析系统项目建设中,为客户提供了强大平台技术支持,确保了项目一期建设的顺利上线。表4-8 项目实施概况编号角色所属公司项目各个阶段实施进度以及人员参与情况需求架构概要详细应用开发系统测试试运行上线分析设计设计设计运行2013.102013.102013.102013.102013.102013.112013.112013.122013.122014.12014.12014. 22014.22014.32014.3至今1架构师星环科技2实施工程师3项目经理应用厂商4开发82、工程师15开发工程师26测试工程师37运维工程师4性能指标cacheServer-syslogNG(udp)-FlumeAgent在边缘节点,采集速度为2万条/秒(非峰值处理能力,而是日志服务器峰值为2万条/秒,在超级节点,采集速度为14万条/秒 入库:FlumeAgent-TDHHDFS 存储:TDHHDFS-HyperbaseE5-2650双核,峰值导入速度单机平均20万条/秒每间隔5分钟对采集日志进行实时分析。4.3.3.3 项目成果基于星环科技Transwarp Data Hub大数据平台,完整搭建了一套可以支撑华通数百台服务器的实时日志收集与分析,从日志采集、分析,到提供给第三方准确83、的数据报告不超过5分钟,极大的提高了华通CDN服务器的的用户点击命中率,提高20%以上,为华通每年多带来数百万的利润。4.3.3.4 项目意义华通大数据平台项目,是国内比较早大数据平台项目,平台从13年至今一直稳定运行,数据平台版本从Transwarp Data Hub 2.0 升级到3.0、4.0,版本的升级对现有数据和服务没有任何影响,但是功能和性能得到极大的提高,充分证明星环Transwarp Data Hub平台是成熟、稳定的商业平台,能够长期稳定的承载企业高负载应用,并且版本之间向下兼容。华通大数据平台长期的管理、运维、升级等经验,也为XX电商提供了宝贵的经验,为XX电商建设稳定、统84、一的大数据平台提供了保障。4.3.4 案例总结中国联通大数据平台、恒丰银行大数据平台、华通CDN运营商日志采集与分析平台,3个项目从高并发、高吞吐、高容量、高复杂度、高稳定性、高扩展性、高可维护性等多个不同的维度为XX电商建设企业级大数据平台提供了宝贵的经验,也充分证明了基于星环Transwarp Data Hub大数据平台可以帮助XX建设企业级大规模数据平台提供坚实的技术基础。星环科技全国上百个成功案例证明:基于星环Transwarp Data Hub大数据平台构建XX电商运营大数据平台、数据仓库平台是成熟、可靠的技术方案,是最正确的选择。4.4 系统总体架构设计4.4.1 总体技术框架大数85、据平台是一个可扩展的数据平台,全面整合XX业务数据,建立从业务层到管理层再到决策层的数据智能分析体系,使经营者能够及时掌握全面的经营状况,迅速做出科学决策。Cloud4-12 5 系统功能设计5.1 概述图5-1系统功能设计内容参见上图,系统功能设计主要包括:平台管理(多租户管理、多应用管理、作业调度管理、统一运维监控)、数据管理(结构化数据管理、半/非结构化结构数据管理、数据采集、数据交换、数据存储管理、数据加工清洗、数据计算、数据查询)、数据管控(元数据、主数据管理、数据质量管理)、数据ETL、数据分析与挖掘、数据展现等。5.2 平台管理功能5.2.1 多应用管理星环Transwarp D86、ata Hub大数据平台对企业级用户提供多应用场景的支持,例如:通过Transwarp Stream提供实时数据计算场景支持,通过Transwarp Inceptor提供批处理场景支持,通过Transwarp Hyperbase提供在线数据服务场景支持,通过Transwarp Discover提供数据分析、挖掘场景支持。星环大数据平台通过Transwarp Operating System云平台系统(以下简称TOS)实现大数据平台多应用管理,支持对应用的服务级别管理(SLA),实现应用的访问资源控制,支持资源隔离。TOS基于Docker容器技术,支持一键部署TDH各个组件,支持优先级的抢占式资87、源调度和细粒度资源分配,让大数据应用轻松拥抱云服务,满足企业对于构建统一的企业大数据平台来驱动各种业务的强烈需求。TOS主要由4部分组成,底层由基于Docker的容器技术作为所有应用服务的承载,通过将应用服务装载在Docker容器中,能够实现应用环境和底层环境的解耦合;通过优化过的Kurbernetes对整个集群的资源进行管理与调度;在此之上,内置了丰富的系统级服务应用,如完整Docker化的Transwarp Data Hub集群各个组件等;对于其他应用服务的接入,提供了完整的Docker Images Repository集中服务管理库,用户可以通过TOS提供的接口,将应用服务制作为Doc88、ker Image,加载入TOS Repository,通过定义调度规则,在TOS统一管理与调度。图5-2大数据云平台架构图便捷部署:基于TOS,用户可以通过Web UI、REST API或者命令行一键瞬间安装和部署TDH集群,能自动根据服务的依赖性安装所需的其他服务组件。在虚拟技术之前,部署硬件资源满足新的应用需求需要几天时间,通过虚拟化技术把这个时间降到了分钟级别,而目前基于Docker的TOS云平台把时间降到了秒级别。Docker作为装载进程的容器,不必重新启动操作系统,几秒内能关闭,可以在数据中心创建或销毁,没有额外消耗。典型的数据中心利用率是30%,通过更积极的资源分配,以低成本方式89、对新的实例实现更合理的资源分配,从而提高数据中心的利用效率。完整的资源隔离:TOS通过优化Kubernetes资源管理框架实现了基于Docker容器对CPU,内存,硬盘和网络更好的隔离。TOS中Docker容器的隔离目前是由Linux内核提供的六项隔离,包括主机名与域名的隔离,信号量、消息队列和共享内存的隔离,进程编号的隔离,网络设备、网络栈、端口的隔离,挂载点(文件系统)的隔离,用户和用户组的隔离。这些隔离保证了不同容器的运行环境是基本不受影响的,比如挂载点的隔离,就保证了一个容器中的进程不能随意访问另外一个容器中的文件。TOS平台相比于传统的Apache Yarn管理框架和开源Kubern90、etes的资源管理框架而言,在资源粒度方面可以管控磁盘和网络,而传统资源调度框架只能管理到CPU和内存;在隔离性方面,容器技术有天然的优势;在依赖性和通用性方面,不依赖于Hadoop组件以及技术,这意味着可以实现所有上层应用的云化开发、测试、升级以及管理调度。容器的隔离目前是由Linux内核提供的六项隔离,包括主机名与域名的隔离,信号量、消息队列和共享内存的隔离,进程编号的隔离,网络设备、网络栈、端口的隔离,挂载点(文件系统)的隔离,用户和用户组的隔离。这些隔离保证了不同容器的运行环境是基本不受影响的,比如挂载点的隔离,就保证了一个容器中的进程不能随意访问另外一个容器中的文件。表5-1 Yar91、n管理 资源粒度隔离程度依赖性通用性YARNCPU/MEM进程级别、不精确依赖某个HDFS支持少量计算引擎KubernetesCPU/MEMContainer不依赖Hadoop支持通用Linux负载TOSCPU/MEM,DISK,NETWORKContainer+Quota+VLAN不依赖Hadoop支持大数据及通用应用灵活资源调度:TOS支持对TDH组件自动扩容或者缩容,同时也允许其他应用服务和大数据服务共享集群,从而提高资源的使用率。TOS创新的支持抢占式资源调度模型,能在保障实时业务的同时,提高集群空闲时的资源占用,让批量作业和实时业务在互不干扰的情况下分时共享计算资源。通过支持动态扩容92、和收缩集群,从何实现了资源的动态分配与调度,整个过程热插拔业务、服务无需重启。自动修复:TOS的Replicator模块负责检测集群规模,当集群中服务发生问题时可以另起一个服务实例实现集群的自我修复功能。举例而言,某个Hyperbase Region Server由于硬件原因服务停止,TOS平台能够实时感知,并在管理的资源范围内另起一个Region Server的Docker容器接替因故停止的容器,动态的保证了服务集群的整体稳定性。应用隔离:在TOS上运行的TDH以及应用服务还引入微服务的架构,显著降低用户部署环境对TDH以及应用服务稳定性的影响,提高了部署的可用性,并且能让用户在不停业务以及93、服务的前提下,享受到快捷的TDH以及应用服务更新版本滚动升级。5.2.2 多租户管理对于各个部门以及下级单位的不同应用需求,通过统一的集群管理,结合星环的YARN资源调度框架,可以动态创建和销毁集群,灵活部署业务,适合对非7x24不间断业务(例如周期性统计业务)动态部署。此外,在资源隔离方面,Transwarp YARN支持对计算资源和内存资源的管理能力,避免占用内存资源多的Spark或Map/Reduce集群之间争抢内存资源。缺省模式下集群就是创建在YARN上,可以非常方便的动态创建和销毁Spark或者Map/Reduce集群。同时,通过YARN的资源隔离和配额管理,可以避免使用同一个Map94、/Reduce集群时出现的计算资源争抢现象,保证每项业务都能顺利完成。与此同时,为了更好的利用平台计算资源,在申请资源配额后,如果当前用户的资源紧张或受限,可以动态调配其他用户的闲置资源加入,当其他用户使用时再归还。同时,结合Kerberos实现Transwarp YARN的资源申请,作业提交以及队列使用的权限管控,管理员通过管控界面,定义YARN中用户能够在哪些队列中提交作业,能申请资源的额度以及能提交作业的最大个数等,实现计算资源的用户权限管控。因此,对于分析类应用,可以充分使用星环YARN的特性,实现分析集群的按需创建与销毁,从而实现数据、资源、计算能力的统一调度和规划。对不同的租户的操95、作员进行分组分类分级管理,利用Kerberos以及LDAP对租户应用授权,支持对计算资源和内存资源的管理能力,避免占用内存资源多的Spark或Map/Reduce集群之间争抢内存资源,对租户的数据访问能力进行设置,实现数据隔离。5.2.2.1 Hadoop集群自动化部署一站式大数据平台提供集群自动化部署服务。用户只需要安装Transwarp Manager管理平台软件,就可以在友好的图形化界面上安装、部署、配置所需要的服务。整个安装过程不需要用户使用任何终端命令或者代码。图5-4 TDH节点管理界面1平台提供了强大的在线扩容功能,不需要宕机停库,不需要停止业务,就可以添加新的节点,实现扩容。节96、点添加完成之后可以立即对新添加的节点进行角色的分配,一旦配置成功,则新加的节点就会马上投入运算。扩容之后的数据节点也不需要停机进行数据重分布,系统自动选择空闲的时间进行数据的重新分布。同时,扩容的操作可以方便的在界面进行操作。图5-5 TDH节点管理界面25.2.2.2 Hadoop集群性能监控平台通过专门的监控服务对集群的状态进行监控,包括服务器CPU、内存、网络和磁盘的利用率和健康状态,以及分布式应用系统的状态,并在故障发生或者某项指标超过预设阀值时时提供告警功能。管理员可通过浏览器访问集群的监控和管理界面进行日常的监控和维护,系统提供图标信息展示。管理员可以便捷了解到集群的计算资源是否处97、于空闲状态、哪些服务器的负载过高,甚至判断集群的组网及机架安排是否合理等。管理员也可通过对各个节点的各个角色的日志信息进行检索,获得更加精确的信息。图5-6 TDH监控模块平台集成Ganglia集群监控系统,能够从上千台服务器上收集系统信息,能够保障当集群规模扩展至上百台上千台服务器时,监控程序都能够高效的获取每台服务器的状态信息。Ganglia由Gmetad与Gmond组成,其中集群中每一台机器上都有一个Gmond服务进程,Gmetad收集所有节点metrics信息并在Web前端界面上展现出来。集群中的每台服务器上都运行监控守护进程,守护进程能够将这些数据的精简传递,这使得Ganglia的运98、行对集群的资源消耗极少。所有的指标数据都存储在一个RRD(Round Robin Database)数据库中,为了防止Gmetad频繁写磁盘造成I/O瓶颈,通过rrdcache缓存指标数据,定量写入RRD。存储资源监控,包括获取存储量、剩余存储量以及存储系统整体情况信息。通过Ganglia集群监控系统向邮政运维监控平台发送监控消息,提供对接接口,实现大数据平台与邮政运维监控平台的互通,实现统一监控。图5-7 TDH性能监控界面运算资源监控,包括监控工作负载、CPU、内存资源、性能、组件性能(Kafka处理性能)等情况图5-8 TDH性能监控管理界面 提供全局日志和任务级日志。图5-9 TDH全99、局日志查看界面图5-10 TDH任务日志查看界面在故障发生时提供告警功能。图5-11 TDH告警监控界面5.2.2.3 Hadoop集群资源管理TDH提供计算任务管理和作业管理,包括作业的上传、配置、启动、停止、删除和状态查看等功能。图5-12 TDH作业管理界面图5-13 TDH作业配置管理界面存储资源管理,浏览数据、更改回收存储资源。图5-14 TDH资源管理界面在TDH平台中,资源可以从多个方面进行管理。从资源管理模块YARN的层面,用户通过配置不同的Scheduler来定义不一样的资源使用策略,目前支持FIFO Scheduler、Fair Scheduler以及Capacity Sc100、heduler,实现作业动态调整,支持对任务系统资源占用进行实时调配,改变作业调度优先级等操作。图5-15 优先级管理界面1图5-16 优先级管理界面25.2.2.4 图形界面方式多租户管理用户可以使用图形化界面来配置多租户的用户、组的权限。管理员用户可以新建、编辑用户的信息。图5-17 多租户管理界面1图5-18 多租户管理界面2管理员用户可以编辑管理组的信息。图5-19 管理员编辑界面同时,管理员用户也可以编辑、维护角色的信息。图5-20 角色信息编辑界面同时用户可以可以按需创建,按需销毁计算集群,并且创建集群时只需要指定所需计算资源,无需指定具体物理机器图5-21 角色资源管理界面1图5101、-22 角色资源管理界面25.2.2.5 系统巡检信息收集整个系统的软硬件状态都可以方便的从图形界面中进行监控。用户可以实时的浏览集群中CPU、内存、网络与磁盘等的状态。图5-23 系统巡检界面TDH平台从各环节层次以及组件抽取巡检信息,按照管理平台的要求对其进行重新过滤和格式化整理,并最终进行日志信息入库。整个过程需实现处理的流程化及自动调度机制,以保证管理平台能够及时的获取日志数据。系统管理模块对Hadoop平台各层次所产生的日志记录进行获取并整理。其中包括访问层日志记录、应用层日志记录、数据存储层日志记录、数据获取层日志记录以及元数据管理的日志记录。提供一键式的图形化巡检工具,直观反映关102、键部件状态,并提供一键式的信息收集工具,收集系统日志、配置信息以便于快速定位。图5-24 信息收集界面1图5-25 信息收集界面25.2.2.6 系统性能跟踪平台提供了友好的界面,方便用户跟踪当前的任务进度与资源使用情况。用户可以通过以下页面监控正在运行的任务与已经完成任务。同时界面也非常简单明了的展示了每个查询的资源消耗。图5-26 性能跟踪界面也可以直接通过选择时间范围来查询指定的SQL。图5-27 SQL任务跟踪界面5.2.2.7 运维监控平台通过专门的监控服务对集群的状态进行监控,包括服务器CPU、内存、网络和磁盘的利用率和健康状态,以及分布式应用系统的状态,并在故障发生或者某项指标超103、过预设阀值时提供告警功能。管理员可通过浏览器访问集群的监控和管理界面进行日常的监控和维护,系统提供图表信息展示。管理员可以便捷的了解到集群的计算资源是否处于空闲状态、哪些服务器的负载过高,甚至判断集群的组网及机架安排是否合理等。管理员也可通过对各个节点的各个角色的日志信息进行检索,获得更加精确的信息。图5-28 TDH监控模块 平台集成Ganglia集群监控系统,能够从上千台服务器上收集系统信息,能够保障当集群规模扩展至上百台上千台服务器时,监控程序都能够高效的获取每台服务器的状态信息。Ganglia由Gmetad与Gmond组成,其中集群中每一台机器上都有一个Gmond服务进程,Gmetad104、收集所有节点metrics信息并在Web前端界面上展现出来。集群中的每台服务器上都运行监控守护进程,守护进程能够将这些数据的精简传递,这使得Ganglia的运行对集群的资源消耗极少。所有的指标数据都存储在一个RRD(Round Robin Database)数据库中,为了防止Gmetad频繁写磁盘造成I/O瓶颈,通过rrdcache缓存指标数据,定量写入RRD。存储资源监控,包括获取存储量、剩余存储量以及存储系统整体情况信息。通过Ganglia集群监控系统向邮政运维监控平台发送监控消息,提供对接接口,实现大数据平台与邮政运维监控平台的互通,实现统一监控。图5-29 TDH性能管理界面运算资源监105、控,包括监控工作负载、CPU、内存资源、性能、组件性能(Kafka处理性能)等情况图5-30 TDH负载跟踪界面提供全局日志和任务级日志。图5-31 TDH全局日志管理界面图5-32 TDH任务日志管理界面在故障发生时提供告警功能。图5-33 TDH告警管理管理界面5.2.3 作业调度管理IDPP提供功能完整,性能优异的ETL框架支持平台建设,针对数据的预处理,中间的转换清洗,包括写入目标时针对异常数据的捕获。整个过程由IDPP提供的调度平台,元数据管理平台提供支撑,让各部分之间紧密合作,又各司其职。针对此项目复杂的业务系统和管理,IDPP提供完善的调度功能,以更好的对各个模块进行良好调度管理106、,相应逻辑图如下:图5-35 IDPP调度逻辑架构图调度平台是平台的数据流核心,调度平台让相关的业务系统、处理系统按照一定的业务逻辑,在客户的安排下,像流水线一样,或串行,或并行,按照一定的依赖关系,在每日,每周定时触发,依次执行。IDPP提供完善的接口和管理模块,让众多的作业管理简易高效。5.3 数据管理5.3.1 数据管理框架XX电商运营大数据平台的数据管理包含结构化、半结构化的加载和分析;在数据处理的过程中,对数据的清洗和实时监控;对于ETL的整个处理过程进行完整调度。图5-36 IDPP数据处理过程5.3.1.1 结构化数据管理框架XX电商运营大数据平台对结构化数据全部放到TDH的No107、SQL数据库Hyperbase中,以提升其性能,并通过元数据管理进行统一管理。外部接口包含批量及实时接口,以便满足数据汇出、数据交换、数据分析的需求。概要的管理框架包含如下方面:图5-37 结构化数据管理框架5.3.1.2 半/非结构化数据管理框架未来XX电商运营大数据平台会接入大量的半结构化/非结构化数据进行整合处理分析,获取更大的数据价值。所有的数据都按照如下原则进行处理:i. 文档分类a) 互联网获取的数据,日志文件b) 文档、扫描件、邮件等c) 图片、音频、视频ii. 处理原则a) 10M以下,属性信息及文档本身放到Hyperbase中b) 10M以上文档,属性信息存入Hyperbas108、e中,文档用HDFS保存iii. 检索原则a) ES索引+Hyperbase索引b) ES检索c) SQL检索d) NLP客制化(未来扩展)概要的管理框架包含如下方面:图5-38 非结构化数据管理框架5.3.2 数据采集XX电商运营大数据平台的数据来源广泛,根据来源,大致分为两类:1) 内部a) 手工填报b) 流+实时数据采集c) 批量2) 外部a) 文件导入b) 网络爬虫本方案对上述两类数据都提供相应的解决方案,采集框架入下图所示:图5-39 数据采集框架通过IDPP可以实现批量,实时及文件导入,相关说明参见5.5章节,对于流数据采集,可以通过Transwarp Stream组件支持流方式,109、实时数据采集,具体参见8.13.10;通过ETL工具IDPP支持批量导入方式、外部数据文件导入、异构数据库导入、主动数据抽取、增量追加,具体参见5.2.4;通过公司自主开发产品iRIS进行网上数据采集工作;通过WEB页面进行网上数据填报,这些WEB页面是按照填报数据的特点自动生成填报页面。iRIS设置流程如下图5-40:图5-40 iRIS流程图使用过程中,用户可以通过浏览器系统交互,业务的产生与结果的交付,通过Web操作即可。产品具备如下功能:1) 一个业务包含如下属性:a) 网址:采集分析的目标b) 关键词:用于过滤网页c) 调度类型:l 一次性调度:该业务执行一次后进入执行完毕状态,不再110、进行调度。该类型的调度可以细分为两种:及时性调度和定时调度l 循环调度:该业务执行一次后进入执行完毕状态,但需要循环调度,当下一次调度周期来临,则会被继续送入执行队列执行2) 用户产生业务的功能需求:a) 能够添加新的关键词组,能够维护关键词组中的关键词(增删改)b) 能够添加新的网址,能够维护网址组中的网址(增删改)c) 能够从知识库中选择已经存在的网址组d) 能够从知识库中选择已经存在的关键词组e) 可以设置业务的调度计划,即手动执行与自动循环执行(手动执行和循环执行都会由调度管理器选择队列执行)3) 用户获取结果的功能需求:a) 用户登录进系统之后,能够浏览与自己相关的Job信息b) 能111、够在网页上查看结果集c) 能够将结果集导出为纯文本文件以上各种方式均支持不同频度、不同形态的企业内外部数据采集,可以根据具体采集内容进行灵活配置和开发。5.3.3 数据交换数据采集及交换平台整体架构如下图所示,建议采用IDPP作为整个平台的采集、整合及交换平台:图5-41数据采集及交换平台整体架构架构图源系统层实现数据源管理功能,数据源包括各业务系统数据接入、互联网数据采集、合作伙伴系统数据接入、外部临时数据导入支持等各种类型。数据交换区包含接口定义和自定义组件,实现可自定义的对外数据服务接口能力和数据接口热扩展能力。本方案采用如下原则处理上述需求:i. 结构化数据a) 业务系统+外部数据b)112、 交换工具:IDPP工具。ii. 半结构化数据a) 内部数据+互联网等b) 交换工具:IDEADATA iRIS。iii. 非结构化数据a) 内部数据+互联网等b) 交换工具:IDEADATA iRIS。数据交换区包含接口定义和自定义组件,实现可自定义的对外数据服务接口能力和数据接口热扩展能力。上述用到的所有交换工具都是可扩展,支持在线热扩展功能,支持热插拔功能。大数据平台内各存储区之间的数据交换功能为平台软件TDH本身功能,详见5.3.4,此处不赘述。5.3.4 数据存储与管理本方案建议的数据以TDH为数据存储平台,存储的格式大致分为两类:i. HDFSii. Hyperbase这两类的数据113、都可以实现多副本存储,以提升可靠性,并按照数据的热温冷存放在不同的介质上(内存、磁盘、SSD)。对于以Hyperbase存储的数据,可以提供多种压缩方式,以减少数据对存储介质的占用,并提供多种索引方式,以便于更快的进行数据查询与分析。Hyperbase支持多种索引,包括全局索引(Global Index)、局部索引(Local Index)、高维索引(High-Dimensional Index)以及全文索引(Full-Text Index)等;结合Inceptor支持通过SQL进行复杂条件毫秒级高并发查询。在Transwarp Hyperbase中通过使用索引来加快数据的查询速度。包括三种索114、引:本地索引、全局索引、全文索引,支持索引的自动创建(在创建表时指定索引),也支持对已有表创建索引。索引的基本设计思想是对Transwarp Hyperbase表中的需要经常作为查询条件的列建立一个映射到主数据的索引。查询时可以利用索引特性进行快速定位并返回查询结果。实验证明,通过使用索引,用户查询的响应速度可以达到原来的20100倍。Hyperbase支持全局、局部、高维索引和高级过滤器,且Transwarp Hyperbase构建了全局索引、辅助索引和全文索引,扩展了SQL语法,满足在线存储和在线业务分析系统(OLAP)的低延时需求,实现高并发低延时的OLAP查询。根据数据使用场景的不同,115、建议按照如下五个区域进行划分,实施决策平台这些划分的详细介绍如下:i. 数据整合平台a) 企业级的数据整合区域b) HDFS+Hyperbase存储为主c) 全生命周期数据d) 冷数据,以磁盘保存为主e) 三副本保存f) 全局索引+复合索引g) 支持数据分区ii. 实施决策平台a) HDFS+Hyperbaseb) 热数据,内存存储为主,以提升性能iii. 自助分析平台a) HDFS+Hyperbaseb) 热数据,SSD+内存存储为主,以提升性能iv. 数据探索平台a) HDFS+Hyperbaseb) 温数据,SSD+内存存储为主,以提升性能v. 非结构化处理平台a) HDFS为主+Hyp116、erbaseb) 冷数据,磁盘图5-42数据存储规划5.3.4.1 数据存储管理功能数据分区是为了访问数据时,速度更快的存储策略,针对不同的场景进行数据分区分布;为了提升海量数据查询性能,提供表分区功能。Inceptor支持对表的单值分区和范围分区。 为一张表分区: 在物理上,将表中的数据按分区放在表目录下的对应子目录中,一个分区对应一个子目录;在逻辑上,分区表和未分区表没有区别。 分区在创建表时完成,也可以通过ALTER TABLE来添加或者删除。关于分区的建议,分区的目的是减少扫描成本。所以单个分区的大小和总分区数目都应该控制在合理范围内。使用多层分区带来的直接问题是总分区个数过多,因为总117、分区个数是所有分区键对应分区个数的乘积。所以我们建议尽量减少使用多层分区对于时间、日期一类的值,使用单值分区会导致分区过多。推荐使用范围分区(RANGE PARTITION)。范围分区可以灵活控制分区的数量,并可根据数据本身的特点使得各个分区的大小也控制在合理范围内,从而使得应用性能得到保证。另外,有很多以往在Oracle系统上的应用都是采取的范围分区,对范围分区的支持也能使得原有应用程序的迁移更加简单。如果是应用场景是批量处理场景,那么为了提高批处理的速度,一般在存储逻辑上,数据会放在HDFS上,基于Master/Slave架构提供高速批处理的性能。如果是高速随机查询,那么为了提高随机查询性118、能,一般在存储逻辑上,会把数据放在Hyperbase上,基于HBase的架构,提供高速随机查询能力。对于非重要冷数据,一般数据会存储在磁盘内,做多个备份,也可采用Erasure Code技术实现低成本存储,如果是热门数据,比如数据集市的精准内容,一般会改造成Holodesk的格式,存储在SSD或者内存当中;5.3.4.2 数据多温度管理在大数据时代,对于海量数据应该考虑数据的分级存储方案以节约存储成本。通常,我们会把数据分为热数据,在线数据,近线数据和归档数据。不同的数据种类的应用和处理会有不同的需求。对于热数据和在线数据,更多的需要考虑应用在使用数据时的高效性,Transwarp Incep119、tor用Holodesk的技术来加速热数据处理。对于近线数据,由于应用存取的需求相比热数据和在线数据大大减少,主要需要保证数据存储的可靠性,并考虑如何在保证可靠性的基础上能尽量减少副本以节约存储空间。热数据可以根据应用需求,将经常需要进行分析的热数据从HDFS或者Hyperbase中加载到Inceptor中的分布式内存数据列式存储Holodesk中。通过内存加速分析,在秒级别响应,对数据进行交互式探索挖掘。此外内存数据库还具备了通过R语言或者JAVA API对内存数据库中内容进行数据挖掘的能力。在内存计算数据库的存储层,通过将二维数据表缓存入独立的分布式内存(或SSD)层,回避GC问题。并通过120、建立自定义高效列式存储结构,减少数据传输。星环的内存数据库不仅仅可以支持数据存储在内存中,同样支持内存加SSD的混合存储架构,使得内存数据库中数据不仅能存储在内存中也能存储在SSD中,并且性能不会受到太大的影响。很大程度上提升了内存数据库的容量以及整体的性价比。图5-43热数据存储冷数据冷数据可以使用Transwarp HDFS中Erasure Code功能减少副本。Erasure Code可配置策略,指定HDFS中目录,通过Raid Server监控,在指定生命周期后将指定目录下的文件降低其副本数为1,并由10个数据块生成4个冗余校验块的,将3倍存储开销降低到1.4倍,并且在数据可靠性方面,121、Erasure Code在14个数据块中可容忍任意4个块丢失,比3份冗余存储可容忍2份数据块丢失更可靠。冷数据可使用Erasure Code自动降低存储开销。一个典型的应用场景:数据在导入HDFS后的一段时间内访问频繁,在一段时间后访问频率降低甚至正常状态下不访问。可以通过设置该数据的冷却时间,当这些数据到达冷却时间后,会自动触发降副本的进程。图5-44冷数据存储5.3.4.3 生命周期管理数据生命周期理论认为数据是有生命周期的,随着时间的推移,遵循数据访问频率变化与数据量累积变化成反比这一客观规律。因此,需要根据数据访问频率进行数据价值评估,对大量低价值信息采取低成本的数据保存手段,使数据的122、价值与存储的技术和管理相匹配,进而大幅降低整体数据存储成本。根据数据的这一运动规律,数据生命周期理论将数据的生命周期分为在线、近线、离线以及销毁4个阶段。 在线阶段,数据访问频率较高,数据从产生开始一直在生产系统中保存,并且数据的生成和利用需要使用高速存储,并提供相应的保护措施,保障数据的高可用性。这是采用热数据的存储策略,可存储在内存或者SSD当中; 近线阶段,数据使用相对不频繁,数据并不总是有用户访问,其重要性逐渐降低。通常将数据保存在中低端存储设备中,但仍能够进行在线访问,由于处理能力有限,访问的响应时间比在线数据访问时间有所增加,而且近线数据一般不在线应用,因此,不会对业务系统产生影响123、。这阶段可以存储在磁盘当中。 离线阶段,数据一般是没有用户访问的,只是为了预防一些特殊事件,按规定必须长时间保留,主要考虑的是数据的海量存储。历史数据随着时间的推移在不断的增加,由于这些数据对于在线系统来说没有多大的实际意义,只是作为今后的备查,因而可备份到磁带上长时间保存。采用Erasure code存储技术 销毁阶段,数据已过保存期,不再具有利用价值,可以进行销毁。这阶段,需要看客户咨询,如果存储空间足够,可以不删除销毁;或者采用Erasure code存储技术处理。5.3.4.4 多索引模式目前HBase主要应用在结构化和半结构化的大数据存储上,在逻辑上,HBase的表数据按RowKey124、进行字典排序,RowKey实际上是数据表的一级索引(Primary Index),由于HBase本身没有二级索引(Secondary Index)机制,基于索引检索数据只能单纯的依靠RowKey,为了能支持多条件查询,开发者需要将所有可能作为查询条件的字段一一拼接到RowKey中,这是HBase开发中极为常见的做法,但是无论怎样设计,单一RowKey固有的局限性决定了它不可能有效的支持多条件查询。受限于单一RowKey在复杂查询上的局限性,基于二级索引(Secondary Index)的解决方案成为最受关注的研究方向。为解决这一问题,Hyperbase在索引支持上做了重大的完善和加强。Hype125、rbase支持多种方式的索引,如:COMBINE_INDEX和STRUCT_INDEX。COMBINE_INDEX使用一列或者多列组合生成索引,而STRUCT_INDEX对STRUCT类型中的一个或多个字段生成索引。Hyperbase中的索引还可根据存储方式分为全局索引(Global Index)和局部索引(Local Index)。全局索引的索引存储与原表独立,索引本身是以一张表的形式存在(索引表)。局部索引在原表中创建一个新的列族(索引列)。Hyperbase在使用索引的时候,能智能化选择性能更高的索引支持数据查询,智能化选择索引使得用户在使用索引时更加透明和方便。使用索引的时候,支持数据126、在已创建索引的情况下导入数据,避免数据导入完毕后再创建索引的时间窗口。5.3.4.5 多数据副本管理TDH基于开源Spark框架设计,采用3副本存储粗略,多级存储技术中Erasure Code功能可降低数据存储副本。Erasure Code可配置策略,指定HDFS中目录,通过Raid Server监控,在指定生命周期后将指定目录下的文件降低其副本数为1,并由10个数据块生成4个冗余校验块的,将3倍存储开销降低到1.4倍,并且在数据可靠性方面,Erasure Code在14个数据块中可容忍任意4个块丢失,比3份冗余存储可容忍2份数据块丢失更可靠。冷数据可使用Erasure Code自动降低存储开127、销。通过系统自动对数据块校验,一旦有数据丢失的情况发生,系统会自动从其他机架上复制,重新生成副本。5.3.4.6 数据平衡管理一般情况下,数据在录入集群的时候就进行负载均衡,根据各个节点的情况来做数据平衡分发存放。但是如果在新增节点之后,如果想做到负载均衡则需要使用balancer的命令。对于这个命令,一般是有一个阀值,节点之间差额不超过10%,集群就是均衡的。当然,负载越平均,查询相对也较快,但是均衡的过程会耗时不少。同时,对索引表进行探测,如超过阈值,会对索引表重新分配。支持自动设置好阈值,实现数据自动平衡。同时TDH采用基于一致性Hash算法来计算数据分布的均衡状态,一旦有数据倾斜发生,128、自动实现数据平衡;同时对一个存储的索引进行探测,如果发生倾斜,自动分配到其他Region或者分区。5.3.4.7 在线节点管理平台提供了强大的在线水平扩展功能,不需要宕机停库,不需要停止业务,就可以添加新的节点,实现在线扩展。节点添加完成之后可以立即对新添加的节点进行角色的分配,一旦配置成功,则新加的节点就会马上投入运算。实现新加入的节点并行化计算,系统性能能够随着系统服务器数目的增加平滑线性增长,(采用分布式架构,不存在分布式协调瓶颈导致性能损失的情况)扩容之后的数据节点也不需要停机进行数据重分布,采用Hash算法,系统自动选择空闲的时间进行数据的重新分布,实现数据负载均衡;在国内实现部署扩129、展超过900个以上的案例经验。Hyperbase支持多种数据类型,包括结构化数据、非结构化数据、半结构化数据等复杂的数据,通过Inceptor支持多种扩展函数,支持shell等,外用应用可在平台上实现脚本的运行。HDFS将文件的数据块分配信息存放在NameNode服务器之上,文件数据块的信息分布的存放在DataNode服务器上。当整个系统容量需要扩充时,只需要增加DataNode的数量,系统会自动的实时将新的服务器匹配进整体阵列之中。之后,文件的分布算法会将数据块搬迁到新的DataNode之中,不需任何系统当机维护或人工干预。通过以上实现,HDFS可以做到在不停止服务的情况下实时的加入新的服务130、器作为分布式文件系统的容量升级,不需要人工干预文件的重新分布。5.3.4.8 分区管理为了提升海量数据查询性能,提供表分区功能。Inceptor支持对表的单值分区和范围分区。为一张表分区: 在物理上,将表中的数据按分区放在表目录下的对应子目录中,一个分区对应一个子目录;在逻辑上,分区表和未分区表没有区别。 分区在创建表时完成,也可以通过ALTER TABLE来添加或者删除。关于分区的建议,分区的目的是减少扫描成本。所以单个分区的大小和总分区数目都应该控制在合理范围内。使用多层分区带来的直接问题是总分区个数过多,因为总分区个数是所有分区键对应分区个数的乘积。所以我们建议尽量减少使用多层分区对于时131、间、日期一类的值,使用单值分区会导致分区过多。推荐使用范围分区(RANGE PARTITION)。范围分区可以灵活控制分区的数量,并可根据数据本身的特点使得各个分区的大小也控制在合理范围内,从而使得应用性能得到保证。另外,有很多以往在Oracle系统上的应用都是采取的范围分区,对范围分区的支持也能使得原有应用程序的迁移更加简单。5.3.4.9 数据导入与导出Sqoop支持Oracle11g、IBM DB2、MySQL、Postgre SQL等数据库。常用Sqoop将表从关系数据库中全部拷贝到Hadoop中。Sqoop导入过程是分布式的,并支持全量以及增量式导入。Sqoop作为Map/Reduc132、e客户端,自动生成Map-Reduce任务,提交给Hadoop集群进行分布式并行数据抽取。Sqoop支持将数据导入到HDFS,Inceptor和Hyperbase,或者从HDFS,Inceptor或者Hyperbase中导出到关系数据库。支持同步以及异步形式将文件批量导入数据表中。从关系型数据库中将数据导入到集群平台后,需要对入库后的数据与原先关系型数据库中的数据进行校验,以保证数据入库后的一致性。数据校验在导入到集群平台后或出账完成,对关系型数据库中当月单据表进行校验,检测单据表是否有变动,并从以下几方面进行验证:(1) 验证导入数据的表结构信息;(2) 验证原关系型数据库中与集群平台中表总133、记录条数是否一致;(3) 随机抽取号码,分别从原关系型数据库中与集群平台中获取该号码的所有单据,对记录数、单据的完整内容进行比对,判断是否一致;根据反馈的导入结果情况,如果出现错误会反馈出错信息。导入模式可支持批量模式和增量模式。批量模式:批量模式用于在平台建设完成初期进行历史数据的迁移,将大量的基础数据和历史数据导入平台集群。可通过Sqoop等ETL工具将数据导入到HDFS或Hyperbase中;同样可通过bulkload工具将批量数据导入到Hyperbase中;也可以直接将数据直接传入HDFS,其后可以通过建立外表的方式对数据进行分析。增量模式:增量模式用于上线后将指定周期时间间隔(如每天134、,每小时或每10分钟)内的数据导入平台,可通过Sqoop的增量导入等模式进行。对于数据的导出支持SQL查询结果导出为文本文件,可以设定文件的格式(分隔符等)、大小、命名。为了保障导出效率,系统内所有节点并行导出。5.3.4.10 多级数据存储考虑到海量数据平台的特点,TDH平台实现了多级数据存储的方式。TDH根据数据使用的特点分别对应不同的存储技术。TDH平台的多级存储包括,支持独立的分布式内存列式存储,支持内存/SSD缓存相结合的混合数据存储,支持常见的多副本磁盘存储,还支持低副本高容错的磁盘存储方式。多级数据存储技术中的Holodesk技术,结合上层高效稳定的Transwarp Incep135、tor执行引擎,基于分布式内存列式存储的SQL执行比MapReduce框架快10100倍,比开源的Spark快25倍。Transwarp Inceptor将数据缓存在内存中,通过高效的内存计算达到快速扫描海量数据的目的。当用户在海量数据级别分析时,考虑到单台机器内存的限制,以及内存费用较为昂贵,建议集群中的每台服务器都配置一块800GB1.6TB的PCIeSSD固态盘,当内存无法容纳更大的数据量时,可以将数据装载至SSD中。下图为基于国际标准组织提供的TPC-DS测试集,Inceptor基于纯内存的分布式内存存储与基于纯SSD的分布式内存存储的性能对比,HolodeskSSD-based性能比136、纯内存相差仅在10%20%左右。图5-45 TPC-DS测试多级存储技术中Erasure Code功能可降低数据存储副本。Erasure Code可配置策略,指定HDFS中目录,通过Raid Server监控,在指定生命周期后将指定目录下的文件降低其副本数为1,并由10个数据块生成4个冗余校验块的,将3倍存储开销降低到1.4倍,并且在数据可靠性方面,Erasure Code在14个数据块中可容忍任意4个块丢失,比3份冗余存储可容忍2份数据块丢失更可靠。冷数据可使用Erasure Code自动降低存储开销。5.3.4.11 多种数据类型支持Transwarp Hyperbase支持半结构化数据(137、JSON/BSON,XML形式存储)和非结构化数据例如纯文本,图片或者大对象的高效存取。由于越来越多的应用在考虑对半结构化数据,非结构化数据做查询,检索和分析,对这些数据存储的支持能简化应用程序的开发工作,同时TDH的优化使得对这类数据的操作性能更高。全文数据处理Transwarp Hyperbase支持通过建立增量全文索引(全文索引首先会对记录做分词处理,再对分词结果做相应索引)对于全文关键字搜索达到秒级的返回。Transwarp Hyperbase提供了全文索引功能,支撑内容管理,实现文字等非结构化数据的提取和处理;提供增量创建全文索引的能力,可以实时搜索到新增的数据。图数据库对于图数据的138、支持在大数据时代也显得日趋重要。Transwarp Graph是一个图数据库引擎,能实现图数据的高效存取及分析处理。Transwarp Graph本身主要实现了精简的图序列化,丰富的图数据建模,高效的查询。Transwarp Graph同时也实现了数据存储接口,数据检索。Transwarp Graph提供了标准的JAVA API和图数据库交互工具。 支持海量图数据处理,有着优秀的横向拓展能力 借助Transwarp Hyperbase实现数据的强一致性 支持图数据的高并发事务处理 基于Hadoop生态系统,可实现批图数据处理 支持对点和边的地理坐标,数字和全文检索 支持blue print图标139、准接口,可与blue print生态系统的软件兼容 支持TDH Graph Shell查询语言,并可在java中直接调用该语言进行图数据的操作 提供通过JAVA API 提供REST和Transwarp Graph二进制协议,方便远程管理和快速查询Transwarp Graph中的图数据 支持对点和边建立索引,提升查询性能 良好的可拓展性,Transwarp Graph的性能随着机器数量线性增长 提供批量入库工具,支持多种数据格式,Sequencefile,Graphson,EdgeList,ScriptIO 支持单机和集群模式5.3.4.12 多种文件格式支持SequenceFileSequ140、enceFile是Hadoop API 提供的一种二进制文件,它将数据以的形式序列化到文件中。这种二进制文件内部使用Hadoop 的标准的Writable 接口实现序列化和反序列化。它与Hadoop API中的MapFile 是互相兼容的。Hive 中的SequenceFile 继承自Hadoop API 的SequenceFile,不过它的key为空,使用value 存放实际的值,这样是为了避免MR在运行map阶段的排序过程。如果用Java API 编写SequenceFile,并让Hive 读取,需确保使用value字段存放数据,否则需要自定义读取这种SequenceFile 的Input141、Format class 和OutputFormat class。图5-46 SequenceFile格式支持RCFileRCFile是Hive推出的一种专门面向列的数据格式。它遵循“先按列划分,再垂直划分”的设计理念。当查询过程中,针对它并不关心的列时,它会在IO上跳过这些列。需要说明的是,RCFile在map阶段从远端拷贝仍然是拷贝整个数据块,并且拷贝到本地目录后RCFile并不是真正跳过不需要的列,并跳到需要读取的列,而是通过扫描每一个row group的头部定义来实现的,但是在整个HDFS Block 级别的头部并没有定义每个列从哪个row group起始到哪个row group结束。142、所以在读取所有列的情况下,RCFile的性能反而没有SequenceFile高。图5-47 RCFile格式支持AvroAvro是一种用于支持数据密集型的二进制文件格式。它的文件格式更为紧凑,若要读取大量数据时,Avro能够提供更好的序列化和反序列化性能。并且Avro数据文件天生是带Schema定义的,所以它不需要开发者在API 级别实现自己的Writable对象。最近多个Hadoop 子项目都支持Avro 数据格式,如Pig 、Hive、Flume、Sqoop和Hcatalog。图5-48 Avro格式支持文本格式除上面提到的3种二进制格式之外,文本格式的数据也是Hadoop中经常碰到的,如143、Text File 、XML和JSON。 文本格式除了会占用更多磁盘资源外,对它的解析开销一般会比二进制格式高几十倍以上,尤其是XML 和JSON,它们的解析开销比Text file 还要大,因此强烈不建议在生产系统中使用这些格式进行储存。 如果需要输出这些格式,请在客户端做相应的转换操作。 文本格式经常会用于日志收集,数据库导入,Hive默认配置也是使用文本格式,而且常常容易忘了压缩,所以请确保使用了正确的格式。另外文本格式的一个缺点是它不具备类型和模式,比如销售金额、利润这类数值数据或者日期时间类型的数据,如果使用文本格式保存,由于它们本身的字符串类型的长短不一,或者含有负数,导致MR没有144、办法排序,所以往往需要将它们预处理成含有模式的二进制格式,这又导致了不必要的预处理步骤的开销和储存资源的浪费。外部格式Hadoop实际上支持任意文件格式,只要能够实现对应的Record Writer和Record Reader即可。其中数据库格式也是会经常储存在Hadoop中,比如HBase、Mysql、Cassandra、MongoDB。这些格式一般是为了避免大量的数据移动和快速装载的需求而用的。序列化和反序列化都是由这些数据库格式的客户端完成,并且文件的储存位置和数据布局(Data Layout)不由Hadoop控制,文件切分也不是按HDFS的块大小(blocksize)进行切割。5.3.145、4.13 数据自定义标签管理用户可根据自己的使用习惯,自定义标签,然后进行管理。5.3.4.14 数据读写锁处理TDH平台优化了锁机制,用分布式的细粒度的锁代替全局锁,减少了线程平均等锁时间,提升了整个系统的吞吐量,使得TDH能够在高并发低延时的场景下表现更为优异,在Hyperbase实现行列级锁。同时Hyperbase经过改进,可以实现行列级锁,管理员可以根据实际情况对用户进行锁权限设置,最细粒度可是实现到单元格的数据快读写权限设置。5.3.4.15 元数据备份TDH元数据管理采取双备份机制,在Primary NameNode上存储一份,在Standby NameNode上存储一份,一旦当前146、FSImage时效,备份元数据立刻被使用;并且重新复制一份同步到恢复的NameNode节点上。5.3.4.16 表压缩在Inceptor中对中间数据或最终数据做压缩,是提高数据吞吐量和性能的一种手段。对数据做压缩,可以大量减少磁盘的存储空间,比如基于文本的数据文件,压缩比可达三倍以上,同时压缩后的文件在磁盘间传输和I/O也会大大减少。目前Inceptor使用ORC存储格式,并支持Snappy等多种压缩算法。支持对表按照压缩比例进行及时透明压缩。数据压缩后支持查询、修改、插入、删除,此过程中无需解压。5.3.5 数据计算5.3.5.1 多计算框架支持星环Transwarp Data Hub大数据147、平台支持多种计算框架,例如:批处理计算框架、内存计算框架、流计算框架等,支持企业在大数据平台上运行多种类型的复杂任务。 星环支持Spark、MapReduce等批处理框架,MapReduce计算任务的输入是Key/Value数据对,输出也以Key/Value数据对方式表示。根据业务逻辑实现Map和Reduce两个接口函数内的具体操作内容,即可完成大规模数据的并行批处理任务。 星环Transwarp Inceptor基于Spark内存计算技术,能够将数据缓存在内存中,更快速的完成批处理任务,性能是MapReduce的10倍到100倍。 星环Transwarp Data Hub提供对内存计算框架的148、支持,支持Spark内存计算,Spark是类Hadoop MapReduce的计算框架,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好的适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark 是在 Scala 149、语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松的操作分布式数据集。尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。基于内存计算的交互式交互式数据分析。此种类型任务的特点与Map/Reduce任务相反,要求复杂任务能够在秒级返回结果。集群能够提供秒级的任务响应能力,使得用户可以在时间要求苛刻的场景下,仍然对海量数据可以进行交互式、探索性分析。此种类型的任务无法通过Map/Reduce完150、成,目前比较优秀的做法是通过Spark分布式内存计算来完成。Spark低延迟、轻量级、高容错等特性能够满足对海量数据秒级的数据分析的要求。另外对于多数数据仓库类应用场景,也可通过TDH Hadoop平台在Inceptor(基于Spark的分布式内存计算引擎)上层开发的SQL接口,执行复杂的SQL任务。Inceptor可以完成对历史数据、非实时数据的统计分析。Transwarp Data Hub平台支持实时流计算框架Stream。支持海量数据实时流入Hadoop平台,并进行快速的处理,在毫秒内返回结果。此种类型的应用可以通过TDH Hadoop平台的TDH Stream组件来实现。可以在TDH 151、Stream中进行基于时间窗口的统计、清洗、在线模型训练等操作。通过支持批处理框架、内存计算框架、实时计算框架,星环Transwarp Data Hub平台支持多种应用场景及不同类型的任务,TDH 平台能够在同一平台提供多种数据处理引擎和计算引擎,来分别应对企业客户数据中心经常遇到的各种场景:批处理任务场景、历史数据分析场景,以及实时流数据处理场景。TDH平台统一但不局限于上述计算框架于同一个平台,提供了最大程度的便利性与灵活性。5.3.5.2 并行计算与并行处理能力Transwarp Data Hub大数据平台是分布式软件系统,即支持分布式处理的软件系统,提供并行计算和并行处理的能力,包括分152、布式操作系统、分布式程序设计语言及其编译系统、分布式文件系统和分布式数据库系统、分布式并行计算引擎等。提供大规模多服务器集群的部署方式,目前在国内最大规模集群已经超过900个节点,对于单个任务能够通过多CPU、多进程并行及并发处理机制完成并行计算,所以集群的资源可以得到充分的利用。集群在并行处理的性能主要取决于IO吞吐量,网络带宽,内存容量和CPU计算性能,如果集群规模较大,瓶颈主要取决于网络带宽,此种情况可以通过配置更高速的网络解决网络瓶颈,例如:10GB,或者40GB的高速网络。同时可以通过SSD,内存计算等技术解决分布式环境下并行计算的性能瓶颈。Hadoop是分布式软件系统中文件系统这一153、层的软件,它实现了分布式文件系统和并行存储功能。Hadoop中的分布式文件系统HDFS能够实现数据在计算机集群组成的云上高效的存储和管理,Hadoop中的并行编程框架MapReduce能够让用户编写的Hadoop并行应用程序运行更加简化。Hadoop上的并行应用程序开发是基于MapReduce编程框架的。MapReduce编程模型的原理是:利用一个输入的key/value 对集合来产生一个输出的key/value 对集合。MapReduce库的用户用两个函数来表达这个计算:Map和Reduce。用户自定义的map函数接收一个输入的key/value 对,然后产生一个中间key/value 对的154、集合。MapReduce把所有具有相同key值的value集合在一起,然后传递给reduce函数。用户自定义的reduce函数接收key和相关的value集合。reduce函数合并这些value值,形成一个较小的value集合。一般来说,每次reduce函数调用只产生0或1个输出的value值。通常我们通过一个迭代器把中间的value值提供给reduce 函数,这样就可以处理无法全部放入内存中的大量的value值集合了。大数据集分解为成百上千个小数据集,每个(或若干个)数据集分别由集群中的一个节点(一般就是一台普通的计算机)进行处理并生成中间结果,然后这些中间结果又由大量的节点合并,形成最终结155、果。下图也指出了MapReduce框架下并行程序中的三个主要函数:map、reduce、main。在这个结构中,需要用户完成的工作仅仅是根据任务编写map和reduce两个函数。MapReduce计算模型非常适合在大量计算机组成的大规模集群上并行运行。每一个map 任务和每一个reduce 任务均可以同时运行于一个单独的计算节点上,可想而知,其运算效率是很高的,那么这样的并行计算是如何做到的呢?下面将简单介绍一下其原理。Transwarp Data Hub平台同时支持更高效的并行计算引擎:Spark。Spark解决分布式计算框架中不能有效处理的两类问题:iterative(迭代计算)和 int156、eractive(交互式)计算。目前最流行的Hadoop 系统实现了DAG(有向无环图)的data flow 式的计算,不能处理有环的计算,也就是输入同时做为输出的循环计算。图5-50 并行计算Spark更适合于迭代运算比较多的ML(machine leaning和DM(data mining)运算。其主要的思想就是RDD(Resilient Distributed Dataset),把所有计算的数据保存在分布式的内存中。在迭代计算中,通常情况下,都是对同一的数据集做反复的迭代计算,数据保存在内存中,将大大提高性能。 RDD就是数据partition方式保存在cluster 的内存中。操作有两157、种: transformation 和 action, transform就是把一种RDD转换为另一个RDD,和Hadoop的 map 操作很类似,只是定义operator比较丰富(map, join,filter, groupByKey 等操作), action 就类似于Hadoop 的reduce,其输出是一个aggregation函数的值如count,或者是一个集合(collection)。5.3.5.3 PL/SQL存储过程TDH平台支持大部分重要的PL/SQL语法。PL/SQL基本语句支持:TDH平台对基本语句的支持包括:赋值语句、匿名块执行、函数定义和调用、存储过程定义调用、UDF158、/UDAF调用。1)赋值语句支持赋值语句,并有完整的作用域机制和可见性。变量的作用域为变量申明开始到当前语句块结束。当外部过程和内嵌过程定义了相同名字的变量的时候,在内嵌过程中如果直接写这个变量名是没有办法访问外部过程的变量的,可以通过给外部过程定义一个名字outername,通过outername变量名来访问外部过程的变量。2)匿名块执行PL/SQL匿名块语句是可以包含PL/SQL控制语句和SQL语句的可执行语句。它可以用来在脚本语言中实现过程逻辑。匿名块中可以有一个可选的DECLARE段用以声明本块所使用的变量,直接写在最外层的匿名块会立即执行(区别于写在函数或者包内部的匿名块),也是PL159、/SQL程序的唯一入口。3)存储过程调用支持存储过程的调用。PL/SQL过程引用由过程名以及随后的参数(如果有的话)组成。PL/SQL数据类型支持:TDH平台对PL/SQL数据类型的支持包括,标量类型、集合类型及其方法(COUNT()/LIMIT()/etc.)、RECORD类型、隐/显式类型转换。1)标量类型标量类型的含义是存放单个值。Inceptor中支持的标量类型为int/double/string等Inceptor中所有支持的类型。2)集合类型Inceptor支持的集合类型主要分为3大类:Associativearray,Nestedtable,Variable-sizearray。3160、)RECORD类型Inceptor支持RECORD类型。类似C语言struct类型的临时记录对象类型,其变现形式为“单行多列”,也可能是“单列”。在PL/SQL当中表的schema对应到一个RECORD类型的,用户也可以定义自己的RECORD类型而不和表schema发生任何关系。4)cursor类型Inceptor支持cursor类型。cursor用于提取多行数据,定义后不会有数据,使用后才会有数据。5)隐/显式类型转换Inceptor支持的显式类型转换:to_number(value)一般为字符类型转换为数值类型to_date(value,yyyymmdd)字符类型转换为日期类型to_cha161、r(value)数值类型转换为字符类型Inceptor支持的隐式类型转换:连接时(|),数值类型一般转为字符类型;赋值调用函数时,以定义的变量类型为准。PL/SQL其他复杂支持:1)Inceptor支持流程控制语句:IF/ELSEIF/ELSE语句,GOTO语句、LOOP循环、FOR循环、FORALL循环、WHILE循环、CONTINUE(WHEN)语句、EXIT(WHEN)语句;2)Inceptor支持游标:显式CURSOR及其基本操作:OPEN/FETCH(BULKCOLLECT)/NOTFOUND/etc.;支持SELECT(BULKCOLLECT)INTO语句;3)Inceptor支持162、Package包,包括包内全局变量、包内类型、包内函数。包内全局变量定义在包头部分。包内类型在包头定义,用户可以直接使用定义好的type。包内函数在包头处声明,在包体实现。PL/SQL异常支持Inceptor支持用户自定义异常和系统预定义异常;支持RAISE语句;支持WHEN(OR)THEN(OTHERS)异常处理;支持存储过程内部和存储过程之间的异常传播;部分系统预定义异常抛出点;部分编译时刻错误检测。1)系统预定义异常ACCESS_INTO_NULL未定义对象CASE_NOT_FOUNDCASE中若未包含相应的WHEN,并且没有设置ELSE时COLLECTION_IS_NULL集合元素未初163、始化CURSER_ALREADY_OPEN游标已经打开DUP_VAL_ON_INDEX唯一索引对应的列上有重复的值INVALID_CURSOR在不合法的游标上进行操作INVALID_NUMBER内嵌的SQL语句不能将字符转换为数字NO_DATA_FOUND使用selectinto未返回行,或应用索引表未初始化的元素时TOO_MANY_ROWS执行selectinto时,结果集超过一行ZERO_DIVIDE除数为0SUBSCRIPT_BEYOND_COUNT元素下标超过嵌套表或VARRAY的最大值SUBSCRIPT_OUTSIDE_LIMIT使用嵌套表或VARRAY时,将下标指定为负数VALUE164、_ERROR赋值时,变量长度不足以容纳实际数据LOGIN_DENIEDPL/SQL应用程序连接到数据库时,提供了不正确的用户名或密码NOT_LOGGED_ONPL/SQL应用程序在没有连接数据库的情况下访问数据异常PROGRAM_ERRORPL/SQL内部问题,可能需要重装数据字典pl./SQL系统包ROWTYPE_MISMATCH宿主游标变量与PL/SQL游标变量的返回类型不兼容SELF_IS_NULL使用对象类型时,在null对象上调用对象方法STORAGE_ERROR运行PL/SQL时,超出内存空间SYS_INVALID_ID无效的ROWID字符串TIMEOUT_ON_RESOURCE在165、等待资源时超时2)支持存储过程内部和存储过程之间的异常传播。3)支持部分系统预定义异常抛出点5.3.5.4 分布式事务支持事务处理(transaction)是数据库保证原子性(atomicity)的方法。原子性是指一系列任务在系统中只会有完成和未完成两种状态,不会有只完成了一半的情况。事务处理的任务都是对表本身有修改的语句,包括增删改,也就是SQL中的DML语句:LOAD/INSERT/UPDATE/DELETE。TDH支持通过Inceptor Shell和JDBC/ODBC接口进行事务处理。Inceptor SQL的事务处理指令为COMMIT TRANSACTION(提交事务)或者ROLLB166、ACK TRANSACTION(回滚事务,撤回事务)。在Inceptor中对事务表的映射处理时,系统会默认任何active session都包含在一个事务中,所以无需像在一些其他数据库中专门通过BEGIN TRANSACTION开始事务。在Inceptor中COMMIT TRANSACTION或者ROLLBACK TRANSACTION后,一个事务即结束,系统会默认接着自动开始另一个事务。星环 TDH支持分布式事务操作,主要帮助用户多数据源汇总,数据拉链、交易性业务、数据实时持久化等需求,为了对Nosql数据库实现事务操作,星环的分布式机制目前分为两种:l 基于Inceptor的CRUD & 167、Transcation:基于ORC File改造的ORC事务表以及混合存储格式改造的Holodesk格式。l 基于Hyperbase的CRUD & Transaction:实现方法HBaseTransactionStorageHandler、HBaseStorageHandler & HyperbaseStorageHandler事务是构成单一逻辑工作单元的集合操作,具备如下特性: 原子性:事务的所有操作在数据库中要么全部正确反映出来,要么完全不反映 一致性:隔离执行事务时能保持数据库的一致性 隔离性:多个事务并发执行,但是任何事务不会干扰到其它事务的执行 持久性:一个事物成功完成后,它对数据168、库的改变是永久的。TDH SQL事务隔离级别: Inceptor隔离:l Serializable:保证可串行化调度l Repeatable read:只允许已读取已提交的数据,且一个事务两次读取一个数据期间,其它事务不能更新该数据l Read committed:只允许已读取已提交的数据,不要求可重复读Read uncommitted:允许读取未提交的数据 Hyperbase隔离:Snapshot:事务开始创建snapshot,若干个事务更新同一数据,后提交失败。5.3.5.5 ACID测试案例下面是浙江农信社对TDH的事务处理能力的测试报告:1) ACID测试-原子性测试测试名称ACID测169、试-原子性测试用例编号测评目标验证分布式事务处理原子性,保证事务操作原子性,要么所有提交操作全部完成,要么全部不完成,事务在执行过程中发生错误,会被Rollback到事务开始前的状态测 试 人前置条件集群正常运行测试步骤表结构:Table atomicity_table_src key int, value string 1. 原子性性验证truncate table atomicity_table_src;CREATE OR REPLACE PROCEDURE TEST_ATOMICITY ()isdeclare cnt int := 0; BEGIN begin transaction; 170、insert into atomicity_table_src values(1,src1); insert into atomicity_table_src values(2,src2); update atomicity_table_src set value = updated1 where key = 1; delete from atomicity_table_src where key = 2; -插入不存在的表- insert into table_not_exist values(1,test); commit;-异常处理回滚-EXCEPTION WHEN others THE171、N rollback; dbms_output.put_line(plsql failed.) SELECT COUNT (1) INTO cnt FROM atomicity_table_src; if cnt != 0 then dbms_output.put_line(We should not get any data from the table) end if END;/begin TEST_ATOMICITY ()end;/ 2. 检查atomicity_table_src中是否有数据,预期表中没有数据,并输出 plsql failed. 预期结果事务操作支持原子性测试结果完整通172、过了原子性功能测试2) ACID测试-一致性测试测试名称ACID测试-一致性测试用例编号测评目标验证分布式事务处理一致性,保证事务操作一致性。保证在事务开始之前和事务结束以后,完整性约束没有被破坏测 试 人前置条件集群正常运行测试步骤表结构:Table consistency_table key int, value double1. 向consistency_table表中插入数据insert into consistency_table values(1, 100.5);insert into consistency_table values(2, 30.5);模拟从consistency173、_table表中将key为1行中value 100.5减少40,向表中将key为2行中value 30.5增加40,保证约束条件value列总额不变,保证数据的一致性。 2. 模拟更新失败CREATE OR REPLACE PROCEDURE TEST_ CONSISTENCY()isdeclare cnt int := 0; BEGIN begin transaction; update consistency_table set value = 60.5 where key = 1; -插入不存在的表- insert into table_not_exist values(1,test);174、update consistency_table set value = 70.5 where key = 2; commit;-异常处理回滚-EXCEPTION WHEN others THEN rollback; dbms_output.put_line(Action failed.)END;/begin TEST_ CONSISTENCY()end; 检查consistency_table中数据,预期 表中数据没有更新输出 action failed. 3. 正常执行CREATE OR REPLACE PROCEDURE TEST_ CONSISTENCY()isdeclare cnt 175、int := 0; BEGIN begin transaction; update consistency_table set value = 60.5 where key = 1; update consistency_table set value = 70.5 where key = 2; commit;-异常处理回滚-EXCEPTION WHEN others THEN rollback; dbms_output.put_line(Action failed.)END;/begin TEST_ CONSISTENCY()end; 检查consistency_table中数据,预期 表中176、数据已经更新预期结果分布式事务操作支持一致性测试结果完整通过了一致性功能测试3) ACID测试-隔离性测试测试名称ACID测试-隔离性测试用例编号测评目标验证分布式事务处理隔离性,保证事务操作隔离性,防止事务操作时的互相混淆,使得在同一时间仅有一个请求用于同一数据测 试 人前置条件集群正常运行测试步骤表结构:Table isolation_table key int, value string1. 向isolation_table表中插入数据insert into isolation_table values(1, test1); insert into isolation_table val177、ues(2, test2);2. 在一个session1中更新表中key为1的行 begin transaction; update isolation_table set value = updated1 where key = 1; 3. 在另一个session2中更新表中key为1的行 begin transaction; update isolation_table set value = updated2 where key = 1; commit;在session2中一直等待session1中commit4. 在session1中 commit;session2开始执行,最后结果k178、ey为1的value为update2预期结果分布式事务操作支持隔离性测试结果完整通过了事务隔离性功能测试5.3.6 数据查询5.3.6.1 OLAP函数支持星环TDH支持多个OLAP函数,支持超大数据立方,支持雪花、星型等复杂分析模型。目前支持的函数如下:表5-2 函数列表序号函数类型TDH1lead支持2lag支持3row_number支持4rank支持5dense_rank支持6percent_rank支持7cume_dist支持8ntile支持9first_value支持10last_value支持11min支持12max支持13count支持14avg支持5.3.6.2 分布式 Cub179、eTranswarp Inceptor将数据缓存在Holodesk中,通过高效的内存计算达到快速扫描海量数据的目的,支持在Holodesk建立索引,提高数据扫描效率,支持在Holodesk建立Cube,使得数据仓库、数据集市类应用的性能进一步提升,灵活、快速的进行模型旋转、钻取等操作。独立的分布式内存列式存储Holodesk,解决开源Spark的稳定性问题以及进一步提供交互式分析能力,同时为了降低平台建设成本与提高平台内存分析数据量,分布式内存存储可建在内存或者固态硬盘SSD上。通过创建数据源对应的数据表的元信息,在内存中对数据源创建数据表的结构,根据元信息把当前的数据行生成为一个列式数据块并180、存储到硬盘,能够更加有效的使用内存,实现后续在硬盘上查询数据的性能达到与在内存上查询数据相近的性能,能够进一步支持后续以高速的查询效率为基础的强大的数据分析能力。进一步的,所述列为索引列时,通过对每个索引列建立一个倒排索引,并采用RadixTree结构将索引列存储到固态硬盘的对应位置的文件中,能够提高后续数据查询的效率。图5-51 Holodesk框架优势: 数百亿数据行的查询延迟保持在次秒级别(cube加速)。 能够为使用SQL兼容性工具的用户提供ANSI SQL。 完整的OLAP方案以实现各类高级功能。 拥有对高基数与超大规模业务体系的支持能力。 面向成千上万用户的高并发性处理能力。 能够181、处理TB乃至PB级别分析任务的分布式低成本横向扩展架构(列式数据存储放SSD上)。目前在Holodesk上建立Cube支持的函数如下:表5-3 函数列表序号函数类型分布式Cube1And支持2Or支持3Add支持4Sub支持5Mul支持6Div支持7Mod支持8Abs支持9Sqrt支持10Floor支持11LessThan支持12EqualOrLessThan支持13GreaterThan支持14EqualOrGreaterThan支持15Equal,支持16When,支持17Case支持18Decode,支持19Negative支持20Sum支持21Avg支持22Min支持23Max支持24182、Count支持5.3.6.3 SQL兼容性TDH提供ANSI SQL2003语法支持(超过95%,在多次POC测试验证,如需,可提供星环在其他厂商中的SQL测试结果)以及PL/SQL过程语言扩展,并且可以自动识别Hive SQL、SQL2003和PL/SQL语法,在保持跟Hive兼容的同时提供更强大的SQL支持。支持标准的SQL形式访问数据。由于现有的数据仓库应用大都基于标准SQL,对于XX电商,现有应用也使用了PL/SQL,要从现有数据库系统迁移到Hadoop,标准SQL以及PL/SQL的支持显得尤为重要。TDH可以支持标准SQL以及PL/SQL,支持复杂的数据仓库类分析应用,使得从原有数据183、库系统迁移到Hadoop更为容易,可以帮助企业建立高速可扩展的数据仓库和数据集市。表5-4 SQL支持SQL标准Transwarp InceptorPL/SQL支持超过98%的PL/SQL语法,包括所有的数据类型、条件控制语句,以及其他常用扩展功能如包、游标、动态SQL执行,以及完整的异常处理。SQL99标准支持完整的SQL99标准SQL2003支持超过95%的SQL2003HiveQL支持完整的HiveQLSQL扩展支持如下: 支持创建数据库、删除数据库、配置数据库的容量 支持创建表、删除表、增加表字段 支持创建、修改、删除视图CREATE/DROP/ALERT VIEW 支持表数据类型包括184、所有的结构化数据类型如整形、字符串、浮点型、布尔型、二进制、时间类型等,文档数据类型如XML,JSON,BSON,以及针对图片类文件的LOB类型 支持创建索引、删除索引 支持所有类型的表的连接,支持表的集合运算包括求并集、求交集、求差集,支持多层的SQL嵌套查询,支持 IN/Not IN/Exists/Not Exists 等复杂查询 支持字符串、日期等常用操作函数 支持最大值、最小值、平均值等聚合函数,支持常用Oracle函数 支持select into、insert into、merge into 功能 支持完整的增删改语法,具体包括支持单条或者多条插入,支持单条更新和用子查询更新,支持从185、表中删除数据 支持子查询 (sub-query factoring),包括非同步子查询(Non-correlated Sub-query)和同步子查询(Correlated Sub-query),支持子查询的多层嵌套 支持在 where clause 子句使用 同步和非同步subquery (包括IN 和 NOT IN) 支持在From clause子句中使用非同步subquery 支持 Having clause子句使用非同步subquery 支持 Select list里面使用同步和非同步 subquery 支持 WITH AS 语法,并可在系统运行中实时决定是否选择物理化来加速查询 支持186、 Inner JOIN, Outer JOIN (Left Outer JOIN, Right Outer JOIN, Full Outer JOIN), Implicit JOIN, Nature JOIN, Cross JOIN,SELF JOIN, Non-equi JOIN(JOIN条件可以是不等式),Map JOIN,left semi join 和 left anti semi join 支持 union, intersect, except操作,并且他们可以作为top level operator 支持 in 、between 以及运算符 (+ - * )直接操作 subquer187、y 具备较完整的事务处理支持(包括嵌套事务),支持BEGIN TRANSACTION, END TRANSACTION, COMMIT, ROLLBACK操作,支持自治事务 支持基于预定义维度的数据查询,支持简单查询、组合查询、模糊查询等 支持标准DDL,DML,事务处理,支持SQL 2003 等,支持SQL子查询及窗口函数 支持基本数据类型、复杂数据类型、with as 子句、同步子查询、相关子查询、嵌套子查询,窗口函数、聚合函数、类型转换、集合函数、操作符、Oracle PL/SQL过程扩展 支持数据累加、统计、关联、比对、去重等各种常见的数据分析场景 支持标准SQL的方式来访问Hadoo188、p生态系统中的其他组件模块,如Hive、HBase、HDFS中的文件,并能跨数据源做关联查询和分析 TDH平台全面支持HiveQL、SQL2003标准等,可以有效支持数据仓库中常用的数据立方统计(CUBE/ROLLUP)、窗口聚合统计、嵌套(nested)/同步(correlated)子查询、子表定义和操作,这些功能无法用HiveQL有效实现 TDH平台提供了对SQL2003标准最全面的支持,最大程度方便用户开发基于Hadoop平台的应用和现有应用的迁移Inceptor中对于SQL的相关支持可参见下表:表5-5 函数支持函数支持聚合函数count, sum, avg, min, max, va189、riance, var_pop, var_samp, stddev_pop, stddev_samp, covar_pop, covar_samp, corr, percentile, percentile_approx, histogram_numeric, collect_set, collect_list, ntile窗口函数sum, avg, min, max, countdense_rank, group_max, group_min, group_sum, rank, row_number类型转换函数binary, cast(expr as )UDTFexplode, inline190、, json_tuple, parse_url_tuple, posexplode, stack集合函数size, map_keys, map_values, array_contains, sort_array其他功能函数to_card_15_to_18(15位身份证号转18位)数据类型支持基本数据类型TINYINT, SMALLINTINT, INTEGER, BIGINTBOOLEANFLOAT, DOUBLEDATE, DATETIME, INTERVALTIMESTAMPSTRINGBINRAYVARCHAR, VARCHAR2DECIMAL,DECIMAL(no.,no.), DE191、C(no., no.)NUMERIC(no.,no.),NUMBER(no., no.)复杂数据类型LISTMAPSTRUCTUNIONWITH AS语句、嵌套查询支持WITH AS定义子表SQL92的WITH AS语句WITH DEPT_COSTS AS -查询出部门的总工资 (SELECT D.DNAME,SUM(E.SAL) DEPT_TOTAL FROM DEPT D, EMP E WHERE E.DEPTNO = D.DEPTNO GROUP BY D.DNAME), AVE_COST AS -查询出部门的平均工资,在后一个WITH语句中可以引用前一个定义的WITH语句(SELECT192、 SUM(DEPT_TOTAL) / COUNT(*) AVG_SUM FROM DEPT_COSTS) SELECT * FROM DEPT_COSTS DC WHERE DC.DEPT_TOTAL (SELECT AC.AVG_SUM FROM AVE_COST AC) -进行比较嵌套子查询子查询在FROM子句中SELECT employees.employee_number, employees.name FROM employees INNER JOIN (SELECT department, AVG(salary) AS department_average FROM employe193、es GROUP BY department) AS temp ON employees.department = temp.department WHERE employees.salary temp.department_average;子查询在WHERE子句中SELECT e.name, e.salary, e.department FROM employess e WHERE e.employee_id = (SELECT MIN(employee_id) FROM employess)子查询在SELECT子句中SELECT employee_number, name, (SELECT194、 AVG(salary) FROM employees) AS department_average FROM employees;子查询在HAVING子句中SELECT department_id, manager_id FROM employees GROUP BY department_id, manager_idHAVING department_id = (SELECT max(department_id) FROM employees x ) ORDER BY department_id;子查询、窗口函数、Rollup扩展支持CORRELATED SUB-QUERY相关/同步子查询195、子查询在WHERE子句中SELECT employee_number, name FROM employees AS Bob WHERE salary = ( SELECT AVG(salary) FROM employees WHERE department = Bob.department);子查询在SELECT子句中SELECT employee_number, name, (SELECT AVG(salary) FROM employees WHERE department = Bob.department) AS department_average FROM employees A196、S Bob;子查询在HAVING子句中SELECT department_id, manager_id FROM employees GROUP BY department_id, manager_idHAVING department_id = (SELECT department_id FROM employees x WHERE x.department_id = employees.department_id) ORDER BY department_id;窗口聚合函数OVER子句SELECT SalesOrderID, CustomerID,OrderDate, TotalDue,S197、UM(TotalDue) OVER (PARTITION BY CustomerID) AS CustomerTotal,SUM(TotalDue) OVER() AS GrandTotal,AVG(TotalDue) OVER (PARTITION BY CustomerID) AS AvgCustSaleFROM Sales.SalesOrderHeader OuterQueryORDER BY CustomerID;Group By扩展Rollup 生成简单的 GROUP BY 聚合行以及小计行或超聚合行,还生成一个总计行SELECT a, b, c, SUM ( ) FROM T GR198、OUP BY ROLLUP (a,b,c); 会为(a, b, c)、(a, b)和(a)值的每个唯一组合生成一个带有小计的行。还将计算一个总计行。Cube生成简单的 GROUP BY 聚合行、ROLLUP 超聚合行和交叉表格行SELECT a, b, c, SUM () FROM T GROUP BY CUBE (a,b,c);会为(a, b, c)、(a, b)、(a, c)、(b, c)、(a)、(b)和(c)值的每个唯一组合生成一个带有小计的行,还会生成一个总计行。PL/SQL支持能力TDH平台支持大部分重要的PL/SQL语法。PL/SL基本语句支持TDH平台对基本语句的支持包括:赋值199、语句、匿名块执行、函数定义和调用、存储过程定义调用、UDF/UDAF调用。 赋值语句支持赋值语句,并有完整的作用域机制和可见性。变量的作用域为变量申明开始到当前语句块结束。当外部过程和内嵌过程定义了相同名字的变量的时候,在内嵌过程中如果直接写这个变量名是没有办法访问外部过程的变量的,可以通过给外部过程定义一个名字outername,通过outername变量名来访问外部过程的变量。 匿名块执行PL/SQL 匿名块语句是可以包含 PL/SQL 控制语句和 SQL 语句的可执行语句。它可以用来在脚本语言中实现过程逻辑。 匿名块中可以有一个可选的DECLARE段用以声明本块所使用的变量,直接写在最外200、层的匿名块会立即执行(区别于写在函数或者包内部的匿名块),也是PL/SQL程序的唯一入口。 存储过程调用支持存储过程的调用。PL/SQL 过程引用由过程名以及随后的参数(如果有的话)组成。PL/SQL数据类型支持TDH平台对PL/SQL数据类型的支持包括,标量类型、集合类型及其方法(COUNT()/LIMIT()/etc.)、RECORD类型、隐/显式类型转换。 标量类型标量类型的含义是存放单个值。Inceptor中支持的标量类型为int/double/string等Inceptor中所有支持的类型。 集合类型Inceptor支持的集合类型主要分为3大类:Associative array,N201、ested table,Variable-size array。 RECORD类型Inceptor支持RECORD类型。类似C语言struct类型的临时记录对象类型,其变现形式为“单行多列”,也可能是“单列”。在PL/SQL当中表的schema对应到一个RECORD类型的,用户也可以定义自己的RECORD类型而不和表schema发生任何关系。 cursor类型Inceptor支持cursor类型。cursor用于提取多行数据,定义后不会有数据,使用后才会有数据。 隐/显式类型转换Inceptor支持的显式类型转换:to_number(value) 一般为字符类型转换为数值类型to_date(v202、alue, yyyymmdd) 字符类型转换为日期类型to_char(value) 数值类型转换为字符类型Inceptor支持的隐式类型转换:连接时(|),数值类型一般转为字符类型; 赋值调用函数时,以定义的变量类型为准。PL/SQL其他复杂支持 Inceptor支持流程控制语句:IF/ELSE IF/ELSE语句,GOTO语句、LOOP循环、FOR循环、FOR ALL循环、WHILE循环、CONTINUE(WHEN)语句、EXIT(WHEN)语句 Inceptor支持游标:显式CURSOR及其基本操作:OPEN/FETCH(BULK COLLECT)/NOT FOUND/etc.;支持SEL203、ECT (BULK COLLECT) INTO语句 Inceptor支持Package包,包括包内全局变量、包内类型、包内函数。包内全局变量定义在包头部分。包内类型在包头定义,用户可以直接使用定义好的type。包内函数在包头处声明,在包体实现。PL/SQL异常支持Inceptor支持用户自定义异常和系统预定义异常;支持RAISE语句;支持WHEN (OR) THEN (OTHERS)异常处理;支持存储过程内部和存储过程之间的异常传播;部分系统预定义异常抛出点;部分编译时刻错误检测。 系统预定义异常ACCESS_INTO_NULL 未定义对象CASE_NOT_FOUND CASE 中若未包含相应204、的 WHEN ,并且没有设置 ELSE 时COLLECTION_IS_NULL 集合元素未初始化CURSER_ALREADY_OPEN 游标已经打开DUP_VAL_ON_INDEX 唯一索引对应的列上有重复的值INVALID_CURSOR 在不合法的游标上进行操作INVALID_NUMBER 内嵌的 SQL 语句不能将字符转换为数字NO_DATA_FOUND 使用 select into 未返回行,或应用索引表未初始化的元素时TOO_MANY_ROWS 执行 select into 时,结果集超过一行ZERO_DIVIDE 除数为 0SUBSCRIPT_BEYOND_COUNT 元素下标超过嵌205、套表或 VARRAY 的最大值SUBSCRIPT_OUTSIDE_LIMIT 使用嵌套表或 VARRAY 时,将下标指定为负数VALUE_ERROR 赋值时,变量长度不足以容纳实际数据LOGIN_DENIED PL/SQL 应用程序连接到数据库时,提供了不正确的用户名或密码NOT_LOGGED_ON PL/SQL 应用程序在没有连接数据库的情况下访问数据异常PROGRAM_ERROR PL/SQL 内部问题,可能需要重装数据字典 pl./SQL 系统包ROWTYPE_MISMATCH 宿主游标变量与 PL/SQL 游标变量的返回类型不兼容SELF_IS_NULL 使用对象类型时,在 null 206、对象上调用对象方法STORAGE_ERROR 运行 PL/SQL 时,超出内存空间SYS_INVALID_ID 无效的 ROWID 字符串TIMEOUT_ON_RESOURCE 在等待资源时超时支持存储过程内部和存储过程之间的异常传播。支持部分系统预定义异常抛出点5.3.6.4 SQL功能分布式全文检索TDH平台提供与Elastic Search集成,Elastic Search是一个基于Lucene的搜索服务器。它提供了一个分布式多租户的全文搜索引擎,基于RESTful web接口。Elastic Search是用Java开发的,设计用于云计算中,能够实时搜索,具有稳定、可靠、快速等特点,安207、装使用方便。Hyperbase中提供了全文索引的功能,通过Elastic Search能够对Hyperbase中的数据进行全文检索。基于SQL引擎,在Elastic Seatch的索引分词库上快速进行索引查询。全文索引功能集成在Transwarp Hyperbase中,可在Hyperbase上建立索引任务,通过Spark分布式计算框架把子任务分发给节点服务器,把需求作为查询条件的列建立一个映射到主数据的索引,利用平台的处理能力,结合Big Table实时创建索引并进行搜索,快速返回搜索结果。集中信息配置使用Zookeeper进行集中配置,启动时可以指定把Elastic Search上的相关配置208、文件上传Zookeeper,多机器共用。这些Zookeeper中的配置不会再拿到本地缓存,系统直接读取Zookeeper中的配置信息。配置文件的变动,所有机器都可以感知到。另外,分布式全文检索模块的一些任务也是通过Zookeeper作为媒介发布的。目的是为了容错。接收到任务,但在执行任务时崩溃的机器,在重启后,或者集群选出候选者时,可以再次执行这个未完成的任务。自动容错分布式全文检索模块支持对索引分片,并对每个分片创建多个索引子任务。每个子任务都可以对外提供服务。一个分片的子任务挂掉不会影响索引服务。,支持在其它机器上把失败机器上的索引分片任务重建并投入使用。实时搜索支持立即推送索引分片(也支209、持慢推送,在计算资源不够的情况下),支持秒内检索到新加入的索引,同时,索引结果无延迟推送给上层用户。支持索引结果和调用数据存放在内存里面,快速响应系统索引请求,同时,新索引也可以调用存放在内存的数据子集,节约索引开销;直到任务结束后,释放存在内存的数据子集,重新分配计算资源。事务日志支持事务日志,确保索引操作无丢失,即使整个集群因故重启或者任务没有索引到磁盘,重启后,索引模块仍然可以根据日志记录,快速恢复索引任务。批量建立索引索引存放在分布式数据库Hyperbase上,索引任务下达时,模块把索引任务翻译成MR任务,批量建立索引,通过MR任务把索引计算任务分发给计算节点,节点完成索引任务后统一汇210、总上传计算结果。联合查询Transwarp Hyperbase支持半结构化数据(JSON/BSON,XML形式存储)和非结构化数据例如纯文本,图片或者大对象的高效存取。由于越来越多的应用在考虑对半结构化数据,非结构化数据做查询,检索和分析,对这些数据存储的支持能简化应用程序的开发工作,同时TDH的优化使得对这类数据的操作性能更高。5-52 联合查询框架STARGATE,是一个跨数据源的JOIN操作的组件,既可以使用Hadoop里面的表,也可以使用ORACLE,DB2里面的表;,通过StarGate组件,实现多数据接入,且不用导入HDFS或者Hyperbase,也实现联合查询,且Inceptor211、支持DB-link的数据联邦功能;Hyperbase既支持结构化的数据,非结构化的数据则放在对象存储,文档存储等;一种对大规模结构化和非结构化数据联合处理的系统及方法,包括数据联合模块、关键词提取模块、关键词索引建立模块、海量数据存储模块以及联合查询处理模块。数据联合模块读取结构化和非结构化数据,并形成记录数据和内容数据;关键词提取模块对内容数据进行分词,形成记录标识和该条记录所包含的关键词对应关系数据;关键词索引建立模块接收关键词数据,对数据进行倒排,形成关键词和记录标识的对应关系数据,并将其存入关键词索引表。通过星环Hyperbase,能够快速有效的对大规模的非结构化文本数据和结构化数据进212、行联合处理和检索,解决了现有系统无法将二者进行高效联合处理的问题。预定义多维数据查询支持基于预定义维度的数据查询,通过Inceptor实现简单查询、组合查询,模糊查询,支持前模糊、后模糊查询,具体的支持的查询语句详见上文。5.4 数据ETL整体架构与XX电商的总体架构相契合,各数据源通过IDPP的抽取接口,通过配置,获取增量或者全量;实时与否,取决于配置的结果。后续的处理,按照整体的逻辑架构执行。在ETL处理架构之下,数据加工,数据清洗也通过ETL作业快速完成,并且还提供数据质量标注,数据质量管理,元数据管理负责协调各模块之间的逻辑关系。数据综合服务则负责和外围接口配合协调,提供或者获得相应的213、数据服务,比如文件接口,View接口,WebService接口等。IDPP提供完整的ETL处理加工流程,并提供上百个内置清洗规则对流入数据进行库内、库外检查,这些加工和清洗流程是可以配置的,并提供自定义的接口便于客户扩展,包括Java,Groovy的扩展。图5-63 IDPP开发流程图丰富的数据转换函数库IDPP内建拥有超过40种数据转换函数,包含decode、IIF、Instr以及Trim等,可满足绝大部分的数据转换及清理需求。其他如身份证及信用卡查核码检核与产生、异格式数据合并、XML资料解译、简繁对译等,也都是解决客户迫切需求的实用功能。高性价比(Cost/Performance,C/P214、Ratio)的CDC除了原本数据整合的功能外,数据转换系统还内建了差异数据加载(Changed Data Capture,CDC)功能。此功能可比对前后版本的数据,以决定更新的模式(更新/新增/删除),这让数据量大但更新比率小的作业,可以大幅省下数据更新的时间。灵活的SQL指令执行器SQL指令执行器除了可直接执行数据库指令,还可加上逻辑判断、循环,也可传递变量、设定错误机制处理等,让数据流的安排更具弹性。更方便的是,IDPP会自动将SQL指令转换成数据库看得懂的指令,让开发人员不必再因为后端数据库更换,而需要调整所有的指令。可自行扩充功能的Groovy脚本编辑器通过IDPP的Groovy组件,215、可让用户依照不同需求,自行编辑脚本,它能解决复杂的特殊需求,也支持非结构化数据,解决变化多端的商业问题。同时在系统默认脚本档案内已经建立数个常用的脚本,可缩短开发时间,是一个高效、敏捷且功能完整的模块。变更影响评估(Impact Analysis)可在任何一个数据字段、型态或是名称的变更发生之前,就能对已设计好的工作其影响程度先行评估,追踪其上下游所涉及的作业,让设计师可以充分掌握变更的影响层面,完整的修改相关的设计,让开发过程更加顺利。轻松管理档案的HouseKeeping组件藉由HouseKeepingFileWriter,可将系统执行过程所产生的暂存盘或历史文本文件搬移至指定目录下或直接216、删除,不必再经过繁杂的设定,即可轻松完成数据文件的维护工作。高稳定性架构在Server的设计上,如果PrimaryServer因硬件故障或网络断线而无法进行作业,StandbyServer就会迅速的接手整个系统的运作。而在Agent的设计上,多部的Agents可以编组为Virtualagent(虚拟Agent群组),群组内的Agent可以彼此平衡互相的工作负载,只要添加Agent,就可以让系统横向扩充,在无系统升级的痛苦下,增强系统处理的能量;而任何一部Agent故障时,其它的Agent也会接手其工作,作业不会中断。备援及负载平衡备援机制让IDPP能确保作业不中断,让所有的作业继续运行。在同一217、个作业流程中的所有作业,可以分处于不同的Agent上,因此,可以控制来自不同平台上的作业。并根据个别作业不同的回传值,控制作业的执行状况及流向。5.5 数据分析与挖掘本方案提供的大数据平台支持多种环境,以便于后续进行多种数据分析与挖掘,并提供多个接口对数据进行导出,以便于客户在体外进行数据分析;也提供数据沙盘给特定的数据分析师进行数据分析,数据沙盘也提供多个数据以及产品接口,以便于进行数据探索。表5-6 开发环境支持列表 接口种类支持内容说明挖掘产品SASSPSSR(传统)R(并行化)MahoutSparkRRapidMinerNLTK语言PythonSQL 2003SQL 99JavaC/C218、+GroovyPigScalaR前端工具iRecharts便于展现分析成果,可以结合数据结果进行展现。如果是工具,工具本身也提供较为简单的展现功能。QilickViewTableauBOCognosMSTR国内其他报表工具本方案的平台采用TDH Hadoop平台,它本身是一个并发存储、并发计算的高效平台,此次选用了TDH Discover的挖掘模块,它是在对开源的R全面支持的基础上,结合SparkR进行了代码的重大改造。并对常用的R算法进行了并行化改造,这些改造正是基于大数据中关键的体量巨大这个维度进行的优化。之前的数据挖掘由于在单机上进行,而由于数据挖掘需要对数据进行大量的衍生和关联运算,会219、让待分析的数据集积聚扩大,因而很多数据挖掘针对海量数据只能采用抽样的策略进行模型训练,让挖掘效果受到很大影响。在并发R算法的支撑下,只要节点数足够,原则上可以处理任意体量的数据,对于TB的数据,TDH在民生信用卡中心就有成熟的案例。5.5.1 数据分析流程 XX电商运营大数据平台的最终目标是数据的使用。如何利用当前邮政自身的数据,如何利用互联网以及其他的外围数据,通过大数据平台进行整合,让邮政数据产生价值是邮政大数据平台核心的目标。在数据使用的过程中,有三种形态:i. 查询、固定报表ii. OLAP分析iii. 数据统计与挖掘XX电商目前这三种应用都有,以第一种使用形态最多。随着外围数据进入大220、数据平台,并完成整合,第二第三种应用也会迅速增加,而这种应用的增加对当前的数据使用流程也会产生影响甚至是改变。针对XX电商运营大数据平台的规划,建议通过如下的分析挖掘流程来对接现有的业务分析系统(比如CRM),也通过本建议更好规划大数据平台对外的数据服务接口,以便满足逐渐增多的分析类应用需求。本方案支持多种接口,以便于利用大数据平台的高性能高扩展提升数据分析效率。本方案对数据挖掘算法提供管理,并行化R算法可通过Inceptor SQL引擎读写Hyperbase表数据;可以通过联邦查询引擎StarGate联合访问结构化和非结构化数据;可以直接读取分布式文件系统HDFS。5.5.2 R语言开发环境221、与接口Transwarp Inceptor集成了RStudio Server,RStudio是R的一种强大而便捷的IDE,提供基于web的开发环境。同时平台提供的RStudio预加载好了并行化后台以及并行化执行引擎的连接模块,并将R脚本的编写、编译、跟踪执行以及中间变量查看和绘图集于一体,为用户提供了一个强大的R的操作环境。用户除了可以自行编写R的程序脚本、调用开源版本R提供了数千个R的包和函数之外,还可以直接调用Transwarp Discover实现的并行化机器学习算法库。提供RStudio Web图形化开发界面,通过R语言调用并行算法库。5.5.3 并行化R算法支持Transwarp D222、iscover目前实现的并行化机器学习算法已经提供了常用的分类、聚类、回归等功能。还会根据进一步的具体需求在平台开发的中进一步实现更多的并行化算法。此外,Transwarp Inceptor中还包含了完整的并行化算子库,用户可以通过并行化算子进行并行化算法二次开发。现有机器学习并行算法列表:表5-7 机器学习并行算法列表算法描述LogisticRegression逻辑回归当前业界比较常用的机器学习方法,用于估计某种事物的可能性。比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等,常用于做分类。NaveBayes贝叶斯ML中的一个分类算法,常用于做文本分类。223、该分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。该模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单实用。SVM支持向量机支持向量机(SupportVectorMachine)是一种监督式学习的方法,可广泛的应用于统计分类以及回归分析,具有较高的鲁棒性。HMM时间序列算法隐马尔可夫模型(HiddenMarkovModel,HMM)作为一种统计分析模型,已经被广泛应用于时间序列分析的不同领域,如语音识别,行为识别,文字识别以及故障诊断等。K-Means聚类算法K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一。K-means算法的基本思想是:以空间224、中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。LinearRegression线性回归线性回归是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。在线性回归中,数据使用线性预测函数来建模,并且未知的模型参数也是通过数据来估计。CollaborativeFiltering协同过滤基于用户的协同过滤算法:基于一个这样的假设“跟你喜好相似的人喜欢的东西你也很有可能喜欢。”所以基于用户的协同过滤主要的任务就是找出用户的最近邻居,从而根据最近邻居的喜好做出未知项的评分预测。Genera225、lizedLinearModels广义线性模型GLM是一般线性模型的直接推广,使因变量的总体均值通过一个非线性的连接函数(linkfunction)而依赖于线性预测值,许多应用广泛的统计模型均属于广义线性模型。DecisionTree决策树(随机森林决策树)决策树是一个树形结构的预测模型,代表的是对象属性与对象值之间的一种映射关系。现有的并行化统计算法列表:表5-8现有的并行化统计算法列表算法描述Min计算某列数据的最小值.Max计算某列数据的最大值.Mean计算某列数据的平均值Variance计算某列数据的方差MinMaxNormalization归一化方法是一种简化计算的方式,通过将原始数226、据转换到某个范围内如(0,1),可以避免不同指标因取值范围的不同,对结果造成的偏差。ZNormalization将输入数据按照Z-Score进行归一化.Median计算某列数据的中位数Percentile用来计算处于某个分位数上的值,如给定参数0.5,则返回中位数Boxplot箱线图是一种描述数据分布的统计图,利用它可以从视觉的角度来观察变量值的分布情况。箱线图主要表示变量值的中位数、四分之一位数、四分之三位数等统计量。Cardinality统计某列数据中每个值的频数Histogram直方图(Histogram)又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情227、况。Binning通过指定区间数,可以返回对数据进行均匀分布后的每个区间的取值。这些算法灵活运用可以支持多种具体应用场景,包括客户画像、产品推荐、自然语言处理、语义分析、舆情分析、文本挖掘、客户行为预测等。5.5.4 可视化R软件包TDH平台集成了R语言,支持通过R语言进行统计分析、数据挖掘、机器学习,并运行在分布式计算框架中,利用R丰富的统计分析库和丰富的图形可视化方法来分析Hadoop中存储的数据。用户通过R可以分析从HDFS中读出的数据,以及SQL查询返回结果数据。下面是可视化分析结果的示例:图5-65 某地区商户分布的密度图图5-66 kmeans聚类效果图上图是用kmeans算法对商228、户根据地理位置进行聚类,并绘制聚类效果图。图5-67 箱线图效果图RStudio中绘制箱线图,展示数据的分布信息。图5-68 散点拟合平面效果图RStudio 3D绘制散点,并拟合回归平面。5.5.5 编程语言支持数据平台对外提供JDBC/ODBC接口以提供基于Transwarp Inceptor支持SQL的查询统计分析;提供R语言编程接口,结合Transwarp Inceptor中内置的并行算法库进行数据挖掘;提供RESTAPI接口WebHDFS和StarGate,方便访问HDFS与Transwarp Hyperbase;提供JAVA API编程接口,完全兼容Hadoop生态圈中全部API。229、5.5.6 自然语言处理和文本挖掘自然语言处理和文本挖掘是大数据分析中比较复杂的一类场景,需要结合分布式系统的计算能力和分析师建立有效的模型共同作用。星环TDH平台在长期真实案例的锤炼中集成了常用有效的挖掘算法,并做了平行化的加强,提供自然语言理解与语义分析工具包,从而支持文本挖掘应用。例如Transwarp Discover中包含的朴素贝叶斯是ML中的一个分类算法,常用于做文本分类。该分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。该模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单实用。此外,还包含其他多种算法如SVM都是常用在文本分析场景中的。5.5.7 实时分析基于230、TDH的平台,用Stream技术提供近乎实时的数据分析框架,在外部数据通过分布式队列加载入TDH时,TDH利用小批量实时流处理系统,可以对这些数据进行基于SQL或者R的算法分析,并实时反馈给客户实现实时分析需求。图5-59实时分析实例图5.5.8 分析管理该模块实现数据分析项目全流程管理:需求管理(需求申请、需求审核、任务分配、工作确认),过程管理(项目启动、需求量化、数据质量管理、分析模型管理、成果测试、项目结题),成果管理(成果发布、成果查询)等。流程管理采用工作流的实现方式,实现流程的可编辑和维护。本功能模块的需求申请及成果查询开放给各级业务专业人员角色,审批相关功能开放给业务与技术管理231、层人员角色,其他功能开放给数据分析人员角色。图5-60专题流程管理模块图5.5.8.1 需求管理需求管理模块从需求申请、需求审批、任务分配、工作确认等业务操作,将数据分析工作的“需求”阶段管理起来,使数据分析工作系统化,清晰化。同时此处的“需求”包含多种类别,除专题数据分析需求以外,还包含数据提取的需求。1) 需求申请分析需求由业务部门提交,在提交需求时需给出提交联系人相关信息及需求类型、分析周期、需求描述等必要信息,使分析人员了解分析内容,为了更详细阐述需求也可以上传需求文档等相关资料。2) 需求审核评估分析需求的可行性,给出需求是否审核通过及立项意见等。需求审核分为两个阶段:分别是业务部门232、的管理人员审核和技术部门的管理人员审核。需求提出必须经过业务部门,即需求提出方的管理人员的审批之后,再经过技术部门,即数据分析执行部门的管理人员的审批,才能进入后续的工作流程。3) 任务分配分析需求任务分配功能技术管理层人员根据项目情况、工作量等将该项目分配给数据分析人员,并提出相应的时间、成果要求等。4) 工作确认工作确认为数据分析人员使用,在收到任务分配后,对数据分析需求进行进一步理解和确认,并接收纸质的“数据分析需求申请”,并确认审核签字后,通过上传图片形式的文件存入系统,以此作为需求管理流程结束。5.5.8.2 过程管理过程管理模块从项目启动到项目结题的一系列业务操作,将数据分析工作的233、“分析过程”阶段管理起来,使数据分析工作系统化,清晰化。1) 项目启动数据分析人员根据要求拟定分析计划,确定分析相关人员任务安排等问题。2) 需求量化需求量化是在分析项目启动后进行的必要流程,主要依据需求理解阶段所形成的文档,结合对数据的理解进行设计,最终形成的设计文档作为指导后期模型生成的依据。3) 数据质量管理数据质量管理是指根据需求量化中的数据项生成数据质量报告及数据过滤模型,尽量剔除源数据中的脏数据,保证分析结论的质量。4) 分析模型管理分析模型主要包括数据结构说明、分析设计文档、分析模型文件、分析脚本等,技术人员在项目进行中对各类文件进行维护,在项目结束后提供下载。5) 成果测试在分234、析提交为完成状态后进行测试,同时检查相应资料是否正确,过程是否完整,是否满足需求方的要求等,最终提交测试报告及测试结论。6) 项目结题一个分析成果提交完成后需要需求提出人员确认(此部分确认工作在线下完成),经过确认的分析成果在查询时才能被查看,在未确认之前,项目为未通过状态,直到确认完毕(由数据分析人员操作),改为通过状态,同时此次分析被加入完成的分析列表中,支持查询和关键字索引。5.5.8.3 成果管理成果管理模块包含项目成果的发布以及成果查询统计操作,将数据分析工作的成果(包含提取数据结果、统计分析结果、专题分析结果)管理起来,使数据分析工作系统化,清晰化。1) 成果发布成果的发布是指项目235、结题后由数据分析人员将本项目工作成果进行发布,让参与该项目全流程的人员能够查看(优秀案例可以申请加入案例库)。并按照分析内容涉及的专业或主要应用范围划分类别,在发布的同时进行权限配置管理,保证成果及数据的安全性。2) 成果查询统计发布后的成果在展示界面按类别分类组织,并支持关键字检索和发布时间条件查询,查询结果显示项目名称、立项时间、发布时间、发布者、所属分类等关键信息,点击进入项目建设详情界面,可以查看项目各个阶段的提交记录,并支持项目文档的批量下载,同时有相应权限的人员,可以对成果进行维护(版本更新、删除等),并支持对全国中心及各省专题的完成情况按年、按月等进行统计。另外提取数据的成果,也236、可通过此功能进行查看和下载。5.5.9 分析支持平台本身的R语言嵌入式分析挖掘,通过前台应用支持采用B/S架构类型,对终端设备、操作系统、浏览器的要求和系统整体要求一致,本方案中已有相关说明,此处不赘述,能够提供图形化界面操作支持,操作界面包含简体中文。能够实现对TB以上级别的数据进行分析挖掘的功能,并对分析挖掘中的中间数据和结果数据的灵活存储提供支持,能够实现多数据来源输入输出支持,同时处理过程的数据预览功能,对数据分析挖掘算法进行有效管理,每个算法都能够灵活选择系统各类数据源。5.5.10 指标维护首先从已有的固化分析结果中,抽取出指标的内容。并提供这些指标的查询、增加、修改、删除功能,以237、对该指标库进行维护。对指标的内容、生成的业务规则、算法进行记录,可以进行灵活的设置。同时,保证在切换新的数据源的情况下,可以实现指标的迁移和重用,不必全部重新维护。5.5.11 分析流程固化分析流程固化是将数据分析开发实现的数据分析过程(包含开发脚本和数据挖掘算法)固化到系统中,同时通过自动化的更新数据源,实现数据分析流程的固化过程。从而实现对分析挖掘模型固化的支持,能够根据实时/非实时数据集进行自动分析,支持通过配置方式实现工作流管理,将更多的分析工作成果自动化、长期化,反馈到相关人员或系统。5.5.12 分析结果发布分析结果发布是将数据分析流程固化以后,通过系统自动计算,将数据分析的结果生238、成出来,并进行展示和发布的过程。这一功能可以对分析挖掘的脚本和模型的快速应用、服务提供支持,可以快速生成分析报告和图表;可以发布实时/非实时的分析应用;可以使用Web方式访问分析应用成果。5.5.13 环境支持本平台数据分析部分包含两个环境:1) 内置RStudio为B/S架构2) 客制化的数据算法、模型、注册等采用自有的Java开发框架实现,也采用B/S架构整个数据分析都采用浏览器方式,因此支持如下环境:操作系统包括红旗Linux、RedHat Enterprise Linux、CentOS、SUSE*Linux Enterprise Server等;浏览器版支持IE8.0及以上版本、FIR239、EFOX20.0及以上、OPERA、Chrome23.0及以上等主流浏览器;移动客户端支持安卓/IOS/WINDOWS等操作系统。6 技术要求实现6.1 产品架构图8-1 TDH产品架构TDH架构采用的是单一纯Hadoop式的数据平台架构,在结构上分为实时处理以及海量数据存储分析集群。大数据统一平台既可以处理结构化的数据,实现数据整合平台、历史数据平台的处理,也可以处理非结构化、半结构化的数据,实现大数据平台、外部数据采集平台的支撑,同时,基于平台提供的实时流处理能力,可以满足准实时数据服务平台的需求。配合平台内工具组件和应用开发,数据服务总线、统一调度系统、数据管控平台的功能需求。数据接入层240、系统接入数据方式多样化,包括关系型数据库数据、实时数据、文件数据、图片数据等。面对于多种数据接入的需求,数据平台提供多种针对性的接入方式以及工具,通过分布式消息队列Kafka接入实时数据;通过Sqoop、DataStage等ETL工具全量或定时增量抽取同步关系型数据库,也可采用文本文件方式批量导入;自带HUE作为数据抽取管理工具,提供图形化的界面定义数据抽取规则,并可与其他工具相结合,完成数据抽取的工作流;同时,分布式文件系统HDFS通过FTP Over HDFS提供文件通过FTP传入HDFS的通道;通过Flume提供海量日志文件的聚汇到HDFS的功能。数据存储层在数据存储层中,底层为统一分布241、式存储HDFS,HDFS采用三份副本策略保证数据的安全性以及可靠性。然而,随着时间的推移,很少被使用到的归档历史数据会越来越多,占用大量的HDFS存储空间,HDFS通过Erasure Code技术将历史冷数据在保证数据安全可靠的基础上降低其存储开销。在HDFS之上提供分布式NoSQL(Not Only SQL)实时数据库 Hyperbase为高并发检索分析以及事务支持提供平台级支撑。Hyperbase通过多种索引支持海量数据多维度的秒级检索查询,包括全局索引,全文索引,组合索引等,另外Hyperbase与Titan相结合支持图数据库。在平台存储层,支持各类结构化、半结构化、非结构化海量数据的低242、成本存储,为超长时间的海量历史数据存储和使用提供基础支撑。并通过Hyperbase对于海量数据高并发低延时的检索能力,很好的支持移动互联业务场景的数据访问需求。数据计算层在数据存储层之上的数据计算层通过YARN提供统一的资源管理调度,可以动态创建和销毁集群,灵活部署业务。采用Inceptor内存计算分析能力为贵州银行的各个应用提供高效的分析挖掘能力。在Inceptor中,通过独立的分布式内存列式存储Holodesk,解决开源Spark的稳定性问题以及进一步提供交互式分析能力,同时为了降低平台建设成本与提高平台内存分析数据量,分布式内存存储可建在内存或者固态硬盘SSD上。利用Spark高速内存迭243、代计算的优势,通过内置的基于Spark计算框架的基础并行统计算法库以及机器学习算法库,为大数据平台提供高效的数据挖掘能力。同时,保留传统的MapReduce计算框架,完整大数据平台对于各个计算框架的支持。此外,实时流数据通过Spark Streaming支持实时数据的低延时高吞吐的处理。通过消息队列Kafka消费实时数据流,做到数据不丢不重,基于Spark Streaming提供类似于批处理系统的计算能力、健壮性、扩展性的同时,将数据时延降低至秒级,适用于各种实时数据的复杂处理业务场景。数据分析层在数据分析层,通过Inceptor对存储在HDFS、Hyperbase以及分布内存缓存Holode244、sk上的数据进行统计检索分析,并为数据服务层提供JDBC/ODBC接口,同时为了降低数据平台学习与使用成本,方便传统业务迁移,Inceptor兼容支持SQL2003标准以及PL/SQL。对于数据挖掘,在分析层,提供可视化的挖掘建模设计工具RStudio,使用R语言进行交互式数据挖掘与统计分析,挖掘数据深度规律并建立数据模型。同时支持Mahout,利用Mahout中丰富的并行化机器学习算法对海量数据进行分析挖掘。数据应用层在数据服务层,通过数据存储层、计算层以及分析层提供的接口,封装后提供多种数据服务能力,包括海量数据高并发检索查询,即席查询,海量数据交互式统计分析,数据可视化,实时数据比对异常245、检测告警,实时数据基于滑动时间窗口统计分析,海量数据统计挖掘以及数据平台中数据交换等。通过大数据平台对外提供的各种服务,在其之上实现贵州银行各类应用,包括管理驾驶舱、统一报表平台、数据分析、实时数据处理等。数据管理与系统安全此外,大数据平台通过安全通信协议和角色权限管理功能,在软件层面提供通信安全和数据访问安全的双重保障,有效的对各个部门以及下级单位的数据访问进行控制和安全管理,实现数据平台4A级(认证Authentication、账号Account、授权Authorization、审计Audit)统一安全管理解决方案。通过LDAP管理用户账号,使用Kerberos进行用户身份认证,同时大数据246、平台实现基于角色的访问权限控制(Role Based Access Control),最后所有的安全访问审计内容都会记录在数据平台的日志中。大数据平台中,从数据的接入,如分布式消息队列Kafka的Topic权限控制,到平台中的各个组件都支持安全管理,包括HDFS,YARN,Hyperbase,Inceptor等组件。同时为了重要数据的安全考虑,HDFS提供加密存储。最后,数据平台提供易用的管理运维工具,降低数据平台运维成本,包括集群的安装,参数的配置,节点的增删,服务的监控,资源指标的监控以及异常的记录与告警。6.1.1 基础构建平台图8-2核心技术产品架构图Transwarp Data Hu247、b大数据基础平台,底层为Transwarp Hadoop统一分布式存储,其上包含了分布式流处理Transwarp Stream,交互内存分析SQL引擎Transwarp Inceptor,分布式实时在线数据库Transwarp Hyperbase,分布式机器学习引擎Transwarp Discover,以及基于Transwarp YARN的多租户分布式计算集群Inceptor。以上组件由Transwarp Manager进行统一管理和监控。内部组件通过Stargate进行通信,同时各个组件也对外开放接口。 Inceptor:ODBC/JDBC、Stargate Hyperbase:Hyperb248、ase driver、Stargate、Java API、Scala API Stream :Stargate、专用API Discover: 专用API、Stargate6.1.2 大数据平台组件功能介绍6.1.2.1 Transwarp Hadoop分布式文件系统本平台采用基于HDFS的大数据存储系统,同时支持Erasure Code以及HDFS文件加密存储。Hadoop分布式文件系统(HDFS)是运行在通用硬件上的分布式文件系统。HDFS提供了一个高度容错和高吞吐量的海量数据存储解决方案。HDFS已经在各种大型在线服务和大型存储系统中得到广泛应用,已经成为海量数据存储的事实标准。HDFS249、通过一个高效的分布式算法,将数据的访问和存储分布在大量服务器之中,在可靠的多备份存储的同时还能将访问分布在集群中的各个服务器之上,是传统存储构架的一个颠覆性的发展。NameNode管理元数据,包括文件目录树,文件-块映射,块-数据服务器映射表等;DataNode负责存储数据、以及响应数据读写请求;客户端与NameNode交互进行文件创建/删除/寻址等操作,之后直接与DataNode交互进行文件I/O。采用NameNode HA方案保证HDFS的高可靠性,始终有一个NameNode做热备,防止单点故障问题。采用QJM的方式实现HA,文件系统元数据存储在由JournalNode组成的高可靠集群上。250、同时当数据量太大导致单个NameNode达到处理瓶颈时,提供HDFS Federation功能,不同的Name Service(由NameNode组成)处理挂载在HDFS上不同目录下的文件。HDFS的每个数据块分布在不同机架的一组服务器之上,在用户访问时,HDFS将会计算使用网络最近的和访问量最小的服务器给用户提供访问。由于数据块的每个复制拷贝都能提供给用户访问,而不是仅从数据源读取,HDFS对于单数据块的访问性能将是传统存储方案的数倍。对于一个较大的文件,HDFS将文件的不同部分存放于不同服务器之上。在访问大型文件时,系统可以并行从服务器阵列中的多个服务器并行读入,增加了大文件读入的访问带宽251、。通过以上实现,HDFS通过分布式存储的算法,将数据访问均摊到服务器阵列中的每个服务器的多个数据拷贝之上,单个硬盘或服务器的吞吐量限制都可以数倍甚至数百倍的突破,提供了极高的数据吞吐量。HDFS将文件的数据块元数据信息存放在NameNode服务器之上,文件数据块分散的存放在DataNode服务器上。当整个系统容量需要扩充时,只需要增加DataNode的数量,系统会自动实时将新的服务器匹配进整体阵列之中。之后,文件的分布算法会将数据块搬迁到新的DataNode之中,不需任何系统停机维护或人工干预。通过以上实现,HDFS可以做到在不停止服务的情况下实时加入新的服务器作为分布式文件系统的容量升级,不252、需要人工干预文件的重新分布。HDFS文件系统假设系统故障(服务器、网络、存储故障等)是常态,而不是异常。因此通过多方面保证数据的可靠性。数据在写入时被复制多份,并且可以通过用户自定义的复制策略分布到物理位置不同的服务器上;数据在读写时将自动进行数据的校验,一旦发现数据校验错误将重新进行复制。6.1.2.2 Transwarp Inceptor内存分析交互引擎Transwarp Inceptor是基于Spark的分析引擎,从下往上有三层架构,最下面是一个分布式内存列式存储(Transwarp Holodesk),可建在内存或者SSD上,中间层是Spark计算引擎层,最上层包括一个完整的SQL99253、和PL/SQL编译器、统计算法库和机器学习算法库,提供完整的R语言访问接口。Spark是Map/Reduce计算模式的一个全新实现。Spark的创新之一是提出RDD(Resilient Distributed Dataset)的概念,所有的统计分析任务是由对RDD的若干基本操作组成。RDD可以被驻留在内存中,后续的任务可以直接读取内存中的数据,因此速度可以得到很大提升。Spark的创新之二是把一系列的分析任务编译成一个由RDD组成的有向无环图,根据数据之间的依赖性把相邻的任务合并,从而减少了大量的中间结果输出,极大减少了磁盘I/O,使得复杂数据分析任务更高效。从这个意义上来说,如果任务够复杂,254、迭代次数够多,Spark比Map/Reduce快100倍或1000倍都很容易。基于这两点创新,可在Spark基础上进行批处理、交互式分析、迭代式机器学习、流处理,因此Spark可以成为一个用途广泛的计算引擎,并在未来取代Map/Reduce的地位。Inceptor可以分析存储在HDFS,HBase或者Holodesk分布式缓存中的数据,可以处理的数据量从GB到数十TB,即使数据源或者中间结果的大小远大于内存,也可高效处理。另外也通过改进Spark和YARN的组合,提高了Spark的可管理性。这些使得Inceptor成为目前真正适合企业生产环境7x24小时部署的Spark衍生产品。同时星环不仅仅255、是将Spark作为一个缺省计算引擎,也重写了SQL编译器,提供更加完整的SQL支持。图8-3 Inceptor模块架构同时,星环通过改进Spark使之更好的与HBase融合。星环基于HBase的产品叫做Hyperbase,通过结合Inceptor,可以为HBase提供完整的SQL支持,包括批量SQL统计、OLAP分析以及高并发低延时的SQL查询能力,使得HBase的应用可以从简单的在线查询应用扩展到复杂分析和在线应用结合的混合应用中,大大拓展了HBase的应用范围。这两个产品的组合使得星环在市场上处于领先地位。6.1.2.3 稳定的Spark计算框架面对企业级需求,企业目前应用开源Spark的256、主要困难在稳定性、可管理性和功能不够丰富上。开源Spark在稳定性上还有比较多的问题,在处理大数据量时可能无法运行结束或出现Out of memory,性能时快时慢,有时比Map/Reduce更慢,支持的SQL语法仍然非常有限,无法应用到复杂数据分析业务中。然而从星环的Transwarp Inceptor中,上述问题都已经解决并经过实践上限案例的考验,并且Inceptor对Spark进行了大量的改进,极大提高了Spark功能和性能的稳定性。Transwarp Inceptor能稳定的运行7*24小时,并能在TB级规模数据上高效进行各种稳定的统计分析。6.1.2.4 支持Memory+SSD的混257、合存储架构跨内存/闪存等介质的分布式混合列式存储,可用于缓存数据供Spark高速访问。小内存+SSD+磁盘的新方案可以提供跟大内存+磁盘的传统方案性能接近的交互式SQL分析能力。由于内存的价格是SSD的10倍,因此可以采用SSD来替代内存作为缓存,一方面可以增大分布式内存数据库Holodesk存储容量,另一方面可以降低成本,同时性能没有明显损失。6.1.2.5 完整SQL功能支持内置ORACLE函数支持列表表8-1 Conversionfunctions函数支持Oracle星环TDH平台ASCIISTR支持BIN_TO_NUM支持CAST支持CHARTOROWID支持COMPOSE支持CONV258、ERT支持DECOMPOSE支持HEXTORAW支持NUMTODSINTERVAL支持NUMTOYMINTERVAL支持RAWTOHEX支持RAWTONHEX支持ROWIDTOCHAR支持ROWIDTONCHAR支持TO_CHAR(character)支持TO_CHAR(datetime)支持TO_CHAR(number)支持TO_CLOB支持TO_DATE支持TO_DSINTERVAL支持TO_LOB支持TO_MULTI_BYTE支持TO_NCHAR(character)支持TO_NCHAR(datetime)支持TO_NCHAR(number)支持TO_NCLOB支持TO_NUMBER支持259、TO_SINGLE_BYTE支持TO_YMINTERVAL支持TRANSLATE.USING支持UNISTR支持表8-2 Miscellaneousfunctions函数支持Oracle星环TDH平台BFILENAME支持COALESCE支持DECODE支持DEPTH支持DUMP支持EMPTY_BLOB,EMPTY_CLOB支持EXISTSNODE支持EXTRACT(XML)支持EXTRACTVALUE支持GREATEST支持LEAST支持NLS_CHARSET_DECL_LEN支持NLS_CHARSET_ID支持NLS_CHARSET_NAME支持NULLIF支持NVL支持NVL2支持PAT260、H支持SYS_CONNECT_BY_PATH支持SYS_CONTEXT支持SYS_DBURIGEN支持SYS_EXTRACT_UTC支持SYS_GUID支持SYS_TYPEID支持SYS_XMLAGG支持SYS_XMLGEN支持UID支持UPDATEXML支持USER支持USERENV支持VSIZE支持XMLAGG支持XMLCOLATTVAL支持XMLCONCAT支持XMLFOREST支持XMLSEQUENCE支持XMLTRANSFORM支持表8-3 AgregateFunctions函数支持Oracle星环TDH平台AVG支持CORR支持COUNT支持COVAR_POP支持COVAR_SAM261、P支持CUME_DIST支持DENSE_RANK支持FIRST支持GROUP_ID支持GROUPING支持GROUPING_ID支持LAST支持MAX支持MIN支持PERCENTILE_CONT支持PERCENTILE_DISC支持PERCENT_RANK支持RANK支持REGR_(LinearRegression)Functions支持STDDEV支持STDDEV_POP支持STDDEV_SAMP支持SUM支持VAR_POP支持VAR_SAMP支持VARIANCE支持表8-4 ObjectReferenceFunction函数支持Oracle星环TDH平台DEREF支持MAKE_REF支持R262、EF支持REFTOHEX支持VALUE支持支持超大数据立方。支持雪花、星型等复杂分析模型等。6.1.2.6 Transwarp Discover机器学习引擎Transwarp Discover是针对海量数据平台提供的分布式机器学习引擎,主要由R语言、Spark分布式内存计算框架以及MapReduce分布式计算框架构成。Discover支持R语言引擎,用户可以通过R访问HDFS或者Inceptor分布式内存中的数据。在Discover中,用户既可以通过R命令行,也可以使用图形化的RStudio执行R语言程序来对TDH中的数据进行分析挖掘,易用性极高。Discover内置了大量常用的并行化机器学习263、算法和统计算法,同时兼容数千个开源的R包,配合TDH内置的高度优化的专有算法,可高速分析关联关系网络等图数据。此外,Discover还支持用户直接将R语言代码处理逻辑作用于分布式数据集中,使用户的操作更加灵活方便。图8-4 Discover 模块架构星环Discover的并行化算法库主要包含机器学习算法库与统计算法库,利用Spark在迭代计算和内存计算上的优势,将并行的机器学习算法与统计算法运行在Spark上,可以有效提高大数据量上算法的执行效率。例如:机器学习算法库包括逻辑回归、朴素贝叶斯、支持向量机、随机森林、聚类、线性回归、推荐算法等,统计算法库包括均值、方差、中位数、直方图、箱线图等。264、可以支持后期在平台上搭建多种分析型应用,例如用户行为分析、精准营销,将对用户贴标签、进行分类,此类应用都会用到平台的数据挖掘功能。Discover集成了RStudioServer,RStudio是R的一种强大而便捷的IDE,提供基于web的开发环境,支持多人同时在线。同时平台提供的RStudio预加载好了并行化后台以及并行化执行引擎的连接模块,并将R脚本的编写、编译、跟踪执行以及中间变量查看和绘图集于一体,为用户提供了一个强大的R的操作环境。用户除了可以自行编写R的程序脚本、调用开源版本R提供了数千个R的包和函数之外,还可以直接调用Discover实现的并行化机器学习算法库。Discover目265、前实现的并行化机器学习算法已经提供了常用的分类、聚类、回归、推荐等功能。还会根据进一步的具体需求在平台开发的中进一步实现更多的并行化算法。此外,Discover中还包含了完整的并行化算子库,用户可以通过并行化算子进行并行化算法二次开发。6.1.2.7 并行化统计算法库星环Discover集成多种并行化统计算法,支持从HDFS或者Incteptor上获取数据,统计算法运行在Spark上,利用Spark的迭代计算和计算性能上的优势,将统计算法的运行任务分发给计算集群,实现各个计算节点负载均衡,提高统计任务的计算效率,统计算法库包括均值、方差、中位数、直方图、箱线图等,支持后期在星环大数据平台上开发266、搭建各种分析应用。现有的并行化统计算法列表:表8-5 统计算法列表算法描述Min计算某列数据的最小值.Max计算某列数据的最大值.Mean计算某列数据的平均值Variance计算某列数据的方差PercentileApprox计算指定列的百分位数MinMaxNormalization归一化方法是一种简化计算的方式,通过将原始数据转换到某个范围内如(0,1),可以避免不同指标因取值范围的不同,对结果造成的偏差。ZNormalization将输入数据按照Z-Score进行归一化.Median计算某列数据的中位数Percentile用来计算处于某个分位数上的值,如给定参数0.5,则返回中位数Boxpl267、ot箱线图是一种描述数据分布的统计图,利用它可以从视觉的角度来观察变量值的分布情况。箱线图主要表示变量值的中位数、四分之一位数、四分之三位数等统计量。Cardinality统计某列数据中每个值的频数Correlation计算两列数据的相关性Histogram直方图(Histogram)又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。Binning通过指定区间数,可以返回对数据进行均匀分布后的每个区间的取值。Pie通过输入RDD,构造饼图BoxPlotApprox计算指定列的boxplot参数,包括最小值、1/4分位数、中位数、3/4分位数、最大值BoxPl268、ots绘制样本所有列的箱线图6.1.2.8 机器学习并行算法库为了从庞大的数据库中获取有用的高价值密度的数据,星环Discover集成多种机器学习并行算法,支持读取HDFS和inceptor数据,包括分类算法、回归算法、聚类算法、关联分析等多种算法。表8-6 机器学习算法列表算法描述LogisticRegression逻辑回归当前业界比较常用的机器学习方法,用于估计某种事物的可能性。比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等,常用于做分类。NaveBayes朴素贝叶斯ML中的一个分类算法,常用于做文本分类。该分类器基于一个简单的假定:给定目标值时属269、性之间相互条件独立。该模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单实用。SVM支持向量机支持向量机(SupportVectorMachine)是一种监督式学习的方法,可广泛的应用于统计分类以及回归分析,具有较高的鲁棒性。K-Means聚类算法K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一。K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。LinearRegression线性回归线性回归是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量270、关系的一种统计分析方法,运用十分广泛。在线性回归中,数据使用线性预测函数来建模,并且未知的模型参数也是通过数据来估计。CollaborativeFiltering协同过滤基于用户的协同过滤算法:基于一个这样的假设“跟你喜好相似的人喜欢的东西你也很有可能喜欢。”所以基于用户的协同过滤主要的任务就是找出用户的最近邻居,从而根据最近邻居的喜好做出未知项的评分预测。Apriori频繁项集频繁项挖掘,频繁项集挖掘是关联规则挖掘中的首要的子任务。它主要用于挖掘集合中经常一起共现的元素,如经常被一起购买的商品等。AssociateRule关联挖掘关联规则分析,根据挖掘出的频繁项集,进一步挖掘如商品间或消费间271、的关联系数决策树(DecisionTree)决策树分类方法,采用的是基于最小距离的基尼指数估计函数,用来决定由该子数据集生成的决策树的拓展形。其中如果目标变量是标称的,称为分类树;如果目标变量是连续的,称为回归树。分类树是使用树结构算法将数据分成离散类的方法。人工神经网络算法(ANN)人工神经网络(ArtificialNeuralNetworks,ANN)是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。它的优点是:分类的准确度高,并行分布处理能力强,分布存储及学习能力强,对噪声神经有较强的鲁棒性和容错能力,能充分逼近复杂的非线性关系,具备联想记忆的功能等。随机森林(RandomF272、orest)随机森林(RandomForest,RF)是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。梯度提升树(Gradient-BoostedTrees)Gradient-BoostedTrees(GBTs)就是一组决策树簇,它通过迭代训练决策树来最小化损失函数。保序回归IsotonicRegression算法用于回归模型的建立Apriori算法Apriori算法是一种挖掘关联规则的算法,用于挖掘其内含的、未知的却又实际存在的数据关系。Apriori算法分为两个阶段,一是寻找频繁项集,二是由频繁项集找关联规则。协同滤波(CF)推荐系统中应用最广泛的算法就是协同273、滤波算法,该算法用于预测用户-商品关联矩阵中所缺失的部分。FP-growthFP-growth是一种不产生候选模式而采用频繁模式增长的方法挖掘频繁模式的算法PageRankPageRank是Google专有的算法,用于衡量特定网页相对于搜索引擎索引中的其他网页而言的重要程度。TF-IDFTFI-DF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。Word2VecWord2Vec是一个将单词转换成向量形式的工具。奇异值分解(SVD)奇异值分解(singularvaluedecomposition,SVD)能够将一个矩阵分解成3个矩阵U,andV,其中U是一个的274、标准正交矩阵,是一个对角元素是非负且递减的对角矩阵,V是一个标准正交矩阵主成分分析(PCA)主成分分析(PCA)是一种统计方法,目的是将多个变量通过线性变换以选出较少个数重要变量,达到降维的目的。Histogram造指定列的直方图算法BoxPlot绘制样本所有列的箱线图图形算法Binning对输入的RDD构建等区间直方图算法Pie通过输入RDD,构建饼图算法流处理统计算法计算流数据的平均值与方差算法流处理统计中位数算法计算流数据的中位数流处理统计终值算法计算流数据的最大值最小值算法流处理统计分位数算法计算流数据的分位数算法流处理数据统计算法计算指定范围内的数据个数算法流处理数据数据清洗统计增量275、数据中的异常值个数算法流处理数据直方图计算增量数据的等区间直方图算法流处理数据箱型图算法计算增量数据的箱线图算法流处理数据直方图算法计算增量数据的直方图算法流处理数据密度算法基于增量学习的二维核密度估计算法流处理数据kmean算法基于增量学习的kmeans算法流处理数据线性回归算法基于增量学习的线性回归算法星环Discover集成了多种机器学习算法,并支持R语言、RStudio;为用户提供一个开放的R语言操作环境,用户后期基于平台开发各种分析应用,比如银行商圈聚类和精准营销,商圈,是指商店以其所在地点为中心,沿着一定的方向和距离扩展,吸引顾客的辐射范围,在具体计算过程中,我们可以定义一个表达区276、域内部的商户的稀疏程度的值,该值达到一定程度,则称该区域为一个商圈,银联大数据具有很高的价值,无论是真实消费记录,还是准确地理位置的行为信息,这些数据可以为建模提高数据来源。目前,星环大数据平台在金融、电信等行业和客户一起合作开发了分析应用,并且取得良好的效果,为客户提供了精准的商业分析;6.1.2.9 Transwarp Hyperbase列式存储数据库Hyperbase实时在线数据处理引擎以Apache HBase为基础,具备与传统数据库相近的接口以及开发方式,以减少系统迁移和新应用开发成本,支持SQL2003以及PL/SQL,星环的Hyperbase集OLTP、OLAP、批处理和搜索引擎277、于一体,满足企业高并发的在线业务需求。在OLTP方面,Hyperbase支持高并发毫秒级数据插入/修改/查询/删除(CRUD),结合InceptorSQL引擎,可以支持通过SQL进行高并发的CRUD;支持分布式事务处理;支持常见数据类型,可更高效的存取数据。在OLAP方面,Hyperbase支持多种索引,包括全局索引(Global Index)、辅助索引、局部索引(Local Index)以及高维索引(high-dimensional index);结合Inceptor,可进行行列存储转换,进行秒级高效分析;同时支持复杂查询条件,自动利用索引加速数据检索,无需指定索引;与Inceptor引擎相278、结合后,充分利用Hyperbase的内部数据结构以及全局/辅助索引进行SQL执行加速,可以满足高速的OLAP数据分析应用需求。在批处理方面,Hyperbase通过为Inceptor引擎提供高效数据扫描接口,通Inceptor的扩展SQL语法,使得Inceptor能在Hyperbase之上做全量数据的高速统计,性能会比Hive/MapReduce跑在HBase上快510倍。此外,Hyperbase还支持全文索引,通过建立增量全文索引,对于全文关键字搜索达到秒级的返回。图8-5 Hyperbase模块架构Hyperbase支持分布式事务处理,支持多表的分布式事务处理,保证数据的一致性和操作的原子性279、。Transwarp Hyperbase支持多数据,包括结构化数据、半结构化(JSON/BSON,XML形式存储)、非结构化数据,例如纯文本、图片或者视频大对象的高效存储以及读取。基于SQL的快速批处理Transwarp Hyperbase支持通过SQL语言对Hyperbase中的数据进行高效批量统计的能力。目前大数据场景越来越复杂,批处理任务场景是目前面临的一个难点之一,此种类型任务最为常见,需要耗费大量计算资源、磁盘IO,负载巨大,对时间要求不高,往往通过Spark或者Map/Reduce方式进行具体的任务执行,最终将结果写入磁盘或返回。而SQL的高度支持是实现批量处理的一个技术难点,因此280、有必要支持通过SQL对Transwarp Hyperbase中的数据进行高效的批量统计能力。Transwarp Hyperbase通过Transwarp Inceptor的扩展SQL语法,同时充分利用Transwarp Hyperbase的内部数据结构以及全局/辅助索引进行SQL执行加速,可以满足高速的OLAP数据分析应用需求;同时也支持高速的SQL离线批处理。支持在在一个事务中批量执行多个增删改操作,在正式提交前事务不生效,可以回退。低延时高并发查询通过Inceptor对Hyperbase上的数据进行SQL统计分析,完整支持SQL2003和大部分PL/SQL,支持使用大表交互等一系列复杂的S281、QL分析语法操作。Hyperbase支持多种索引,包括全局索引(Global Index)、局部索引(Local Index)、高维索引(High-Dimensional Index)以及全文索引(Full-Text Index)等;结合Inceptor支持通过SQL进行复杂条件毫秒级高并发查询。在Transwarp Hyperbase中通过使用索引来加快数据的查询速度。包括三种索引:本地索引、全局索引、全文索引,支持索引的自动创建(在创建表时指定索引),也支持对已有表创建索引。索引的基本设计思想是对Transwarp Hyperbase表中的需要经常作为查询条件的列建立一个映射到主数据的索引282、。查询时可以利用索引特性进行快速定位并返回查询结果。实验证明,通过使用索引,用户查询的响应速度可以达到原来的20100倍。Hyperbase支持全局、局部、高维索引和高级过滤器,且Transwarp Hyperbase构建了全局索引、辅助索引和全文索引,扩展了SQL语法,满足在线存储和在线业务分析系统(OLAP)的低延时需求,实现高并发低延时的OLAP查询。基于Lucene的分布式全文检索TDH平台提供与ElasticSearch集成,ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多租户的全文搜索引擎,基于RESTfulweb接口。ElasticSearch是283、用Java开发的,设计用于云计算中,能够实时搜索,具有稳定、可靠、快速等特点,安装使用方便。Hyperbase中提供了全文索引的功能,通过ElasticSearch能够对Hyperbase中的数据进行全文检索。全文索引功能集成在Transwarp Hyperbase中,可在Hyperbase上建立索引任务,通过Spark分布式计算框架把子任务分发给节点服务器,把需求作为查询条件的列建立一个映射到主数据的索引,利用平台的处理能力,结合BigTable实时创建索引并进行搜索,快速返回搜索结果。集中信息配置使用Zookeeper进行集中配置,启动时可以指定把ElasticSearch上的相关配置文件284、上传Zookeeper,多机器共用。这些Zookeeper中的配置不会再拿到本地缓存,系统直接读取Zookeeper中的配置信息。配置文件的变动,所有机器都可以感知到。另外,分布式全文检索模块的一些任务也是通过Zookeeper作为媒介发布的。目的是为了容错。接收到任务,但在执行任务时崩溃的机器,在重启后,或者集群选出候选者时,可以再次执行这个未完成的任务。自动容错分布式全文检索模块支持对索引分片,并对每个分片创建多个索引子任务。每个子任务都可以对外提供服务。一个分片的子任务挂掉不会影响索引服务。,支持在其它机器上把失败机器上的索引分片任务重建并投入使用。实时搜索支持立即推送索引分片(也支持慢285、推送,在计算资源不够的情况下),支持秒内检索到新加入的索引,同时,索引结果无延迟推送给上层用户;支持索引结果和调用数据存放在内存里面,快速响应系统索引请求,同时,新索引也可以调用存放在内存的数据子集,节约索引开销;直到任务结束后,释放存在内存的数据子集,重新分配计算资源。事务日志支持事务日志,确保索引操作无丢失,即使整个集群因故重启或者任务没有索引到磁盘,重启后,索引模块仍然可以根据日志记录,快速恢复索引任务。批量建立索引索引存放在分布式数据库Hyperbase上,索引任务下达时,模块把索引任务翻译成MR任务,批量建立索引,通过MR任务把索引计算任务分发给计算节点,节点完成索引任务后统一汇总上286、传计算结果。高并发分布式事务处理Transwarp Hyperbase通过Transwarp Inceptor的扩展SQL语法,进行事务处理以及事务回滚,通过一致性的事务操作,保证数据更新的一致性。事务处理(transaction)是数据库保证原子性(atomicity)的方法。原子性是指一系列任务在系统中只会有完成和未完成两种状态,不会有只完成了一半的情况。事务处理的任务都是对表本身有修改的语句,包括增删改,也就是SQL中的DML语句:LOAD/INSERT/UPDATE/DELETE。TDH支持通过InceptorShell和JDBC/ODBC接口进行事务处理,提供标准JDBC(包括JDB287、Ctype4driver)、ODBC驱动,ODBC驱动兼容linux、windows(64位)。InceptorSQL的事务处理指令为COMMIT TRANSACTION(提交事务)或者ROLLBACK TRANSACTION(回滚事务,撤回事务)。在Inceptor中对事务表的映射处理时,系统会默认任何active session都包含在一个事务中,所以无需像在一些其他数据库中专门通过BEGIN TRANSACTION开始事务。在Inceptor中COMMIT TRANSACTION或者ROLLBACK TRANSACTION后,一个事务即结束,系统会默认接着自动开始另一个事务。Hyperb288、ase支持SQL命令COMMIT TRANSACTION和ROLLBACK TRANSACTION进行跨表跨行的分布式事务处理以及事务回滚,保证数据更新的一致性。表8-7 分布式事务支持功能描述Transwarp HyperbaseApacheHBase批量事务在一个事务中批量执行多个增删改操作,在正式提交前事务不生效,可以回退。支持begin/endtransaction,commit,rollback不支持自治事务自治事务从当前事务开始,在其自身的语境中执行。它们能独立的被提交或重新运行,而不影响正在运行的事务。兼容Oracle语法:PRAGMAAUTONOMOUS_TRANSACTION289、不支持多种索引在Hyperbase中,通过使用索引来加快数据的查询速度。Hyperbase中有三种索引:本地索引、全局索引、全文索引。本章节将首先介绍Hyperbase中本地索引、全局索引两种索引在数据查询中的优势,之后详述两种索引的添加及使用:本地索引(Local Index),全局索引(Global Index)。之后将阐述Local与Global两种索引的选择技巧。最后本章节将介绍全文索引。使用索引的优势主要在于两点:查询快速以及使用方便。查询快速:索引的基本设计思想是对HBase表中的需要经常作为查询条件的列建立一个映射到主数据的索引。查询时可以利用索引特性进行快速定位并返回查询结果。290、实验证明,通过使用索引,用户查询的响应速度可以达到原来的20100倍。索引使用非常方便。无论是通过HBase Shell还是JAVA API,用户都可以很快的学会使用。如果用户是通过上层TRANSWARP的SQL直接调用,用户只需要学会几条简单的SQL即可。两种索引的具体使用方式可见本章节后续部分对于高并发的对外公众查询信息系统,需要将Hyperbase与Inceptor相结合。星环的Hyperbase集OLTP、OLAP、批处理和搜索引擎于一体,满足企业高并发的在线业务需求。在OLTP方面,Hyperbase支持高并发毫秒级数据插入/修改/查询/删除(CRUD),结合InceptorSQL引291、擎,可以支持通过SQL进行高并发的CRUD;支持分布式事务处理;支持常见数据类型,可更高效的存取数据。在OLAP方面,Hyperbase支持多种索引,包括全局索引(Global Index)、局部索引(Local Index)以及高维索引(High-Dimensional Index);结合Inceptor,可进行行列存储转换,进行秒级高效分析;同时支持复杂查询条件,自动利用索引加速数据检索,无需指定索引;与Inceptor引擎相结合后,充分利用Hyperbase的内部数据结构以及全局/辅助索引进行SQL执行加速,可以满足高速的OLAP数据分析应用需求。在批处理方面,Hyperbase通过为I292、nceptor引擎提供高效数据扫描接口,通过Inceptor的扩展SQL语法,使得Inceptor能在Hyperbase之上做全量数据的高速统计,性能会比Hive/MapReduce跑在HBase上快510倍。此外,Hyperbase还支持全文索引,通过建立增量全文索引(全文索引首先会对记录做分词处理,再对分词结果做相应索引),对于全文关键字搜索达到秒级的返回。Hyperbase索引的基本设计思想是对HBase表中的需要经常作为查询条件的列建立一个映射到主数据的索引。查询时可以利用索引特性进行快速定位并返回查询结果。实验证明,通过使用索引,用户查询的响应速度可以达到原来的20100倍。并且Hy293、perbase的索引使用非常方便。无论是通过HBase Shell还是JAVA API,都可以很方便使用。此外,通过上层Transwarp Inceptor,可以使用SQL直接调用。Local Index的索引是Region级别的索引:Local Index不涉及到网络交互,故其可以保证本地事务。索引与原始数据可以保证强一致性。不会出现数据不一致的情况。Local Index可以在创建表时同时创建索引,也可以为已有表中数据生成索引Global Index的索引存储与原表独立,索引本身是以一张表的形式存在。Hyperbase可以支持Global Index的新建索引、删除索引及重建索引操作。全文294、索引通过建立词库的方式记录词的出现位置及次数,以加速数据查询。创建全文索引需要在创建表时同时指定需要对哪些Column Families的哪些columns创建全文索引。此外,Hyperbase在HBase之上开创性的支持分布式事务型处理。支持多表的事务型处理,保证操作的原子性。单个节点的事务处理能力在1000请求每秒,通过线性扩展,整个集群的事务处理能力最高能达到300,000请求每秒,而淘宝双十一的事务请求峰值为110,000请求每秒。Hyperbase实现了真正意义上的线性水平扩展。数据量累计到一定程度(可配置),Hyperbase会自动对数据进行水平切分,并分配不同的服务器来管理这些数295、据。这些数据可以被扩散到上千个普通服务器上。这样一方面可以由大量普通服务器组成大规模集群,来存放海量数据(从几个TB到几十PB的数据)。另一方面,当数据峰值接近系统设计容量时,可以简单通过增加服务器的方式来扩大容量。这个动态扩容过程无需停机,Hyperbase可以照常运行并提供读写服务,完全实现动态无缝无宕机扩容。图8-6 并发测试对比上图是星环Hyperbase部署在4个X86服务器组成的集群上与满配小型机上DB2的测试对比。蓝色的柱状图是DB2的每秒并发度,红色的柱状图是通过Inceptor与Hyperbase相结合,通过SQL执行的每秒并发度,绿色的柱状图是采用Hyperbase API296、的每秒并发度。其中后两个测试案例涉及到多表Join后的聚合计算,很难采用Hyperbase API编程实现,因此API的并发度在后两个案例中不予展现。另外,DB2在最后一个案例中长久没有跑出结果,因此其并发度在该案例中不予展现。其中第一个测试案例场景为3千万记录表索引列查询;第二个测试案例场景为5张3千万左右记录表根据索引列过滤后join;第三个测试案例场景为4表根据索引列过滤后join;第四个测试案例场景为3张3千万以上记录表根据索引列过滤后join后再聚合排序;第五个测试场景为对15亿的大表对多个字段进行模糊匹配检索。6.1.2.10 智能索引支持智能索引技术,相对于普通索引技术,智能索引297、技术基于代价的执行优化,准确率高,性能更好,能满足各类复杂场景需求,包括基于条件的多表关联即席查询与统计,可以满足高速的OLAP数据分析应用需求。 查询计划智能使用最快速的索引 无需用户在SQL中指定索引 对指定查询,根据该表有的多个索引创建不同的执行计划 根据成本计算性能最佳的执行计划和索引 支持精确查询和模糊查询 查询延时百毫秒级 相对于普通索引技术,CBI准确率高,性能更好,满足复杂场景需求图8-7 智能索引性能提升对照6.1.2.11 全局索引Global Index的索引存储与原表独立,索引本身是以一张表的形式存在。SimpleIndex/SegmentCombineIndex/St298、ructInndex同样适用于Global Index。类似Local Index,Global Index同样可以通过HBase Shell或是JAVA API的方式进行创建、删除。目前HBase Shell可以支持Global Index的新建索引,删除索引及重建索引操作,具体详见下面:对于新添加的索引表,并不会自动对原来已存在的数据建立索引,因此对于插入数据后添加的新索引,或者由于误删操作导致索引文件不一致的情况可以通过重建索引的方式重新生成索引文件;重建索引:删除索引:6.1.2.12 全文索引Hyperbase中提供了全文索引的功能,通过ElasticSearch能够对Hyperba299、se中的数据进行全文检索。Transwarp Hyperbase支持全文索引。可以对任意字段或部分字段进行组合检索,可极大提高搜索能力。全文索引通过建立词库的方式记录词的出现位置以及次数,以加速数据查询,Hyperbase支持高效的全文索引;下图是如何建立全文索引范例:HBase支持两种使用全文索引的方式:1、 直接使用检索API-IndexSearchcherClient2、 使用Scan接口6.1.2.13 索引类型表8-8 机器学习算法列表索引名称适用范围带类型Local IndexGlobal IndexSmpleIndex单一列支持支持支持SegmentCombineIndex多列组300、合支持支持支持StructIndexStruct结构支持支持支持多数据类型支持6.1.2.14 图数据库对于图数据的支持在大数据时代也显得日趋重要。Transwarp Graph是一个图数据库引擎,能实现图数据的高效存取及分析处理。Transwarp Graph本身主要实现了精简的图序列化,丰富的图数据建模,高效的查询。Transwarp Graph同时也实现了数据存储接口,数据检索。Transwarp Graph提供了标准的JAVA API和图数据库交互工具。 支持海量图数据处理,有着优秀的横向拓展能力 借助Transwarp Hyperbase实现数据的强一致性 支持图数据的高并发事务处理301、 基于Hadoop生态系统,可实现批图数据处理 支持对点和边的地理坐标,数字和全文检索 支持blueprint图标准接口,可与blueprint生态系统的软件兼容 支持TDHGraphShell查询语言,并可在java中直接调用该语言进行图数据的操作 提供通过JAVA API 提供REST和Transwarp Graph二进制协议,方便远程管理和快速查询Transwarp Graph中的图数据 支持对点和边建立索引,提升查询性能 良好的可拓展性,Transwarp Graph的性能随着机器数量线性增长 提供批量入库工具,支持多种数据格式,Sequencefile,Graphson,EdgeLi302、st,ScriptIO 支持单机和集群模式6.1.2.15 全文数据处理Transwarp Hyperbase支持通过建立增量全文索引(全文索引首先会对记录做分词处理,再对分词结果做相应索引)对于全文关键字搜索达到秒级的返回。Transwarp Hyperbase提供了全文索引功能,支撑内容管理,实现文字等非结构化数据的提取和处理;提供增量创建全文索引的能力,可以实时搜索到新增的数据。联合查询Transwarp Hyperbase支持半结构化数据(JSON/BSON,XML形式存储)和非结构化数据例如纯文本,图片或者大对象的高效存取。由于越来越多的应用在考虑对半结构化数据,非结构化数据做查询,303、检索和分析,对这些数据存储的支持能简化应用程序的开发工作,同时TDH的优化使得对这类数据的操作性能更高。图8-8 联合查询STARGATE,是一个跨数据源的JOIN操作的组件,意思是既可以使用Hadoop里面的表,也可以使用ORACLE,DB2里面的表;,通过StarGate组件,实现多数据接入,且不用导入HDFS或者Hyperbase,也实现联合查询,且Inceptor支持DB-link的数据联邦功能。Hyperbase既支持结构化的数据,非结构化的数据则放在对象存储,文档存储等。一种对大规模结构化和非结构化数据联合处理的系统及方法,包括数据联合模块、关键词提取模块、关键词索引建立模块、海量304、数据存储模块以及联合查询处理模块。数据联合模块读取结构化和非结构化数据,并形成记录数据和内容数据;关键词提取模块对内容数据进行分词,形成记录标识和该条记录所包含的关键词对应关系数据;关键词索引建立模块接收关键词数据,对数据进行倒排,形成关键词和记录标识的对应关系数据,并将其存入关键词索引表。通过星环Hyperbase,能够快速有效的对大规模的非结构化文本数据和结构化数据进行联合处理和检索,解决了现有系统无法将二者进行高效联合处理的问题。6.1.2.16 Transwarp Stream数据实时处理分析Transwarp Stream是基于Spark Streaming的产品级批处理流计算引擎,305、将实时数据的处理分成一系列的小批量任务,并由Spark框架执行。它保留了所有Spark计算框架的优点,具体特点如下: Transwarp Stream具有高性能、稳定性好等特征;并且根据在测试和实际部署应用中遇到的问题和需求,丰富Transwarp Stream的功能、简化流计算应用的开发以及管理成本;另外Kafka作为生产环境中常用的数据源,Transwarp Stream也做了对应的性能优化和功能开发。 准实时处理: Transwarp Stream是一个批处理流计算引擎,其数据处理的延迟在100毫秒到2秒之间,因此Transwarp Stream可以满足绝大部分的准实时处理数据的场景。 306、高吞吐量:Transwarp Stream具有高吞吐量的特点,与Storm相比,Transwarp Stream的吞吐量要高25倍。 灵活扩展及高容错:Transwarp Stream集群支持灵活的进行线性扩展。 简单丰富的编程接口:Transwarp Stream提供高级语言和SQL的编程接口,降低用户的编程难度,让用户可以通过简单的接口完成复杂的业务处理逻辑。 支持多种数据源:Transwarp Stream内置支持多种数据源,简单的如文件系统、 Socket连接,复杂的如Kafka、Flume等;还支持用户自定义数据源。 丰富的结果处理:用户可以将流计算的处理结果进行多种处理,可以持久化307、到关系数据库、HDFS、Hyperbase等;也可以通过接口服务将结果推送到其他系统,进行分析统计展现等。图8-9 Stream模块架构高性能:Transwarp Stream支持将接收到的数据持久化到Off-Heap和SSD,可以有效防止GC的影响,消除流计算的性能波动;支持多Receiver模型,这样可以提高数据接收的并行度;Transwarp Stream创建的Receiver能够自动识别Kafka集群数据的Locality,避免Receiver接收数据时占用不必要的网络带宽。高可用:Transwarp Stream能够保证用户的流计算应用运行过程中不丢失数据。Transwarp Str308、eam通过WAL(Write Ahead Log)以及Spark框架中RDD的重算机制,可以保证在计算节点发生故障时,数据也能被正常的处理;通过Checkpoint机制,当流计算应用的Driver从故障恢复之后,能够将发生故障时还未处理的数据处理,保证数据的不丢失。安全:Kafka作为生产环境中最常用的数据源之一,用户对其安全性的需求非常迫切。星环科技为Kafka实现了一套访问控制管理策略,只有授权的用户才可以对Kafka集群进行读写操作,避免发生数据泄露或者其他用户发生误写操作。交互式探索分析:Transwarp Stream支持将实时数据流转成列式存储存放到Holodesk上,可以利用 T309、ranswarp Inceptor使用SQL对准实时的数据进行Ad-hoc分析以及利用R进行数据挖掘等。流式机器学习:Transwarp Stream支持用户在实时计算过程进行统计学习和机器学习,如聚类算法,可以实时调整聚类中心;分类算法可以实时更新分类模型,并对流数据进行类比判断。易开发:Transwarp Stream相比于Storm提供了一套简单的编程接口,但在开发一些复杂统计分析的业务时还是过于复杂,Transwarp Stream支持用户在开发流计算应用时使用SQL进行数据转换与统计分析,让用户更轻松的实现复杂的操作,将主要的精力放在业务本身而不是流计算框架。易管理:Stream JobServer是Transwarp Stream提供的一套流计算应用的管理服务。通过Stream JobServer,用户可以使用管理界面提交运行、监控、停止流计算任务,让流计算任务更易管理,降低流计算应用的管理运维成本。另外通过Transwarp JobServer,可以让多个流计算应用共享一组计算资源,从而提高资源的利用率。6.1.2.17 分布式消息队列传统的流处理方法一般将数据处理的请求批量积攒,然后在计算节点空闲或者其他请求处理完毕后才会将消息发送给系统处理,这种机制已经不能满足现状
会员尊享权益 会员尊享权益 会员尊享权益
500万份文档
500万份文档 免费下载
10万资源包
10万资源包 一键下载
4万份资料
4万份资料 打包下载
24小时客服
24小时客服 会员专属
开通 VIP
升级会员
  • 周热门排行

  • 月热门排行

  • 季热门排行

  1. 2025商场地产夏日啤酒龙虾音乐嘉年华(吃货的夏天主题)活动策划方案-47页.pptx
  2. 2022城区自来水提质改造智慧水务建设项目设计方案(199页).pdf
  3. 小区人员配置档案建立保洁绿化物业管理服务投标方案(593页).docx
  4. 陕西化学工业公司招聘管理与职业发展管理手册30页.doc
  5. 动火作业安全告知卡(1页).docx
  6. 高处作业安全告知卡(1页).docx
  7. 广场工程建设项目施工招标评标报告表格(24页).pdf
  8. 原油码头消防工程维保方案(39页).docx
  9. 建筑工程外脚手架专项施工方案(悬挑式脚手架、落地式脚手架)(25页).doc
  10. 2020柏向堂房地产公司材料标准化手册3.0(143页).pdf
  11. 2021柏向堂房地产公司材料标准化手册4.0(108页).pdf
  12. 土建、装饰、维修改造等零星工程施工组织设计方案(187页).doc
  13. 深圳装饰公司施工图纸会审及设计交底管理制度【13页】.doc
  14. 新规下的户型增值秘籍.ppt(22页)
  15. 房地产开发贷款实操指南(5页).pdf
  16. 鄂尔多斯空港物流园区总体规划方案(2017-2030)环境影响评价报告书(23页).doc
  17. 规划兰园西路道路工程环境方案环境影响评价报告书(89页).pdf
  18. 屋面圆弧形穹顶结构高支模施工方案(40米)(47页).doc
  19. 埋石混凝土挡土墙施工方案(23页).doc
  20. 重庆市五小水利工程建设规划报告(64页).doc
  21. 厂区至矿区管网蒸汽管道系统扩容改造工程施工组织设计方案(105页).doc
  22. 超高纯氦气厂建设项目办公楼、变电站、水泵房及消防水池、门卫、厂房、仓库、配套工程施工组织设计方案(140页).doc
  1. 房地产交易环节契税减征申报表(首套填写)(2页).doc
  2. 2025商场地产夏日啤酒龙虾音乐嘉年华(吃货的夏天主题)活动策划方案-47页.pptx
  3. 2024大楼室内精装修工程专业分包投标文件(393页).docx
  4. 苏州水秀天地商业项目购物中心100%室内设计方案(158页).pptx
  5. 2022城区自来水提质改造智慧水务建设项目设计方案(199页).pdf
  6. 小区人员配置档案建立保洁绿化物业管理服务投标方案(593页).docx
  7. 室内移动式操作平台工程施工方案(19页).doc
  8. 地铁6号线区间盾构下穿管线专项施工方案(30页).doc
  9. 矿山治理工程施工组织设计方案(240页).docx
  10. 老旧小区改造工程施工方案及技术措施(364页).doc
  11. 北京科技园公寓建设项目整体报告方案.ppt
  12. 建筑工程三级安全教育内容(24页).doc
  13. 新疆风电十三间房二期工程49.5mw风电项目可行性研究报告(附表)(239页).pdf
  14. 土建、装饰、维修改造等零星工程施工组织设计方案(187页).doc
  15. 四川凉山攀西灵山国际度假区小镇活力中心商业业态规划方案建议书(33页).pdf
  16. 埋石混凝土挡土墙施工方案(23页).doc
  17. 地下停车场环氧地坪漆施工方案(45页).doc
  18. 深圳装饰公司施工图纸会审及设计交底管理制度【13页】.doc
  19. 地铁深基坑及钢筋笼吊装安全专项施工方案【98页】.doc
  20. 住宅定价策略及价格表制定培训课件.ppt
  21. 西安名京九合院商业项目招商手册(28页).pdf
  22. 2010-2030年湖北咸宁市城市总体规划(32页).doc
  1. 建筑工程夜间施工专项施工方案(18页).doc
  2. 赣州无动力亲子乐园景观设计方案(111页).pdf
  3. 2016泰安乡村旅游规划建设示范案例(165页).pdf
  4. 房地产交易环节契税减征申报表(首套填写)(2页).doc
  5. 龙山县里耶文化生态景区里耶古城片区旅游修建性详细规划2015奇创.pdf
  6. 连云港市土地利用总体规划2006-2020年调整方案文本图集(78页).pdf
  7. 850亩项目塑钢门窗工程施工组织设计方案(34页).doc
  8. 老旧小区改造工程施工方案及技术措施(364页).doc
  9. 城市更新项目地价公式测算表.xlsx
  10. 房地产项目规划前期投资收益测算模板带公式.xls
  11. 存储器基地项目及配套设施建筑工程临时用水施工方案(40页).docx
  12. 铁路客运枢纽项目站前框构中桥工程路基注浆加固专项施工方案(19页).doc
  13. 室内移动式操作平台工程施工方案(19页).doc
  14. 装配式结构工业厂房基础、主体结构、门窗及装饰工程施工方案(83页).doc
  15. 地铁6号线区间盾构下穿管线专项施工方案(30页).doc
  16. 施工工程安全教育培训技术交底(13页).doc
  17. 老旧小区改造施工方案及技术措施(365页).doc
  18. 新建贵广铁路线下工程沉降变形观测及评估监理实施细则(126页).doc
  19. 消防火灾应急疏散演练预案(12页).doc
  20. 矿山治理工程施工组织设计方案(240页).docx
  21. 崖城站悬臂式挡墙施工方案(92页).doc
  22. 北京科技园公寓建设项目整体报告方案.ppt