• Greenplum简介  

  GreenPlum是一个关系型数据库集群.,它实际上是由多个独立的数据库服务组合成的逻辑数据库。GreenPlum是基于PostgreSQL(开源数据库)的分布式数据库,它采用的是shared nothing架构(MPP  Massively Parallel Processing,即大规模并行处理),主机、操作系统、内存、存储都是节点自己控制,不存在着共享。它主要由master host,segment host,interconnect三大部分构成。

  Master节点:客户端访问连接的认证,处理传入的SQL语句,在segment之间分配工作负荷,协调每个segment返回的结果,并把最终结果返回给客户端。

  Segment节点主要做数据存储和数据处理,用户创建的索引和表被分发到各个子节点当中,每一个子节点都包含了用户数据的分片,而这些分片不存在重复的情况。

  Interconnect是GreenPlum数据库的网络层.在每个segment中起到一个ipc的作用(inter-process communication)。

  • 常用命令

  系统表:PG_TABLES:pg表信息表    pg_class:pg类信息表       pg_attribute:pg属性表    pg_type:pg类型表

  $psql -h 192.168.1.100 -p admin -d testDB -U gpadmin               #其他机器上使用psql连接到数据库

  $createdb testDB -E utf-8          #创建测试数据库

  $truncate test1_tb;                                           #*物理删除表文件*

  $export PGDATABASE=testDB                      #设置默认testDB数据库

  $select version();                                             #查询数据库版本

  $create table test_tb(id int primary key,name varchar(64));             #创建表

  $create table test_tb(id int primary key,name varchar(64)) distributed by(id,name);

  $create table test_tb(id int,name varchar(64)) distributed randomly;

  $create table test2_tb (like test1_tb);                      #复制表结构

  #create table as 可以加入distributed指定分布键,select into只能使用默认的分布键

  $create table test2_tb as select * from test1_tb distributed by(id);

  $select * into test3_tb from test1_tb;

  $select "name" as 姓名 from test_tb;            #greenplum数据库设置别名,不能使用单引号,单引号是修身变量
  $select "name" as "姓名" from test_tb;           #greenplum数据库用双引号设置别名

  $insert into test1_tb values(1,'zhangsan'),(2,'lisi'),(3,'wangwu');      #批量插入数据,分布键不要为空

  #update:不能批量对分布键执行update,因为对分布键执行update需要将数据重分布,而gp暂时不支持这个功能

  $update test1_tb set name='lier' where id=1;    #更新数据

  $delete from test1_tb where name in(select name from test_tb);            #删除数据

  $select * from pg_tables;                                                   #获取表结构

  $select datname,pg_size_pretty(pg_database_size(datname)) from pg_database;            #获取所有数据库名

  $select pg_size_pretty(pg_total_relation_size('tb_name'));                        #查看表索引

  $SELECT A .attname AS field,      T .typname AS TYPE FROM pg_class C,         pg_attribute A,  pg_type T  WHERE      C .relname = 'tb_name' AND A .attnum > 0 AND A .attrelid = C .oid AND A .atttypid = T .oid ORDER BY   A .attnum;                                     #查看表结构

  • 索引(index)

  # \h create index                                    #查看创建索引的帮助

  # \d tb_test                                             #查看tb_test表信息

  # create index idx_01 on tb_test(id);    #为tb_test表中(id)字段创建索引

  # \d tb_test                                            #查看tb_test表信息

  # \d+ tb_test;                                         #查看tb_test表以及其子表信息

  # create index bmidx_01 on tb_test using bitmap(count);     #创建位图索引

  # explain select * from tb_test where count = 0;                     #查看tb_test表的执行计划

  # show enable_seqscan;                       #GP中默认进行序列扫描

  # set enable_seqscan=off;                    #将序列扫描的方式关闭

  # \h reindex                      #查看reindex的帮助

  # \h drop index                           #查看drop index的帮助

  # drop index idx_01;                    #删除索引idx_01

  • 视图(view)

  格式:普通视图V_【具体业务含义名称】,物化视图MV_【具体业务含义名称】

  CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW name [ ( column_name [, ...] ) ]

  # \h create view                                      #查看创建视图的帮助

  # \d tb_test                                             #查看tb_test表结构信息

  # create view vv_01 as select * from tb_test where gender = 'M';  #创建视图

  # \dv                                                        #使用“\dv”命令查看当前视图

  # \h drop view                                       #查看删除视图的帮助

  # drop view vv_01;                                 #删除视图vv_01

  • 序列(sequence)

查询哪些视图引用了某张数据表

CREATE OR REPLACE FUNCTION public.get_views_used_by_table(text)

RETURNS setof record  as

$FBODY$

select distinct vn.nspname || '.'||vc.relname as viewname

from pg_class c join pg_namespace n on n.oid=c.relnamespace

left join pg_depend d on d.refobjid =c.oid

left join pg_rewrite r on r.oid =d.objid

left join pg_class vc on r.ev_class =vc.oid

left join pg_namespace vn on vc.relnamespace=vn.oid

where  d.deptype='n' and

d.classid =2618 and

r.rulename ='_RETURN' and

vc.relkind='v' and

c.oid =$1::regclass ;

$FBODY$

LANGUAGE sql volatile;

#select public.get_views_used_by_table('public.test1');

#select * from public.get_views_used_by_table('public.test1') as A (viewname text);

#\h CREATE SEQUENCE                                  #查看创建序列的帮助

#create sequence test_seq start with 100;    #创建名为test_seq的序列

# \ds                                                                #通过\ds命令查看当前数据库中存在的序列

#select setval('test_seq',200);                         #通过设置test_seq的序列值为200

#select nextval('test_seq');                              #查看当前序列的下一个值

