从这里开始
本章讲解使用数据库的常用步骤。
本章中的操作是假设您已完成了“前置条件”中的创建DWS集群,及建立SQL查询工具与集群间的连接。
通过本小节您可以快速完成创建数据库、创建表及向表中插入数据和查询表中数据。本章的子节更详细地讲解数据库使用的一些常用步骤。
数据库基本操作
- 创建数据库用户。
默认只有创建集群时生成的管理员用户可以访问初始数据库。要向其他用户授予访问权限,必须创建新的用户帐户。
CREATE USER joe WITH PASSWORD "Bigdata@123";
当结果显示为如下信息,则表示创建成功。
CREATE ROLE
上面,创建了一个用户名为joe,密码为Bigdata@123的用户。
新创建的用户帐户默认具有所有数据库的登录权限和创建表、视图、索引等的权限及对这些自己所建对象的操作权限。更多信息请参见用户。
- 创建数据库。
CREATE DATABASE mytpcds; CREATE DATABASE
创建完db_tpcds数据库后,就可以按如下方法退出postgres数据库,使用新用户连接到此数据库执行接下来的创建表等操作。当然,也可以选择继续在默认的postgres数据库下做后续的体验。
\q gsql -d db_tpcds -p 8000 -U joe -W Bigdata@123 gsql ((GaussDB Kernel V300R002C00 build 50dc16a6) compiled at 2019-01-29 05:49:21 commit 1071 last mr 1373) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. mytpcds=>
有关数据库管理的更多操作指导,请参考创建和管理数据库。
- (可选)创建schema。
schema又称作模式。通过schema,允许多个用户使用同一数据库而不相互干扰。
执行如下命令来创建一个schema。
CREATE SCHEMA myschema;
当结果显示如下信息,则表示成功创建一个名为myschema的schema。
CREATE SCHEMA
schema创建成功后,就可以在该schema下创建对象了。但是,请确保在创建对象前使用如下两种方式之一将对象创建到对应的schema下。
先将数据库的search_path设成对应schema,然后再创建对象。
SET SEARCH_PATH TO myschema; CREATE TABLE mytable (firstcol int);
在创建对象时指定由“模式名称+对象名称”组成的完整对象名称,中间由符号“.”隔开。例如:
CREATE TABLE myschema.mytable (firstcol int);
如果在创建对象时不指定schema,则会将对象创建在当前的schema下。查询当前schema的办法为:
show search_path; search_path ---------------- "$user",public (1 row)
有关schema的更多信息请参考创建和管理schema。
- 创建表。
- 创建一个名称为mytable,只有一列的表。字段名为firstcol,字段类型为integer。
mytpcds=> CREATE TABLE mytable (firstcol int);
未使用“DISTRIBUTE BY”指定分布列时,系统默认会使用第一个符合分布列数据类型要求的列为分布列,且给出提示。系统返回信息以“CREATE TABLE”结束,表示创建表成功。
NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'firstcol' as the distribution column by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. CREATE TABLE
PG_TABLES系统表包含集群中所有表的有关信息。通过SELECT 命令可以在此系统表中查看表的属性。
SELECT * FROM PG_TABLES WHERE TABLENAME = 'mytable';
- 向表中插入数据。
mytpcds=> INSERT INTO mytable values (100); INSERT 0 1
INSERT 命令可向数据库表插入各个行。要进行标准的批量加载,请参阅关于OBS并行导入。
- 查看表中数据。
mytpcds=> SELECT * from mytable; firstcol ---------- 100 (1 row)
- 默认情况下,新的数据库对象是创建在“public”模式下的,例如刚刚新建的表。关于模式的更多信息请参考创建和管理schema。
- 关于创建表的更多信息请参见创建表。
- 除了创建的表以外,数据库还包含很多系统表。这些系统表包含集群安装信息以及DWS上运行的各种查询和进程的信息。可以通过查询系统表来收集有关数据库的信息。请参见查看系统表。
- DWS支持行列混合存储,为各种复杂场景下的交互分析提供更好的查询性能,关于存储模型的选择,请参考规划存储模型。
- 创建一个名称为mytable,只有一列的表。字段名为firstcol,字段类型为integer。
加载示例数据
本手册中大部分示例均使用在postgres数据库中创建TPC-DS示例表。如果希望通过您的SQL查询工具按照示例操作,请先创建TPC-DS示例表,然后为示例表加载示例数据。
OBS桶中提供了示例数据,该存储桶向所有经过身份验证的云用户提供了读取权限。
有关创建表和加载示例数据的步骤,请参考加载示例数据。
释放资源
如果为完成本节的练习部署了集群,那么应在完成练习后删除该集群。
要删除集群,请按照《数据仓库服务管理指南》的删除集群章节中的步骤操作。
如果要保留集群但清除db_tpcds数据库,请运行如下命令:
DROP DATABASE mytpcds;
如果要保留集群和数据库,只清空数据库中的表,请运行如下命令:
DROP TABLE mytable;
相关文档
相关产品
