HTAP数据库 PostgreSQL 场景与性能测试之 34 – (OLTP+OLAP) 不含索引单表单点写入

存储架构 2017-11-19 阅读原文

标签

PostgreSQL , HTAP , OLTP , OLAP , 场景与性能测试

背景

PostgreSQL是一个历史悠久的数据库,历史可以追溯到1973年,最早由2014计算机图灵奖得主,关系数据库的鼻祖 Michael_Stonebraker 操刀设计,PostgreSQL具备与Oracle类似的功能、性能、架构以及稳定性。

PostgreSQL社区的贡献者众多,来自全球各个行业,历经数年,PostgreSQL 每年发布一个大版本,以持久的生命力和稳定性著称。

2017年10月,PostgreSQL 推出10 版本,携带诸多惊天特性,目标是胜任OLAP和OLTP的HTAP混合场景的需求:

《最受开发者欢迎的HTAP数据库PostgreSQL 10特性》

1、多核并行增强

2、fdw 聚合下推

3、逻辑订阅

4、分区

5、金融级多副本

6、json、jsonb全文检索

7、还有插件化形式存在的特性,如 向量计算、JIT、SQL图计算、SQL流计算、分布式并行计算、时序处理、基因测序、化学分析、图像分析 等。

在各种应用场景中都可以看到PostgreSQL的应用:

PostgreSQL近年来的发展非常迅猛,从知名数据库评测网站dbranking的数据库评分趋势,可以看到PostgreSQL向上发展的趋势:

从每年PostgreSQL中国召开的社区会议,也能看到同样的趋势,参与的公司越来越多,分享的公司越来越多,分享的主题越来越丰富,横跨了 传统企业、互联网、医疗、金融、国企、物流、电商、社交、车联网、共享XX、云、游戏、公共交通、航空、铁路、军工、培训、咨询服务等 行业。

接下来的一系列文章,将给大家介绍PostgreSQL的各种应用场景以及对应的性能指标。

环境

环境部署方法参考:

《PostgreSQL 10 + PostGIS + Sharding(pg_pathman) + MySQL(fdw外部表) on ECS 部署指南(适合新用户)》

阿里云 ECS: 56核,224G,1.5TB*2 SSD云盘

操作系统: CentOS 7.4 x64

数据库版本: PostgreSQL 10

PS: ECS的CPU和IO性能相比物理机会打一定的折扣,可以按下降1倍性能来估算。跑物理主机可以按这里测试的性能乘以2来估算。

场景 - 不含索引单表单点写入 (OLTP+OLAP)

1、背景

不含索引,单表,每次写入一条记录。这是非常典型的测试TP或AP场景,数据实时灌入场景的能力。

2、设计

单表,没有索引,单事务单条写入。高并发。

3、准备测试表

create table t_sensor(  
  id int8,  
  c1 int8 default 0,  
  c2 int8 default 0,  
  c3 int8 default 0,  
  c4 float8 default 0,  
  c5 text default 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',  
  ts timestamp default clock_timestamp()  
) with (autovacuum_enabled=off, toast.autovacuum_enabled=off);

4、准备测试函数(可选)

5、准备测试数据

6、准备测试脚本

vi test.sql  
  
set id random(1,1000000000)  
insert into t_sensor (id) values (:id);

压测

CONNECTS=56  
TIMES=300  
export PGHOST=$PGDATA  
export PGPORT=1999  
export PGUSER=postgres  
export PGPASSWORD=postgres  
export PGDATABASE=postgres  
  
pgbench -M prepared -n -r -f ./test.sql -P 5 -c $CONNECTS -j $CONNECTS -T $TIMES

7、测试

transaction type: ./test.sql  
scaling factor: 1  
query mode: prepared  
number of clients: 56  
number of threads: 56  
duration: 300 s  
number of transactions actually processed: 78679995  
latency average = 0.214 ms  
latency stddev = 0.654 ms  
tps = 262258.213992 (including connections establishing)  
tps = 262279.991544 (excluding connections establishing)  
script statistics:  
 - statement latencies in milliseconds:  
         0.001  set id random(1,1000000000)  
         0.212  insert into t_sensor (id) values (:id);

TPS: 262279

单表,没有索引,单事务单条写入。高并发。

主要瓶颈:xlog lock.

平均响应时间: 0.214 毫秒

单表,没有索引,单事务单条写入。高并发。

主要瓶颈:xlog lock.

参考

《PostgreSQL、Greenplum 应用案例宝典《如来神掌》 - 目录》

《数据库选型之 - 大象十八摸 - 致 架构师、开发者》

《PostgreSQL 使用 pgbench 测试 sysbench 相关case》

《数据库界的华山论剑 tpc.org》

https://www.postgresql.org/docs/10/static/pgbench.html

云栖团队博客

责编内容by:云栖团队博客阅读原文】。感谢您的支持!

您可能感兴趣的

Building an Ordering Application with Watson AI an... watson postgresql twilio Building an Ordering Application with Watson AI and PostgreSQL: Part II D...
OWTF:一款功能强大的攻击型Web测试框架... 今天给大家介绍一款名叫OWTF(Offensive Web Testing Framework-攻击型Web测试框架),该框架整合了多种优秀的工具,可以有效提升渗透测试的效率。 OWTF OWASPOWTF项目的主要目标就...
PGConf ASIA 2018 Call for papers Hi, PGconf.ASIA 2018 will be held on December 10 to 12 in Tokyo and we are now accepting proposals for talks. Joi...
100TB级, 日增量1TB, OLTP OLAP混合场景数据库设计方向... 标签 PostgreSQL , LLVM , JIT , 并行 , 列存储 , GPU 背景 总量100TB,日增量1TB左右。这样的体量应该可以覆盖目前绝大多数企业的数据库体量。 提到100TB级别,OLTP和OLAP的...
Cube Data and MDX Queries in R Using Microsoft olapR to Bring Analysis Services OLAP Data Into R Online Anaytical Processing (OLAP) and the R statist...