數據庫系列之簡要對比下GaussDB和OpenGauss數據庫

GaussDB作為一款企業級的數據庫產品,和開源數據庫OpenGauss之間又是什么樣的關系,剛開始接觸的時候是一頭霧水,因此本文簡要對比下二者的區別,以加深了解。


1、GaussDB和OpenGauss數據庫簡要對比

GaussDB是華為基于PostgreSQL數據庫內核創新研發的企業級分布式關系型數據庫,支持分布式事務,同城跨AZ部署,數據0丟失,支持1000+的擴展能力,PB級海量存儲。最早GaussDB的定位是云數據庫產品集合,包括關系型和非關系型數據庫,產品矩陣如下:

在這里插入圖片描述

可以看到GaussDB數據庫包括:關系型的GaussDB(for openGauss)、GaussDB(for MySQL)和GaussDB(for PostgreSQL);非關系型的GaussDB(for Cassandra)、GaussDB(for Mongo)、GaussDB(for Redis)和GaussDB(for Influx)。不過從最新官網看到GaussDB數據庫的劃分,又聚焦于關系型數據庫,從中可以看出從內部對GaussDB的產品定位上也有不同的理解。現在是定位更加清晰,云數據庫GaussDB是應用于金融、電信和政企等關鍵核心系統的分布式數據庫,尤其特指關系型的GaussDB(for openGauss)。

在這里插入圖片描述

1.1 OpenGauss和PostgreSQL關系

GaussDB的內核引擎最早是基于PostgreSQL 9.2版本不斷演進,根據PG-XC架構衍生了多CN架構,并開發了分布式執行框架和向量化引擎等重要特性。

在這里插入圖片描述

OpenGauss作為GaussDB數據庫的開源主備版本,和PostgreSQL相比,在底層架構和數據存儲方面類似,但OpenGauss在性能和擴展性方面進行了優化。主要在以下方面:

  • 執行模型:OpenGauss優化了線程池模型,滿足高并發的訪問需求
  • NUMA改造:OpenGauss支持信創服務器的Numa適配,提升服務器的性能
  • 存儲引擎優化:OpenGauss支持列存和內存引擎,滿足HTAP類業務場景需求
  • 優化器優化:結合實際的應用場景支持CBO對復雜查詢場景的優化能力

在這里插入圖片描述

對比PostgreSQL可以看到,OpenGauss對數據庫引擎的性能和架構做了適配性改造,更符合國產化的需求,以滿足信創環境下大規模和復雜的數據處理請求。

1.2 GaussDB和OpenGauss不同之處

GaussDB數據庫作為企業級的分布式數據庫,支持分布式和主備的部署場景,其中分布式版本包含CN(計算節點)、DN(數據存儲節點)和GTM(分布式事務管理器)等節點類型。GaussDB數據庫的分布式版本是基于share-nothing架構實現的,通過GTM-Lite技術實現事務強一致,消除了無中心節點性能的瓶頸。而OpenGauss簡單來說就是GaussDB(for OpenGauss)的一個開源版本,支持主備部署形態。

1.2.1 組件類型

GaussDB數據庫作為分布式架構數據庫,在數據庫組件上相比OpenGauss數據庫多了協調節點(Coordinator Node)和全局事務管理器(Global Transaction Manager),如下圖所示。

