Greenplum学习日志
一、Greenplum概述
是一款开源的分布式数据库存储解决方案,其主要关注在数据仓库和商业智能方面。可以在虚拟化x86服务器上运行无分享(shared-nothing)的大规模并行处理(MPP)架构。
Greenplum是基于PostgreSQL(类mysql)开发,二者匹配度高
二、Greenplum特性
-
支持海量数据存储和处理
-
高性价比(相比于hadoop分析平台)投资是1/5甚至更低
-
支持Just In Time BI(实现数仓实时、准实时更新)
-
系统易用性
①支持主流SQL语法
②扩展性好,支持多语言的自定义函数和自定义类型等
③提供大量维护工具
④在internet上有资料可咨询
⑤支持线性扩展
⑥较好的并发支持和高可用性支持
⑦支持mr
⑧数据库内部压缩 -
支持线性扩展
二、Greenplum基操
1.启动数据库
- 查看帮助 gpstart --help
- 启动数据库 gpstart -a
- 关闭数据库 gpstop -a
注:输入-a 就不用输入’yes’进行确认
三、PostgreSQL基操
- 登录psql:
-psql -h 10.20.151.7 -p 2345 -d testDB -U gpadmin - 查看psql支持所有语法:
\h command 例:\h create view - create table
- \du 查询创建的用户
- \l 罗列库名
- \dt 罗列表名
--指定多个分布键如果不指定则默认第一个字段作为分布键
create table test001(id int,name varchar(128)) distributed by(id,name)
--采用随机分布执行关联操作都需要将数据重分布性能较差
create table test002(id int,name varchar(128)) distributed randomly
--如果指定的分布键与主键不一样,那么分布键会被更改为主键
--在创建表的时候,如果要建一张表结构一模一样的表,可使用create table like命令
create table test001_like (like test001);
--create table as 与 select into 都可以使表根据直接select 的结果创建一个新的表,create table as如果不添加分布键则gp会根据select得到的结果集来选择,不用再次重分布数据的字段作为表的分布键
create table test as select * from test1;
--手动加distributed关键字,指定分布键
create table test3 as select * from test1 distributed by(id);
--select into只能默认分布键
select * into test4 from test1;
- 查询计划(explain)
- 插入更新删除
insert into test values(100,‘tom’),(‘101’,‘jim’);
暂时不支持更新
delete3.x版本不支持子查询 4.x后支持建议使用truncate
truncate test001
参考文档
[1]: Greenplum企业应用实战 完整版[何勇,陈晓峰著]