2007年淘宝的交易额已经超过了沃尔玛和家乐福在中国的销售额的总和,占据中国网购市场70%以上的份额。在这些成倍数增长的业绩数字背后,需要数据库技术来支持企业未来持续成长的延展空间。淘宝网资深数据库专家江枫在接受51CTO记者专访时,分享了淘宝2004年开始构建的企业级数据仓库。



 



       淘宝将数据仓库部署在Oracle RAC上,这是一个由20个节点组成的单一数据库集群。“为了更好地了解客户的需求,分析和挖掘淘宝后台大量数据信息的价值,2007年、2008年我们先后两次利用Oracle RAC 10g对数据仓库系统进行了升级和扩充,节点数从4个升级到12个,后来又升级到了20个节点”,江枫谈到:“2009年开始我们也在测试Oracle 11g。这样的升级令淘宝在数据仓库规模每年成倍扩大的情况下,实现了数据处理和分析时效性的不断提升。”



 



       淘宝所有的商业数据基本上都汇集到了数据仓库利中。利用数据仓库技术,淘宝抽取了分散在不同业务系统中的业务数据进行集中,这些信息是完整记录了用户访问路径、交易过程的海量数据。通过数据仓库的清洗、整理、过滤、排序等技术手段,这些海量的数据形成了具有商业价值的业务信息,并生成反映最新市场现状的统计分析数据报表。“现在淘宝每天的活跃数据超过50TB”,江枫说:“这些数据是每天进行动态分析的,这样淘宝在交易中也更好的提供了精准的个性化服务。”



 



数据仓库架构分析



 



        淘宝数据仓库中的许多业务查询与分析都是动态的,数据处理量大,实效性较高。“Oracle RAC具有非常好的并行处理能力,这对动态查询和模糊查询有很大帮助,能够有效满足淘宝数据仓库这种复杂和动态的海量数据分析处理需求”,江枫认为“对于淘宝这样处于新兴行业中且高速发展的企业来说,数据仓库良好的线性扩展能力也极为重要,它可以使得淘宝在需要的时候,通过向集群中增加低成本的普通服务器来满足高性能的数据处理需求,从而获得很好的投入产出比。”

 

       Oracle RAC的线性扩展能够始终提供整个企业统一的信息视图和数据集市,而不会像一些扩展能力有限的系统那样,随着数据量的增长,系统性能逐渐下降,最后不得不将数据分离,建立多个小规模的数据集市,造成管理和数据访问的困难。

 

       对于大型数据仓库的应用系统,淘宝在建立初期就考虑到如何能有效而简单地进行系统管理。特别是当数据量不断扩大时,如果没有一种有效而且简单的系统管理措施,那么系统的运行费用将会很高。江枫说:“Oracle ASM中提供了磁盘管理、数据流量平衡以及自动创建和删除数据文件等管理功能,有效的增加了数据仓库系统管理动态数据库环境的灵活性,降低了管理成本。”



 



数据挖掘实现全面的商业智能



 



       在近期推出的《i淘宝》个性化推荐的计算中,通过使用Oracle RAC 跨节点并行技术。“淘宝数据仓库实现了相关模块计算时间的显著缩短,最多的缩短了2小时以上,最少的也缩短了30分钟,为淘宝成功实施个性化推荐提供了重要保障”,江枫进一步指出:“淘宝还将利用数据仓库为用户提供更多的服务,比如提供店铺内推荐、精确邮件定向营销以及购物风尚榜等服务项目,这些服务项目和数据指标在前台使用起来非常简单,其实它们都是来自于海量数据的高度浓缩,Oracle RAC的高性能平台很好地支持了这些非常复杂的计算过程。”



 



      淘宝的研发团队有超过2000人的规模,其中做数据产品的技术团队超过100人,包括30多名DBA专家组成的团队。抽取分布在不同环境下的数据集中到数据仓库中的工具ETL,就是淘宝的技术团队自己研发的。“这个叫做天网的系统,也是基于Oracle开放的架构平台之上完成的”,江枫说:“对于二次研发的把控性来说,我们更愿意选择开放架构的平台,同时对于不同的大存储量或者大规模的产品语句来评估Oracle的解决方案,他都是更适合淘宝业务的一个选择,事实也证明了这一点。”



 



      未来淘宝的定位会是一家数据公司,所以数据将是淘宝的核心价值所在。数据不仅让淘宝的用户有更明确的市场定位,同时,对于淘宝内部来说,根据不同用户在数据上显示出的不同特性,对淘宝的运营策略是非常重要的数据支持。从数据管理的角度,淘宝也有自己的一整套监控系统进行支持,包括防欺诈、防恶意数据等。“淘宝所有的数据至少是1比1的在两个机房同时备份来保证数据安全,当然也包括有异地的数据备份机制”,江枫谈到:“我们可以保证一个机房在断电或者是火灾的情况下,另外一个机房在很短的时间内继续向淘宝网的用户提供服务。”