opengauss-import-data
本文最后更新于 2024年10月12日 晚上
openGauss 导入数据
本文简单介绍一下如何利用 gsql 将数据批量导入 openGauss。
1 环境
- 操作系统:CentOS 7.6 64bit
- 数据库管理软件(含版本号):openGauss 5.0.3 (LTS) 轻量版
- 其他工具:Mobaxterm Personal Edition v24.0 Build 5204、DataGrip v2024.1.3
2 流程
2.1 创建表
首先登录 openGauss 并 创建数据库 experiment 用于后续表的设计。
然后进入 experiment 数据库并 创建学生表 student。设置学号 sno char(8)
、姓名 sname char(10)
、性别 ssex char(2)
、年龄 sage integer(3)
四个属性。
最后以防万一,检查一下当前数据库 experiment 下所有的表以及对应的表结构。使用 \dt
命令查看当前数据库下的所有表,使用 \d <table_name>
命令查看当前数据库下指定的表结构。
2.2 构造数据
接下来进行数据的构造和导入工作。在开始构造数据之前,有必要了解一下对应的 数据格式规范。可以看到是支持 .csv
文件的,并且默认将第一行识别为数据而不是表头。因此我设计出了这样的 prompt:
“请帮我生成一个数据库的学生表的数据。格式为 csv,用逗号分隔符分隔。属性共有 4 个,分别为学号 sno char(8)、姓名 sname char(10)、性别 ssex char(2)、年龄 sage integer(3)。请不要加上表头信息,首行直接从数据开始。生成共 20 条学生信息数据。请将结果直接打印出来。”
最终给出的结果如下:
我们将上述数据复制到 /home/dbuser/stu_data.csv
文件中等待后续的导入工作。
2.3 导入数据并测试
我们执行如下 gsql 元命令将数据从本地文件 std_data.csv
导入到学生表中。
1 |
|
出现报错说性别一栏的长度不够。修改字段 ssex
属性为 char(3)
则可以成功导入。
题外话
- 如果要在 gsql 命令行环境中 启动上下文记忆模式,可以在登录时添加
-r
参数。 - 中文字符的字节数默认为 3,因此上述导入数据时第一次会失败,因为设置为了 2。