当前位置:网站首页>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
最终的大小比较
状态
边栏推荐
- Go write a program that runs within a certain period of time
- 数据分片介绍
- Grpc, oauth2, OpenSSL, two-way authentication, one-way authentication and other column directories
- [Yu Yue education] higher vocational English reference materials of Nanjing Polytechnic University
- Iptables' state module (FTP service exercise)
- opencv 将16位图像数据转为8位、8转16
- Go语言中,函数是一种类型
- Interface as a parameter (interface callback)
- What are the advantages of commas in conditional statements- What is the advantage of commas in a conditional statement?
- Golang 编译约束/条件编译 ( // +build <tags> )
猜你喜欢
打通法律服务群众“最后一公里”,方正璞华劳动人事法律自助咨询服务平台频获“点赞”
Opencv learning notes 1 -- several methods of reading images
南京商品房买卖启用电子合同,君子签助力房屋交易在线网签备案
[hard core science popularization] working principle of dynamic loop monitoring system
AVL平衡二叉搜索树
Opencv learning note 4 - expansion / corrosion / open operation / close operation
Rainbow combines neuvector to practice container safety management
A single game with goods increased by 100000, and the rural anchor sold men's clothes on top of the list?
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
下载和安装orcale database11.2.0.4
随机推荐
You should use Google related products with caution
XCiT学习笔记
Compilation and linking of programs
Go语言中,函数是一种类型
The single value view in Splunk uses to replace numeric values with text
[Chongqing Guangdong education] organic electronics (Bilingual) reference materials of Nanjing University of Posts and Telecommunications
Basic data types and string types are converted to each other
String operation
Golan idea IntelliJ cannot input Chinese characters
Rainbow 5.7.1 supports docking with multiple public clouds and clusters for abnormal alarms
Fluentd is easy to use. Combined with the rainbow plug-in market, log collection is faster
The field value in Splunk subquery fuzzy matching CSV is*
Splunk query CSV lookup table data dynamic query
idea里使用module项目的一个bug
Automatic upgrading of database structure in rainbow
[kuangbin] topic 15 digit DP
Implement your own dataset using bisenet
PVTV2--Pyramid Vision TransformerV2学习笔记
Deit learning notes
AVL balanced binary search tree