首页 > 代码库 > Vertica在通信行业的替换优势

Vertica在通信行业的替换优势

 

一.       背景分析

传统关系型数据库在企业市场长期占有稳固的统治地位,许多人都不曾意识到除了传统关系型之外还有其他类型的数据库。传统关系型数据库非常善于处理事务的事务性操作,例如更新操作。但是在处理大数据量的批量操作时候就有点捉襟见肘。例如DB2作为IBM公司开发的一套关系型数据库管理系统,被广泛应用于大型数据仓库项目中,特别是移动行业,自构建经营分析系统以来,基本都采用DB2数据库搭建BI主仓来聚焦于数据分析,支撑内部管理决策、营销推广和客户服务等工作。

随着大数据在带来全新商业模式和业务增长,对IT支撑工作提出了更高的挑战,对现有技术架构体系也提出了全新的要求,其中自然包括数据仓库支撑能力。在业务需求快速变化的今天,传统数据库软件显得捉襟见肘,存在较多的不足,主要包括:

1.     性能难以满足业务需要

随着业务的发展,时间积累后数据量呈几何般的增长,业务的复杂度对数据库性能提出了给高的要求。而传统的关系型数据库由于行式存储,运算集中化,在复杂SQL的支撑上对IOCPU等资源很大的压力而且难以满足业务需求。

2.     扩展性不足

传统数据库扩容只能Scale-up(纵向扩展),以增加处理器、高端存储容量等资源进行升级以获得对应用性能的要求,但是更大更强的服务器同时也是昂贵的,扩容完还需要进行数据的balance操作,甚至需要进行停库操作,直接会对生产造成影响。

3.     产品高可用性差

传统数据库例如DB2配置文件及逻辑节点的元数据有1份副本,但系统默认在同一目录,且不可更改,不可再备份,其安全性非常低。

4.     投资成本高

DB2的主机需要用IBM的小机,ORCLE需要用 Exadata,所有的存储还需要EMC等这些价格动辄数百万的设备;同时这些软件的Lisence也非常昂贵。而在人员的开支上,这些数据库管理员成本也不低。

二.       方案选型

考虑到分布式数据库支持基于X86的部署方式,而X86大量取代传统小机已经成为趋势,具有成本低、扩展性好等优势,传统数据库依赖小机升级的扩容模式走到了尽头等原因,决定引入MPPMassively Parallel Processor )分布式数据库取代现有DB2数据库。MPP在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。利用MPP在核心数据仓库完成数据建模之后同步到数据分析集市,同时数据分析集市作为大数据集市承载目前所有的基于数据库标准SQL开发的应用。

产品对比如下:

1.     对比IBM DB2


Vertica

DB2

硬件架构

  • 无共享的真正MPP架构

  • 无特殊节点

  • 有主控节点

  • 有管理模块

软件架构

  • 纯列式数据库

  • 传统行式数据库

压缩

  • 12种以上的压缩算法,包括Lempei-Ziv

  • 可对表的每一列指定不同压缩算法

  • 10x 以上的压缩比

  • 标准的Lempel-Ziv

  • 表级压缩算法

  • 1-3x 的压缩比

高可用

  • 通过内嵌的k-safty实现高可用功能

  • 所有节点均可用

  • 无需HA配置

  • 容易、简单的配置方式

  • Hot Standby热备份方式

  • 必须有至少一个空闲Server

  • 出现故障时会需要1-5分钟来接管

  • 配置复杂,需要额外的HA软件

日常管理

  • 无表空间、索引、MDC等概念

  • 自动的数据库设计

  • 3种不同级别的数据库参数(db2set,dbm,db)

  • 需要管理表空间、索引、分区和MDC

性能

  • 同时支持实时加载,实时查询

  • 相对于传统数据库50-1000倍的性能提升

  • 无法完全同时实现实时加载与实时查询