在這里插入圖片描述

  • OM(Operation Manager):運維管理模塊提供數據庫日常運維、配置管理的管理接口、工具等
  • CM(Cluster Manager):數據庫管理模塊管理和監控數據庫系統中各個功能單元和物理資源的運行情況,確保整個系統的穩定運行。CM提供數據庫主備的狀態監控、網絡通信故障監控、文件系統故障監控、故障自動主備切換等能力。
  • GTM(Global Transaction Manager):全局事務管理器負責生成和維護全局事務ID、事務快照、時間戳和sequence等全局唯一的信息。
  • CN(Coordinator Node):協調節點負責接收來自應用的訪問請求,并向客戶端返回執行結果;負責對SQL請求解析,并將請求路由到不同的DN分片上執行。
  • DN(Data Node):數據節點負責存儲業務數據、執行數據查詢任務以及向CN或客戶端返回執行結果
  • ETCD:分布式鍵值存儲系統,用于共享配置和服務發現
  • CMS(cm_server):進行數據庫實例管理和實例仲裁的組件。主要功能包括:1)接收各個節點上cm_agent發送的數據庫各實例狀態;2)提供數據庫實例整體狀態的查詢功能;3)監控實例的狀態變化并進行仲裁命令的下發
  • Storage:服務器的本地存儲,用于數據持久化,支持集中式存儲

對比GaussDB和OpenGauss,OpenGauss由于是主備部署形態,不需要分布式架構下的CN和GTM節點,因此在數據庫組件上有以下不同:

在這里插入圖片描述

1.2.2 部署架構

在這里插入圖片描述

GaussDB和OpenGauss數據庫部署架構如圖所示,GaussDB在數據庫部署組件中多了CN協調節點和GTM全局事務節點。另外,GaussDB數據庫在分布式SQL執行的時候,通過CN節點將SQL請求下發到不同的DN節點執行,然后匯總結果到CN節點再返回給客戶端,而在OpenGauss中客戶端直接從DN層獲取數據并返回。

在這里插入圖片描述

1.2.3 GaussDB和OpenGauss差異對比

前文對比了GaussDB和OpenGauss數據庫在組件和架構上的不同,下面總結下二者之間的差異:

  1. 開發背景和社區支持:OpenGauss是由華為公司發起的一個開源項目,具有活躍的社區支持和貢獻者。GaussDB則是華為公司在OpenGauss的基礎上進行商業化擴展和增強后的產品,提供企業級的支持和服務。
  2. 功能特性:OpenGauss作為開源產品,其功能相對基礎,適合大多數通用場景,并且可以根據需求進行定制和擴展。GaussDB在OpenGauss的基礎上增加了更多的高級特性和優化,包括但不限于性能優化、安全性增強、可靠性提升等,以滿足企業級應用的更高要求。
  3. 技術支持和維護:OpenGauss作為一個開源項目,通常依賴于社區的支持和貢獻來解決技術問題和提供更新。GaussDB作為商業產品,由華為公司提供專業的技術支持和維護服務,包括技術支持熱線、定期更新和補丁等。
  4. 適用場景:OpenGauss適用于對成本敏感、需要靈活性和可控性的場景,如中小型企業、教育機構或個人開發者。GaussDB更適合對數據安全、性能穩定性和服務質量有較高要求的企業級應用場景,特別是大型企業和關鍵業務系統。
  5. 部署架構:OpenGauss支持主備部署架構,滿足高可用要求;GaussDB支持主備和分布式部署形態,高可用架構上支持多中心部署,滿足金融級別的高可用要求。
  6. 擴展能力:OpenGauss集中式部署受限于單臺服務器的處理能力,無法橫向擴容;GaussDB支持分布式部署架構,具備橫向擴展能力,滿足高并發高性能的場景。
  7. 信創生態支持:OpenGauss和GaussDB支持全棧信創能力,和國產CPU、國產操作系統和中間件有很好的生態兼容。

在這里插入圖片描述

1.3 總結

本文簡要對比了GaussDB和OpenGauss數據庫,二者作為優秀的國產數據庫雖然在發展路線和應用場景上會有所不同,但在國產化基礎軟件信創改造的過程中都發揮了重要的作用。GaussDB作為企業級的分布式數據庫,在金融、電信等關鍵行業應用廣泛,而OpenGauss作為開源版本,更像MySQL或PostgreSQL數據庫一樣的開源生態,吸引更多的國產數據庫愛好者參與共建、開發和優化。


