开发者社区> ybbf7fwncy2w2> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

阿里云 PostgreSQL_ 开发实践_6 | 学习笔记

简介: 简介:快速学习阿里云 PostgreSQL_ 开发实践_6
+关注继续查看

开发者学堂课程【PostgreSQL 云上开发实践:阿里云 PostgreSQL_开发实践_6】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/528/detail/7109


阿里云 PostgreSQL_ 开发实践_6


目录

一. 分级存储功能

二. 索引选择

三. 统计信息采集调度

四. 队列管理

五. metascan+sort Key+index 实践

六.大吞吐输出场景开发实践

七. 查看数据倾斜

八. 查看数据膨胀、清理膨胀

九.清理垃圾,行存、列存切换

十. 数值类型的选择

十一. 连接池


一. 分级存储功能

https://help.aliyun.com/document_detail/35457.html

热数据

-实例本地存储

访问频次较低数据

- OSS 外部表存储

-压缩格式选择

继承与分区约束

-每个 OSS 外部表负责一部分数据

-使用约束

-建立 OSS 外部表继承关系

 

二. 索引选择

自动索引选择

- https://github.com/digoal/blog/blob/master/201706/20170617_01.md

​​GiST

-空间数据

B-Tree

-等值、区间、排序

​​Bitmap

- https://github.com/digoal/blog/blob/master/201705/20170512_01.m​​​d

-类似倒排

- value:所有行号对应的bitmap

-含100到1万个唯一值的列


三. 统计信息采集调度

专治 SQL 执行计划不准。

gp_autostats_mode

- none:不收集

- on_no_stats:没有统计信息时,收集

- on_change:当写入、更新量超过阈值

(gp_autostats_on_change_threshold参数设置的行数,默认为2o亿)后,百动收集统计信息。
l https://github.com/digoal/blog/blob/master/201712/20171211_03.md


四. 队列管理

CREATE RESOURCE QUEUE name WITH (queue_atribute=value [, ...])

where queue_attribute is:

ACTIVE_STATEMENTS=integer

[ MAX COST=float [COST_OVERCOMMIT={TRUE |FALSE}]]

[ MIN_COST=float ]

[PRIORITY={MIN| LOW|MEDIUM|HIGH | MAX} ]

[MEMORY_LIMIT='memory_units' ]