可扩展性

  • 在线添加、删除节点

  • 分钟、小时级别实现数据库节点扩展

  • 添加节点需要重新启动

  • 通常需要几小时、甚至几天

 

2.     对比Oracle Exadata

硬件配置对比


Exadata 1/2 Rack

Vertica

说明

Server配置

总共11台,包括4台数据库和7台存储服务器

11DL380p Gen8

保持与ExadataServer数量一致

CPU核数

数据库节点:64(2.9GHz,E5-2690)
 
存储节点:84(2.0GHz,E5-2630L)

176核,2.6GHz, E5-2670

CPU核数多20%

CPU处理能力
 SpectInt2006_rates

5559

7084

整体CPU处理能力增加28%

内存

1024GB

1408GB

内存增加40%

硬盘型号

600GB SAS 15000rpm(3.5)

900GB SAS10000rpm(2.5)

性能基本一致

硬盘数量

84

275

硬盘数量增加3.3

可用容量

22.5TB

900GB*22*11=218TB
 218TB * 70%(Raid5
损耗) * 50%(K-safe=1) = 76TB

可用容量增加3.4

数据加载速度

8TB/hour(理论最大值)

每节点200MB/s,约8TB/hour(实测平均值)

基本一致

软件特性对比


Exadata

Vertica

说明

数据存储方式

行式存储+混合列压缩

纯列式数据存储

Exadata只有在以direct load方式进入的数据才能被列压缩

压缩方法

6种压缩算法(2种行压缩,4种列压缩)

12种压缩方式

Exadata只能针对表级进行压缩指定;Vertica可以对表的各列分别指定不同压缩算法

加载与实时查询同时进行

在进行direct load加载时通常要disable index,因此实时查询无法同时进行

可同时进行

Vertica支持在数据加载的同时进行高并发查询

部署架构

Shared everything

架构

Shared nothing MPP

架构

Shared everything架构无法扩展过多节点,而 shared nothing MPP架构扩展性更好,更适合于大数据量的并行处理

数据库管理

复杂的管理,需要非常有经验的DBA和专用的OEM工具

简单,自动,无需过多人为干预


分析函数

少数简单的分析函数

内嵌多种分析函数与灵活的分析查询


Hadoop接口

不支持

支持

Vertica内嵌与Hadoop的接口,支持结构化与非结构化的同时分析

成本对比


Exadata 1/2 Rack

Vertica

说明

硬件价格
 
(成交价/人民币)

800-1000

200

DL380gen8按每台10万报价,加上一些外围设备和服务

软件价格(成交价)

864

300

Vertica价格为估计;Oracle通常会利旧

3年服务费

(800*8%+864*22%) * 2 = 508

(200*8% + 300*21%) * 2 = 158

硬件按8%,软件按22%(Oracle)21%(Vertica)

3年总体投入

2172

658

Vertica方案为Exadata投入的30%

 

三.       建设方案

1.     环境部署

在容灾方面,同城异地的主备两个数据库集群间可以增量同步,从而实现异地数据灾备。同时,在备份方面,该产品提供专用的VBR备份恢复工具,可以方便地对整个集群中的数据实现全量、增量级别的表粒度或者库粒度的各种形式的备份。支持数据并行备份和并行恢复,备份文件可以分布在不同的备份存储领域上,配置不同数量的备份恢复节点。

平台架构一般设计如下:

1.1.            功能架构

MPP资源池集群建设,主要分为两个独立的MPP数据库建设,分别是核心数据仓库和数据集市。

技术分享

1.2.            物理部署

集群可以部署3个以上的节点,K-safy值可以设置n,即每份数据有n份冗余数据,每份冗余数据均部署在不同机架中。 技术分享

为了便于本项目以后扩展,我们建议采用分级网络,既每个机柜配置2台万兆接入交换机,这些交换机再级联到核心交换机。

