Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理数据库

6.定义数据库对象

6.1.创建与管理数据库

通过\h命令查看创建数据库的语法,如下所示:


testdw-# \h create database

Command:     CREATE DATABASE

Description: create a new database

Syntax:

CREATE DATABASE name

[ [ WITH ] [ OWNER [=] dbowner ]

[ TEMPLATE [=] template ]

[ ENCODING [=] encoding ]

[ LC_COLLATE [=] lc_collate ]

[ LC_CTYPE [=] lc_ctype ]

[ TABLESPACE [=] tablespace ]

[ CONNECTION LIMIT [=] connlimit ] ]                 连接限制

说明:

  • 一个GPDB系统可以有多个数据库;
  • 关于数据库模版:可以基于模版创建数据库,缺省数据库模版为template1,GP系统内部使用模板:template0和postgres;
  • 创建数据库应该具备CREATEDB权限或者SUPERUSER身份;
  • 通过CREATEDATABASE 命令创建;

template1=# create database devdw;

CREATE DATABASE

  • 克隆一个数据库

template1=#\c devdw                                     使用\c连接数据库

You are now connected to database "devdw" as user "gpadmin".

devdw=# create table tab_01(id int);                          创建表

NOTICE:  Table doesn‘t have ‘DISTRIBUTED BY‘ clause -- Using column named ‘id‘ 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

devdw=# \d                                              使用\d查看表信息

List of relations

Schema |  Name  | Type  |  Owner  | Storage

--------+--------+-------+---------+---------

public | tab_01 | table | gpadmin | heap

(1 row)

devdw=# insert into tab_01 values(101);                      向表中插入数据

INSERT 0 1

devdw=# select * from tab_01;                             查询表中信息

id

-----

101

(1 row)

template1=# create database col_devdw template devdw;           使用devdw作为模板创建克隆数据库

CREATE DATABASE

template1=# \l                                            使用\l命令查看当前所有数据库

List of databases

Name    |  Owner  | Encoding |  Access privileges

-----------+---------+----------+---------------------

col_devdw | gpadmin | UTF8     |

devdw     | gpadmin | UTF8     |

postgres  | gpadmin | UTF8     |

template0 | gpadmin | UTF8     | =c/gpadmin

: gpadmin=CTc/gpadmin

template1 | gpadmin | UTF8     | =c/gpadmin

: gpadmin=CTc/gpadmin

testdw    | gpadmin | UTF8     |

(6 rows)

template1=# \c col_devdw

You are now connected to database "col_devdw" as user "gpadmin".

col_devdw=# \l

List of databases

Name    |  Owner  | Encoding |  Access privileges

-----------+---------+----------+---------------------

col_devdw | gpadmin | UTF8     |

devdw     | gpadmin | UTF8     |

postgres  | gpadmin | UTF8     |

template0 | gpadmin | UTF8     | =c/gpadmin

: gpadmin=CTc/gpadmin

template1 | gpadmin | UTF8     | =c/gpadmin

: gpadmin=CTc/gpadmin

testdw    | gpadmin | UTF8     |

(6 rows)

col_devdw=# \d

List of relations

Schema |  Name  | Type  |  Owner  | Storage

--------+--------+-------+---------+---------

public | tab_01 | table | gpadmin | heap

(1 row)

  • 查看数据库列表:可以通过查询pg_database系统日志表

template1=# \l

List of databases

Name    |  Owner  | Encoding |  Access privileges

-----------+---------+----------+---------------------

devdw     | gpadmin | UTF8     |

gpadmin   | gpadmin | UTF8     |

postgres  | gpadmin | UTF8     |

template0 | gpadmin | UTF8     | =c/gpadmin

: gpadmin=CTc/gpadmin

template1 | gpadmin | UTF8     | =c/gpadmin

: gpadmin=CTc/gpadmin

testdw    | gpadmin | UTF8     |

(6 rows)

template1=# SELECT * FROM pg_database;

datname  | datdba | encoding | datistemplate | datallowconn | datconnlimit | datlastsysoid | datfrozenxid | dattablespace | datconfig |              datacl

-----------+--------+----------+---------------+--------------+--------------+---------------+--------------+---------------+-----------+----------------------------------

testdw    |     10 |        6 | f             | t            |           -1 |         10899 |          803 |          1663 |           |

postgres  |     10 |        6 | t             | t            |           -1 |         10899 |          803 |          1663 |           |

devdw     |     10 |        6 | f             | t            |           -1 |         10899 |          803 |          1663 |           |

template1 |     10 |        6 | t             | t            |           -1 |         10899 |          803 |          1663 |           | {=c/gpadmin,gpadmin=CTc/g

padmin}

template0 |     10 |        6 | t             | f            |           -1 |         10899 |          803 |          1663 |           | {=c/gpadmin,gpadmin=CTc/g

padmin}

(5 rows)

  • 变更数据库:必须具备Owner或者SUPERUSER权限且使用ALTERDATABASE命令来改变DB的属性

template1=# \h ALTER DATABASE

Command:     ALTER DATABASE

Description: change a database

Syntax:

ALTER DATABASE name [ [ WITH ] option [ ... ] ]

where option can be:

CONNECTION LIMIT connlimit

ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT }

ALTER DATABASE name RESET parameter

ALTER DATABASE name RENAME TO newname

ALTER DATABASE name OWNER TO new_owner


template1=# alter database devdw set search_path to public,pg_catalog;

ALTER DATABASE

template1=# select * from pg_database;

datname  | datdba | encoding | datistemplate | datallowconn | datconnlimit | datlastsysoid | datfrozenxid | dattablespace |             datconfig              |              datacl

-----------+--------+----------+---------------+--------------+--------------+---------------+--------------+---------------+------------------------------------+----------------------------------

