如何利用当前高速发展的网络平台提升自我价值客户信息库的价值

留住价值客户:如何用客户信息提升营销__应用与方案频道
|| ||||||||||||| ||||||||||||||||
当前位置: &
留住价值客户:如何用客户信息提升营销
作者:Ronald S. Swift
【编者按】
  虽然到现在还是有些企业对于是否应该导入“客户关系管理(CRM)”持有怀疑的态度,但目前全球前几大知名电讯公司、零售业、银行业者皆已经导入CRM...
前几大知名电讯公司、零售业、银行业者皆已经导入CRM。因为企业对客户的了解是今日企业成长的主要动力,通过信息工具的应用来强化营销功能,成为新经济时代下,企业重要的获利方式之一。
  20世纪的营销重点在产品本身,绝大部分的企业在产品的设计和推广上投入大量的资源;强调产品营销(Commodity Marketing)与市场占有率,例如录相机的营销,客户所重视的是,能在方便的渠道上购买到最便宜的录相机,而品质及多样化的功能则非消费者所最在意的因素。企业所重视的也是强调拓展更多的分店、更多的营收与现金流量,在那个时期所强调的是大众营销(Mass Marketing)。这样的做法其实并没有什么不好,但是企业的获利通常无法呈现等比例成长;正如以往曾发生某些大型的电信公司的市场占有率增加,但股价却反而大幅下跌、无法受到投资人肯定的情况即是如此。因为到了21世纪,无论是电信业、航空业或金融业,由于信息的透明化,消费者可以很容易地寻找到更便宜的价格,随时从甲公司的服务跳到乙公司,客户流动率大增,导致一时的市场占有率并不等同于企业的获利率;因此,如何留住重视服务品质、不因价格变动而流失的价值客户?便成为当务之急。
  整合性的客户关系管理
  根据研究,在美国4口之家:男主人25岁,女主人23岁,小孩各是3岁与1岁半,平均每户对食品零售商的终身价值(Life Time Value)高达250,000美元;因此,如何确保这种以家庭为单位的客户,愿意将大部分的支出花在同一个超级市场中,并尽力增加该客户的价值与支出占有率(Wallet Share)对于该行业者而言是非常重要的。任何一次不愉快的购物经验都可能导致该客户转至竞争对手,故如何辨识出类似这样对于食品有大量需求的客户群,并且尽量提供合乎所需的服务以维系良好的客户关系、提高价值客户的忠诚度,这样的策略有别于以往仅仅强调市场占有率的重要性,而是强调经由分析、学习、辨识出最有价值的客户群,再采取积极的行动增加其对于该类商品或服务的支出占有率,进而达到提升企业利润与每个客户的贡献度的营销策略。
  如何筛选出最有价值的客户信息呢?事实上,从企业的采购信息、客户的交易记录、物流配送信息到财会信息系统上的信息都可以整合出相关的客户信息(Customer Knowledge),分析客户的需求,甚至对其未来的消费模式做出预测,提出相应的营销方法,并进而不断地吸收、学习新的客户信息,并以此修改企业本身的作业流程,进一步合乎客户的需求,并提高获利率。
  当然,如此的整合性信息并非一蹴而就的,我们必须将信息系统架构重新调整,将把分散于公司各个电脑系统上的资料,或是书面上的信息,整合在同一个资料库里面,从不同的面来作各种分析,并不时加入政府机构所发布的统计资料和市场分析调查结果,以获得正确的客户知识并加以研判、预测,并且可以确保每个部门的人员对于同一位客户的了解都是完整而一致的(Single View)。若再进一步配合即时的分析,例如与各分店内的POS系统、客服中心或网站上相连,甚至是最新的无线电子商务系统,即时更新客户的采购模式并加以判定,便可以达到“即时营销(Real-time Marketing)”的效果。
  因此,这样的一个客户关系管理系统并非只是为了方便营销活动的推广,它是一个可以为企业带动持续利润的“知识中心”、可以为最有价值的客户提供一对一的服务,也就是所谓的个性化服务(Personalization Service)。但个性化服务并非只是在直邮广告上列出客户姓名,而是必须针对该客户的需求量身定作产品、服务与制定不同的价格。
  回顾近一年来电子商务的发展,其失败的原因何在?最重要的原因是消费者对于这些网站缺乏信任感,无法真正放心地在网络上输入自己的信用卡信息,进行交易;第二点则是大部分的网络公司并未与客户建立良好的关系,无法象实体的商店一样,可以与客户产生各式各样的人际互动。相反地,提供客户的目录与界面就如自动提款机一般地生冷僵硬,只是个“交易”的工具,难以建立持久的关系。如果网站上可以针对每个客户设计不同的产品组合与服务,便可以令客户感到特别的待遇。根据统计,实体商店的平均每笔交易金额约较网上交易金额或数量大2~3倍,一般人在网上的交易金额都很小,究其原因便是基于前述的理由。以最著名的亚马逊公司(Amazon)为例,平均每笔订单为1.1本书而已,为了这些小笔但数量又多的订单,该公司必须建立庞大的软硬体系统、物流体系来支援。远比不上我们在机场、或一般都市里的书店浏览时,单次选购的书籍量,如果再配合上称职的店员推荐更多有趣的书目,单次的采购量必然会比网上订购为高。而其他的网站也有类似的问题,客户无法接收到合适的产品和服务,只是看到一大堆单调无聊的目录呈现在网页上,没有任何的人性化互动发生,这便是电子商务失败的最大原因。
  选择客户互动策略的三项要点
  我们可以依据主动、被动之不同将与客户互动的方式分成四种策略:左半部是较偏重关系导向、事件导向的互动方式,上半部则是较为互动式的营销方式。
  无论选择使用哪一个策略,都必须注意到下列3点:
  1. 无论是采取何种策略,都必须先建立一个客户信息系统(Knowledge System),不断地搜集客户信息。此外,企业也必须培养员工,增加对客户的了解程度,也就是达到所谓的“B2E”(Business to Employee),一切的内部作业流程也必须以服务客户为中心。
  2. 考虑采取何种互动策略时,应该依据该客户对于企业的利润贡献度、先前的采购行为、渠道偏好与特性等,因为每种营销策略的成本高低不同,且需配合隐私权的概念。因为有些客户喜欢直接收到相关的邮件,而有些客户很不喜欢看到自己的名字、地址被转卖给第三者,因此需要针对不同的客户属性来决定对其的营销方式或内容,这样称之为“差异化营销(Differential Marketing)”。
  差异化营销强调必须根据客户对于企业获利的贡献度、购买行为、所偏好的购买管道、对于隐私权的重视程度等各个层面,来决定对其采取何种营销策略与产品、服务组合。以某无线通讯公司为例,如果他们决定要采取降价行动,那么这种信息传递的对象绝对不是那些较重视手机服务或通讯品质的客户了,而是那些对于价格较为敏感的客户。
  3.决定互动策略之前,也必须考虑到其他相关的支持体系是否完备,以提供客户较好的接触经验。例如付款机制、物流体系、售后服务系统是否可以完全支持后续的订购、客服需求等。
  建立完整的分析性CRM机制
  加拿大皇家银行(Royal Bank of Canada)为了提高营销绩效,建立拥有1,000万名客户数据仓库,并进而针对数据仓库中前1/3最有价值的客户做详尽的分析,找出最有可能接受各种不同营销方案的目标客户,因而使得营销周期(Marketing Cycle Time)缩短了61%,客户对于直接营销的回覆率也高于40%。在营销成效上,以该银行所推出的退休金专户营销专案为例,便替该银行的总存款金额增加了11%,而且退休金存款户通常都会持续10几年,直到该客户退休为止,忠诚度较其他种类的存款户更高。另一方面,客户势必选择他们认为较值得信赖的银行,因此如何建立客户的信赖感也是非常关键的一环。
  如何建立不同的客户区隔以便筛选各营销专案的目标客户呢? 重点在于根据客户的基本资料、历史性的交易纪录、对各式营销活动的回应,做出不同的评比,为何我们必须充分了解客户信息以进行有效的营销呢?因为透过搜集客户的性别、年龄、婚姻状况、有无小孩、收入、交易纪录、客诉处理等等与客户相关的信息,再配合“客户生命周期管理(Customer Lifecycle Management)”的运用,推断出某些客户目前可能正面临某些特别的需求,进而设计各种最具吸引力的产品或服务组合,针对这些人进行特别的“事件营销(Event Based Marketing)”。保险、银行、或是零售业者可以依此在最适当的时间,透过适当的销售管道,提供客户最适合的产品或服务,并且达到最精准的达成率(Hit Rate)。
  同样,企业客户也可有另一套“客户生命周期管理”,若可以事先推断出该公司将有并购、组织重整、企业瘦身或扩大产品线、营运规模等新事件发生,我们便可透过各种营销方式、沟通手法,说服客户接受我们的产品或服务。
  由于各种有关客户信息散布各处且数据量庞大,如果我们再将以上的概念配合信息科技的运用,将所有关于客户的信息储存于一个数据仓库(Data Warehouse)内,并且配合自动化的分析工具,经过分析、模块化、个性化、最大化,再与客户产生有效而具体的互动,即是一套完整的分析性CRM系统。
  成功拟定客户关系管理策略的八项关键因素
  因此,综合以上所言,一个成功的客户关系管理策略必须具备下列条件:
  1. 具有能力辨识出最有价值的客户。
  2. 可以缩短销售循环及预测需求。
  3. 有效率的管理销售渠道并从中获利。
  4. 在个性化的营销中保障客户的隐私权。
  5. 体会到与客户建立良好的关系将有助于企业获利。
  6. 利用各项详细的历史信息制造出学习型的企业环境与累积智慧。
  7. 拥有沟通与决策自动化的工具。
  8. 可以发掘出所有导致增加或减少客户满意度、获利率、流动率、转移率、互动次数等的关键因素。
  关于作者
  Ron Swift 是一位在客户关系管理、战略营销、商务智能、决策支持、数据仓库、金融和营销应用和电子商务领域的国际知名顾问、作家、开发者和战略家。他在30多年的时间里已经协助6大洲数以百计的客户完成了战略和目标。
  Ron Swift的专业经验涉及通信、银行、金融服务、经纪交易、保险、地面和空中运输、零售和分销、电子商务以及多个政府职能部门。
  1996年加入NCR之前,Ron 是一家国际咨询公司的?深合伙人,那时他刚刚结束在IBM 22年的辉煌事业。他是一位受欢迎而且风趣的演讲者,他曾经参加过有重大意义的战略计划研讨会、管理峰会和教育研讨会。
  Ron Swift的经验还包括8年在不同学院和大学的研究生院、管理课程、专业教育项目方面兼职教学经验。
  Ron Swift是近期出版且倍受关注的“加速客户关系”(Accelerating Customer Relationships)一书的作者,该书由Prentice-Hall 出版。他同时还编写了“关系管理报告”(Relationship Management Report)和“数据仓库报告”(The Data Warehousing Report ) ,还有许多文章刊登在不同国家的主要出版物上,其中在数据管理回顾杂志(Data Management Review)上的一篇文章“数据仓库回顾”(The Journal of Data Warehousing)被2000年10月份的财富杂志(Fortune)采用。(GreatChinaCRM)
  
  【责任编辑:】【责任编辑 黄雪峰】
 信息化查询
