3月31日,openGauss 2.0.0 版本正式上线!openGauss 2.0.0 是openGauss社区发布的第一个Release版本。2.0.0版本与之前版本保持兼容的同时,也新增了众多特性,特别是在高性能、高安全和智能化的打造上有了更大的突破。
openGauss | 2P | 4P | 线性度 |
---|---|---|---|
架构优化后 | 150 | 230 | 150% |
4P鲲鹏性能达到230万tpmC(每分钟处理交易量,被业界广泛用于衡量计算机系统的事务处理能力),满足1.5倍线性度,单机TP性能保持业界领先,同时也证明了openGauss足以支撑金融行业新核心业务系统场景。
openGauss根据鲲鹏处理器的多核NUMA架构特点,进行了一系列针对NUMA架构特性的相关优化。一方面降低了跨核内存访问的时延问题,另一方面充分发挥了鲲鹏多核算力优势,通过日志无锁并行插入、SQL
ByPass、动态剪枝等关键技术,大幅提升交易型负载系统的处理性能。
openGauss基于鲲鹏920所使用的架构利用LSE扩展指令集实现高效的原子操作,有效提升CPU利用率,从而提升线程间同步性能、XLog写入性能等。
openGauss基于鲲鹏920提供的L3缓存CacheLine,实现热点数据访问优化,有效提高缓存访问命中率,降低Cache缓存一致性维护开销,大幅提升系统整体的数据访问性能。
openGauss 1.0.1定位为Update版本,与原来的1.0.0版本特性功能保持兼容,新增特性如下:
XML类型
XML数据类型可以用于存储XML数据。将XML数据存到text类型中的优势在于它能够为结构良好性来检查输入值,并且还支持函数对其进行类型安全性检查。要使用这个数据类型,编译时必须使用configure --with-libxml。
伪列ROWNUM
ROWNUM为查询出来的每一行记录生成一个序号,从1开始依次递增且不会重复。
聚合函数median
median返回给定数值的中值,中值是在一组数值中居于中间的数值,如果参数集合中包含偶数个数字,函数median将返回位于中间的两个数的平均值。
全局临时表
每个数据库只需要创建一次临时表,全局临时表对象放在数据字典中。临时表(Temporary table)用于保存事务或会话期间的中间结果集,临时表中保存的数据只对当前会话可见,所有会话都看不到其他会话的数据;即使当前会话已经提交了(commit)数据,别的会话也看不到它的数据。临时表可以是会话的,临时表中的数据可以跨提交存在,即提交之后仍然存在,但是断开连接后再连接时数据就没有了。也可以是基于事务的,提交之后数据就消失。
外部表
数据不存在于数据库中的表。通过向DB提供描述外部表的元数据,可以把一个操作系统文件或者外部数据源当成数据库表,就像这些数据存储在一个普通数据库表中一样来进行访问。外部表是对数据库表的延伸。FDW(Foreign Data Wrappers)插件允许在openGauss里访问其他异构数据库的表,openGauss支持Foreign Data Wrappers for oracle(oracle_fdw),Foreign Data Wrappers for MySQL(mysql_fdw)和Foreign Data Wrappers for PostgreSQL(Postgres_fdw),从而支持在openGauss中访问异构其他数据库。使用这些插件需要安装相应数据库的客户端包,需要重新编译openGauss,在configure时配置enable_mysql_fdw和enable_oracle_fdw. 数据库启动后使用create extension创建扩展组件,create server配置异构数据库连接参数,create user mapping创建异构用户映射关系,CREATE FOREIGN TABLE创建指定数据库的外表。
物化视图
物化视图是数据库查询结果数据的本地副本,存储基于数据表的数据,也可以称为快照。在关系型数据库中普通的视图是一种虚拟(virtual)表,只是存储SQL语句。而物化视图是将视图的查询结果缓存(cached)到了具体(concrete/materialized)表中,存储实际的数据。物化视图主要用于预先计算并保存表连接或聚合等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,从而快速的得到结果。物化视图使用查询重写(query rewrite)机制,不需要修改原有的查询语句,引擎自动选择合适的物化视图进行查询重写,完全对应用透明。
外键
外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表,外键建立了主表和从表之间的参照完整性约束。
UPSERT(insert on conflict do)
当插入遇到约束错误时,直接返回或者改为执行UPDATE.
存储过程内commit,单独调试和调用无参数存储过程可以省去括号
在存储过程中可以调用commit, 分批提交数据,保证数据的可靠性。支持设置断点和单步调试,存储过程调试是一种调试手段,可以在存储过程开发中,一步一步跟踪存储过程执行的流程,根据变量的值,找到错误的原因或者程序的bug,提高问题定位效率。
自治事务
自治事务(autonomous transaction)允许你创建一个"事务中的事务",它能独立于其父事务提交或回滚。利用自治事务,可以开始一个新事务,完成一些工作,然后提交或回滚,所有这些都不影响当前所执行事务的状态。自治事务约束参照规格约束的自治事务部分说明。
关键字别名
关键字如name、value、type作为查询结果列别名。
逻辑复制
在逻辑复制中把主库称为源端库,备库称为目标端数据库,源端数据库根据预先指定好的逻辑解析规则对WAL文件进行解析,把DML操作解析成一定的逻辑变化信息(标准SQL语句),源端数据库把标准SQL语句发给目标端数据库,目标端数据库收到后进行应用,从而实现数据同步。逻辑复制只有DML操作。逻辑复制可以实现跨版本复制,异构数据库复制,双写数据库复制,表级别复制。
增量备份/恢复(beta)
支持对数据库进行全量备份和增量备份,支持对备份数据进行管理,查看备份状态。支持增量备份的合并,过期备份的删除。数据库服务器动态跟踪页面更改,每当一个关系页被更新时,这个页就会被标记为需要备份。增量备份功能需要打开GUC参数 enable_cbm_tracking, 以便允许服务器跟踪修改页。
恢复到指定时间点(PITR)
时间点恢复(Point In Time Recovery)基本原理是通过基础热备 + WAL预写日志 + WAL归档日志进行备份恢复。重放WAL记录的时候可以在任意点停止重放,这样就有一个在任意时间的数据库一致的快照。即可以把数据库恢复到自开始备份以来的任意时刻的状态。在恢复时可以指定恢复的停止点位置为TID,时间和LSN。
备机replay模式
主备双机同步支持remote_apply模式,在remote_apply模式下,主机需要等待备机日志redo恢复完才返回给应用。
全局分区索引(Global Partitioned Indexes)
全局索引就是在全表上创建索引,它是独立的索引。如果查询引用非分区字段时可以提升性能。
基于范围分区的自动扩展分区
INTERVAL分区是针对Range类型分区的一种功能拓展。对连续数据类型的Range分区,如果插入的新数据值与当前分区均不匹配,Interval-Partition特性可以实现自动的分区创建。分区字段必须是整型或时间类型。
并行查询(beta)
支持并行扫描算子,优化 SQL 语句的执行方式,从单一线程,最多使用单个 CPU 运算的模式,提升到多线程,协同完成工作的模式。并行查询消耗更多的硬件资源,但大大提高了任务的执行效率。当前支持顺序扫描,nestloop算子的并行查询。
OS平台
支持openEuler 20.3 LTS on X86-64和麒麟V10 on ARM;支持在openEuler和CentOS的容器上运行。
◾ 支持Alter System set语法修改数据库实例级参数
在会话内通过alter system set语句可以修改系统参数的值。根据不同参数的要求,在重新连接或者重启数据库后,可以修改成功并将参数写入postgresql.conf和postgresql.conf.bak配置文件中。
北京超图软件股份有限公司、北京优炫软件股份有限公司、北京快立方科技有限公司等公司已经签署CLA,正式加入openGauss社区,越来越多的力量加入到社区建设中来。
截止目前openGauss已经成立包括OM、In-place Update、IoT、AI等11个专项兴趣小组(简称SIG),包括海量数据、云和恩墨、工商银行、清华大学等多个组织的成员发起或参与到社区的各个SIG小组,带领小组成员拓展技术方向,贡献新特性,实现下一个版本的技术规划。同时社区技术委员也开始运作,openGauss社区开放治理成架构日趋完善。
经过半年多的发展和沉淀,openGauss无论从技术演进、社区生态建立、商业落地均已进入快速成长期,未来openGauss将围绕客户场景和需求持续构建更多竞争力,打造企业级数据库开源社区。
(以下名单为社区开发者Gitee账号,排名不分先后)
wanfang5, chendong76, liumin35, sqyyeah, zhanghuan96, yangweiqiang, zhang_xubo, zhangjianjun_code, daiguatutu, jia_junfeng1, scarbor_fair, lvmiao1229, tiantianxiangshang2020_admin, wanggzzs, zzzzzdb, lee1002, opengauss-bot, solinin, zhangzhijingMY, haomeng802, gaojia629, gitwangxx, zhanglu626, aiyotian, struggle_hw, wuyuechuan, hongyehongye1, vastbase_yzhang, xiangxinyong, yunlongg, blue_dwwc, cyw-0-ng, yansong_lee, zhouxiongjia, Alacebat_admin, guoweibiao, qumin201452, wenbling, zhang-tingting27, llzx373, zha_hw, anikikong, chenguojie, gongsiyi150, justbk, liushengxi, liyang0608, pan-jun, totaj, willemjiang, wind-rain-gs, zhangxiaohai928, chenxiaobin19, cui-zhenyu, gentle_hu, liang_-123, sun_xu_zong, wan005, wang-tq, y1309639, baiyejuan, emmajiang, houjhibofa, husthxd, kivaking, li-jun056, lijiangbei, lvhui123456, otis4631, xixicat, yangyang374, zhanglf-zkfr, diagon-alley, hillseas, jerome-duomi, jin_li, li_jianqiu, liao-shiting, lys6676, nifinity, qinzhiyan, ricardo_cui, sundan0108, vastdata_admin, wangpy_1092, xiezhipeng1, yidianjiujin, yinzhishu, you-and-me, ywzq1161327784, alienmoe, bang1232, bzhaoop, dolphin-m, du-yuying, eloce, enbokang, gauss__gaoshi, giteegauss, grozazz, gwx5327679, haowen17, hemny, hthinks, huzhengce, jane_minjun, jia-weili, johnnyzhou, kexulin, kixiong, like11, luo_zihao5524, ningyali, nwen_hw, pikeTWG, qian-dan, realzhouqingqing, reganhe_xx, siven_dev, unicorn_penq, vinothv, weim-123, willloong, wustczx, xh19, xianhongye, xiong_xjun, xue_meng_en, yang558, ylfan96, yutang1, zbxue, Adoube_548, RayH2020, april01xxx, barbedcc, bertliu, big_pig_123, bosihouzi, bowen9799, catofpei, chen_chenn, chennaidong, chenzang, chunlei007, cylfsbm, dikk123, eumenide5, flytigerman, fss567, gwchengcheng, huanglongjun1, husan1024, iambowen1984, initlove, jcc123, jeffee, jie_lei, jimmyhujiming, jinyu_opengauss, jitao10, kamusis, karna, krircc, lazpf, liangweii, lilexun, linxiaoxu131415, liuwei37218, lizhenfeng123, lj-it, lmte3e4, lorand, luyao201, ma_xiaodi, matrix0xcc, nanmu2018, nonolili527, open__gs__2020, ouruiting, panchenbo, puti_a, qq45068, romber, s36326, seulingfeng, shi-dongrong, stanleyren, su-zixin, sun_madman, tbing8803, templingfeng, tomas__junny, tonyhehe, toyato, trollzhao, wang_deng_yang, wangrui_rui, wei-haixu, weihan666, wjmcat, wjzeng, wn952000, wotchin, wu-yaxin, wuyi1405, xinmiaomiao, xmgps, xzyinyong, yang-zhen-a, yangkang52, yikunkero, ympc, yuwenboj, yuzhenglin, yz_db, zfy1110, zhaorenhai, zhongjun2, zhouzhishan, zilf, zju_hzd, zmm0810, zp123456, zumingjiang, zzcyd, 282656323, Cairo-SR8, Datrilla, Hsiung_xcw, I-1688, I-am-a-robot, IreneByron, JuhuaCan, MartinChoo, MrVulcan, OAGroup, QiuyeLin, ShawDa, VickyGroup, Xiao__Ma, YangHao666666, a-i-c, aaronwell, abelit, acidxyz, alan10, alexchar, andrewj, angelyoyou, anormalcell, aocool, aranadall, ariesdevil, aristophanes, ashnah0, awesomeleo, banpo_code_guest, bigDataEngine, bihua111, bluegenius, boleynsu, boz01, buter, castleBo, cevinc, cgo6, changxidb, chaocat, charleyw, chenchen746, chengfa110, chenhao7253886, chenlinfeng3, chenxiaobin6o9, chinapenglin, chla, chosending, chshfei, click2cloud_beta, click2cloud_ninja, coca, code_wolf, codewithselena, creationos, cting66, cyj10727, cyqw, dabudaqiu, danqu722, database_structure, ddwolf, deadsec, dengxuyue, dercury, ding_jie_001, docker_ming, drdstech, dreamr126, duoketang, duomibabi, duyanrong, echo3301, edollar, enmotech, eric-yuanhui, ericwangpeng, ericyuanhui, fenghui111, flyly, frankdemo, fuhm_star, fyw, gaiguoqiang12, gaoyunlong12, garyhuc, gauppo, gauss2, georgecao, ginin, git-dancer, glowd, guldan1982, guoliang_li, guoxinying123, gwp2464, gyt0221, handan_new_port_network_867494626, hangjin2020, hanxinke, he_ray, hellozuochao, hezhixiang1, hiha2120290476, hitmr_12, hljhnu, hly_rick_sanchez, hongfeiq, honglubaba, houlei0055, huangchengcheng1, huangning2, huangyinfu, huangzijian888, huawei_8, huaweigauss, hust_lilin, huxiangyu, igingo, iloveuever, infomation1, ironlee123, isoftstar, isupermap, isxiaoze, jackchenchenchen, jarekzhang, jianfenglee, jiang_jianyu, jiangxiangbo, jiaruozhi, jiawen1987, jiazongxiu, jidedong, jixi_hexi, jjjtheripper, joe2hpimn, junhangis, kcana, kidd__cn, king-gao, lance5401, lansehanbing, leerway, lesliexx, less_sleep, lhfree, li_songfeng, liheng188, lihongda12, linianA, lionxu_admin_admin, lisa100, lishifu_db, lishuaituan, littleFuBaby, liu_hui0228, liu_hui199828, liu_yang_ywxkhhh, liujunchigo, liuxu34, liuyu85cn, lixianlin01, liyifeng-seu, lllllllly, looplocked, lpbeijing, lqd-holy, lqkitten, luciferfgy, luo0303, luohongbins, maceatmore, majianboopengauss, meimeidtt, minshengyunwei, mobnet, moonjer, morinson, mujinqiiang, mxl_123456, mywind_code, nkuacac, nu_58212367, null_254_0217, opengauss_yanghaiyan, opengaussorg, opgauss, oscqascan, pei-jisheng, pengweijunPanda, pfzheng, pig_man3393, pizero, pku__lisihao, plusvolcano, popastin, powerqy, pure_qsh, qin-wei, qindongqd, qqleee, real_zychen, redflag, refactor_liu, reliance, romberli, shaga, shashwati-mishra, shenyuflying, shenzhen_panda_1515019109, shiddan, shinestarstar, shirley12qiu, shirley_zhengx, shiyaXA, sl0915, sneha-bhiwankar, song-zhenyu0612, song_haidong, souffle, ssnoda, ststshuitao, suniumo, suoren, susircode, sword-fairy-water-easy, sword_fairy_water_easy, szshfy, tangyibo, tedlz123, testHpro, th__under, the_real_fengfuming, thexiong7, thundercw, tianbing8803, toolscreator, travelliu, tuohai666, turquesalan, tuzouzhi999, viashaw, victor-zhc, victoryGroup, vincent1988, voyllente, wang-zhenzhen27, wang-zili, wang_pei_heng, wangdengke6, wangxinlian, wangzhijun2018, wcting163, wei_chao_xu, weidongkl, winginsky, winsty, wumizhang, wuxue77, wuzisanshengshi, wx_422c5b54d5, xiaomayifg, xiaotao-huang, xiepy, xiliu_h, xinhe65045, xiongdaofu, xq_gitee, xu_hong_liang, xue-weijing, xukunpeng, xulijie09, xushiyao, xzx666, yangdi07, yanghaos, yangshaoxing1001, yangyingchao, yaoyaoo2011, yeah_lang, yin-jue-song, yipianyouzi, yl_lisen, yonglehou, yongzhuli, youtubezou, ysenmiao, yuejiashen, yujiangaaa, yukai_k, yunmeng, yuzhang_li, yxotis, yyt030, yzk630, z0wang, zag2020, zankyfun4, zengchen1024, zerodefect, zha__hw123, zhang_jiecr7, zhang_yangeng, zhangfengzhi123, zhangshujie82, zhangtong1204, zhangxinyao1986, zhangy13, zhangyulong34, zhao_fangyang, zhaodu, zhaowx_admin, zheng_zelin, zhengchengguang, zhengtongyan, zhengyang168, zhengyuhanghans, zhouqinsupermap, zhouqinsupermap_admin, zhouzhiwei1992, zhu_jinwei, zhuzhijiao, zooah, zou_jinda, zsfxy, zwgiles