testdw    |     10 |        6 | f             | t            |           -1 |         10899 |          803 |          1663 |                                    |

postgres  |     10 |        6 | t             | t            |           -1 |         10899 |          803 |          1663 |                                    |

col_devdw |     10 |        6 | f             | t            |           -1 |         10899 |          803 |          1663 |                                    |

template1 |     10 |        6 | t             | t            |           -1 |         10899 |          803 |          1663 |                                    | {=c/gpadmin,gpadmin=CTc/gpadmin}

template0 |     10 |        6 | t             | f            |           -1 |         10899 |          803 |          1663 |                                    | {=c/gpadmin,gpadmin=CTc/gpadmin}

devdw     |     10 |        6 | f             | t            |           -1 |         10899 |          803 |          1663 | {"search_path=public, pg_catalog"} |

(6 rows)

  • 删除数据库:必须具备Owner或者SUPERUSER权限,通过CREATEDATABASE 命令删除

testdw-# \h drop database

Command:     DROP DATABASE

Description: remove a database

Syntax:

DROP DATABASE [ IF EXISTS ] name


template1=# drop database col_devdw;

DROP DATABASE

时间: 2024-10-26 00:44:04

Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理数据库的相关文章

数据库对象的创建和管理

--数据库对象的创建和管理 DDL(数据定义语言) --表(table): 数据库存储的基本单元; --约束条件(constraint):用来确保数据库中数据的完整性,确保数据满足某些特定的商业规则 --视图(view):一个或多个表的逻辑表示或虚拟表示,主要用于简化查询操作 --索引(index):用于加速数据访问数据库对象,提高访问效率 --序列(sequence):用于生成唯一数字值的数据库对象,序列的生成机制会自动生成顺序递增的数字,可以用来作为数据表的主键值 --同义词(synonym

Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理表

6.4.创建与管理表 6.4.1.创建表 通过查询CREATETABLE命令帮助如下所示: Command:     CREATE TABLE Description: define a new table Syntax: CREATE [[GLOBAL | LOCAL] {TEMPORARY | TEMP}] TABLE table_name (     -->指定表类型:全局|本地临时 [ { column_name data_type [ DEFAULT default_expr ]   

Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理表空间

6.2.创建与管理表空间 表空间建立在文件空间之上,文件空间建立在一系列文件系统之上.关于gpfilespace的所有说明如下所示: [[email protected] gpfs]$ gpfilespace --help COMMAND NAME: gpfilespace Creates a filespace using a configuration file that defines per-segment file system locations. Filespaces descri

Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理模式

6.3.创建与管理模式 概述:DB内组织对象的一种逻辑结构,一个DB内可以有多个模式,在未指定模式时默认放置在public中,可以通过"\dn"方式查看数据库中现有模式: testdw=# \dn List of schemas Name        |  Owner --------------------+--------- gp_toolkit         | gpadmin information_schema | gpadmin pg_aoseg           |

Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理序列、索引以及视图

6.5.创建与管理序列 序列常用于在新增记录时自动生成唯一标识符,序列的管理包括创建序列.使用序列.修改序列以及删除序列. 6.5.1.创建序列 使用CREATESEQUENCE命令来创建并初始化一个给定名称的单列序列表: devdw=# \h CREATE SEQUENCE                        查看创建序列的帮助 Command:     CREATE SEQUENCE Description: define a new sequence generator Synt

Greenplum中定义数据库对象之创建与管理模式

创建与管理模式 概述:DB内组织对象的一种逻辑结构.一个DB内能够有多个模式.在未指定模式时默认放置在public中.能够通过"\dn"方式查看数据库中现有模式. testdw=# \dn List of schemas Name        |  Owner --------------------+--------- gp_toolkit         | gpadmin information_schema | gpadmin pg_aoseg           | gpa

Greenplum+Hadoop学习笔记-15-管理数据

7.管理数据 7.1.关于GP的并发控制 1)        GP使用多版本控制模型(Mutltiversion Concurrency Control/MVCC)保持数据一致性: 可将MVCC看成行级别锁的一种妥协,它在许多情况下避免了使用锁,同时可以提供更小的开销.根据实现的不同,它可以允许非阻塞式读,在写操作进行时只锁定必要的记录.MVCC会保存某个时间点上的数据快照.这意味着事务可以看到一个一致的数据视图,不管他们需要跑多久.这同时也意味着不同的事务在同一个时间点看到的同一个表的数据可能

Greenplum+Hadoop学习笔记-10-Greenplum安装

2.1.评估存储能力 2.1.1.计算可用的空间 步骤1:初始存储能力=硬盘大小*硬盘数 步骤2:配置RAID10,格式化磁盘空间=(初始存储能力*0.9)/2 步骤3:可用磁盘空间=格式化磁盘空间*0.7 步骤4:用户数据使用空间 使用镜像:(2*用户数据)+用户数据/3=可用磁盘空间 不使用镜像:用户数据+用户数据/3=可用磁盘空间 2.1.2.计算用户数据大小 平均来说,实际占用磁盘空间大小=用户数据*1.4 页面开销:32KB页面需要20 bytes 行开销:每行24 bytes,'ap

Hadoop学习笔记—14.ZooKeeper环境搭建

从字面上来看,ZooKeeper表示动物园管理员,这是一个十分奇妙的名字,我们又想起了Hadoop生态系统中,许多项目的Logo都采用了动物,比如Hadoop采用了大象的形象,所以我们可以猜测ZooKeep就是对这些动物进行一些管理工作的. 一.ZooKeeper基础介绍 1.1 动物园也要保障安全 zookeeper是hadoop下面的一个子项目,用来协调跟hadoop相关的一些分布式的框架,如hadoop, hive, pig等, 其实他们都是动物,所以叫zookeeper ——“动物园管理