应用分类:
请先选大类
信息化优秀案例
<font color="#FF 信息化最具影响力品牌
<font color="#FF 物流行业专业服务奖
<font color="#FF 制造行业最佳项目实施奖
<font color="#FF 教育信息化优秀服务商
热点文章TOP 10
精彩文章推荐CRM在汽车行业企业中客户价值创造中的应用_北京智邦国际官网
>>>>CRM在汽车行业企业中客户价值创造中的应用
CRM在汽车行业企业中客户价值创造中的应用
  汽车是国民经济的“支柱产业”,近几年中国汽车行业保持持续高速增长,汽车工业总产值占国民生产总值的比例不断上升。然而,在广大汽车销售企业销售和生产双增长的背后,也蕴含着外部市场环境改变与内部经营管理滞后带来的巨大企业经营风险。客户关系管理(CRM)与企业资源规划(ERP)、供应链管理(SCM)并称为现代企业提高竞争力的三大法宝。客户关系管理(CRM)既是一种管理理念,还是一套管理软件,同时还是一种旨在改善企业与客户关系的新型管理系统和运作方法体系。本文主要针对客户关系管理(CRM)在我国汽车企业中的客户价值创造进行初步的探讨。
  一、汽车行业现状
  从目前国内的汽车行业来看,企业整体实力都比较强,员工的素质和信息化基础也比其他行业好。但是在不同地区和不同区域,各企业的具体情况也不大一样。不仅汽车制造商开始部署CRM,汽车经销商、汽车零部件、配套行业等都已开始部署或者进行CRM 准备,尤其是对服务运营和全国区域的销售、服务网点的统一管理需求越来越强烈。
  对于整个汽车行业而言,当销量增加却利润下降时,当价格直下却不能刺激市场时,当产品增多市场却无动于衷时,这意味着汽车行业的核心竞争力已经转移。汽车行业的核心市场从产品转移到服务,核心竞争力转移到客户,这也表明汽车行业已经进入了后市场时代。在这个时代,如何利用先进CRM信息服务技术,深化客户价值管理创新是要我们必须必须考虑的问题。
  二、汽车行业企业实施CRM的意义
  1.通过CRM来提高客户忠诚度和客户保持率,降低经营成本。据研究,企业80%的利润来自20% 的客户,而这20%的客户大部分是老客户。开发新客户的费用成本是维护老客户成本的6~8倍。
  2.CRM向客户提供主动的关心,改善服务。企业在知识库的支持下通过在线磋商等方式,根据销售和服务的历史记录提供给客户个性化的服务,并根据汽车客户的特点,较好地实现存货水平和订单处理方式。
  3.借助CRM平台,提高效益。客户的一次“点击”就可以完成多项业务。前台自动化程度的应用,提高企业的工作质量和营销效率,帮助企业实现由传统的经营模式向现代科学管理模式转化。
  4.CRM能使销售的准确率和客户的成功率增加,客户的满意度提高,销售的扩大便成为必然。
  5.CRM等于企业花最小的成本去做最有效的广告。据权威部门研究,一个满意的客户会带来3~5个潜在的客户,一个不满意的客户会影响25个人的购买意愿。由于汽车技术升级带来的价格提升和汽车客户在购车时对汽车实用性和品质的要求,使得口碑宣传在汽车企业的营销中尤其重要。
  6.市场信息瞬息万变,客户需求不断变化。借助客户管理信息系统针对客户和市场的反馈能快速地做出反应,提升企业的反应速度。
  三、汽车企业客户关系管理中的价值管理表现
  1.客户资源整合
  企业之间的竞争在很大程度上是客户资源的竞争,谁能把握住客户的需求,并以最快的速度作出响应,谁就能吸引新客户、保持老客户,在竞争中取胜。产品的品质区别越来越小,产品的同质化倾向越来越强,这种趋势结果使得品质不再是顾客消费选择的最主要标准,越来越多的客户更加看重的是企业能为其提供的服务种类以及服务的质量和及时程度。企业为了保持稳定、持续、健康地发展,企业必须提高自身的服务质量,增进与客户的沟通,树立良好的服务形象和品牌形象,加强其竞争能力。企业可以从以下2个方面完成对客户资源的整合:
  (1)有效整合客户资源,形成规模效应和范围效应。
  成功的汽车企业应该懂得如何通过形成“顾客价值评估报告”来将顾客群体转换为企业资产。客户价值评估应该提供客户期望、客户特征分类以及具体客户的联系方法。尤其重要的是,企业应该使与客户进行交互时所需的各种资源处于就绪状态。只有广泛收集客户的需求信息,才能真正开发出满足市场需求的产品。通过CRM ,行业企业可以有效了解客户的现实需求与潜在需求,为其研发的产品奠定坚实的市场基础,从而保证能在可承受的风险范围内,取得更高的利润收益,实现客户关系管理的规模效应。另一方面,生产非标准化的产品满足特定客户对个性化产品的需求,尽管此类产品一般销量不大,但依靠CRM ,可以在更大范围和人群中满足客户个性需求,创造企业新的利润增长点,并且在客户心中树立良好的公司形象,满足并服务于更广泛的客户群,实现客户关系管理的范围效应。
  (2)一致性且有价值的客户体验,增强品牌影响力,提高客户的增值潜力。
  一致性体验的核心在于向客户传达某种特定的理念,这个理念应该是满足市场需求、对客户和企业都有价值、并且通过所有可以利用的途径传达出去。通过CRM 系统与电子商务系统的结合,汽车行业的公司可以通过网络广泛宣传自己的产品,让客户认知、了解并最终接受其产品,并可以通过网络采取订单式销售方式推销它们的产品。
  一方面由于网络本身受地域范围的限制较小,运营成本较低,汽车行业公司可以有效地增加客户和准客户的数量,通过降低销售成本达到增加利润率的目的。对于许多汽车企业来讲,它们已经感觉到各种挑战,如需要更具前瞻性地预见顾客需求;必须利用多种渠道,一天24小时、一周7天提供高质量的服务;设法使所有的员工都对自身产品与服务具有深刻的理解。在这里,特别强调各种信息沟通渠道的综合应用和各种渠道的信息一致性。另一方面,企业实施CRM就是要将高价值客户转化为更高价值客户,低价值客户转化为高价值客户,将无价值客户转化为有价值客户,改善整个客户群的质量,提升整体客户资源的价值。
  客户价值管理,它将客户价值分为既成价值、潜在价值和影响价值,满足不同价值客户的个性化需求,提高客户忠诚度和保有率,实现客户价值持续贡献,从而全面提升企业盈利能力。根据研究表明,一个满意的客户会引发3个~5个潜在的顾客,一个不满意的客户会影响25个人的购买意愿。客户关系管理等于企业用最小的成本去做最有效的广告。由于汽车技术升级带来的价格提升和汽车客户在购车时对汽车实用性和品质的要求,使得口碑宣传在汽车企业的营销中尤其明显。根据不同客户增值空间和机会的不同决定不同客户的增值途径,如针对过度服务客户可以采取降低服务成本的方法,针对客户需求弹性较大的客户可采取优惠增量或增量回馈销售法;针对4S店购车客户保修期内对本公司的其他产品/服务的需求可采取交叉销售和延伸销售;针对现有客户提供增值服务,培养客户忠诚度,通过优质、诚信服务帮助客户养成购买习惯,进而形成口碑效应,提高客户终身价值;善用知名客户的带动效应;在实施客户成长计划的基础上,针对拒绝成长的无增值潜力的负利润客户实施坚定剔除措施。
