淘宝在数据存储和处理领域在国内互联网公司中一直保持比较靠前的位置,而且由于电子商务领域独特的应用场景,淘宝在数据实时性和大规模计算及挖掘方面一直在国内保持着领先,因此积累了很多的实践的经验和产品。
TimeTunnel
- 基于Hbase打造的消息中间件,具有高可靠、消息顺序、事务等传统特性,还能按时间维度反复订阅最近历史的任意数据
- 高性能的broker,单节点达2万TPS,实际支持上千长链接并发
- 承载海量的数据传输,日同步数据达10TB,并且包含淘宝主营收入等关键性数据
- 在各IDC内,部署了超过2000个客户端,覆盖全网日志传输
- Scribe、flume、activemq、ZeroMQ?我们可以做得更强大
TBFS
- 基于Hdfs 0.20进行全面改造,设计目标:单个集群可达10000台服务器,支持10亿文件、100PB的数据的存储
- 领先于社区的全新设计,彻底解决namenode单点问题,并可实现集群在线升级
- 期待你来挑战:snapshot、异地数据复制、多级的cache、软硬链接支持
Hbase
- 基于Hbase0.90.3进行改造,目前有上百台的Hbase服务器,支淘宝7个online应用,online数据存储达100T
- 支持本地化数据计算、二级引索
- 期待你来挑战:无阻塞的compact、更多的事务支持、更短的请求响应时间、更强大的索引(Lucene for hbase)
Mapreduce
- 基于Hadoop0.19改造,最大单个集群规模达2000台服务器,兼容hadoop0.20 绝大多数API
- 实际存储数据超过10PB,日运行mapreduce job达5万个
- 期待你来挑战:更高效任务调度、更优雅的计算资源管理、更灵活的分布计算模型
Hive
- 基于hive0.6改造,修改的patch达上百个,支持SQL中间结果复用等众多特性
- 支持淘宝几乎所有的商业数据分析任务,是各行业数据分析师和数据开发工程师必备的技能
- 期待你来挑战:Hive & Pig能混合编程?现在不能,你敢想就可以来做!
Taobao-pamirs-schedule
taobao-pamirs- schedule是一个基于分布式环境的多线程任务处理框架。目的是让一种批量任务或者不断变化的任务,能够被动态的分配到多个主机的JVM,不同的线程组中并执行。所有的任务能够被不重复,不遗漏的快速处理。它将需要执行的任务抽象成一致的任务模型,进行统一的管理和监控。运用schedule,任务能够比较均匀的分发到多台机器上进行处理,并且可以动态的进行水平扩展。
QLExpress
一个轻量级的脚本引擎,作为一个嵌入式规则引擎在业务系统中使用。让业务规则定义简便而不失灵活。让业务人员就可以定义业务规则。 支持标准的JAVA语法,还可以支持自定义操作符号、操作符号重载、函数定义、宏定义、数据延迟加载等。
UIC
Uic是个海量数据的高稳定高并发高响应高可靠高一致性的系统。海量数据:现在整个用户中心的注册用户数接近6亿,加上地址,支付宝绑定数据,接近 20亿。现在通过分库分表存在了16个库1024张表里面。高稳定,高可靠:用户中心是淘宝最为核心的系统之一,一个完整的交易流程需要访问UIC高达几十次,所以UIC的稳定是整个淘宝的重中之重,我们为了UIC的稳定做了很多容灾的方案,包括多机房的备份,缓存的容灾,mysql的容灾,流量的控制等等,可以说UIC的核心就是各种容灾体系和在各种极端情况的下解决措施高并发,高响应:每天访问UIC的数据在200亿左右,我们使用了tair做为缓存,使用protobuf序列化, 尽可能的提高缓存的命中率,现在用户数据的命中率在99%。
Prom
海量数据实时计算框架。基于搜索技术对海量明细数据做实时计算。目前主要对交易数据做分析,应用于数据魔方中 特点:
- 多维索引组合查询
- 支持任意维度的计算
- 实时响应(秒级)
- 结果精确
Andes
Andes是基于HBase的任意数据长时间维度高性能数据查询集群系统。解放数据魔方在查询时间段上的限制。 采用key-list存储方式,对于任何时间长度的查询均仅需一次数据库访问即可完成,规避查询时间对于查询性能的影响。
KeyKeys
用户搜索query数据分析系统。应用于淘词中,提供实时匹配用户输入query做关键query、关键热词的查询计算。
Myfox/Nodefox
MyFOX是一个针对海量统计数据设计的高性能分布式MySQL集群中间层,承担着数据魔方90%以上的数据存储和查询需求。MyFOX能够提供: • 1) “表字段+数据行数”相组合的数据切分规则; • 2) 完全透明的标准SQL查询接口 • 3) 同样的SQL语句,在10亿数据量下,与1000万数据量时完全相同的查询性能 • 4) 每份数据跨机房冗余,单机故障时受影响分片在集群内迅速自我复制; • 5) 冷热数据分离;实时监控查询频繁的数据分片,必要时在集群内进行扩充性的自动复制。
Glider
Glider是建立在MyFOX、Prom以及Keykeys等异构数据源之上的统一的数据中间层,是数据魔方、淘宝指数以及开放API等数据产品的统一的数据查询出口。 Glider对各个异构数据源进行高度抽象,并在此基础上进行通用的JOIN、UNION、排序、去重、表达式求值等计算。这一复杂过程仅通过简单的配置即可实现。 Glider目前承担着单机每天超过2000万的数据查询请求,8月25日的平均响应时间126毫秒。
Node.js
Node.js是一个基于V8引擎的服务器端JavaScript运行环境,提供非阻塞、事件驱动、异步等特性。对于高负载应用服务场景,以及最大化利用服务器硬件资源具有很大实用价值。我们是国内最早将Node.js引入互联网商业开发领域的团队,已应用此技术开发了 taojob(http://taojob.tbdata.org)、数据魔方俱乐部等一系列Web产品。目前正在使用Node.js对Myfox、 Glider进行升级改造,并将其应用于“淘宝指数”的产品开发。
数据可视化
数据可视化是关于使用图形化的手段,清晰有效地传达与沟通信息的研究。淘宝数据可视化实验室自2010年成立以来,使用最新的数据可视化技术对淘宝海量商业数据进行研究分析,通过一系列可视化应用向外界展示淘宝数据蕴藏的价值,展现数据之美,为用户提供了了解数据、分析数据的全新的方式。
体感交互
通过对最新体感交互技术的研究,我们将在数据可视化及数据产品中为用户提供革命性的交互体验,帮助用户更方便的使用互联网数据产品。
分布式推荐系统
基于HADOOP-MAHOUT分布式机器学习技术、面向个性化主题的数据处理平台(PDP)核心应用之一;应用架构为offline计算+online两层推荐引擎;数据分为采集中心、算法中心、发布中心、评价中心。 淘宝网消费者购物模式挖掘 淘宝网消费者购物模式挖掘是淘宝指数项目中的一个子项目,通过分析消费者历史购物行为,挖掘和识别消费的购物模式和购物心理。项目中我们采用购物类目关联图分析的手段,通过图论技术来实现消费者相似购物模式的挖掘。其中类目相似连接图构造,相似购物团簇发掘是其中的核心点。
商品评论情感分析打分
商品评论情感分析打分系统是基于淘宝网海量商品评论数据,采用关联规则挖掘的方法,构建高频特征词;通过语义分析、消费者情感趋向分析,并结合评论者本人的评论习惯(评论者得分)给出商品评论分,以此得出该商品的最终评论打分。该得分反映商品对于购买者的满意程度。
银河流数据处理平台
通用的流数据实时计算系统,以实时数据产出的低延迟、高吞吐和复用性为初衷和目标,采用actor模型构建分布式流数据计算框架(底层基于 akka),功能易扩展、部分容错、数据和状态可监控。 银河具有处理实时流数据(如TimeTunnel收集的实时数据)和静态数据(如本地文件、HDFS文件)的能力,能够提供灵活的实时数据输出,并提供自定义的数据输出接口以便扩展实时计算能力。 银河目前主要是为魔方提供实时的交易、浏览和搜索日志等数据的实时计算和分析。
开放式数据体系
真正基于云平台的数据体系及数据处理平台,秉承透明、标准、隐私保护的设计理念,实现了包括主题研究、挖掘算法、实时计算数据组合的开放式数据体系。
极限存储
数据仓库应用与分布式计算的经典结合,在云梯1上实现了数据高达120:1的压缩比,迄今为止已有30余种业务数据完成应用,累积节省存储达15PB,此外,在提高数据访问效率,降低计算消耗方面也有十分显著的效果。
Dbsync
用于实时同步数据库数据到HDFS的产品,通过解析各类RDBMS的log文件来提取相应的数据库动作,进而达到数据库到HADOOP的数据同步,供相关部门提取增量数据,通过dbsync,能够了解并得到所有数据的任意变化轨迹。
DataX
- DataX是一个在异构的数据库/文件系统之间高速交换数据的工具。
- 采用Framework+plugin架构构建,Framework处理了缓冲,流控,并发,上下文加载等高速数据交换的大部分技术问题,插件仅需实现对数据处理系统的访问。
- 运行模式 :stand-alone / on hadoop
- 数据传输过程在单进程内完成,全内存操作,不读写磁盘,也没有IPC。
- 开放式的框架,开发者可以在极短的时间开发一个新插件以快速支持新的数据库/文件系统。
SKYNET
天网调度系统(SKYNET)作为淘宝数据平台的核心调度系统,承载着淘宝数据跨部门/数十条业务线/超过一万个作业的调度和运维工作,具有图形化、跨平台、自动部署、线上运维、智能容灾的特点,是淘宝数据平台的中枢系统。
数据开发服务平台
数据开发服务平台整合IDE、调度、监控、告警、元数据、成本优化、权限控制、审计、用户管理能功能。平台将复杂的技术细节屏蔽在平台内部,为使用者提供简单便捷的用户体验,使开发者能够专注于商业领域的需求,降低用户在云梯上进行数据应用开发和数据分析的门槛。
SuperMario
海量数据的实时处理能力:SuperMario,基于erlang语言和zookeeper模块开发的高性能数据流处理框架,使用订阅者模式构建流节点间的流关系,支持高性能的数据流式实时处理。
Openresty
以更低的成本支持更高的并发处理能力:Openresty,基于Nginx构建的量子web服务框架,让web server成为量子网站核心容器,通过nginx_lua_mod的扩展,能够高效、便捷的开发高性能web服务。
LzSQL
更高效、敏捷的数据开发能力:LzSQL,基于perl::parser模块构建的量子数据库小语言,封装了数据库分库、分表,以及异构数据实时融合(数据库和第三方引擎)的功能,便于进行快速的REST数据接口开发。