 PostgresChina 2018 张启程 为什么我们抛弃MongoDB和MySQL,选择PgSQL2018年PostgreSQL中国技术大会 为什么我们抛弃MongoDB和 MySQL,选择PgSQL 张启程 qc@aochuang.cn 奥创软件研究院(上海)研发中心 2018年PostgreSQL中国技术大会 任何数据库都很好用 • 我不是一个专业的DBA ,对数据库的理解不够深入,也不 一定准确,在此抛砖引玉,只是结合我们团队业务场景来 分享下我们选择数据库的过程。 •0 码力 | 9 页 | 563.82 KB | 1 年前3 PostgresChina 2018 张启程 为什么我们抛弃MongoDB和MySQL,选择PgSQL2018年PostgreSQL中国技术大会 为什么我们抛弃MongoDB和 MySQL,选择PgSQL 张启程 qc@aochuang.cn 奥创软件研究院(上海)研发中心 2018年PostgreSQL中国技术大会 任何数据库都很好用 • 我不是一个专业的DBA ,对数据库的理解不够深入,也不 一定准确,在此抛砖引玉,只是结合我们团队业务场景来 分享下我们选择数据库的过程。 •0 码力 | 9 页 | 563.82 KB | 1 年前3
 阿里云 AnalyticDB for PostgreSQL