參考資料:

  1. https://support.huaweicloud.com/gaussdb/index.html
  2. https://docs.opengauss.org/zh/docs/latest/docs
  3. https://blog.csdn.net/HCIS_HENGCHI/article/details/133774888

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215431.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215431.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215431.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WPF仿網易云搭建筆記(4):信息流控制之消息訂閱

文章目錄 專欄和Gitee倉庫前言消息訂閱最簡單的案例簡單用例父組件訂閱子組件回調 結果 消息訂閱機制消息token是A還是B?傳遞消息的載體。雙重token重復訂閱問題 結論 專欄和Gitee倉庫 WPF仿網易云 Gitee倉庫 WPF仿網易云 CSDN博客專欄 前言 上一篇文章中,我們簡單…

PHP基礎(1)

PHP是一種服務器端腳本語言,是一種用于開發動態Web應用程序的最流行和廣泛使用的語言之一。它的全稱為“Hypertext Preprocessor”,是一種開源的、可嵌入HTML的腳本語言,可以嵌入到HTML中,也可以直接作為命令行腳本運行。PHP腳本在…

Java小案例-如果您的 Java 應用程序在不做任何事情時正在消耗 CPU,您如何確定它在做什么?

前言 我正在調用供應商的 Java API,在某些服務器上,JVM 在登錄 API 后似乎進入了低優先級輪詢循環(CPU 使用率為 100%)。其他服務器上的同一應用程序不會出現此行為。這發生在 WebSphere 和 Tomcat 上。環境設置起來很棘手&#…

DevOps搭建(四)-GitLab安裝細步驟

在這里我們用docker安裝 1、創建gitlab安裝目錄 mkdir -p /usr/local/docker/gitlab_docker 進入該目錄 cd /usr/local/docker/gitlab_docker 2、下載gitlab鏡像 docker pull gitlab/gitlab-ce:latest 3、創建docker-compose.yml vi docker-compose.yml 輸入以下內容保…

理解 HTTP POST 請求:表單與 JSON 數據格式深入解析20231208

引言 在日常的 Web 開發中,理解 HTTP POST 請求的不同數據格式是至關重要的。這不僅有助于構建健壯的后端服務,還能確保與其他服務的有效溝通。本文將深入探討 multipart/form-data 和 application/json,這兩種常見的 POST 請求格式。 POST…

2023 年安徽省職業院校技能大賽高職組“軟件測試”賽項樣題

2023 年安徽省職業院校技能大賽 高職組“軟件測試”賽項樣題 目錄 任務一:功能測試(45 分) 1、測試計劃(5 分) 2、測試用例(15 分) 3、Bug 清單(20 分) 4、測試報告&…

Python 學習筆記之 networkx 使用

介紹 networkx networkx 支持創建簡單無向圖、有向圖和多重圖;內置許多標準的圖論算法,節點可為任意數據;支持任意的邊值維度,功能豐富,簡單易用 networkx 中的 Graph Graph 的定義 Graph 是用點和線來刻畫離散事物…

張馳咨詢:數據驅動的質量改進,六西格瑪綠帶在汽車業實踐

尊敬的汽車行業同仁們,您是否曾面臨生產效率低下、成本不斷攀升或顧客滿意度下降的困擾?本期專欄,我們將深入探討如何通過六西格瑪綠帶培訓,在汽車行業中實現過程優化和質量提升。 汽車行業的競爭日趨激烈,致力于提供…

3.cloud-Consul服務注冊與發現

1.官網 https://learn.hashicorp.com/consul/getting-started/install.html 2.訂單服務 2.1 POM <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId> </dependenc…

學習Java第66天,路徑問題

相對路徑情況分析 相對路徑情況1:web/index.html中引入web/static/img/logo.png 訪問index.html的url為 : http://localhost:8080/web03_war_exploded/index.html 當前資源為 : index.html 當前資源的所在路徑為 : http://localhost:8080/web03_war_exploded/ 要獲取的目標資…

