greenplum数据库常用操作
1. 场景描述
greenplum集群部署好后,软件老王在实际使用过程中碰到一些问题,简单记录下,希望能帮到有需要的朋友。
2 .解决方案
2.1 gpcc监控地址
说明:非常重要,greenplum集群监控,可以监控数据库集群使用情况,包括cpu、内存、硬盘,执行情况等。
http://192.168.85.158:28080
gpmon
gpmon
2.2 典型创建表
软件老王说明:
(1)WITH (appendonly=true, compresslevel=5)表明是只在后面新增数据,压缩比是5级(1-10);
(2)DISTRIBUTED BY (laowang),分布键,按照这个字段分布到各个segement服务器;
(3)PARTITION ,按时间分区。
CREATE TABLE "public"."t_ruanjianlaowang" (
"laowang" text,
"timestamp" text,
)
WITH (appendonly=true, compresslevel=5)
DISTRIBUTED BY (laowang)
PARTITION BY RANGE(timestamp)
(
PARTITION t_ruanjianlaowang_20170701 START (\'2017-06-01 00:00:00\'::timestamp without time zone) END (\'2017-07-01 00:00:00\'::timestamp without time zone),
PARTITION t_ruanjianlaowang_20170801 START (\'2017-07-01 00:00:00\'::timestamp without time zone) END (\'2017-08-01 00:00:00\'::timestamp without time zone)
)
2.3 创建测试表,测试分页数据是否重复
说明:创建测试表,测试分页数据是否重复
--创建测试表
create table test_ischongfu2 as select * from t_ruanjianlawoang limit 1 offset 0;
--插入数据
insert into test_ischongfu2 select * from t_ruanjianlawoang limit 1000 offset 0;
insert into test_ischongfu2 select * from t_ruanjianlawoang limit 1000 offset 1001;
insert into test_ischongfu2 select * from t_ruanjianlawoang limit 1000 offset 2001;
insert into test_ischongfu2 select * from t_ruanjianlawoang limit 1000 offset 3001;
insert into test_ischongfu2 select * from t_ruanjianlawoang limit 1000 offset 4001;
2.4 创建外部表
软件老王说明:
创建外部表,速度超级快,10万数据,几秒就完成了。
CREATE EXTERNAL TABLE t_ex_ruanjianlaowang (
laowang1 double precision,
laowang2 double precision,
laowang3 varchar(100)
) location (\'gpfdist://192.168.85.158:8081/d.csv\') format \'csv\' (DELIMITER \',\');
2.5 删除外部表
说明:spark导入数据后,会生成很多外部表垃圾数据,也可以批量删除下。
drop external table spark_3f59d3ff03a55cd3_3d9d854163f8f07a_driver_73 ;
drop external table spark_3f59d3ff03a55cd3_3d9d854163f8f07a_driver_72 ;
drop external table spark_3f59d3ff03a55cd3_3d9d854163f8f07a_driver_60
2.6 正常建表
说明:
不分区,5级压缩,分布键为laowang1。
CREATE TABLE t_ruanjianlaowang(
laowang1 double precision,
laowang2 double precision
)
WITH (appendonly=true,orientation=column,compresstype=zlib,COMPRESSLEVEL=5)
distributed by (laowang1);
2.7 greenplum创建资源队列
说明:集群共享的时候,对greenplum集群资源进行分配。
----新增插入role
create role gpinsertrole with login password \'gpinsertrole\';
--权限控制感觉有问题,直接在navcat上更改为超级管理员可能会快点
GRANT ALL PRIVILEGES ON DATABASE "db_ruanjianlawoang" TO gpinsertrole;
create resource queue q_pginsert with (ACTIVE_STATEMENTS=10,MEMORY_LIMIT=\'2000MB\',PRIORITY=HIGH,COST_OVERCOMMIT=true,MIN_COST=100,MAX_COST=10000);
alter role gpinsertrole resource queue q_pginsert;
2.8 有关是否走索引
大批量插入数据后,有时候会不走索引,需要操作下。
Greenplum中的vacuum和analyze
vacuum t_ruanjianlaowang;
I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!