- 打造更简单易用的Cloud SQL Data Warehouse个人介绍 缪长风 ⚫ 2010年初加入支付宝,负责Oracle RAC和Greenplum数据仓库 ⚫ 有幸参与了Oracle RAC到 Greenplum再到Hadoop以及最终到 ODPS的架构演进工作。 ⚫ 2012年起,转至阿里巴巴大数据团队,负责Hbase/OTS业务支 撑,期间多次负责阿里大数据双11架构和稳定性工作 ⚫ 2018年,在阿里云数据库负责OLAP产品管理团队。 (云Greenplum)低成本,快速 构筑在线企业数据仓库。 • 应用易开发、适配 支持SQL 2003,部分兼容Oracle语法, 支持PL/SQL 存储过程,OLAP窗口函数,事务及数据库标准隔离级别 完备功能和生态,实现应用快速迁移或适配 • PB级数据秒级响应 MPP水平扩展架构,PB级数据查询秒级响应;向量化计算,及列存储智能索引,领先传统数据库引擎性能 3x; 新一代SQL优化器,实现复杂分析语句免调优 分 区 分 区 计算组 分 区 分 区 分 区 分 区 计算组 分 区 分 区 分 区 分 区 计算组 AnalyticDB for PostgreSQL 公共云产品规格和实例选型: 【高性能】计算组 CPU/核 内存 用户数据空间 1x2C SSD 2 16GB 160GB SSD 1x16C SSD 16 128GB 1.28TB SSD 4x4C SSD 160 码力 | 22 页 | 2.98 MB | 1 年前3 阿里云 AnalyticDB for PostgreSQL
- 打造更简单易用的Cloud SQL Data Warehouse个人介绍 缪长风 ⚫ 2010年初加入支付宝,负责Oracle RAC和Greenplum数据仓库 ⚫ 有幸参与了Oracle RAC到 Greenplum再到Hadoop以及最终到 ODPS的架构演进工作。 ⚫ 2012年起,转至阿里巴巴大数据团队,负责Hbase/OTS业务支 撑,期间多次负责阿里大数据双11架构和稳定性工作 ⚫ 2018年,在阿里云数据库负责OLAP产品管理团队。 (云Greenplum)低成本,快速 构筑在线企业数据仓库。 • 应用易开发、适配 支持SQL 2003,部分兼容Oracle语法, 支持PL/SQL 存储过程,OLAP窗口函数,事务及数据库标准隔离级别 完备功能和生态,实现应用快速迁移或适配 • PB级数据秒级响应 MPP水平扩展架构,PB级数据查询秒级响应;向量化计算,及列存储智能索引,领先传统数据库引擎性能 3x; 新一代SQL优化器,实现复杂分析语句免调优 分 区 分 区 计算组 分 区 分 区 分 区 分 区 计算组 分 区 分 区 分 区 分 区 计算组 AnalyticDB for PostgreSQL 公共云产品规格和实例选型: 【高性能】计算组 CPU/核 内存 用户数据空间 1x2C SSD 2 16GB 160GB SSD 1x16C SSD 16 128GB 1.28TB SSD 4x4C SSD 160 码力 | 22 页 | 2.98 MB | 1 年前3
 实现PostgreSQL逻辑复制实战进行传递,从而实现不同DB数据库的复制。 2016Postgres中国用户大会 Postgres Conference China 2016 中国用户大会 如何自定义输出插件 我们所要实现以下几个回调函数: LogicalDecodeStartupCB startup_cb; LogicalDecodeBeginCB begin_cb; LogicalDecodeChangeCB change_cb; LogicalDecodeShutdownCB shutdown_cb; 2016Postgres中国用户大会 Postgres Conference China 2016 中国用户大会 函数意义 复制槽初始化会调用 startup_cb 之前活跃的复制槽不再使用,就会调用 可选的 shutdown_cb 开始动作被解码,就会调用begin_cb回调。 被中止的事务及其内容不会被解码。 • 参数和行为就像pg_logical_slot_get_changes()函数,不过改变不会被 消费,即在未来的调用中还会返回这些改变。 2016Postgres中国用户大会 Postgres Conference China 2016 中国用户大会 使用限制 目前不支持DDL的解析, 只有DML的解析 如:create,drop TEMPORARY表和UNLOGGED表不会被复制0 码力 | 17 页 | 1.90 MB | 1 年前3 实现PostgreSQL逻辑复制实战进行传递,从而实现不同DB数据库的复制。 2016Postgres中国用户大会 Postgres Conference China 2016 中国用户大会 如何自定义输出插件 我们所要实现以下几个回调函数: LogicalDecodeStartupCB startup_cb; LogicalDecodeBeginCB begin_cb; LogicalDecodeChangeCB change_cb; LogicalDecodeShutdownCB shutdown_cb; 2016Postgres中国用户大会 Postgres Conference China 2016 中国用户大会 函数意义 复制槽初始化会调用 startup_cb 之前活跃的复制槽不再使用,就会调用 可选的 shutdown_cb 开始动作被解码,就会调用begin_cb回调。 被中止的事务及其内容不会被解码。 • 参数和行为就像pg_logical_slot_get_changes()函数,不过改变不会被 消费,即在未来的调用中还会返回这些改变。 2016Postgres中国用户大会 Postgres Conference China 2016 中国用户大会 使用限制 目前不支持DDL的解析, 只有DML的解析 如:create,drop TEMPORARY表和UNLOGGED表不会被复制0 码力 | 17 页 | 1.90 MB | 1 年前3
 PostgreSQL WAL日志解析与应用Postgres Conference China 2016 中国用户大会  Functions of WAL • XLogInsert 插入一条XLOG记录,记录有特殊的RMID标识和附带信息 字节,记录的主体包括数据块和数据链。 返回XLOG指针(指 向记录尾的),可以用做已经存入日志的数据页的LSN,根据 LSN,XLOG在修改实际数据之前先写日志(也就是WAL)。 • XLogFlush 容复制到日志缓冲区内。 在日志缓冲区刷新期间检查日志缓冲区是否有新内容添加,因为这 关系到设置日志缓冲区的刷新点。 确定检查点重做位置在联机备份期间强制执行完整页写入,直到备 份完成。 从内置函数获取当前WAL插入位置。 2016Postgres中国用户大会 Postgres Conference China 2016 中国用户大会  Locks of WAL • WALWriteLock0 码力 | 16 页 | 705.31 KB | 1 年前3 PostgreSQL WAL日志解析与应用Postgres Conference China 2016 中国用户大会  Functions of WAL • XLogInsert 插入一条XLOG记录,记录有特殊的RMID标识和附带信息 字节,记录的主体包括数据块和数据链。 返回XLOG指针(指 向记录尾的),可以用做已经存入日志的数据页的LSN,根据 LSN,XLOG在修改实际数据之前先写日志(也就是WAL)。 • XLogFlush 容复制到日志缓冲区内。 在日志缓冲区刷新期间检查日志缓冲区是否有新内容添加,因为这 关系到设置日志缓冲区的刷新点。 确定检查点重做位置在联机备份期间强制执行完整页写入,直到备 份完成。 从内置函数获取当前WAL插入位置。 2016Postgres中国用户大会 Postgres Conference China 2016 中国用户大会  Locks of WAL • WALWriteLock0 码力 | 16 页 | 705.31 KB | 1 年前3
 PostgreSQL 开发最佳实践• 命名规约 • 设计规约 • 管理规约 • 稳定性与性能建议 • 云数据库使用建议 2016Postgres中国用户大会 稳定性与性能建议 • 避免长事务、2PC。 • 绑定变量。 • hash index, unlogged table使用注意 • AD LOCK,秒杀、消除并发数据冲突 • count(*) 是否存在数据? perform limit 1(FOUND)0 码力 | 16 页 | 381.36 KB | 1 年前3 PostgreSQL 开发最佳实践• 命名规约 • 设计规约 • 管理规约 • 稳定性与性能建议 • 云数据库使用建议 2016Postgres中国用户大会 稳定性与性能建议 • 避免长事务、2PC。 • 绑定变量。 • hash index, unlogged table使用注意 • AD LOCK,秒杀、消除并发数据冲突 • count(*) 是否存在数据? perform limit 1(FOUND)0 码力 | 16 页 | 381.36 KB | 1 年前3
共 5 条
- 1