交换机:

  • 至少配置2台核心交换机组成高可用集群。

  • 每个机柜配置2台万兆交换机,并组成高可用集群;每个柜顶交换机通过240G上行口分别与2个核心交换机连接。

  • MPP数据库内部集群通信网络设置VLAN以便于外部服务网络隔离。

每台服务器的连线方式:210GE网卡通过光纤分别与柜顶两个交换机的10G光口连接,在服务器段绑定成一个逻辑网卡,设置内、外两套网络IP地址,并为内部集群通信网络设置VLAN以便于外部服务网络隔离,形成可靠的内部通讯网络,避免网络故障。

每台计算节点操作系统盘由2块盘做raid1实现热备,或者每7块做1Raid5,3Raid5再做Raid0合成1个数据盘,提高存储读写性能,并兼顾数据安全性。

采用万兆业务网络、千兆管理网络,计算节点采用2万兆绑定网络,解决批量数据处理可能存在的网络瓶颈问题。

2.     应用迁移

为了减少省经与一经的相互影响,实现一经与省经解耦,把现有DB2上除一经外的仓库模型、片区化应用、手机经分等省经应用全部迁移到MPP平台上。

本次迁移改造采取按应用逐步实施的策略,遵循如下步骤:

  • DB2上执行程序代码直接搬迁到MPP上执行,根据错误调整相应的语法,通过批量调整的模式,保证所有程序能正常执行。

  • 导入数据源后运行程序,将MPP上的结果数据与DB2进行比对,发现差异数据后找到问题并解决,确保两边数据一致。

  • 优化程序(如小表建复制表,大表分区键是否合理)并保证生成数据的时间不晚于DB2生成的时间。

  • 在程序稳定运行半个月后,切换对外接口数据源,最终实现平稳迁移。

  •      系统优化

随着省经业务应用逐步往Vertica上迁移上线,业务数据量出现了超预期的增长,可能会出现了性能下降和容量不足等情况,一般共两大类问题。

1)装载问题,包括:装载机网络不稳定、装载效率低、稳定性差、装载超时、装载数据质量问题,以及装载文件字段与表结构不一致等问题;

2)性能问题,包括:数据库运行一段时间后出现性能下降、查询插入语句执行效率慢、垃圾SQL耗尽系统资源、建Projection不合理、大量失效视图和过期表未及时清理等问题。

上述问题既有平台层面问题,也有业务层面(SQL质量和开发规范)问题,为此,从技术层和页面层面方面对系统进行了专项优化。

3.1.            技术层优化

网络优化:升级网卡驱动,修改网卡模式,调整交换机哈希算法完成数据流量的负载均衡,调整TCP相关内核参数,增大内核套接字接收缓存区的大小。改进后网卡流量可稳定2万兆运行,网卡效率与稳定性出现显著提升,丢包和重传现象基本消失。

数据库优化:优化控制文件参数、优化加载并行度、增加预读缓存、优化CPU线程数量、增大装载服务端与客户端之间的通信延时参数、优化装载超时参数,装载失败率由30%左右下降到低于0.5%;优化Projection配置参数,相同SQL的执行时间可以大大缩减时间,例如客户表和账户表之间的大表关联运算,Vertica相比较传统数据库只用了1/5的时间,总体性能提升60%;优化数据库内存参数,提高了系统稳定性。

3.2.            业务层优化

因平台应用开发人员对新产品不够熟悉,部分SQL质量较差(如可以直接分区读取数据,表hash键选取不合理、复制或分布表属性选择不合理等)、执行性能差(多余子查询、笛卡尔积、关联字段不合理),对这些问题分别进行了调整优化。

与此同时,还进行了产品培训及使用指导,发布并持续更新多版MPP数据库开发规范,帮助应用开发者更好地使用MPP平台。这样起码99%以上的SQL运行正常,个别SQL耗时较长的及新开发的SQL还需要继续针对性优化。

四.       国内移动使用情况

1.     国内移动使用分布

