• 1. 海量数据处理的大杀器 ——腾讯分布式数据仓库(TDW)2012年7月腾讯公司 郭玮
  • 2. Agenda 腾讯公司的海量数据处理平台 腾讯分布式数据仓库(TDW) TDW的技术点分享 TDW技术发展展望
  • 3. 腾讯公司的产品
  • 4. 腾讯海量数据处理平台统一采集实时采集离线采集流式计算海量存储& 批量处理分布式数据仓库 (TDW)分布式计算平台 (TDCP)BI 分析库统一分发实时分发批量分发统一数据流工作流管理(USP)海量数据平台产品产品
  • 5. Agenda 腾讯公司的海量数据处理平台 腾讯分布式数据仓库(TDW) TDW的技术点分享 TDW技术发展展望
  • 6. TDW是什么分布式数据仓库(TDW) Tencent distributed Data Warehouse 腾讯海量数据处理平台的核心部件 基于开源软件hadoop和hive,大量的优化和改造
  • 7. TDW特性列表(部分)特性说明存储和计算天然容灾集群中个别节点down机不影响存储和计算存储和计算线性扩展通过添加节点线性扩展存储和计算能力SQL语言select、insert、join、where、groupby、having、limit、orderby、分区、视图等SQL函数简单函数、聚合函数、窗口函数、数据挖掘函数过程语言以python语言为母体的PL/python多维分析rollup、cubeMapReduce允许提交MR任务多种存储结构可压缩的文本/结构化/列存储、ProtoBufSQL/MED可访问和管理PostgreSQL、Oracle数据完善的开发环境集成开发环境TDW IDE、命令行工具PLClient强大的管理台图形化的任务依赖配置、数据流转配置可定制功能根据公司业务特点,定制功能
  • 8. 海量数据离线处理解决方案IDE三大引擎TDW CoreSE操作台后台接入数据流转工作流USPCEQEBI库OracleSQL开发数据挖掘数据展现BI工具
  • 9. TDW CORE基于开源的hadoop和HIVE 分层结构 查询引擎 计算引擎 存储引擎 进行深度定制
  • 10. TDW BI分析库TDWPostgreSQLDB存储引擎TDW_FDWBI分析库的重要补充 做为TDW的结果库、展现库 提供标准化数据接口 提供小数据量精细分析 提供update和delete功能 提供即席查询功能 SQL-MED
  • 11. TDW统一调度平台(TDW USP)任务接入 入库任务 出库任务 计算任务 数据流转 配置任务依赖关系 配置任务重试和告警 任务状态查询 重做和补录任务
  • 12. TDW集成开发环境(TDW IDE)强大的PL编辑调试环境 PL模版 语法高亮 自动格式化 自动补全 单步调试 完善的SQL编辑调试环境 语法高亮 自动补全 explain 自动格式化 SQL执行进度显示 数据导入导出 元数据视图 ……
  • 13. Agenda 腾讯公司的海量数据处理平台 腾讯分布式数据仓库(TDW) TDW的技术点分享 TDW技术发展展望
  • 14. TDW的技术点分享多数据存储格式 结构化存储+列存储+压缩 ProtocalBuffer hash join 和 colocation 基于负载感知的公平调度策略 差异化多级存储策略 分时计算框架 数据库特性优化 分区功能 窗口函数 规则系统
  • 15. 结构化存储+列存储+压缩结构化存储 更高的存储和解析效率 提供了一些DB特性(获得表的行数,支持修改表结构) 为随机访问提供基础设施 列存储 支持列簇存储 大规模减小磁盘IO 集群平均处理能力可得到10~20倍的提升(与hadoop本身的文本存储相比) 压缩 采用lzo压缩,兼顾IO和CPU 行存储压缩比1:2,列存储1:4 平均节省集群60%的存储成本
  • 16. ProtocalBuffer PB优势 良好的协议扩展能力 描述能力强、解析效率高 编码格式节省存储空间 腾讯广告业务统一采用PB为存储协议,更多其他业务也开始逐步使用 TDW支持PB格式 早于开源版本实现 可根据接口文件自动创建表结构
  • 17. hash join 和 colocation hash join 90%的数据关联都是基于用户id的 实现了hash分区入库 优化器自动使用hash join(join key=hash key) 省略了reduce阶段,大大节省计算时间 Colocation 修改了namenode的block摆放策略,使同一hash分区的数据存放在同一台机器上 用一致性hash环存放hash分区数据 基于colocation的hash join只需要访问本地磁盘即可完成计算,节省参与join计算总数据量80%网络IO hash操作性能提升3倍
  • 18. 基于负载感知的公平调度策略 调度策略的特点 资源分组,保证重要用户得到资源保障 用户隔离,保证用户之间不互相影响 允许重要紧急的任务立即获得集群全部资源 小任务友好,小任务不会被大任务堵塞 负载感知,不下发任务给内存/磁盘空间不足的子节点 效果:集群稳定,总资源不变的情况下效率上升 任务平均等待时长从24秒下降到19秒 任务平均耗时降低10% 集群CPU负载保持不变 没有再出现过任务互相影响或者负载过高造成的故障
  • 19. 差异化多级存储策略 结构化压缩 平均2倍的压缩率 读写效率和存储空间平衡 TDW中默认的压缩策略 差异化压缩 平均5倍的压缩率 可与结构化压缩混用 主要针对TDW中的冷数据 差异化副本策略 hadoop raid 节约存储和不降低数据安全 更激进的副本策略 存储成本可有50%的节省 结构 化压缩差异化压缩差异化副本 策略
  • 20. 分时计算框架 问题提出 白天集群负载低 凌晨集群负载非常高,集群压力大 无法按时完成计算任务 解决思路:将某一时间段的计算压力分散到全天 分时计算框架 由框架完成分时计算,用户不感知,程序不需修改 平峰填谷,集群资源得到充分利用,集群稳定性得到保证 业务SLA得到更好保证
  • 21. 分区功能CREATE TABLE test2( Key INT, Value STRING ) PARTITION BY LIST (Key) SUBPARTITION BY RANGE(Value) ( SUBPARTITION spart_2011april VALUES LESS THAN ("20110501"), SUBPARTITION DEFAULT ) ( PARTITION part_0_5 VALUES IN (0,5), PARTITION DEFAULT )支持类似Oracle的语法 支持list、range、hash分区 最多支持两级分区 数据自动加载到对应分区 支持显式分区优化和隐式分区优化
  • 22. 分析函数 什么是分析函数 分析函数为每一行数据针对一组数据行计算出一个特定聚合值,主要用于解决很多统计方面的问题 分析函数实现框架 分析函数带来的优势 提升TDW SQL表达能力 提高TDW分析效率 方便业务迁移Oracle应用 使用情况 用户使用分析函数的频率约为join的1/3 用户每月提交2000个左右的分析函数 select col1,col2 ,sum(col1) over (partition by col2 order by col3) from tbl where col3>0LAG() OVER()LEAD() OVER()RANK() OVER()DENSE_RANK() OVER()ROW_NUMBER() OVER()SUM() OVER()COUNT() OVER()AVG() OVER()MAX() OVER()MIN() OVER()RATIO_TO_REPORT() OVER()
  • 23. 规则系统 什么是规则系统 准确地说是查询重写规则系统 把查询修改为需要考虑规则的形式,然后把修改过的查询传递给查询规划器执行 视图的例子 可用来快速实现TDW新的语法 视图 CTE Rollup、Cube等
  • 24. Agenda 腾讯公司的海量数据处理平台 腾讯分布式数据仓库(TDW) TDW的技术点分享 TDW技术发展展望
  • 25. TDW技术发展展望 集群大规模化、提高稳定性 NameNode高可用、高性能 JobTrack高可用、高性能 下一代TDW——TDW2.0
  • 26. NameNode的演进HDFS 0.20.xNameNodeSecondary NameNodeHDFS 0.21.xNameNodeBackup NodeHDFS 0.23.xBackup NodeNameNode FederationNew DFSMaster (primary) Master (secondary) Meta Server (primary) Meta Server (secondary)
  • 27. JobTracker的演进MapReduce 1.0JobTrackerResouce ManagerApplication MasterMapReduce 2.0 Resource Manager Application Master Federation Standby Resource Manager Job Status Serializer New MapReduce
  • 28. 下一代TDW——TDW2.0 Execution EngineLogical AnalysorPhysical AnalysorLexer/ParserTDW2.0更符合规范或事实规范的定义大幅度加强代数优化更全面的统计信息搜集和使用更细致的物理优化规则DAG, not MapReduce进程池&中间结果不落地的小任务执行规则精心优化实现细节改进的shuffle sort实现Data Cube
  • 29. 谢 谢!