简单使用OpenGauss数据库

简单使用OpenGauss数据库

1 参考网站

# OpenGauss官网
https://opengauss.org/zh/

2 Docker安装OpenGauss

下载OpenGauss

docker pull enmotech/opengauss:3.0.0

安装OpenGauss

容器参数说明:

  • GS_PASSWORD:必须设置该参数,该参数设置了openGauss数据库的超级用户omm以及测试用户gaussdb的密码。openGauss安装时默认会创建omm超级用户,该用户名暂时无法修改。测试用户gaussdb是在entrypoint.sh中自定义创建的用户。openGauss镜像配置了本地信任机制,因此在容器内连接数据库无需密码,但是如果要从容器外部(其它主机或者其它容器)连接则必须要输入密码。
    openGauss的密码长度8个字符以上,必须同时包含大写字母、小写字母、数字、以及特殊符号(特殊符号仅包含“#?!@ %^&*-”,并且“! &”需要用转义符“\”进行转义)。

  • GS_NODENAME:指定数据库节点名称,默认为gaussdb。

  • GS_USERNAME:指定数据库连接用户名,默认为gaussdb。

  • GS_PORT:指定数据库端口,默认为5432;

  • -u root:参数用于指定容器启动的时候以root用户执行脚本,否则会遇到没有权限创建数据文件目录的问题

docker run -itd --name opengauss \
--restart=always \
--privileged=true \
-e GS_PASSWORD=OpenGauss@123 \
-v /home/opengauss:/var/lib/opengauss \
-u root \
-p 5432:5432 \
enmotech/opengauss:3.0.0

3 使用OpenGauss数据库

3.1 连接数据库

(1)进入容器

# 进入容器
docker exec -it opengauss /bin/bash

# 切换“omm”用户,默认是“root”用户是不能使用的
su omm

(2)连接数据库

数据库安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。

gsql -d postgres -p 5432

(3)连接成功

omm@9482536f66e7:/$ gsql -d postgres -p 5432
gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:34 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

openGauss=# 

🔸(4)创建新用户

注意:必须创建新用户,用于工具和应用的数据连接,默认的用户“omm”不能用于远程连接。

# 将会在postgres下创建用户ga_mason,在其他数据库下是无法删除此用户
openGauss=# CREATE USER ga_mason WITH Sysadmin IDENTIFIED BY 'OpenGauss@123';

# 给用户授权
openGauss=# GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO ga_mason;
openGauss=# GRANT USAGE,SELECT ON ALL SEQUENCES IN SCHEMA ga_mason TO ga_mason;

# 查看用户列表
openGauss=# \du

# 查看用户ga_mason
openGauss=# \du ga_mason

# 删除用户
openGauss=# drop user ga_mason;

# 切换用户,需要输入密码
openGauss=# \c - ga_mason

3.2 创建数据库

数据库:表空间>数据库>表

(1)查看表空间

openGauss=# \db
      List of tablespaces
    Name    | Owner | Location 
------------+-------+----------
 pg_default | omm   | 
 pg_global  | omm   | 
(2 rows)

(2)查看数据库

# 查看数据库
openGauss=# \l
                         List of databases
   Name    | Owner | Encoding | Collate | Ctype | Access privileges 
-----------+-------+----------+---------+-------+-------------------
 omm       | omm   | UTF8     | C       | C     | 
 postgres  | omm   | UTF8     | C       | C     | 
 template0 | omm   | UTF8     | C       | C     | =c/omm           +
           |       |          |         |       | omm=CTc/omm
 template1 | omm   | UTF8     | C       | C     | =c/omm           +
           |       |          |         |       | omm=CTc/omm
(4 rows)

(3)创建数据库

  • 可以不创建表空间

  • 创建数据库对象时可以指定表空间;

  • 创建数据库对象时不指定表空间,相关的数据库对象会默认保存在PG_DEFAULT空间中。

# 创建新的表空间my_tbs;
openGauss=# CREATE TABLESPACE my_tbs RELATIVE LOCATION 'tablespace/my_tbs';

# 创建my_db数据库,指定表空间my_tbs
openGauss=# CREATE DATABASE my_db WITH TABLESPACE = my_tbs;

不指定表空间

openGauss=# CREATE DATABASE my_db;

删除数据库

openGauss=# DROP DATABASE my_db;

切换数据库

openGauss=# \c my_db

3.3 在数据库中创建表

(1)表的简单介绍

openGauss支持行列混合存储。行、列存储模型各有优劣,一般情况下,如果表的字段比较多(大宽表),查询中涉及到的列不多的情况下,适合列存储。如果表的字段个数比较少,查询大部分字段,那么选择行存储比较好。通常openGauss用于TP场景的数据库,默认使用行存储,仅对执行复杂查询且数据量大的AP场景时,才使用列存储。

行存表和列存表的选择

  1. 更新频繁程度:数据如果频繁更新,选择行存表。
  2. 插入频繁程度:频繁的少量插入,选择行存表。一次插入大批量数据,选择列存表。
  3. 表的列数:表的列数很多,选择列存表。
  4. 查询的列数:如果每次查询时,只涉及了表的少数(<50%总列数)几个列,选择列存表。
  5. 压缩率:列存表比行存表压缩率高。但高压缩率会消耗更多的CPU资源。
储模型优点缺点适用场景
行存数据被保存在一起。INSERT/UPDATE容易。选择(Selection)时即使只涉及某几列,所有数据也都会被读取。点查询(返回记录少,基于索引的简单查询)。增、删、改操作较多的场景。
列存查询时只有涉及到的列会被读取。投影(Projection)很高效。任何列都能作为索引。选择完成时,被选择的列要重新组装。INSERT/UPDATE比较麻烦。统计分析类查询(关联、分组操作较多的场景)。即席查询(查询条件不确定,行存表扫描难以使用索引)。

(2)行存表

先登录到自己创建的“my_db”数据库

gsql -d my_db -p 5432

默认创建表的类型。数据按行进行存储,即一行数据是连续存储。适用于对数据需要经常更新的场景。

# 创建表,注意尽量不要使用user等比较特殊的名称
my_db=# CREATE TABLE tb_user ( u_id CHAR(2), u_name VARCHAR2(40), u_age NUMBER );

# 删除表
my_db=# DROP TABLE tb_user;

(3)列存表

数据按列进行存储,即一列所有数据是连续存储的。单列查询IO小,比行存表占用更少的存储空间。适合数据批量插入、更新较少和以查询为主统计分析类的场景。列存表不适合点查询。

# 创建表
my_db=# CREATE TABLE tb_user_col ( u_id CHAR(2), u_name VARCHAR2(40), u_age NUMBER ) WITH (ORIENTATION = COLUMN);

# 删除表
my_db=# DROP TABLE tb_user_col;

(4)查看表

# 查看表
my_db=# \d
                              List of relations
 Schema |    Name     | Type  | Owner |               Storage                
--------+-------------+-------+-------+--------------------------------------
 public | tb_user     | table | omm   | {orientation=row,compression=no}
 public | tb_user_col | table | omm   | {orientation=column,compression=low}
(2 rows)

# 查看表的字段信息
my_db=# \d+ tb_user

# 查看表的基本信息
my_db=# \dt+ tb_user

(5)插入数据

# 插入数据
my_db=# INSERT INTO tb_user (u_id, u_name, u_age) VALUES (1, '张三', 20), (2, '李四', 30), (3, 'wangwu', 40);
INSERT 0 3

(6)查询数据

my_db=# SELECT * FROM tb_user;
 u_id | u_name | u_age 
------+--------+-------
 1    | 张三   |    20
 2    | 李四   |    30
 3    | wangwu |    40
(3 rows)

4 工具连接OpenGauss

4.1 下载软件包

下载Data Studio安装包,解压

# 需要登录才能下载
https://www.opengauss.org/zh/download/

# 不登录可以使用下面的方式下载(注意下载的版本,低版本可能会出问题)
https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.1.0/DataStudio_win_64.zip

在这里插入图片描述

4.2 连接数据库

(1)创建连接

在这里插入图片描述

(2)配置连接数据

⚠️ 账号和密码参考上面”3.1 连接数据库“中的“创建新用户”,数据库“postgres”是OpenGauss默认的数据库,可以连接自定应数据库;

名称:mygauss-conn
主机名:192.168.108.200
端口号:5432
数据库:postgres
用户名:ga_mason
密码:OpenGauss@123

在这里插入图片描述

(3)连接成功

在这里插入图片描述

4.3 创建数据表

(1)在“普通表”上右键

在这里插入图片描述

(2)设置数据表名

可根据自己需要设置相关的配置信息

在这里插入图片描述

(3)设置字段信息

在这里插入图片描述

(4)其他

下面的步骤可根据自己的需求进行配置,点击“完成”。

在这里插入图片描述

(5)创建成功

在这里插入图片描述

4.4 使用gsql查看创建的数据表

# 切换用户
su omm

# 登录OpenGauss数据库
gsql -d postgres -p 5432

# 查看数据表,发现没有数据
openGauss=# \d
No relations found.

# 切换到ga_mason用户,输入密码“OpenGauss@123”
openGauss=# \c - ga_mason
Password for user ga_mason: 
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "postgres" as user "ga_mason".

# 再次查看数据表,此时数据表已存在
openGauss=> \d
                            List of relations
  Schema  |  Name   | Type  |  Owner   |             Storage              
----------+---------+-------+----------+----------------------------------
 ga_mason | tb_user | table | ga_mason | {orientation=row,compression=no}
(1 row)


# 查看表详细信息
openGauss=> \d tb_user;
          Table "ga_mason.tb_user"
 Column |         Type          | Modifiers 
--------+-----------------------+-----------
 u_id   | integer               | 
 u_name | character varying(20) | 
 u_age  | integer        
### openGauss 数据库入门教程 #### 安装配置 对于希望快速部署 openGauss 单机数据库实例的情况,可以利用 `yum` 工具来完成安装过程。具体来说,在基于 RedHat 或 CentOS 的操作系统上,通过执行命令 `yum install opengauss -y` 可以实现一键式安装[^1]。 #### 连接数据库 为了方便开发者与运维人员的操作需求,openGauss 提供了一个名为 gsql 的命令行客户端工具用于连接并操作数据库。该工具不仅支持基本的数据查询和修改指令,而且集成了多种实用的功能选项,极大地提高了用户的体验度[^2]。 ```bash gsql -d postgres -p 5432 -h localhost ``` 上述代码展示了如何使用 gsql 来建立到本地运行的 openGauss 实例的连接,其中 `-d` 参数指定了目标数据库名称,而 `-p` 和 `-h` 则分别代表服务端口以及服务器地址。 #### 日志管理 关于日志文件的位置,默认情况下会在 `$GAUSSLOG/安装用户名` 下创建相应的子目录用来保存运行期间产生的各类记录信息;当然也允许管理员自定义这一路径,只需确保所选位置有足够的磁盘容量,并且与其他重要组件保持逻辑隔离状态即可[^4]。 #### 示例应用开发准备 一旦完成了以上提到的各项设置工作之后,便可以直接着手于应用程序的设计与编码环节了。由于整个环境已经处于就绪状态,因此无需额外关注底层架构层面的内容,能够更加专注于业务逻辑本身[^3]。 ```python import psycopg2 conn = psycopg2.connect( dbname="postgres", user="your_username", password="your_password", host="localhost", port=5432 ) cur = conn.cursor() cur.execute("SELECT version();") print(cur.fetchone()) conn.close() ``` 这段 Python 脚本提供了一种简单的方式去验证当前环境中是否存在可用的 PostgreSQL 兼容型数据库——即刚刚搭建成功的 openGauss 系统。它尝试建立了新的会话通道并与之交互获取版本号作为测试依据之一。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值