01 November 2013

2013 PostgreSQL中国用户大会在2013年10月26,27两天在杭州举行,大会聚集了腾讯、斯凯、华为、去哪等国内使用PG的企业,一起分享使用PG的经验,交流遇到的问题。在大会上,我做了题为《腾讯在PG上的应用分享》的分享。在腾讯,PG主要用于数据分析,作为腾讯分布式数据仓库的补充。在分享中,介绍了腾讯分布式数据仓库(TDW),腾讯基于PostgreSQL的数据服务tPG,以及我们对PG应用未来的一些想法。以下是本次分享的主要内容:

提纲

 PG在腾讯应用概述

 基于PG的数据库服务tPG介绍

 PG应用未来规划

--------------------------------

PG在腾讯应用概述

 主要业务场景为OLAP数据分析

 大部分为内部系统,少量应用于对外服务

 作为TDW系统的补充而存在

 主要应用形式为业务使用TDW提供的tPG服务

 TDW团队负责机器、运营和技术支持

 业务提交申请即可使用

 PG与MySQL

 MySQL可以支撑,则优先使用MySQL

 MySQL不能满足,再考虑使用PG

--------------------------------

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的插件

--------------------------------

TB级数据库备份与恢复

基于zfs快照技术

 速度快,对上TB的数据做快照耗时小于1秒

 占用空间小,新生成的快照几乎不占空间

 支持快照增量备份,支持快速rollback

--------------------------------

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服务云化,降低运维人工参与量

演讲内容下载:腾讯PostgreSQL应用分享