56

开源数据库 | 记一次基于鲲鹏欧拉操作系统opengauss实践过程 -利来国际app

9373

引入 | 鲲鹏认证-openeuler欧拉操作系统-opengauss数据库


开篇:写在前面的话,每一篇摘文都以实际案例场景出发,周末抽空余时间记录每一次mark历程,在不一样的业务实际场景下,针对项目阶段所产生的变化,制定不一样的技术方案。不论多么渺小的技术方案,放在其对应的场景下都有着不一样的意义。实践是检验真理的唯一标准,当真正实操过后参与讨论,或许会让你有一点新发现,希望对读者在思考上有点不一样的idea,欢迎join谁与说,热衷拥抱新知识,旨在技术交流 心得分享->每天译点晓知识。


资讯:继鸿蒙之后,基于openeuler操作系统正式推出,鲲鹏计算生态迅速发展起来,鲲鹏920系列服务器cpu,鲲鹏920处理器兼容arm架构,在性能、吞吐方面都有创新突破,支持国产-计算推向新高度,不仅cpu,操作系统配套欧拉openeuler,麒麟kylin,鸿蒙就在我们身边。


下文,小编主要以鲲鹏认证->数据库opengauss为例->常见问答q-a的方式阐述:


首先,获取鲲鹏相关环境信息,


继续查阅,faq操作手册


注:鲲鹏操作系统及安装,远程终端连接可参考上述faq手册,本文不重点阐述。)

接着,通过类似终端xshellxftp工具连接鲲鹏云主机


创建软件包文件夹并授权,

mkdir -p /home/softchmod 755 -r /home/soft

创建当前部署路径并授权,

mkdir /home/opengausschmod 777 /home/opengauss


查询当前操作系统信息,

cat /etc/os-release


查询当前硬件环境-鲲鹏架构服务器,

lscpu


进入软件安装包文件路径,下载opengauss安装包,

cd /home/softwget https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.0.0/arm/opengauss-1.0.0-openeuler-64bit.tar.gz


进入当前部署路径,解压opengauss安装包,

cd /home/opengausstar -zxvf opengauss-1.0.0-openeuler-64bit.tar.gz


输入命令,yum install辅助安装包,

yum install -y bzip2 libaio-devel flex bison ncurses-devel glibc-devel patch


注:初始化opengauss安装环境 python环境前,可提前查阅,更多请参考,其中performance.sh脚本修改 ld_library_path环境变量配置也可参考


export ld_library_path=/home/opengauss/script/gspylib/clib:$ld_library_pathhttps://opengauss.org/en/docs/1.0.0/docs/installation/initializing-the-installation-environment.html#initializing-the-installation-environmenta-nameen-us_topic_0249784559a

系统默认python版本,


其中,python版本匹配,可自行根据当前环境参考修改,

vi gspylib/common/checkpythonversion.pyif not pythonversion == (3, 6)更新为if not pythonversion >= (3, 6)


在script文件夹下创建clusterconfig.xml文件,

vi script/clusterconfig.xml


    
    
        
        
        
        
        
        
        
        
        
        
    
    
        
        
             
            
             
            
             
            
            
            
             
            
            
             
             
             
             
             
             
             
             
             
        
    

接下来,初始化安装环境,

./gs_preinstall -u omm -g dbgrp -x /home/opengauss/script/clusterconfig.xml



// 驱动-连接地址-账号-密码等信息string driverclassname = "org.postgresql.driver";string url = "jdbc:postgresql://ip:8000/postgres";string username = "yxd179";string password = "yxd179";// 加载驱动class.forname(driverclassname);// 获取数据库连接对象connection con = (connection) drivermanager.getconnection(url,username,password);// 获取数据库操作对象preparesstatement ps = con.preparesstatement("select count(*) from test;");// 执行sqlresultset rs= ps.executequery();// 这里还可以获取到数据库产品名称databasemetadata metadata = (databasemetadata) con.getmetadata();// 这里为国产数据库-适配,在xml指定国产数据库的databaseid奠定基础system.out.println("数据库产品名称:"   metadata.getdatabaseproductname());最后需关闭连接close,释放资源->rs-ps-con. 
tk.mybatis:mybatis定制的第一大业务增强库,或mybatis-plus,可根据实际业务场景择优选取控件。
pagehelper:分页控件,mybatis定制的第二大业务增强库。

基于mybatis插件的思想,根据当前数据库databaseid,拦截sql,加入各自数据库的sql方言函数兼容,无需多套数据库xml中sql写法,支持插拔式-需要时开启。


其中,分页的sql拼装原理,

protected boundsql getpageboundsql(object parameterobject) {
    string tempsql = sql;
    string orderby = pagehelper.getorderby();
    if (orderby != null) {
        tempsql = orderbyparser.convertoorderbysql(sql, orderby);
    }
    tempsql = localparser.get().getpagesql(tempsql);
    return new boundsql(configuration, tempsql, localparser.get().getpageparametermapping(configuration, original.getboundsql(parameterobject)), parameterobject);
}

注:欢迎童鞋私信留言^_^,由于时间等原因,阐述不一定俱全,对于国产化这块,搜索可用资源较少,希望对各位读者,在适配鲲鹏-麒麟,欧拉操作系统以及国产化数据库过程中能够有所帮助,将不断完善技术手册-共享,涵盖java微服务 kafka reids elastic中间件安装faq手册.)


其中,多数据库连接工具,可选tool->dbeaver,


文末:

在国产数据库适配过程中,引出-思考:

当需要作多数据库兼容适配的时候,若提前预估需要改动代码的一个数量级,这时若需要对数据库层中各个sql方言编写测试用例,作成功或失败率评估,那么如何拥有一个java版本,单元测试用例-代码自动生成器,根据类名配置,即可知晓当前类中所有sql方言的成功或失败率^_^,

回顾更多精彩请点击^_^,


「 往期文章 」


数仓进阶 | 记一次olap分析引擎演进思考过程







最后修改时间:2021-12-28 11:56:56
「喜欢文章,快来给作者赞赏墨值吧」
2人已赞赏
【利来手机国际的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:[email protected]进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论