&& &2.组织协同,强化管理创新
  组织协同包括文化、结构和行为方式的转变,以保证员工、合作伙伴和供应商的协调工作,从而实现对客户的承诺。确保最终用户能够接受新方法、新流程和新技术,这是管理革新的一个关键课题。CRM 能够使企业跨越系统功能和不同的业务范围,把营销、销售、服务活动的执行、评估、调整等与客户满意度、忠诚度、客户收益等密切联系起来,提高了企业整体的营销、销售和服务活动的有效性,同时对客户信息和数据进行有效的分析,为企业商业提供决策支持,这将从根本上总体保障企业投入足够而适当的资源,提升其核心竞争力。
  3.企业的核心竞争力的打造
  (1)企业通过CRM系统实施形成的统一客户联系渠道和全面的客户服务能力。将成为企业核心竞争力的重要组成部分。企业细心了解客户的需求、专注于建立长期的客户关系,并通过在企业内实施“以客户为中心”的战略来强化这一关系,通过统一的客户联系渠道为客户提供比竞争对手更好的客户服务,这种基于客户关系和客户服务的核心竞争力因素,都将在市场和绩效中得到充分的体现,优质的服务可以促使客户回头购买更多的产品或服务,企业也将从每位客户未来不断的采购中获益。
  (2)CRM系统将保证企业核心竞争力的持续性提高。
  CRM在功能方面实现了销售、营销、服务、电子商务和呼叫中心等应用的集成,其目标是持续提高企业的运营和管理的先进化、自动化水平。CRM系统自身具有能动的持续进步的能力,将保证企业不断根据其资源状况和市场竞争情况,调整竞争战略、突出产品或技术优势,在拥有良好而稳定的长期客户关系的基础上获得不断的市场成功。这些能力对于企业核心竞争力中的相关构成要素将起到持续的推动和促进作用。
  (3)获得高质量的数据信息。
  高质量的数据信息主要用来为业务流程提供决策支持。如汽车企业应在其所属的所有分支机构共享顾客数据,从而形成每一位顾客的完整数据资料,这样一来,它可以基于客户利润贡献率为每个顾客制定相应的优惠计划。通过Web工具和呼叫中心实时访问数据仓库,为顾客提供优惠服务,如打折、会员升级等,这样就保证了顾客在任何时候接受企业服务时,都能享受到相应的优惠,从而提高客户的忠诚度。CRM 的基本出发点就是要整合销售、营销和客户服务等所有接触点的客户信息,建立高度集成的同步客户信息库,从而在企业整体层面上对客户信息实时共享和客户界面统一管理。这样做会给企业带来一系列利益:变个人、部门的信息为企业信息减少客户因员工跳槽带来的客户流失;通过对高度集成的实时共享客户信息的分析洞察来捕捉稍纵即逝的交叉、延伸销售机遇和服务,提升企业在客户心中的形象。
  四、中国汽车行业企业应用的CRM内容
  1、提升客户满意度、品牌忠诚度
  CRM核心就是企业的生产和营销活动都要切实做到以客户为中心,通过为客户提供能够很好满足其个性化需求的产品或服务来赢得客户的青睐,及时为客户提供有价值的服务和帮助,从而树立良好的企业美誉度和品牌形象,进而与客户成为密不可分的价值统一体。大量研究表明,如果客户满意度提升5%,企业的整体利润将会加倍。而一个非常满意的客户的购买意愿相当于6倍的满意客户,同时满意度高的客户能够帮企业带来更多的潜在客户。因此增强满意度是CRM的目标,也是所有企业实施开展CRM的初衷。提升客户满意度和品牌忠诚度,在汽车行业的具体表现在以下三个方面:
  (1)实现企业与经销商的客户信息统一管理,有效利用;(2)通过开展系统的客户回访、关怀活动,提升客户满意度;(3)通过开展提醒服务、预约服务、客户俱乐部等增值服务,提高客户忠诚度。
  2、提高经销商运营管理能力
  通过客户中心的建立、各项流程规范管理,提高经销商的运营管理能力,具体体现在以下四个方面:
  (1)规范经销商的销售过程管理,提升销售成功率。(2)持续和客户保持有效的沟通,实现经销商、客户利益的最大化;(3)提高经销商分析能力,准确了解客户需求,提高销售预测的准确性,降低销售成本;(4)规范经销商对销售顾问的管理,提高一线销售顾问的工作积极性。
  3、提升终端销售量
  CRM的运用,使得销售团队的效率和工作积极性大大提高,服务质量的提高也使得服务时间和工作量大大降低,从而增加销售成功率和客户满意度,促使销量的提升成为必然。提升终端销售量,主要体现在以下三个方面:
  (1)通过CRM,不断增强品牌知名度,提升客户的推荐率;(2)准确把握客户购车意向,提高成交率;(3)通过CRM分析实施销售线索分析管理,增加终端销量。
  五、中国汽车企业中的客户价值管理创新
  客户关系管理的价值创造主要是通过作用于企业价值链,对企业价值链进行重构,使价值链上的各种活动不断产生价值增值。客户关系管理(CRM)是以研究客户数据为基础,研究客户消费行为,并以此研究为基础组织细分市场,培养客户满意行为,增加客户忠诚度,把从供应商到客户的系列处理过程联系在一块,使得利润、收益、客户满意程度最大化。无论是汽车整车生产商,还是零部件供应商或者是汽车经销商都必须充分利用建立在电子商务平台上的CRM 系统,为自己赢得更大的发展空间。
  从行业特点来看,汽车行业是最适合开展电子商务的行业,因为汽车产品的零部件数量多、供应商的地理分布范围广而且数量众多、产业链比较长,需要广地域或全球采购、生产和销售,在其全部采购业务中,其直接采购或称为用于生产制造的采购约占到总采购的60―80%。通过CRM系统在汽车行业的实施和应用,可以完成营销、销售管理、客户关怀、服务和支持,进而实现行业提高客户忠诚度,提高销售量和服务满意度的目的。
  客户的价值要从两个角度看,一是企业给客户带来的价值,一是客户给企业带来的价值。在追求客户价值的过程中,即销售线索―销售机会―客户―满意客户―忠诚客户―终身客户,企业不应将客户作为终极目标,而是要以终身客户为终极目标。
  客户价值管理是CRM成功应用的基础和核心。客户价值管理就是企业根据客户交易的历史数据,对客户生命周期价值进行比较和分析,发现最有价值的当前和潜在客户,通过满足其对服务的个性化需求,提高客户忠诚度和保持率。
  客户关系管理既是一种理念,又是一套管理制度和流程,以客户为中心,围绕价值管理与价值创造来开展企业的各项活动,能够实现企业与客户的双赢局面,实现降低成本、提高客户满意度和忠诚度、增加企业利润的目的,进而不断提高企业的核心竞争力,帮助企业取得竞争优势,巩固市场地位。