#select * from test_seq;                                  #查看当前序列的信息

# \h alter sequence;                                        #查看修改序列的帮助

# alter sequence test_seq start with 205;      #修改当前序列的开始值为205

# \h drop sequence;                                        #查看修改序列的帮助

# drop sequence test_seq;                             #删除当前序列

# show enable_seqscan;                                 #GP中默认进行序列扫描

# set enable_seqscan=off;                             #将序列扫描的方式关闭

备注:
作者:Shengming Zeng
博客:http://www.cnblogs.com/zengming/
GItHub:https://github.com/lovelifeming
严正声明:
1.由于本博客部分资源来自互联网,版权均归原作者所有。转载的目的是用于学术交流与讨论学习,将不对任何资源负法律责任。
2.若无意中侵犯到您的版权利益,请来信联系我,我会在收到信息后会尽快给予处理!
3.所有资源内容仅供学习交流之用,请勿用作商业用途,谢谢。
4.如有转发请注明出处,来源于http://www.cnblogs.com/zengming/ https://blog.csdn.net/Z645817,谢谢合作。

Greenplum使用教程的更多相关文章

  1. Greenplum 源码安装教程 —— 以 CentOS 平台为例

    Greenplum 源码安装教程 作者:Arthur_Qin 禾众 Greenplum 主体以及orca ( 新一代优化器 ) 的代码以可以从 Github 上下载.如果不打算查看代码,想下载编译好的 ...

  2. 『GreenPlum系列』GreenPlum 4节点集群安装(图文教程)

      目标架构如上图   一.硬件评估 cpu主频,核数推荐CPU核数与磁盘数的比例在12:12以上Instance上执行时只能利用一个CPU核资源进行计算,推荐高主频 内存容量 网络带宽重分布操作 R ...

  3. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)

    集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...

  4. Greenplum 数据库架构分析

    Greenplum 数据库是最先进的分布式开源数据库技术,主要用来处理大规模的数据分析任务,包括数据仓库.商务智能(OLAP)和数据挖掘等.自2015年10月正式开源以来,受到国内外业内人士的广泛关注 ...

  5. Greenplum5.16.0 安装教程

    Greenplum5.16.0 安装教程 一.环境说明 1.1官方网站 Greenplum官方安装说明:https://gpdb.docs.pivotal.io/5160/install_guide/ ...

  6. 基于RedHat6.5的Greenplum环境配置

    安装Greenplum的时候遇到了很多坑,在此记录下 欢迎园友补充问题,共同研究解决! 安装说明 1.环境说明 操作系统:Red hat 6.5 64 位 2.配置规范 2.1基本说明 greenpl ...

  7. SqlServer 连接GreenPlum问题处理

    一.SQL SERVER.GREENPLUM 1. SSIS安装 ▶ 安装SQL SERVER 2005 数据库之后,运行SSIS工具,建立包,建立完成之后,新建工作流,双击工作流之后无法进行编辑,并 ...

  8. 开源大数据引擎:Greenplum 数据库架构分析

    Greenplum 数据库是最先进的分布式开源数据库技术,主要用来处理大规模的数据分析任务,包括数据仓库.商务智能(OLAP)和数据挖掘等.自2015年10月正式开源以来,受到国内外业内人士的广泛关注 ...

  9. 【转】【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)

    原文地址:http://www.cnblogs.com/baiboy/p/orc1.html 阅读目录 目录 集群概念介绍 什么是集群 为什么搭建数据库集群 数据库集群的分类 可扩展的分布式数据库架构 ...

随机推荐

  1. 大神所写的深度好文---Gradle 构建工具

    什么是构建工具? 我们大家都知道 Gradle 是一种构建工具,那么什么是构建工具呢? 网上一大堆的文字解释我觉得很难理解,这里我以咱们 Android 开发来举个例子吧. 我们以前开发都是用 Ecl ...

  2. Typescript编译设置

    TypeScript MSBuild编译选项,用记事本打开工程文件,进行修改,如<TypeScriptGeneratesDeclarations>true</TypeScriptGe ...

  3. CAD通过扩展记录实体向数据库读写用户自定义的全局数据(com接口VB语言)

    VB代码实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...

  4. LeetCode--寻找数组中心索引

    给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法. 我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和. 如果数组不存在中心索引,那么我 ...

  5. Gym - 101611D Decoding of Varints(阅读理解题 )

    Decoding of Varints ​ 题意&思路: 首先根据红色边框部分的公式算出x,再有绿色部分得知,如果x是偶数则直接除以2,x是奇数则(x+1)/-2. PS:这题有数据会爆掉un ...

  6. BZOJ 1230 Usaco2008 Nov 开关灯

    [题意概述] 给出一个01序列,初始时序列全为0,每次有修改操作或询问操作,修改操作要求把L~R区间中的0变成1,1变成0,查询操作要求输出L~R区间的1的个数 [题解] 线段树. 每次区间修改把区间 ...

  7. java常见知识

    在JSP页面获取当前项目名称的方法: 方法1: <%= this.getServletContext().getContextPath() %> 方法2: 使用EL表达式 ${pageCo ...

  8. C#关键字详解第五节

    最近有点忙于追剧<人民的名义>所以并未及时更新,所以大家理解理解,哈哈,这部剧很不错!推荐大家去 看看!下面我们继续C#关键字解释! const:常量 一般我们说常量都是以PI(3.14) ...

  9. Vue2构建项目实战

    转载整理自http://blog.csdn.net/fungleo/article/details/77575077 vue构建单页应用原理 SPA 不是指水疗.是 single page web a ...

  10. ZooKeeper的下载方法

    1.进入官网: https://zookeeper.apache.org/releases.html 2.进入服务器列表: http://www.apache.org/dyn/closer.cgi/z ...