Greenplum使用教程
- 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使用教程的更多相关文章
- Greenplum 源码安装教程 —— 以 CentOS 平台为例
Greenplum 源码安装教程 作者:Arthur_Qin 禾众 Greenplum 主体以及orca ( 新一代优化器 ) 的代码以可以从 Github 上下载.如果不打算查看代码,想下载编译好的 ...
- 『GreenPlum系列』GreenPlum 4节点集群安装(图文教程)
目标架构如上图 一.硬件评估 cpu主频,核数推荐CPU核数与磁盘数的比例在12:12以上Instance上执行时只能利用一个CPU核资源进行计算,推荐高主频 内存容量 网络带宽重分布操作 R ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)
集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...
- Greenplum 数据库架构分析
Greenplum 数据库是最先进的分布式开源数据库技术,主要用来处理大规模的数据分析任务,包括数据仓库.商务智能(OLAP)和数据挖掘等.自2015年10月正式开源以来,受到国内外业内人士的广泛关注 ...
- Greenplum5.16.0 安装教程
Greenplum5.16.0 安装教程 一.环境说明 1.1官方网站 Greenplum官方安装说明:https://gpdb.docs.pivotal.io/5160/install_guide/ ...
- 基于RedHat6.5的Greenplum环境配置
安装Greenplum的时候遇到了很多坑,在此记录下 欢迎园友补充问题,共同研究解决! 安装说明 1.环境说明 操作系统:Red hat 6.5 64 位 2.配置规范 2.1基本说明 greenpl ...
- SqlServer 连接GreenPlum问题处理
一.SQL SERVER.GREENPLUM 1. SSIS安装 ▶ 安装SQL SERVER 2005 数据库之后,运行SSIS工具,建立包,建立完成之后,新建工作流,双击工作流之后无法进行编辑,并 ...
- 开源大数据引擎:Greenplum 数据库架构分析
Greenplum 数据库是最先进的分布式开源数据库技术,主要用来处理大规模的数据分析任务,包括数据仓库.商务智能(OLAP)和数据挖掘等.自2015年10月正式开源以来,受到国内外业内人士的广泛关注 ...
- 【转】【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)
原文地址:http://www.cnblogs.com/baiboy/p/orc1.html 阅读目录 目录 集群概念介绍 什么是集群 为什么搭建数据库集群 数据库集群的分类 可扩展的分布式数据库架构 ...
随机推荐
- 【sqli-labs】 less48 GET -Error based -Blind -Numeric -Order By Clause(GET型基于盲注的整型Order By从句注入)
图片还是47...访问的的确是48 这个是基于bool的盲注 http://192.168.136.128/sqli-labs-master/Less-48/?sort=1 and sleep(0.1 ...
- Lua之尾调函数的用法
Lua之尾调函数的用法 --当函数的最后返回结果调用另一个函数,称之为尾调函数 function f(x) return g(x) end --由于“尾调用”不会耗费栈空间,所以一个程序可以拥有无数嵌 ...
- 推荐系统相关比赛-kaggle
from: 七月在线 电商推荐与销量预测相关案例 一.预测用户对哪个事件感兴趣(感兴趣不一定去参加) 用户历史参加事件.社交信息.浏览信息(app).要预测的事件 recall:召回率 准确率: 协同 ...
- Linux之内核管理及故障排错
一.Centos6启动流程: 加电自检PSOT 引导加载器BootLoader MBR(GRUB第一阶段)||(GRUB第1.5阶段)(GRUB第2阶段) 加载内核(vmlinuz.initramfs ...
- 百度编辑器ueditor1.4.3配置记录
我从官网下载的php文件,但是图片上传不能用,后来查找资料,打开ueditor下的php/controller.php,(其他环境选对应的文件夹)把时区设置按如下改个字母大小写,再打开该文件就正确返回 ...
- pyhon中的内存优化机制
一.变量的内存地址 python中变量的内存地址可以用id()来查看 >>> a = " >>> id(a) 2502558915696 二.pyhon中 ...
- 70. Climbing Stairs(动态规划)
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- 【codeforces 509E】Pretty Song
[题目链接]:http://codeforces.com/contest/509/problem/E [题意] 让你计算一个字符串的所有子串里面元音字母出现的频率的和; [题解] 先处理出前缀和-&g ...
- 【[Offer收割]编程练习赛13 D】骑士游历(矩阵模板,乘法,加法,乘方)
[题目链接]:http://hihocoder.com/problemset/problem/1504 [题意] [题解] 可以把二维的坐标转成成一维的; 即(x,y)->(x-1)*8+y 然 ...
- thymeleaf模板引擎基础使用(转)
刚好项目上用到这个模板引擎,记录以下基础用法. thymeleaf介绍 简单说, Thymeleaf是一个跟Velocity.FreeMarker类似的模板引擎,它可以完全替代JSP .相比其他的模板 ...