了解管理软件:
版权所有& 智邦国际 京ICP证酷勤网 C 程序员的那点事!
当前位置: >
浏览次数:次
杭州湖畔网络技术有限公司是一家专业提供SaaS化电商ERP服务的创业公司,主要用户群体为经营淘宝、天猫、京东等主流电商平台、自建商城、线下渠道的商家及中小企业。作为SaaS服务提供商,服务数万乃至数十万级用户是业务架构初期就必须考虑的问题。庞大的用户群以及海量的用户数据意味着基础设施的构建必须兼顾高效与稳定,而按照通用的基础设施建设方案的话,需要面对成本过高、实现复杂、需要投入太多精力等问题,这对当时的湖畔网络这样的初创公司来说,完全不能承受。因此,更经济、更方便扩展的云服务平台成为首选。在对比现有各家云服务后,我们选择了稳定性与成熟度都经过大量用户检验的阿里云。
但要构建高性能的SaaS应用,仅凭云服务基础设施是不够的。如何基于云服务平台设计并实施符合自身业务特点的系统架构,也是决定产品性能的关键。本文将讲述我们如何利用云服务,使用相对经济的方案,解决海量用户的数据库使用问题。
我们的SaaS化电商ERP服务的整体架构是基于阿里云服务平台实施的,如图1所示。
图1 系统架构精简示意图
通过该方案,不仅发挥了阿里云的优势(不涉及物理机器的维护和折损,灵活地配置升级,成熟的备份与快照方案),而且通过集群,避免了系统可能会遇到的单点故障,提高了系统弹性扩容的灵活性和可用性。
作为一个SaaS化、数据更集中、数据体量庞大的企业应用,数据库是我们整体架构中的关键节点,如何保证其稳定与性能,是本文讲述的重点。
当用户进入快速增长期后,随着业务量迅速增加,核心业务表的存量数据和增长速度绝对不是单个DB所能承受的(几乎所有单DB配置都存在性能物理上限瓶颈,即使选择升级配置也会受到成本和资源上限的约束)。因此,我们一开始就将数据库分库分片(Sharding)作为一个可行方案优先考虑,主要分析如下。
考虑到业务特性,我们最终采用了行业比较通用的水平拆分+垂直拆分策略,并自主完成DAO与JDBC之间的数据访问封装层开发工作。
水平拆分:按用户将数据拆分到多个库的相同表中
水平拆分的思路,就是将原本存放在单个RDS数据库中的数据,根据业务ID不同,拆分到多个数据库中(参见图2)。拆分后,各库的表数量及表结构都保持一致。水平拆分首先需要确立唯一的业务主表,即其他所有表的数据都与主表ID(前文所说的业务ID)存在直接或间接的主从关系,可以通过主表ID对全部数据做很好的切分。我们选择的业务主表为用户表,其他业务表或表的父表都包含一个用户ID。因此,我们切分的目标就是将不同用户数据存放到不同的数据库中。
图2 水平拆分示意图
确定了拆分规则后,下一步是着手封装Sping数据访问封装层(DBWrapper)。DBWrapper介于DAO与JDBC之间,每个业务DAO进行数据库基本操作,都会经过DBWrapper。它的主要作用是将数据库架构的变化对业务层透明,业务层可以如同操作单个DB一样,调用DBWrapper提供的数据库操作接口,而判断操作哪个数据库的逻辑,则全部交由DBWrapper封装完成(参见图3)。
图3 水平拆分架构示意图
DBWrapper主要提供新用户初始化和数据库操作接口。在新增用户初始化到系统时,需先动态判断系统各库的负载分布情况。粗略一点的算法就是判断各库的用户数,如共有4个库,可以根据user_id%4的情况决定目标库;再精细一点可以挖掘下核心业务数据的分布情况,具体分配算法需要基于业务设定(如考虑不同用户的平均订单量)。通过各库压力综合计算后,分析出压力最小的目标数据库,并将该新增用户数据存放到指定的目标库,同时更新路由信息(Router)。
当用户完成初始化进行业务操作时,则需由业务层调用DBWrapper的操作接口。DBWrapper接收到请求后,会根据业务层传入的User_id匹配Router,判断最终需要操作的RDS实例和数据库。判断完成后,只需要按部就班地开连接执行就可以了。具体的代码实现,需要结合自身的持久层框架,找一名研究过持久层框架实现的开发人员即可完成。
这样就将系统用户整体数据压力,相对均匀地分布到多个RDS实例与数据库上。事实证明,这确实是一个非常有效的方案,尤其是对于数据量大、增长迅猛的表。只是在后续实施过程中,我们发现有时会有单个用户的业务压力比较突出,针对这种情况,我们可以通过一些人工干预(如迁移数据到单独的库)进行微调,当然最终的解决方案还是要不断调优路由算法。
切分后,不可避免地需要考虑数据字典(DD)和数据路由(Router)的处理。暂时我们采用的方法是将所有数据字典与路由放入独立的库,这也是后文中垂直拆分的一种应用。需要说明的是,数据库仅是这两个业务的一种实现方式,一般还可以通过或结合分布式缓存来处理这些业务(我们选用了OCS)。而对于可能出现的单点障碍,预留的扩展方案为水平拆分或创建只读节点(只读节点可以使用RDS最新提供的只读实例,目前还在内测阶段)。
垂直拆分:按业务将表分组拆分到多个库中
与水平拆分相比,垂直拆分要更简单一些。其基本思路就是将存放在单个数据库的表分组,把其中业务耦合度较高、联系紧密的表分为一组,拆分到其他DB中(参见图4)。拆分后,各库的表结构及其业务意义将完全不同。虽然规则简单、实施方便,但垂直拆分总是需打断些关联,因为实际操作中,基础资源常常出现在各个业务场景,在切分时又不得不切分到两个库中,此时就需要业务层多次查询后,在内存处理数据,实现数据库Join的效果。
图4 垂直拆分示意图
垂直拆分同样需要DBWrapper,但封装规则与水平拆分略有不同,需要针对不同的业务,建立不同的DBWrapper。此时不再是完全业务层无感知,需要业务层根据业务场景有针对性使用。单个DBWrapper的实现与水平拆分一致。
垂直拆分的好处在于,将整体业务数据切分成相对独立的几块,隔离了不同业务之间的性能影响。而由于拆分后的数据库业务比较集中,也更容易找到业务主表,更有利于水平拆分。
对于垂直拆分,目前我们主要用于解决数据路由(包含了用户的基本信息)、数据字典模块,以及常见的冷数据问题。冷数据的处理一直是行业的常见问题(其实对于冷数据的划分,也是水平拆分),目前我们采用的方案是集中存储,即按自己的冷数据切分方式,通过自行开发的迁移程序将判定的冷数据增量迁移到一个库中。这个方案既能够分离冷数据对热点数据的操作影响,也可以为大数据的挖掘提供比较便利的条件。使用相对独立的冷数据存储结构,能方便以后采用更高效、成本更低廉的存储介质。当然该方案存在一些潜在问题,如果冷数据库满了该怎么办?目前我们预留的设计方案是,历史库的水平拆分,也可以考虑其他存储形式。
水平拆分与垂直拆分组合使用
拆分一直是数据库优化的关键词(无论是库表结构还是SQL写法),它是每个高并发产品最终都要经历的一步。拆分方案的核心主要在于可以通过添加更多RDS实例和数据库(常常为了节约成本,多个数据库可以部署在一个RDS实例上),灵活扩容系统的负载能力。在数据库架构中,水平拆分和垂直拆分一般都是搭配使用的,两者的先后顺序视具体情况而定。一般而言,垂直拆分更容易,也可以为水平拆分做铺垫,一是业务集中,便于提取主表,二是垂直拆分后,可以只水平拆分压力高的表,而业务增长缓慢的表则可以保留单DB,从而提高拆分效率以及降低实施成本(参见图5)。
图5 数据库Sharding方案示意图
我们之所以优先水平拆分,主要原因还是成本和效率及当时的一些局限性。只按业务ID(用户)做好路由配置,这样各个库中的结构完全一致,保留了原本的业务逻辑与实现,避免了跨库关联,能大大节省实现成本。
尽管拆分有种种好处,但由于分布式事务及跨库Join的实现复杂度较高及可用性较差,所以分布式事务一般都通过业务层使用乐观锁控制。而跨库的表间关联一定要打断,否则性能和实现复杂度都会超出可接受范围。对于跨库的Join、Group by等问题,都需要在业务层处理。目前我们采用的是分批查询,在业务层组装结果的方式。
有些遗憾的是,由于我们早期使用RDS时,阿里云尚未推出DRDS(分布式数据库)产品,所以上述拆分的数据库底层架构均是由我们自行研发的,投入了大量的精力。而现在有了DRDS,正准备做拆分的团队,则无需再自己造轮子,直接拿来用即可,这样团队可以将更多的精力放在业务上。
小处大有可为
虽然我们在架构上做了优化,但在产品发展过程中还是会出现性能不太理想的情况。在阿里云支持中心和论坛上,也可以看到其他业务型团队反馈使用RDS时遇到类似的情况。最初大家都怀疑是不是RDS的底层资源隔离有问题,多个用户共享资源时发生争抢,导致RDS的性能问题。但在阿里云DBA的指导和协助下,发现是由于产品设计时对数据库的使用太&不拘小节&,而随着并发压力与数据量增加,大量细小的性能问题被放大,集中暴露出来。
解决灯下黑:修正业务层的数据库操作陋习
在数据库的优化过程中,研发团队最容易忽视的往往是业务层中的数据库使用。一些优化方案可以作为开发的常态化准则。下面仅列举几个常用的优化方案。
挤掉海绵里的水:优化数据库执行计划
由于执行计划的优化往往涉及到数据库的运行机制与底层设计,此处实难三言两语说清。所以下面仅列举几个我们受益颇深的优化方案。建议大家优化执行计划时,多关注、分析iDB Cloud控制台中的性能报告和建议,也尽量多向阿里云DBA们请教,一般可以通过提工单的方式。有条件或兴趣的话,DBA可以通过预约到阿里云现场学习。另外,执行计划的优化需要大量的调试工作,通过在阿里云控制台创建生产数据库的临时实例,可以准确模拟当前系统的数据结构、分布与压力。
字段类型选择
选择合理的字段,往往可以大大减少数据库行数据的大小,并提高索引匹配的效率,进而大大提升数据库性能。使用更小的数据类型,如日期采用date代替datetime、类型或标记使用tinyint代替smallint和int、使用定长字段代替非定长字段(如char代替varchar),都能或多或少减少数据行大小,提高数据库缓冲池的命中率。而作为表字段中特殊的一员&主键,其选型更会对表索引的稳定和效率带来很大的影响,一般建议考虑数据库自增或自主维护的唯一数值。
高分离度字段建立索引
对于查询来讲,高分离度字段往往意味着精准或部分精准的条件。相对来讲是最好优化的一种场景,只需要对分离度较高的字段单独建立索引即可。当然实际使用中会有更多细节需要摸索。精确条件在各业务中基本都会用到,在越复杂的业务场景中,精确条件优先的原则,将是最有效的优化方案。需要注意的是,尽管高分离度字段单独建立索引效率很高,但过多的索引会影响表写入的效率,所以需要谨慎添加。这一点iDB Cloud中有大表索引的建议可以参考。
覆盖索引(Covering Index)
通俗一点理解,就是执行计划可以通过索引完成数据查找和结果集获取,而无需回表(去缓冲池或磁盘查找数据)。而由于MySQL的索引机制限制,一次查询时,将只用到一个索引或将两个索引聚合(index_merge)起来使用,所以意味着复杂的业务场景中,单独对每个字段建立索引可能没有什么用处。所以对于一些特定的查询场景,建立合适的组合索引,应用覆盖索引方法可以避免大量随机I/O,是更为推荐的优化方案(如果执行计划Explain的Extra中有Using Index,就说明使用了覆盖索引)。但实际业务总是会比索引本身更复杂,业务中需要查找或者获取的字段信息往往是很多的,而组合索引并不能涵盖所有的字段(否则我们将拥有一个比数据还要庞大的索引)。此时,为了应用覆盖索引,就需要使用主键延迟关联(Deferred Join),即先通过组合索引中包含的字段条件,初步查询出相对较小的结果集(面向结果集原则),该结果集只包含主键字段;然后通过获取到的这个主键队列,再对数据表做关联。
见招拆招:升配置
一般业务型的研发团队,很难有额外的精力投入到数据库方面,也没有专业的DBA来不断调优数据库配置、优化数据库服务器性能。所以早期团队可以选择的方案不多,也很难在技术上深挖下去,只能用成本换时间:性能配置不够,那就升级服务器配置。
那么问题来了:自己部署的数据库要升级配置,除了调整数据库配置参数,还会受到物理机的限制,因此就要考虑更加复杂的数据库备份和同步策略。但这是业务团队所不能接受,甚至短期内无法实现的,升配置也就变成了一个复杂的问题。不过我们使用了RDS,其弹性升级策略,正是这个问题的最佳解决方案。
在长期的数据库乃至整个产品的优化过程中,我感受最深刻的就是:完美的方案可遇不可求。选择方案时,如果能解决80%的问题,并规避或保留剩下的20%,则将大大提升团队的整体效率。产品与架构都是在不断优化演变的,我们要循序渐进、不断努力,将今天的终点留作明天的起点。
总结与展望
作为一位创业公司的技术开发人员,通过实际使用阿里云产品,我总结了几点关于使用云计算产品的优势。
1. 便利的服务器弹性升级功能,可随时应付像&双十一&这样的大促。而通过使用传统IDC托管模式,物理机的维护、升级以及升级后的数据迁移都是比较头疼的。
2. 成熟可靠的数据备份与快照、数据库主从分离与同步的底层方案。创业团队无须承受自己造轮子的代价,可专注于业务开发。
3. 云计算产品经过检验、值得信赖的安全防护。
4. 精简了创业团队人员规模。云计算平台具备专业的技术支持与服务,使得创业团队不再需要数据库和服务器管理员。
除了使用云产品的心得,数据库调优实践是本文的重点。在数据库的架构设计与性能优化方面,我秉承的原则是解决主要问题,按先分而击之、再挖掘细节的步骤,周返往复不断进行,同时系统架构也在这个过程中不断演变。相信随着时间推移,会有更多优秀的方案出现。尤其随着云服务不断发展,业务研发团队投入到基础设施的精力与成本,将会无限减少。会有越来越多专注于业务研发的团队,推出更多优秀的互联网产品,用互联网服务推动企业创新,重塑中小企业信息化形态。
采用SLB(Server Load Balance,负载均衡)作为Web集群访问入口,负责为Web端的多台服务器进行流量分发。SLB是基于集群建设的,并且可以随时变配,按量付费。它不仅为我们实现了成熟的负载均衡方案,其稳定性与灵活性也为Web集群提供了更多可能。
后端配置多台ECS(Elastic Compute Service,云服务器)实例,将主要应用服务都部署在ECS上。除了可弹性扩容这一特性,ECS提供的安全防护和快照备份为服务器安全和容灾提供了非常成熟的解决方案,这恰恰是我们这种业务型创业团队积累相对最薄弱的方面。另外,ECS多线接入骨干网络能保证网络的稳定和性能,使得任何网络的用户访问应用服务都非常顺畅。
DB集群由多台RDS(Relational Database Service,关系型数据库服务)实例组成。RDS是云数据库,简单易用,使用方法与自行部署的数据库完全一样。其成熟的双机热备与底层资源隔离,保证了我们这两年来数据库的平稳运行。另外,强大的iDB Cloud控制台、专业的DBA团队支持,为我们监控数据库运行状况、定位和解决数据库问题,提供了非常多的建议和帮助。
集群之间的共享资源统一存放在OCS(Open Cache Service,开放缓存服务)中。我们用OCS来存放数据路由和实时性不高的业务数据。缓存作为我们架构性能中非常重要的一个环节,在承受了来自整个集群各方面压力的同时,还要保证响应稳定高速。
场景:业务热点数据持续增加,团队有一定的数据库架构积累能支撑独立研发或熟悉成熟的中间件(如Cobar)。
优点:成本低(可以利用开源免费的数据库集群替代大型商业DB);可灵活扩容(不断增加新的数据库切片即可);相对均匀分布的数据读写,避免单点障碍。
缺点:需要研发团队在数据库架构上投入大量精力;数据库集群维护需要成本投入。
场景:数据库性能有问题,应优先从业务层分析。
优点:减轻数据库的直接压力,比执行数据库优化方案更加迅速有效。
缺点:业务研发需要关注一些数据库操作内容;有时会牺牲一些业务;产品规模越大实施越困难。
延迟加载。很多页面展现时,单个实体实际只展现部分内容,因此可按需加载,减轻数据库压力,又节省网络流量。延迟加载也可体现在数据库表的拆分设计上。
适当缓存,以空间换时间。对于很多实时性较低或干脆就是数据字典的内容,无需实时到数据库中加载,只需在使用前加载到内存中,实际使用时到内存中获取即可。
减少不必要的开连接(连接池、批量查询及提交)。对于大部分的Web应用,连接池大大减少了系统因开数据库连接产生的开销。而在查询和提交中,将多个任务合并到一次数据库操作中,也可以大大提高数据库使用效率。
乐观锁是高并发下不错的解决方式。相比于数据库的悲观锁,业务层实现的乐观锁,不仅能减少锁争抢,还可以减少数据库的锁开销,进而提高数据库使用效率。
分解大事务。数据库对于大事务的原子性保证,也是不容忽视的开销。业务使用时,尽量将大事务切分为小事务,或者适当利用异步提交,精简事务体积。
合理使用Join。数据库执行计划中,有一条准则是越简单越快速。所以通过适当冗余数据设计或业务层分批查询后内存组装数据,减少数据库Join语句及SQL复杂度,对于数据库执行效率和执行计划的优化都有不可忽视的好处。
场景:并发不多、数据量并不很大,或系统整体压力较低,只有某几个业务点性能较差。
优点:在不改变基本条件的情况下,挖掘数据库更大潜力。
缺点:需要DBA协助或研发团队对数据库执行计划做研究。
场景:性能问题紧迫,团队时间资源有限。
优点:简单粗暴见效快,基本适用于任何优化阶段。
缺点:增加成本;治标不治本,只是延迟问题再次爆发时间;资源总有上限,迟早升无可升。
& 相关主题:

我要回帖

更多关于 提升品牌价值 的文章

 

随机推荐