adbForPg—使用汇总

1、概念特性

AnalyticDB for PostgreSQL
来源:基于 Greenplum Database 开源数据库项目开发,由阿里云深度扩展;
概念:原HybridDB for PostgreSQL,是一种在线分布式分析型云数据库,由多个计算组组成,存储和计算能力可水平扩展,可提供大规模并行处理(MPP)数据仓库服务。

新版本特性

云原生数据仓库AnalyticDB PostgreSQL 6.0版是基于开源Greenplum 6.0内核构建的在线数据库服务。新增特性如下:

  • JSONB类型:在既有JSON类型上,支持JSONB存储格式,实现高性能的JSON数据处理及更丰富的JSON函 数。
  • UUID类型:支持UUID数据类型。
  • GIN索引和SP-GiST索引:支持更高性能的模糊匹配以及中文检索。
  • 细粒度权限控制:支持schema级别和column列级别权限控制和授权。
  • 高效Vacuum:Vacuum在做空间释放时,可以暂时跳过加锁的页面,稍后再访问并对其Vacuum,从而 整体减少被阻塞的状况。
  • DBLink:支持跨库的查询访问。
  • Recursive CTE:实现SQL的递归查询功能,用于处理逻辑上层次化或树状结构的数据,方便对该类数据 进行多级递归查询。
  • PL/SQL增强: 支持RETURN QUERY EXECUTE语句,可以动态即刻执行SQL。 支持Anonymous blocks匿名块定义。

2、架构设计

  • 集群多实例
    AnalyticDB PostgreSQL的物理集群内,通过管控系统支持创建多个云原生数据仓库 AnalyticDB PostgreSQL数据库实例。

  • 两类节点
    每个数据库实例由两类组件组成:协调节点(Master)节点和多个 计算节点(Segment),支持故障下自动切换;

  • 双副本
    Master、Segment节点均拥有一主一备(Primary/Mirror)两个副本进行主从热备,主节点发生故障可以迅速切换至备节点。

  • 数据分布
    数据按HASH或者 Random方式分布存储在每个计算节点(Segment)上,同时并行地执行分析计算。

协调节点

协调节点(Master)是云原生数据仓库AnalyticDB PostgreSQL数据库实例的应用接入点,它负责接收客户端的连接和SQL查询请求,并将工作分配给计算节点(Segment)去并行执行。

协调节点接收应用请求后, 负责SQL语句的解析优化,并生成分布式执行计划,下发给计算节点,执行计划在计算节点间全并行执行 (MassiveParallel Process)。

3、操作实践

3.1、建库相关

注意:没有指定新库的字符集;

psql命令行切换数据库:

=> \c mygpdb

分布键子句:distributed by (key);

  • 行列混存
    支持表按列存储或者按行存储。

  • 事务ACID

3.2、权限控制

超级用户:super,可以创建系统管理员
系统管理员:可以创建其他的普通用户;

根用户超级用户的区别:根用户没有 superuser权限,但是可以建库、建角色、登录以及其他的查询权限;

3.3、数据同步

OSS外表导入

外表语法参数

  • prifix
  • dir
  • filepath
    如上三个参数互斥,只能设置一个

导出模式参数调整

  • oss_flush_block_size
  • oss_file_max_size
  • num_parallel_worker

Oss外表

功能介绍:https://help.aliyun.com/document_detail/172968.html

3.4、DDL语法

1)对象使用
建表语句中,分区的使用规范

分区建议使用一级分区;

WITH (appendonly=true, compresslevel=5)
DISTRIBUTED BY (txn_id);

2)字段类型修改

alter table schema_name.table_name alter column ${column_name} type new_datatype;

2)关键函数

  • row_to_json

3)数据类型

类型别名说明
character(n)char(n)定长字符
character varying(n)varchar(n)变成字符
decimal(p, s)numberic(p, s)
booleanbool
text
timestamp(n)
json
double precisionfloat / float8
smallintint2
integerint / int4
bigintint8
date值为 年、月、日;
serialserial4自动增量整数;
bigserialserial8大的自动增量整数;

数据类型转换语法:

column_value::data_type

3.5、DML语法

扩展插件

1)创建插件;
2)创建schema;
3)将插件和schema绑定;

4、监控运维

节点查询

  • gp_segment_configuration

集群安全

  • IP白名单:
    可以在线维护IP白名单,无需重新ADB实例,同时 IP白名单可以分组维护;

  • 操作审计
    SQL审计;

  • 备份恢复
    定位备份;

倾斜查询

  • 数据库倾斜
---query_data_distribute
select pg_size_pretty(pg_database_size('${instance_name}'))
  from gp_dist_random('gp_id');
  • 单表倾斜

1)通过系统表

---query_data_distribute
select pg_size_pretty(pg_relation_size('${table_name}'))
  from gp_dist_random('gp_id');

2)通过系统视图

select t.* from gp_toolkit.gp_skew_coefficients t;

空间回收

定期进行 vacuum & analyse

======================================= over ========================================

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值