技术分享

广泛应用于国内电信行业的数据分析系统

 

2.     Vertica在目前移动行业应用范围


BSS

OSS

MSS

其它

业务域

▲经营分析(BASS

▲详单(CDR)分析

▲流量经营分析

▲精准营销分析

▲历史库与报表

▲合作伙伴与电子渠道分析

▲用户分类与收益分析

……

 

▲信令分析

▲网络错误与性能优化

▲网络分析

▲网络综合分析

▲综合监控分析

▲网络容量管理

▲客户体验管理

▲漫游分析

……

 

ERP数据仓库

▲财务报表系统

▲集中数据分析

……

 

▲增值业务分析▲平台

▲大数据分析平台

▲互联网分析

▲用户行为分析

▲用户位置分析

▲点击流分析

……

 

挑战

▲数据量大

▲分析处理能力要求高

 

▲数据量巨大

▲实时性要求高

 

▲分析性能要求高

 

▲数据量巨大

▲分析处理能力要求高

▲分析算法要求丰富

 

HP的优势

▲超快分析速度、无限的扩展能力;▲SQL标准和开放性

 

▲实时分析和聚合、无限的扩展能力;

SQL标准和开放性

 

▲超快分析速度;▲SQL标准和开放性

 

Vertica的开放性和与Hadoop/R的整合能力;

▲超快分析速度、无限的扩展能力;▲非结构化分析

 

3.     项目案例

3.1.            信令分析

技术分享

准实时分析,大数据变现

60节点                     

HP BL460c G7刀片(VC Flex10D2200sb 存储存储(12*1TB7200RPM SATA

实时数据入库超过200MB/s                            包括GB,IUPS,GN,DPI

原始表入库周期为分钟级别

汇总表入库周期为15分钟级别

保存1个月,总量超过500TB

多种粒度的汇总:5分钟、小时、天

3.2.            网络优化

技术分享

准实时分析,提升网络服务质量

处理云:Hadoop集群完成数据解析汇总

存储云:HP Vertica集群完成大数据存储

6个节点集群,数据量超过30T

主表单表超过20TB,分钟级准实时入库

3.3.            经营分析

技术分享

大数据高性能分析支撑精细化营销和差异竞争能力

32节点,数据量360TB

 

  • 性能大幅提升

--数据压缩比高达9

--100亿级数据分析查询,秒级响应,性能提升约50

--能支撑上数百用户自助分析

  • 数据自助服务:业务用户自助分析

  • 营销大数据分析:

--各种营销模式和促销手段的大数据分析

--客户属性数据的关联分析,包括客户画像查询、标签客户群刷新、标签分析的数据刷新

正在把经分主库迁移到另外32节点集群

3.4.            移动大数据分析平台

技术分享

  • 整合BSS/OSS数据,280TB / 40节点

  • Ohttp/socket数据,先进入hadoop集群进行清洗

  • A口信令数据,1-5TB/天,先进入hadoop集群进行清洗

  • B域经分数据,300GB/天,从DB2中直接提取

  • 综合大数据

  • 用户行为、用户画像分析

  • 自助服务

  • 营销分析

  • 数据保留周期

  • 详细数据:7-15

  • 汇总数据:6个月-1

  • 高度汇总:1-3

  • 厂商

  • 基础平台:华为

  • ETL/BI:华为创我

  • 精准营销:亚联

  •             移动全网智能监控平台

技术分享

技术分享

全网级别监控数据进行深层次分析的智能分析平台,为集团、公司内部和省公司提供数据分析服务

需求:能够低成本扩展已存储高速增长的数据规模;能够处理更多地非结构化数据,如web日志以及物联网的应用日志;能够在大规模数据下进行深度数据挖掘,超越传统的随机采样分析的方法,而代之以全数据级别的分析能力。


本文出自 “红枫叶” 博客,转载请与作者联系!

Vertica在通信行业的替换优势