暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

「YashanDB个人版体验」崖山数据库系统本地部署与实训

原创 土豆 2023-11-27
557

一:YashanDB简介

image.png

2023年11月8日,由深圳计算科学研究院(简称:深算院)自主研发的国产数据库YashanDB年度产品发布会正式召开,崖山数据库管理系统(YashanDB)是深算院在数据库前沿基础理论上融入新的原创理论,自主设计,自主研发的一款新型数据库管理系统,是国内率先实现自主可控技术突破的数据库系统之一。YashanDB既可以实现单机部署,还能实现分布式或共享集群式部署,满足各种场景需求。此外,YashanDB还具有透明多写、金融级高可用、高性能三大关键能力,拥有行式存储/列式存储、事务管理、原生HTAP内核、高性能查询、全自研优化器等核心特性。

二:YashanDB安装

1.服务器准备

笔者是个人开发者,所以安装使用单机部署即可,由于我们日常使用的都是Windows操作系统比较多,而YashanDB是不支持在Windows系统上进行安装的,我们可以在自己电脑安装一台虚拟机作为服务器使用,推荐的操作系统是Centos 7.6及以上,至于虚拟机怎么安装在网上都能找到相关教程。

需要注意的是,YashanDB的安装要求操作系统的内存最低为4G,硬盘最低为50G,所以在安装虚拟机时候要注意内存和硬盘的分配,当然你也可以在安装好后进行调整。此外,在安装Centos之后要将网络连接选择为NAT模式(共享主机的IP地址),不然访问不了外网,并且不能使用DHCP配置,不然每次启动IP地址都会发生改变,后面使用FinalShell时候也会很麻烦,我的系统配置信息见下图。

image.png

关于工具的选择,笔者推荐下载一个SSH工具进行操作,无论是安装数据库还是操作数据库都会更方便,可以选择SSH Secure Shell Client、Xshell、FinalShell等,我使用的是FinalShell,因为FinalShell是免费的,而且安装很简单,操作界面很简洁,关于具体的安装连接过程可以自行百度一下,成功连接虚拟机后显示下图信息:

image20231126122400356.png

2.参数调整

关于数据库安装这一块YashanDB官网有很详细的教程,这里就不再赘述了,可以点击这里跳转官网查看教程。关于官网提到的操作系统参数调整(最低要求见下表),为了方便大家查看需要注意的参数信息,可以直接对照下图红色框部分查看。

资源项 描述 最小要求
open files 文件句柄 65536
max user processes 最大用户线程数 65536
max memory size 最大内存限制 unlimited
stack size 堆栈大小 8192
[root@localhost tbug]# ulimit -a

image.png

可以看到系统的默认配置已经能够满足最低要求。

3.安装包下载

①创建文件夹

关于安装包的下载,大家可点击这里跳转官网下载对应的安装包。笔者是直接下载到了Windows系统,但是需要将安装包拷贝到虚拟机上才能进行安装,执行如下命令切换用户并创建文件夹。

[root@localhost tbug]# su yashan
[yashan@localhost tbug]$ cd
[yashan@localhost ~]$ mkdir install
[yashan@localhost ~]$ cd install
[yashan@localhost install]$ pwd
/home/yashan/install

②上传文件

FinalShell具有文件下载上传功能,点击“底栏”按钮展开底栏,然后选择默认用户(选择yashan用户会提示Permission denied)的一个文件夹(我选择的是Downloads文件夹)进行文件上传,具体操作见下图:

image.png

③移动文件

上传成功后切换到root移动文件,否则会提示权限不够,执行如下命令:

[tbug@localhost root]$ su root
密码:
[root@localhost ~]# cd /home/tbug/Downloads
[root@localhost Downloads]# ls
yashandb-personal-23.1.1.100-linux-x86_64.tar.gz
[root@localhost Downloads]# mv yashandb-personal-23.1.1.100-linux-x86_64.tar.gz /home/yashan/install
[root@localhost Downloads]# su yashan
[yashan@localhost Downloads]$ cd /home/yashan/install
[yashan@localhost install]$ ls
yashandb-personal-23.1.1.100-linux-x86_64.tar.gz

至此安装包已经上传完成,接下来根据官网教程进行解压安装即可。

三:YashanDB数据库实战

1.启动数据库

执行如下命令启动数据库

yasboot cluster start -c yashandb

如果启动过程中出现connection refused的错误提示(见下图),根据墨天轮问答区一位大佬的解答,如果使用yasboot来管理YashanDB需要依赖yasom和yasagent两个进程,我们需要将这两个进程开启,执行如下命令:

yasboot process yasom start -c yashandb
yasboot process yasagent start -c yashandb

image.png

2.连接数据库

执行如下命令连接数据库

yasql sys/password

根据官网,笔者将password转换成sys的用户密码后出现了如下错误提示

image.png

