Greenplum之桃花源(1)

Greenplum简介

MPP是Massively Parallel Processing,即大规模并行处理。
Greenplum是建立在MPP框架之上的大数据并行处理数据库。
Greenplum是承载多个Postgresql实例的平台,对Psql进行多节点并发的改造,从而实现大数据并发的数据处理。

数据重分布广播–数据迁移
顾名思义,数据迁移就是数据的迁移。
并发数据库架构MPP的重要特点就是,关联数据在不同的节点之上,这种情况对于普通关系型数据库来说是没办法的,可是MPP可以通过数据迁移实现。

分布键
哈希分布和随机分布
对于减小数据库开销和增加效率来说我们有几种方法:

1、分区

主要是为了缩小query所需要扫描的数据
greenplum支持LIST和RANGE两种分区类型

2、索引

避免全局扫描,快速定位到所关联的数据

3、设计适当的模式和search_path
使得不同用户在操作表时快速定位到模式和表

4、设计适当的分布键

(1)尽量选择经常需要JOIN的列:当关联键和分布键均一致时,可以在 Segment 中完成 JOIN,不需要重分布或者广播小表;当关联键和分布键不一致时,则需要重分布不一致的表或者广播小表,带来额外的开销。

(2)尽量选择分布均匀的列或者多列:若选择的分布列值分布不均匀,则可能导致数据倾斜。某些 Segment 非常大(压力大)某些 Segment 非常小。根据木桶原理,时间消耗会卡在数据多的节点上。

(3)尽量选择高并发查询的条件列(指该查询条件产生的中间结果集小的,如果中间结果集很大,那就让所有节点都来参与运算更好,因此不选)如果数据经常被高并发的键值或离散查询,可以将查询条件的列作为分布列,这样不需要连接到所有的 Segment 去查,可以大大提高并发能力。

(4)不要轻易使用随机分布

基本用法:

\h获取具体命令的语法,比如
\h create table

建库:

CREATE DATABASE newname USING TEMPLATE tmplatedbname;

建模式:

CREATE SCHEMA schema_name;
(在哪个用户下建立的,就只能哪个用户访问除了gpadmin,也可以设置权限,以及搜索路径search_path)

建用户:

CREATE ROLE role_name WITH PASSWORD ‘***’;

我们也可以把一个用户赋予另一个用户

CREATE ROLE role_name CREATEROLE CREATEDB;
GRANT role_name TO role_name1,role_name2;

那么role_name1和2就可以使用和role_name一样的权限

建表:
在Greenplum中建表时需要指定表的分布键。
如果表需要用某个字段分区,可以通过partition by将表建成分区表。
可以使用like操作创建与like的表一样结构的表,功能类似

create table t1 as select*from t2 limit 0。

可以使用inherits实现表的继承,具体的实现可以参考postgreSQL文档。

CREATE TABLE test01(id int primary key,name varchar(128)) distrubuted(id);

数据类型

任意精度的数值
无限制长度文本
几何图元
IP地址与IPv6地址
无类域间路由地址块,MAC地址
数组

查询语句可以不指定from,比如在执行函数的时候

select greatest(1,2)

explain用于查询一个表的执行计划
insert可以批量操作,但是分布键不可以为空,否则分布键默认为null
update不能对分布键进行批量执行
delete整张表建议使用TRUNCATE

du -h --max-depth=1

查看文件夹大小

psql -d [dbname] -f **.sql

在greenplum中安装插件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值