[MAX_COST=float [ COST_OVERCOMMIT={TRUE |FALSE}]

[ ACTIVE_STATEMENTS=integer ]

[MIN_COST=float ]

[ PRIORITY={MIN| LOW |MEDIUM|HIGH | MAX}]

[ MEMORY_LIMIT='memory_units' ]l https://github.com/digoal/blog/blob/master/201708/20170821_01.md

资源使用、隔离、控制


五. metascan+sort Key+index 实践

这样的两个功能点其实是受到我们的一个时序数据的一个启发,也就是说,时序数据的这个字段,它的值,它的存储,以及它的这个存进来的这个值是具有一定的线性相关性的

就比如说我们的时间,我们某一个字段,某一个字段表示的是我的数据的插入时间,那么就意味着说,我的每一条记录插进来的时候,我的时间就是在我们的一个方向上,是递增的这个方向上,是有这个线性相关性的,

那因此,我们要搜索某区间的数据的时候,比如我要搜2018年的2月19号一天的数据,那么一天的数据实际上是集中在某一些数据块里面的,,因为它是有一些线性相关性,因此它的数据存储是聚集的,是有一定的聚集性的。


六.大吞吐输出场景开发实践

https://github.com/digoal/blog/blob/master/201707/20170726_01.md​

使用 Hybrid DB for PostgreSQL,同时实现了实时分析,准实时数据规整两个需求。

OSS 作为海量数据入口,HDB 作为 OSS 的计算引擎,实现海量数据实时分析。

同时 HDB 作为数据规整引擎,被规整的数据不需要在数据库本地落地,直接从 OSS 到 OSS ,只是用到了 HDB 的规整能力。

性能可以通过扩展 HDB 的计算节点线性扩展:

海量数据源,写入 OSS ,通过 HybridDB for PostgreSQL 的 oss_ext 插件,实时分析写入的数据。

OSS带宽指标:目前每个计算节点每个会话约30MB/s的读写速率。

对于列式存储格式,数值类型。1亿记录约381MB,压缩比5:1的话,约76.3MB。

按行换算的性能指标:2048个计算节点,读写吞吐约 805亿行/s。每天处理6900万亿行(当然,按多列进出打个折扣,万亿级别也是没有问题的)。


七. 查看数据倾斜

数据分布不均匀,导致性能差、存储空间受限、木桶效应。

- https://github.com/digoal/blog/708/20170821_02.md


八. 查看数据膨胀、清理膨胀

堆表膨胀检测-

https://github.com/digoal/blog/blob/master/201708/20170817_01.md

AO 表膨胀检测https://github.com/digoal/blog/blob/master/201708/20170817_03.md

使用这个函数可以查看AO表的膨胀率

postgres=# \df+ gp_toolkit.__gp_aovisimap_compaction_info  

List of functions  

-[ RECORD 1 ]-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------  

Schema | gp_toolkit  

Name | __gp_aovisimap_compaction_info  

Result data type | SETOF record  

Argument data types | ao_oid oid, OUT content integer, OUT datafile integer, OUT compaction_possible boolean, OUT hidden_tupcount bigint, OUT total_tupcount bigint, OUT percent_hidden numeric

Type | normal

2 | 1 | f |21 | 208283 | 0.01

9 |1 | f25 |208303 | 0.01

 

九.清理垃圾,行存、列存切换

https://github.com/digoal/blog/blob/master/201712/20171208_04.md

 

十. 数值类型的选择

如果有除法,并且需要确保精度,建议 float8 或 numeric

海量数据处理,建议采用float8或int8

数值类型

-numeric 性能较低(内部实现的数据类型,有大量 memcpy )

- float4, float8, int, int8 性能较高


十一. 连接池

​​pgbouncer

- https://github.com/digoal/blog/blob/master/201801/20180128 04.md

- https://www.linkedin.com/pulse/scaling-greenplum-pgbouncer-sandeep-katta-/?articleld=6128769027482402816

- https://pgbouncer.github.io/

l pgpool-ll

- http://pgpool.net/mediawiki/index.php/Main_Page

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
视频 -RDS 基础概念介绍(四)| 学习笔记
快速学习视频 -RDS 基础概念介绍。
0 0
视频-RDS常见问题排除及 DAS 自动弹性伸缩(四)| 学习笔记
快速学习视频 -RDS 常见问题排除及 DAS 自动弹性伸缩。
0 0
视频- RDS 常见问题排除及 DAS 自动弹性伸缩(三)| 学习笔记
快速学习视频 -RDS 常见问题排除及 DAS 自动弹性伸缩。
0 0
视频 -RDS 常见问题排除及 DAS 自动弹性伸缩(一)| 学习笔记
快速学习视频 -RDS 常见问题排除及 DAS 自动弹性伸缩。
0 0
RDS MySQL 高效设计及性能调优(四)| 学习笔记
快速学习 RDS MySQL 高效设计及性能调优。
0 0
RDS MySQL 高效设计及性能调优(二)| 学习笔记
快速学习 RDS MySQL 高效设计及性能调优。
0 0
本地执行 RDS SQL 语句| 学习笔记
快速学习本地执行 RDS SQL 语句
0 0
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
快速学习PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换
0 0
6 PostgreSQL 连接池,本地高速缓存,异地高速缓存|学习笔记
快速学习6 PostgreSQL 连接池,本地高速缓存,异地高速缓存
0 0
PostgreSQL 监控1统计进程和统计信息的解读|学习笔记(二)
快速学习PostgreSQL 监控1统计进程和统计信息的解读
0 0
文章
问答
来源圈子
更多
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
云数据库RDS MySQL从入门到高阶
立即下载
PolarDB for PostgreSQL 源码与应用实战
立即下载
PolarDB for PostgreSQL 开源必读手册
立即下载