笔者尝试将password不换成用户密码,则提示无效用户名和密码,此时会让你输入用户名,输入用户名后再输入密码(不显示)即可连接成功。

image.png
经过尝试,原来是我的密码里面带了个"!"号,此时加入一个单引号,即输入:

yasql 'sys/你的密码'

连接成功
image.png

3.数据表的创建

①创建如下Student表

image.png

CREATE TABLE STUDENT ( Sno VARCHAR2(17)PRIMARY KEY , Sname VARCHAR2(10) NOT NULL , Sage INT , Ssex VARCHAR2(3) , Sdept VARCHAR2(20) );

image.png

可以看到student表已创建成功。

②查看表

执行如下命令查看当前用户中已存在的表

SQL> SELECT TABLE_NAME,TABLE_TYPE FROM USER_TABLES;

image.png

可以看到刚创建的Student表已存在,由于我使用的用户是系统默认的用户,所以除了自己创建的表之外还有很多系统所需要的表,为了后续更好操作,可以自己另外创建一个用户用于练习和开发。

4.插入数据

①向表中插入三条数据

INSERT INTO STUDENT(Sno, Sname, Sage, Ssex, Sdept) VALUES ('1906145218', '张三', '19', '男', '网络安全'); INSERT INTO STUDENT(Sno, Sname, Sage, Ssex, Sdept) VALUES ('1904154568', '李四', '20', '女', '网络工程'); INSERT INTO STUDENT(Sno, Sname, Sage, Ssex, Sdept) VALUES ('1910245451', '王五', '21', '男', '软件工程');

image.png

如果性别字段长度设置为2,那么插入时候会出现下面的错误,可以看到字段超出了长度,如果是按照GBK编码,那么一个汉字的长度就是2个字节,但是如果是UTF-8,那么一个汉字则占3个字节,在YashanDB中,编码格式为UTF-8,因此性别字段最少需要3个字节。

image.png

5.查询数据

①查询所有

SQL> SELECT * FROM STUDENT;

image.png

②条件查询

查询名为“张三”的所有字段

SQL> SELECT * FROM STUDENT WHERE SNAME='张三';

image.png

③模糊查询

  • LIKE运算符

    在SQL中可以使用“”和“%”通配符实现LIKE运算,通配符是一种在 WHERE 子句中拥有特殊意义的字符,“%”通配符可以匹配 0 到多个任意字符,“”通配符的功能与“%”类似,其仅匹配任意一个字符。如需匹配两个字符,则使用“_ _”。

    查询专业名称以“网”开头的数据:

    SELECT * FROM STUDENT WHERE SDEPT LIKE '网%';

    image.png

  • IN运算符

    IN 运算符也称为“成员条件运算符”,用于判断一个值是否在一个指定的数据集合之内。

    查询专业为网络工程、软件工程的学生

    SELECT * FROM STUDENT WHERE SDEPT IN('网络工程','软件工程');

    image.png

  • BETWEEN…AND运算符

    在 WHERE 子句中,可以采用 between…and 运算符选取介于两个值之间的数据,这些值可以是数字和日期类型(取值范围包括边界值)。
    查询年龄在20至22岁之间的学生:

    SELECT * FROM STUDENT WHERE SAGE BETWEEN 20 AND 22

    image.png

6.修改数据

在SQL中,要修改某一字段的值可以使用UPDATE语句加上条件来进行修改。

修改王五的年龄为25

UPDATE STUDENT SET SAGE=25 WHERE SNAME='王五'; SELECT * FROM STUDENT;

image.png

7.删除数据

在SQL中,要删除某一记录可以使用DELETE语句加上条件来进行修改。

删除王五的信息

DELETE FROM STUDENT WHERE SNAME='王五'; SELECT * FROM STUDENT;

image.png

四:使用感想

image.png

笔者之前一直在使用OpenGauss数据库,无意间在墨天轮社区看到了YashanDB的产品体验活动,于是下载部署YashanDB并体验了几天,不得不说YashanDB的使用效果还是不错的,学过SQL的不需要再学习什么就能轻松上手,而且性能方面也很强大,自研的数据库管理系统能做到这样真的很令人佩服,不得不说国产数据库已经崛起了。不过笔者希望能将国产数据库带进大学里面,鼓励学生参与进来,持续发挥创新能力,提高国产数据库的知名度和使用率,这样也能更好推动国产数据库的发展。

无论从性能还是操作上来说YashanDB都能称得上一款优秀的数据库管理系统,不过由于是新生数据库,网上相关资料还不是很多,遇到问题只能在官方文档和社区查,有些问题还不一定能查得到,希望官方能多进行推广,让更多的开发者了解体验并参与改进。除此之外,YashanDB在安装便利性、生态完整性、使用简易性等方面还有很大的进步空间,相信在经过不断迭代升级之后在不久的将来能够媲美Oracle、MySQL等主流数据库,同时也希望YashanDB能够做的越来越好。

最后修改时间:2023-11-30 08:42:39
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论