openGauss 2.0.0 版本正式釋出

Gauss松鼠會發表於2021-04-12

3月31日,openGauss 2.0.0 版本正式上線!openGauss 2.0.0 是openGauss社群釋出的第一個Release版本。2.0.0版本與之前版本保持相容的同時,也新增了眾多特性,特別是在高效能、高安全和智慧化的打造上有了更大的突破。

1 鯤鵬NUMA架構最佳化,實現效能業界領先

4P鯤鵬效能達到230萬tpmC(每分鐘處理交易量,被業界廣泛用於衡量計算機系統的事務處理能力),滿足1.5倍線性度,單機TP效能保持業界領先,同時也證明了openGauss足以支撐金融行業新核心業務系統場景。

openGauss根據鯤鵬處理器的多核NUMA架構特點,進行了一系列針對NUMA架構特性的相關最佳化。一方面降低了跨核記憶體訪問的時延問題,另一方面充分發揮了鯤鵬多核算力優勢,透過日誌無鎖並行插入、SQL

ByPass、動態剪枝等關鍵技術,大幅提升交易型負載系統的處理效能。

openGauss基於鯤鵬920所使用的架構利用LSE擴充套件指令集實現高效的原子操作,有效提升CPU利用率,從而提升執行緒間同步效能、XLog寫入效能等。

openGauss基於鯤鵬920提供的L3快取CacheLine,實現熱點資料訪問最佳化,有效提高快取訪問命中率,降低Cache快取一致性維護開銷,大幅提升系統整體的資料訪問效能。

2 全密態、AI特性加持,引領資料庫發展新方向

2.1 突破純軟資料密文查詢和計算關鍵技術,提供效能更優的全密態檢索方案

  • 全密態資料處理(含資料密態插入、更新、表示式等值過濾),效能劣化不超過5%。

  • 密態等值查詢落地openGauss,全面推進全密態技術標準行業落地,開放機密計算生態。

2.2 強化AI4DB的資料庫自調優、自診斷能力,突破DB4AI原生庫內機器學習機制

  • 索引推薦

    有效解決90%以上因索引配置不當導致的慢查詢;TPC-DS標準benchmark資料集下有60%的SQL語句可獲得不同程度的效能提升。

  • 監控與異常檢測

    問題發現效率相比人工on-call提升1倍,在TPC-C標準benchmark資料集上驗證發現人工注入故障場景下的問題召回率高達到90%以上。

  • MADLib相容

    支援60+ MADLib生態的演算法。

3 新增眾多企業級特性 持續構建openGauss資料庫競爭力

openGauss 2.0.0 新增特性:

  • 極簡安裝

    極簡版省去叢集管理工具,直接提供資料庫核心二進位制檔案,可以快速的啟動資料庫例項,安裝配置簡單,適合個人開發者使用。

  • 支援延遲備庫

    支援在備機延時指定的時間後恢復主機發來的XLOG日誌,延時後的備機相當於提供了一份可查詢的指定時間段前的資料副本,方便糾正過程操作錯誤。

  • 備機支援邏輯複製

    支援外部DRS連線備機進行邏輯解碼,降低主機壓力。

  • 擴容工具最佳化

    支援不停服線上擴容,同時支援備機和級聯備擴容。

  • 灰度升級

    最佳化升級工具,增加灰度升級能力,支援業務線上升級。可支援社群1.1.0版本灰度升級到2.0.0版本。

  • 備機IO寫放大最佳化

    最佳化備機IO,降低單次檢查點刷盤IO量,有效解決auto vacuum/vacuum慢問題。

  • WDR診斷報告

    WDR診斷報告新增“Effective CPU”、“WalWrite NoWait”、“Soft Parse”、“Non-Parse CPU”四個資料庫執行指標,提升系統DFx分析能力。

  • Data Studio客戶端工具特性

Data Studio對openGauss多個核心特性提供支援,包括:

  • 增加pldebugger除錯功能。

  • 增加pldebugger除錯功能的回滾,在使用Data Studio除錯前增加選項來保證除錯函式在修改完資料後回退。

  • 支援xml和serial(big|normal|small)型別。

  • 支援在Data Studio中建立和展示外表物件。

  • 列存表增加支援partial_cluster_key約束。

  • 全域性臨時表支援DDL的展示和匯出。

  • 建立分割槽表支援LOCAL和GLOBAL標記。

  • 增加MOT表的展示。

openGauss 1.0.1新增特性:

openGauss 1.0.1定位為Update版本,與原來的1.0.0版本特性功能保持相容,新增特性如下:

  • XML型別

    XML資料型別可以用於儲存XML資料。將XML資料存到text型別中的優勢在於它能夠為結構良好性來檢查輸入值,並且還支援函式對其進行型別安全性檢查。要使用這個資料型別,編譯時必須使用configure --with-libxml。

  • 偽列ROWNUM

    ROWNUM為查詢出來的每一行記錄生成一個序號,從1開始依次遞增且不會重複。

  • 聚合函式

    medianmedian返回給定數值的中值,中值是在一組數值中居於中間的數值,如果引數集合中包含偶數個數字,函式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配置檔案中。

  • 支援ipv6協議

    資料庫支援使用ipv6協議進行連線。

  • postgis外掛

    postgis一個空間資料庫,它增加了地理物件的支援,它使用的資料型別為點、線、面,允許在SQL中進行空間關係位置查詢。使用該功能前需要安裝postgis外掛。

  • 支援Gin索引

  • gin索引,即通用倒排索引,是一個儲存集合的資料結構。gin索引適合用於多值型別的元素搜尋,比如陣列和全文檢索。

  • 支援儲存過程除錯

    透過安裝pldebuger外掛,可以對函式和儲存過程的SQL語句進行除錯。

  • 支援備機擴容

    支援工具對資料庫叢集進行擴容備機。可以從單機或者主備資料庫最多擴容到一主四備。

  • 支援WDR自動診斷分析報告

    WDR(Workload Diagnosis Report)基於兩次不同時間點系統的效能快照資料,生成這兩個時間點之間的效能表現報表,用於診斷資料庫核心的效能故障。

  • 支援異構資料庫事務級同步能力(限DML)

    支援容器化部署(alpha)提供單機資料庫的容器化部署能力。先透過指令碼構建資料庫的docker映象,啟動映象後,可以將單機資料庫以容器化方式部署執行。

4 開放治理,多個夥伴加入社群 社群組織架構更加完善

北京超圖軟體股份有限公司、北京優炫軟體股份有限公司、北京快立方科技有限公司等公司已經簽署CLA,正式加入openGauss社群,越來越多的力量加入到社群建設中來。

截止目前openGauss已經成立包括OM、In-place Update、IoT、AI等11個專項興趣小組(簡稱SIG),包括海量資料、雲和恩墨、工商銀行、清華大學等多個組織的成員發起或參與到社群的各個SIG小組,帶領小組成員擴充技術方向,貢獻新特性,實現下一個版本的技術規劃。同時社群技術委員也開始運作,openGauss社群開放治理成架構日趨完善。

經過半年多的發展和沉澱,openGauss無論從技術演進、社群生態建立、商業落地均已進入快速成長期,未來openGauss將圍繞客戶場景和需求持續構建更多競爭力,打造企業級資料庫開源社群。

5 感謝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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69997967/viewspace-2767596/,如需轉載,請註明出處,否則將追究法律責任。

相關文章