当前位置:网站首页>Greenplum6.x常用语句
Greenplum6.x常用语句
2022-07-07 06:01:00 【xcSpark】
一.创建目录
root用户登录四台服务器,每台都执行下面操作
[[email protected] tmp]# mkdir -p /datax/tbs_tmp
[[email protected] tmp]# mkdir -p /datax/tbs_tmp2
# 赋权限
[[email protected] tmp]# chown gpadmin:gpadmin /datax/*
二.创建库
gpadmin用户登录master机器
[[email protected] ~]$ psql -d postgres
psql (9.4.24)
Type "help" for help.
postgres=# create database gpdb encoding='UTF8';
CREATE DATABA
gpdb=# SELECT datname from pg_database;
datname
-----------
template1
template0
postgres
gpperfmon
gpdb
(5 rows)
postgres=# \q
三. 表空间
gpadmin用户登录master机器
每个 Greenplum 数据库系统都有以下默认表空间。
pg_global用于共享系统目录。
pg_default,默认表空间。由template1和template0数据库使用。这些表空间使用默认系统位置,即系统初始化时创建的数据目录位置。
要查看表空间信息,请使用pg_tablespace目录表获取表空间的对象 ID(OID),然后使用gp_tablespace_location()函数显示表空间目录。这是一个列出一个用户定义表空间的示例myspace:
[[email protected] tmp]# su - gpadmin
# 进入gpdb库
[[email protected] ~]$ psql -d gpdb
psql (9.4.24)
Type "help" for help.
# 创建表空间
gpdb=# create tablespace tbs_tmp location '/datax/tbs_tmp';
CREATE TABLESPACE
gpdb=# create tablespace tbs_tmp2 location '/datax/tbs_tmp2';
CREATE TABLESPACE
gpdb=#
########################## 查看表空间 #####################
gpdb=# SELECT oid, * FROM pg_tablespace ;
oid | spcname | spcowner | spcacl | spcoptions
-------+------------+----------+-------------------------------------+------------
1663 | pg_default | 10 | |
1664 | pg_global | 10 | |
16658 | tbs_tmp2 | 10 | |
16657 | tbs_tmp | 10 | {
gpadmin=C/gpadmin,guser=C/gpadmin} |
(4 rows)
#表空间的 OID myspace是16657 . 运行gp_tablespace_location()以显示由两个段实例和主实例组成的系统的表空间位置
gpdb=# SELECT * FROM gp_tablespace_location(16657);
gp_segment_id | tblspc_loc
---------------+----------------
0 | /datax/tbs_tmp
7 | /datax/tbs_tmp
2 | /datax/tbs_tmp
4 | /datax/tbs_tmp
1 | /datax/tbs_tmp
6 | /datax/tbs_tmp
5 | /datax/tbs_tmp
3 | /datax/tbs_tmp
-1 | /datax/tbs_tmp
(9 rows)
gpdb=#
#此查询使用gp_tablespace_location()目录gp_segment_configuration表来显示段实例信息以及myspace表空间的文件系统位置。
gpdb=# WITH spc AS (SELECT * FROM gp_tablespace_location(16657)) SELECT seg.role, spc.gp_segment_id as seg_id, seg.hostname, seg.datadir, tblspc_loc FROM spc, gp_segment_configuration AS seg WHERE spc.gp_segment_id = seg.content ORDER BY seg_id;
role | seg_id | hostname | datadir | tblspc_loc
------+--------+----------+-----------------------+----------------
p | -1 | mdw | /datax/master/gpseg-1 | /datax/tbs_tmp
m | -1 | smdw | /datax/master/gpseg-1 | /datax/tbs_tmp
p | 0 | sdw1 | /datax/primary/gpseg0 | /datax/tbs_tmp
m | 0 | sdw2 | /datax/mirror/gpseg0 | /datax/tbs_tmp
m | 1 | sdw2 | /datax/mirror/gpseg1 | /datax/tbs_tmp
p | 1 | sdw1 | /datax/primary/gpseg1 | /datax/tbs_tmp
m | 2 | sdw2 | /datax/mirror/gpseg2 | /datax/tbs_tmp
p | 2 | sdw1 | /datax/primary/gpseg2 | /datax/tbs_tmp
p | 3 | sdw1 | /datax/primary/gpseg3 | /datax/tbs_tmp
m | 3 | sdw2 | /datax/mirror/gpseg3 | /datax/tbs_tmp
m | 4 | sdw1 | /datax/mirror/gpseg4 | /datax/tbs_tmp
p | 4 | sdw2 | /datax/primary/gpseg4 | /datax/tbs_tmp
p | 5 | sdw2 | /datax/primary/gpseg5 | /datax/tbs_tmp
m | 5 | sdw1 | /datax/mirror/gpseg5 | /datax/tbs_tmp
m | 6 | sdw1 | /datax/mirror/gpseg6 | /datax/tbs_tmp
p | 6 | sdw2 | /datax/primary/gpseg6 | /datax/tbs_tmp
m | 7 | sdw1 | /datax/mirror/gpseg7 | /datax/tbs_tmp
p | 7 | sdw2 | /datax/primary/gpseg7 | /datax/tbs_tmp
(18 rows)
gpdb=#
指定表空间
SET default_tablespace = tbs_tmp;
CREATE TABLE foo(i int);
gpdb=# SET default_tablespace = tbs_tmp;
SET
gpdb=# CREATE TABLE foo(i int);
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'i' as the Greenplum Database data distribution key for this table. HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
CREATE TABLE
gpdb=#
删除表空间
注意:如果表空间不为空或者存储临时文件或事务文件,则不能删除表空间。
表空间所有者或超级用户有权限删除表空间。在删除所有使用该表空间的数据库中的所有对象之前,您不能删除该表空间。
DROP TABLESPACE xxx
四. 创建和管理模式schema
创建schema
gpdb=# create schema tmp_schema;
CREATE SCHEMA
要在模式中创建或访问对象,请编写由模式名称和表名组成的限定名称,并用句点分隔。例如
myschema.table
例如,您可以创建其他人拥有的模式,以将用户的活动限制在明确定义的名称空间中
CREATE SCHEMA
schemaname
AUTHORIZATIONusername
;
五. 用户角色
用户级角色被认为是可以登录数据库并发起数据库会话的数据库角色。因此,当您使用该命令创建新的用户级角色时CREATE ROLE,您必须指定LOGIN权限。例如:
CREATE ROLE jsmith WITH LOGIN;
创建角色
# guser无登录权限
gpdb=# create ROLE guser password 'guser';
NOTICE: resource queue required -- using default resource queue "pg_default"
CREATE ROLE
gpdb=# grant all on database gpdb to guser;
GRANT
# 有登录权限
gpdb=# create ROLE guser2 WITH LOGIN password 'guser2';
NOTICE: resource queue required -- using default resource queue "pg_default"
CREATE ROLE
gpdb=#
修改权限
ALTER ROLE
username
WITH PASSWORD ‘passwd123’;
ALTER ROLE admin VALID UNTIL ‘infinity’;
ALTER ROLEusername
LOGIN;
ALTER ROLEusername
RESOURCE QUEUE que1;
ALTER ROLEusername
DENY DAY ‘Sunday’;
角色成员
将用户分组在一起以简化对象权限的管理通常很方便:这样,可以将权限授予或撤消整个组。
CREATE ROLE admin CREATEROLE CREATEDB;
GRANT组角色存在后,您可以使用andREVOKE命令添加和删除成员(用户角色)
GRANT admin TO user1, user2;
REVOKE admin FROM user3;
为了管理对象权限,您将只向组级角色授予适当的权限,然后成员用户角色继承组角色的对象权限。
GRANT ALL ON TABLE mytable TO admin;
GRANT ALL ON SCHEMA myschema TO admin;
GRANT ALL ON DATABASE mydb TO admin;
注意:角色属性LOGIN, SUPERUSER, CREATEDB, CREATEROLE,CREATEEXTTABLE和RESOURCE QUEUE永远不会像数据库对象的普通权限那样被继承。
用户成员实际上必须SET ROLE具有这些属性之一的特定角色才能使用该属性
SET ROLE admin;
例如
gpdb=# ALTER ROLE guser2 SUPERUSER LOGIN CREATEDB;
ALTER ROLE
gpdb=#
六. 赋权限
# 赋表空间权限给guser
gpdb=# GRANT CREATE ON TABLESPACE tbs_tmp TO guser;
GRANT
七. 创建表
CREATE TABLE foo(i int) TABLESPACE tbs_tmp;
八. 远程登录
修改文件
[[email protected] ~]$ vi /datax/master/gpseg-1/pg_hba.conf
# 增加内容
host all guser2 0.0.0.0/0 trust
使得配置生效
[[email protected] ~]$ gpstop -u
20220703:22:21:58:123477 gpstop:mdw:gpadmin-[INFO]:-Starting gpstop with args: -u
20220703:22:21:58:123477 gpstop:mdw:gpadmin-[INFO]:-Gathering information and validating the environment...
20220703:22:21:58:123477 gpstop:mdw:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
20220703:22:21:58:123477 gpstop:mdw:gpadmin-[INFO]:-Obtaining Segment details from master...
20220703:22:21:58:123477 gpstop:mdw:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 6.18.2 build commit:1242aadf0137d3b26ee42c80e579e78bd7a805c7'
20220703:22:21:58:123477 gpstop:mdw:gpadmin-[INFO]:-Signalling all postmaster processes to reload
.
20220703:22:21:59:123477 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
20220703:22:21:59:123477 gpstop:mdw:gpadmin-[INFO]:-Some segment postmasters were not reloaded
20220703:22:21:59:123477 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
20220703:22:21:59:123477 gpstop:mdw:gpadmin-[INFO]:- Host Datadir Port Status
20220703:22:21:59:123477 gpstop:mdw:gpadmin-[INFO]:- smdw /datax/master/gpseg-1 5432 u
20220703:22:21:59:123477 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
[[email protected] ~]$
登录无效
重新执行如下无效
[[email protected] ~]$ pg_ctl reload -D /datax/master/gpseg-1/
server signaled
[[email protected] ~]$
usage:使用表空间存储数据库对象
#具有表空间权限的用户CREATE可以在该表空间中创建数据库对象,例如表、索引和数据库
# 格式:CREATE TABLE tablename(options) TABLESPACE spacename;
#在表空间space1中创建一个表
CREATE TABLE foo(i int) TABLESPACE tbs_tmp;
#您还可以使用该参数为不指定表空间的命令default_tablespace指定默认表空间:CREATE TABLECREATE INDEX
SET default_tablespace = space1;
CREATE TABLE foo(i int);
测试数据
gpadmin用户
[[email protected] ~]$ psql -d gpdb
psql (9.4.24)
Type "help" for help.
gpdb=# SET default_tablespace = tbs_tmp;
SET
gpdb=# CREATE TABLE foo(i int);
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'i' as the Greenplum Database data distribution key for this table. HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
CREATE TABLE
gpdb=#
# 插入16条数据
gpdb=# insert into foo values(100000);
INSERT 0
增加数据
gpdb=# select count(*) from foo;
count
---------
4854608
(1 row)
初始数据foo表16条, foo2为0条。
insert数据量如下
大小变化
master节点有tbs_tmp目录
sdw2的gpseg0
最终的大小比较
状态
边栏推荐
- Golang compilation constraint / conditional compilation (/ / +build < tags>)
- 一种适用于应用频繁测试下快速查看Pod的日志的方法(grep awk xargs kuberctl)
- 如何理解分布式架构和微服务架构呢
- The field value in Splunk subquery fuzzy matching CSV is*
- National standard gb28181 protocol video platform easygbs adds streaming timeout configuration
- grpc、oauth2、openssl、双向认证、单向认证等专栏文章目录
- Installation and configuration of PLSQL
- MES系统,是企业生产的必要选择
- Appeler l'interface du moteur de création du service multimédia de jeu Huawei renvoie le Code d'erreur 1002, le message d'erreur: les paramètres sont l'erreur
- 【MySQL】数据库进阶之触发器内容详解
猜你喜欢
23 Chengdu instrument customization undertaking_ Discussion on automatic wiring method of PCB in Protel DXP
The single value view in Splunk uses to replace numeric values with text
一种适用于应用频繁测试下快速查看Pod的日志的方法(grep awk xargs kuberctl)
路由信息协议——RIP
Learn how to compile basic components of rainbow from the source code
Virtual address space
Implementation of navigation bar at the bottom of applet
Iptables' state module (FTP service exercise)
Fluentd is easy to use. Combined with the rainbow plug-in market, log collection is faster
Tuowei information uses the cloud native landing practice of rainbow
随机推荐
Basic data types and string types are converted to each other
Snyk dependency security vulnerability scanning tool
Rsync remote synchronization
注解@ConfigurationProperties的三种使用场景
Leetcode 1984. Minimum difference in student scores
Openvscode cloud ide joins rainbow integrated development system
Fluentd is easy to use. Combined with the rainbow plug-in market, log collection is faster
Give full play to the wide practicality of maker education space
Redis summary
快速集成认证服务-HarmonyOS平台
如何在快应用中实现滑动操作组件
Calling the creation engine interface of Huawei game multimedia service returns error code 1002, error message: the params is error
数据库存储---表分区
redis故障处理 “Can‘t save in background: fork: Cannot allocate memory“
Implementation method of data platform landing
Pvtv2--pyramid vision transformer V2 learning notes
Componentspace2022, assertions, protocols, bindings, and configuration files
String operation
关于基于kangle和EP面板使用CDN
POJ - 3616 Milking Time(DP+LIS)