赵 伟 腾讯PostgreSQL应用分享 www.tencent.com PGCONF CN2013@HANGZHOU 个人简介 2009年毕业于哈尔滨工业大学 09年加入腾讯数据平台部,参与腾讯分布式数据仓 库(TDW)项目研发,熟悉Hive、Hadoop、 PostgreSQL等技术,目前是TDW技术负责人 2011年起在腾讯内部应用和推广PostgreSQL技术, 腾讯内部数据服务tPG的负责人 PG的中文分词插件zhparser作者 • https://github.com/amutu/zhparser 提纲 PG在腾讯应用概述 基于PG的数据库服务tPG介绍 PG应用未来规划 PG在腾讯应用概述 主要业务场景为OLAP数据分析 大部分为内部系统,少量应用于对外服务 作为TDW系统的补充而存在 主要应用形式为业务使用TDW提供的tPG服务 TDW团队负责机器、运营和技术支持 业务提交申请即可使用 PG与MySQL MySQL可以支撑,则优先使用MySQL MySQL不能满足,再考虑使用PG TDW与tPG 最大集群节点数:4000台+ 总存储:70PB+ TDW IDE日均活跃用户数:150人+,总用户1000人+ 日均运行SQL:40w条+ 数据挖掘 精准推荐 用户画像 业务报表 Lhotse 统一调度 IDE Tdbank 数据采集 TDW Core D A T A tPG 查询 引擎 计算 引擎 存储 引擎 TDW数据集市,结果展现 对外提供JDBC/ODBC等标准化接口 提供高效的小数据分析功能 提供高效的update/delete功能 tPG作用 TDW运营情况 TDW为什么要引入tPG TDW应用推广遇到的挑战 TDW离线分析,不能满足业务的结果库需求 TDW没有标准的JDBC、ODBC接口,难以与商业工具对接 TDW处理小数据、做update和delete效率低 解决方案 TDW不是万能的,不可能满足所有应用场景 需要建设一套RDBMS,作为TDW的补充 • 要方便用户迁移已有业务,做好有工具做迁移 • 要有标准的JDBC、ODBC接口 • 性能要好 • 功能容易扩展 为什么选择PostgreSQL 完善的DB功能 SQL标准支持较好 支持PL/pgSQL等多种过程语言 支持视图、分析函数、CTE等高级特性 OLAP性能超过MySQL 复杂SQL性能高10倍+ 基于cost的SQL优化,调优手段更多 部分索引,函数索引,cluster索引 插件式的功能扩展 已有访问Mysql、Redis、文本等外部数据源插件 很容易开发访问TDW的插件 高可靠和高可用 master slaver slaver DNS rw r r JDBC ODBC Shell php pgadmin • 12*2T硬盘 • 软raid10 • xfs 高可靠:软raid10+SR 高可用:DNS容灾+SR 与TDW互联互通及易用性 master slaver slaver DNS rw r TDW r JDBC ODBC Shell php pgadmin tdwlink Pgdata 存储引擎 tPG访问TDW数据:Tdwlink功能 TDW访问tPG数据:pgdata存储引擎、SQL/MED 性能提升:在tdw中,将SQL条件尽量下推到tPG执行 TB级数据库备份与恢复 ZFS 全量备份 增量快照 基于zfs快照技术 速度快,对上TB的数据做快照耗时小于1秒 占用空间小,新生成的快照几乎不占空间 支持快照增量备份,支持快速rollback Stage/tPG@20130101 Stage/tPG@20130102 … Stage/tPG@20130101 Stage/tPG@20130102 … WALs归 档日志 快照+归档日志, 实现基于时间 点的恢复 tPG使用的开源插件 分区管理:基于pg_partman进行改造 监控:check_postgres和pgBadger 缓存预热:pgfincore 实例间互相访问:dblink 读取MySQL数据:mysql_fdw 中文全文检索:zhparser tPG运营现状 目前运营情况 11套tPG实例,共约40台机器 已用存储约30TB,最大实例存储达5TB tPG在公司内的用总户数100人+ 没有因PG本身出过事故,用户评价积极 业务类型 对外:用户报表 对内:TDW系统,30多个业务的报表系统、数据提取系统、 BI系统、营销系统等 Postgres-XC PG单机版问题 单机版PG存储和计算性能不能扩展 管理多个单机版PG,运维工作量大 Postgres-XC试用情况 Pgxc1.1版本,8个datanode节点的集群 Insert性能比单机低很多,推荐使用copy 读性能几乎与节点数成正比 在高并发下,GTM成为瓶颈 在一些异常情况下,系统表损坏 PG应用未来规划 为业务提供集群版PG-XC服务 更丰富的应用场景 地理信息(PostGis) 机器学习与数据挖掘(Madlib) R统计分析(PL/R) … 接入流程自助化 将tPG服务云化,降低运维人工参与量 Q&A E-mail:jovz@vip.qq.com Blog:http://amutu.com 赵 伟