【華為數據之道學習筆記】3-9元數據治理面臨的挑戰

華為在進行元數據治理以前&#xff0c;遇到的元數據問題主要表現為數據找不到、讀不懂、不可信&#xff0c;數據分析師們往往會陷入數據沼澤中&#xff0c;例如以下常見的場景。 某子公司需要從發貨數據里對設備保修和維保進行區分&#xff0c;用來不對過保設備進行服務場景分析…

Qt 使用百度的離線地圖

使用百度離線地圖&#xff0c;一下載百度離線包&#xff08;offlinemap&#xff09;&#xff1b;二是準備地圖瓦片&#xff08;不同級別的瓦片&#xff09;&#xff1b;三 準備&#xff48;&#xff54;&#xff4d;&#xff4c;主頁面&#xff1b;四&#xff0c;&#xff31;&…

深度學習 Day13——P2彩色圖片分類

&#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 | 接輔導、項目定制 文章目錄 前言1 我的環境2 代碼實現與執行結果2.1 前期準備2.1.1 引入庫2.1.2 設置GPU&#xff08;如果設備上支持GPU就使用GPU,否則使用C…

在Go中定義方法

引言 函數允許你將邏輯組織到可重復的過程中,每次運行時可以使用不同的參數。在定義函數的過程中,你會經常發現多個函數可能每次都操作同一段數據。Go可以識別這種模式,并允許您定義特殊的函數,稱為方法,其目的是對某些特定類型的實例進行操作,稱為接收器。為類型添加方…

nodejs微信小程序+python+PHP基于spark的酒店管理系統-計算機畢業設計推薦

目 錄 摘 要 I ABSTRACT II 目 錄 II 第1章 緒論 1 1.1背景及意義 1 1.2 國內外研究概況 1 1.3 研究的內容 1 第2章 相關技術 3 2.1 nodejs簡介 4 2.2 express框架介紹 6 2.4 MySQL數據庫 4 第3章 系統分析 5 3.1 需求分析 5 3.2 系統可行性分析 5 3.2.1技術可行性&#xff1a;…

排序算法——歸并排序

歸并排序&#xff08;Merge Sort&#xff09;是計算機科學中非常重要的排序算法之一。它不僅高效、穩定&#xff0c;而且是許多高級排序技術和算法思想的基礎。在本文中&#xff0c;我們將深入探討歸并排序的原理、實現方法&#xff0c;以及它的優缺點。 1. 歸并排序的原理 歸…

Python大模型TensorFlow/PyTorch/Scikit-learn/Keras/OpenCV/Gensim

Python 作為一種高級編程語言&#xff0c;可以用于開發各種大小的模型。以下是一些常見的 Python 大模型&#xff0c;以及它們的優勢、劣勢和使用場景&#xff1a; TensorFlow&#xff1a; 優勢&#xff1a;TensorFlow 是一個非常流行的深度學習庫&#xff0c;具有高度的可擴…

階段五:深度學習和人工智能(掌握使用TensorFlow或PyTorch進行深度學習)

掌握使用TensorFlow或PyTorch進行深度學習需要具備一定的編程基礎和數學基礎&#xff0c;包括編程語言、數據結構、算法、線性代數、概率論和統計學等方面的知識。以下是掌握使用TensorFlow或PyTorch進行深度學習的一些基本要求&#xff1a; 了解深度學習的基本概念和原理&…

目標檢測YOLO系列從入門到精通技術詳解100篇-【目標檢測】計算機視覺(基礎篇)

目錄 前言 幾個高頻面試題目 計算機視覺中常見的錯誤及解決方案 1.翻轉圖像和關鍵點

AnotherRedisDesktopManager安裝使用 (redis可視化客戶端)

下載 下載地址 AnotherRedisDesktopManager 發行版 - Gitee.com 安裝 雙擊安裝 修改安裝路徑 運行