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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 简介:快速学习阿里云PostgreSQL_开发实践_5

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

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


阿里云PostgreSQL_开发实践_5


目录:

一. 数据同步通道-1

二. 数据同步通道-2

三. 数据写入实践

四. HDB PG分布键选择建议

五. 行存和列存的选择

六. 非分布键group by和distinct

七. HDBPG分区表分区字段选择建议


一.数据同步通道-1

dbsync 项目目标是围绕 PostgreSQL Greenplum ,实现易用的数据的互迁功能。

支持的功能:

1. PostgreSQL -> PostgreSQL pgsql2pgsql

功能 pg->pg 全量+增量数据同步

状态:已开源 文档

2. MySQL -> PostgreSQL/Greenplum(binlog_minner binlog_loader)

功能:基于 MySQL binlog 解析的增量数据同步

状态:已开放二进制 文档

3. PostgreSQL -> PostgreSQL/Greenplum pgsql2gp

功能:基于 PostgreSQL 逻辑日志的增量数据同步

状态:未开发完成

4. MySQL -> PostgreSQL/Greenplum mysql2pgsql

功能:以表为单位的多线程全量数据迁移

状态:已开源 文档

https://github.com/aliyun/rds_dbsync


二. 数据同步通道-2

计算接点每一次导入任务三十兆每秒,也就说如果我里有1000个节点我们可以做到30GB每秒的写入吞吐,使用oss来做数据导入的话,优势是如果你要导入的数据量特别的大,比如说我们要做一些全量导入,我们的导入的性能是最好的,那么怎么优化

第一,怎么使用,我们里面有链接,阿里云的帮助文档

第二,我们如果要从外面的数据源,写进来,我们可以提供一些调度任务,那么调度任务的话在阿里云里面也是有对应的服务的。

image.png

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


三.数据写入实践

·批量 or 单步

·为什么 AO 表写入有 Io 放大

https://github.com/digoal/blog/blob/master/201711/20171116_01.md

·如何提速


四. HDB PG 分布键选择建议

·允许随机分布

·分布键允许多列

·如果有唯一、主键约束,必须与分布键一致

·分布键选择,确保不出现倾斜

·大表、建议经常被用于JOIN的列

https://github.com/digoal/blog/blob/master/201607/20160719 02.md


五.行存和列存的选择

以行的形式来组织还是以列的形式来组织,如果你以列的形式来组织 我一张100列的表,一张100个列的表,实际上我每一列都有对应的数据文件,那我至少有100个文件,这是列存表,那么行存表的话,我每一行是存到密集的,存到数据块里面的,只要你没做切片,那你就存在数据块里面的那的话,

他们的好处在于:

第一,使用行存的话,我们可以在如果你要访问整行的,或者说你要访问很多个数据框的话,很多个列的话,那我使用行存,我要扫描数据块可能更少,而使用列存的好处,访问的数据量就更少,比如说我一我刚刚讲一张百个G的表,有100个列,假设他每列是一个G,我们就假设好了 那我要访问三个列的数据,我是不是只要访问三个G,而我要如果行存的话,要访问多少100个G,我即使即使只访问三个列的数,他也要访问100个G,使用列存更加适合于数据分析 使用行存更加适合于点查。

image.png


六. 非分布键 group by和 distinct

https://github.com/digoal/blog/blob/master/201711/20171123_01.md

·对于非分布键的分组聚合请求,Greenplum 采用了多阶段聚合如下:

·第一阶段,在 SEGMENT 本地聚合。

·第二阶段,根据分组字段,将结果数据重分布。

·第三阶段,再次在 SEGMENT 本地聚合。

·第四阶段,返回结果给 master,有必要的话 master 节点调用聚合函数的 final func (己经是很少的记录数和运算量)。

 

七、HDBPG 分区表分区字段选择建议

·支持范围、枚举分区

·不建议与分布键一致

·建议经常用于过滤的列

-时间

-枚举

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
133 6
|
2月前
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
64 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
2月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
74 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
2月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
68 1
|
2月前
|
人工智能 自然语言处理 关系型数据库
阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成
近日,阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成。
|
6月前
|
SQL Oracle 关系型数据库
MySQL学习笔记
MySQL学习笔记
41 0
|
4月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
60 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
4月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
157 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
4月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
40 6
|
4月前
|
SQL 关系型数据库 MySQL
MySQL学习笔记
这篇文章是一份关于MySQL数据库操作的学习笔记,涵盖了数据库的终端操作、数据类型、建表约束、事务处理以及SQL的连接查询等基础知识点。