在傳統的企業資料管理中,Oracle資料庫占主導地位,而MySQL在開發人員中非常流行,并且MySQL是大多數雲原生應用程式中使用的預設資料庫。
MySQL受歡迎的原因是因為它的簡單易用,并且具有為事務處理優化的豐富功能。最初在MySQL中小型企業中被迅速采用,随着它不斷的發展,它也在大型組織的部門内得到了大量的應用。
MySQL經過多年的發展,令許多以MySQL為标準的中小型公司發展成為仍然依賴于它作為資料管理平台的大型組織。并且,大型組織中使用MySQL的部門和業務機關在MySQL中積累了大量的關鍵資料。
對于依賴MySQL的客戶來說,這是他們面臨的一個挑戰。作為一個線上事務處理(OLTP)資料庫,MySQL的設計不适用于深度和複雜的分析處理。雖然市場上的一些公司和雲計算産品提供了某些分析産品元件,但沒有一個能夠進行實時分析。
Oracle 擁有 MySQL,但它從未在 MySQL 雲服務中獲得外界的的關注。2020年12月Oracle推出了一個新服務,在Oracle 雲基礎設施 (OCI) 上推出了一項新的完全托管的 MySQL 服務,它與現有雲提供商已經提供的各種MySQL 雲服務不同。其核心是“HeatWave”,是一種為 MySQL 資料庫服務開發的新型記憶體分析引擎,通過将分析引擎內建到傳統的以事務處理為主的MySQL,将 MySQL 帶入了一個新領域。
MySQL 最初在 1990 年代被設想為一個相對簡單、易于實作的關系型資料庫,用于處理 Web 應用程式的事務。它成為開源 LAMP 堆棧(包括 Linux、Apache 網絡伺服器、MySQL 以及 Perl、Python 或 PHP 程式設計語言)的資料庫。
MySQL 目前仍然是一個非常受歡迎的資料庫。根據 db-Engines 的排名,MySQL 的受歡迎程度僅次于 Oracle 資料庫。
Oracle 的新 MySQL 服務使用與本地部署的MySQL相同的 lnnoDB 存儲引擎,并且添加了一個為 MySQL 資料庫服務開發的新的記憶體分析引擎——HeatWave。它是一種分布式、可擴充、記憶體中、混合列式查詢處理引擎,專為快速執行分析查詢而設計。有人可能會将其與 Oracle Database In-Memory 的列式技術相關聯。但是,HeatWave 是一種完全不同的記憶體混合列式實作。
使用 HeatWave,資料将持久儲存在 MySQL lnnoDB 存儲引擎中。通過使用輕量級更改傳播算法在背景傳播,任何更新都會實時自動傳播到 HeatWave 節點的記憶體中。後續查詢始終可以通路到最新資料。此外,在運作分析查詢之前無需為資料建立索引。
HeatWave 叢集的大小取決于加載所需的表和列,以及在記憶體中資料實作的壓縮。 可以使用機器學習估算節點數量。
HeatWave 分析引擎對混合列存儲中的資料進行微分區,可以實作大規模查詢并行化。并且,它還引入了向量處理,可以允許在一組行上執行一系列指令,執行的開銷分布在多行上,進而提高了性能。傳統的記憶體列式、微分區和向矢量處理的組合使 HeatWave 獨一無二。
MySQL 雲服務對底層 Oracle 雲基礎架構 (OCI) 進行了進一步優化。計算節點之間的計算和通信針對網絡帶寬也同樣進行了優化,分區的大小經過優化适應于CPU的緩存。這些幫助 HeatWave 在大量伺服器上獲得非常好的可擴充性。
在使用者向 MySQL 資料庫送出查詢後,MySQL 查詢優化器就會決定是否應将查詢加載到 HeatWave 加速執行。HeatWave 将 MySQL 的分析查詢性能提高了 400 倍,并且可以擴充到數千個核心。Oracle提供了測試的相關腳本https://github.com/oracle/heatwave-tpch
HeatWave 利用 MySQL 的可插拔存儲引擎架構,并與 MySQL 的預設存儲引擎 lnnoDB本地內建。它的實作方式将存儲級别的低級實作細節與最終使用者進行隔離。使用者可以使用相同的管理工具(包括 Oracle 雲基礎設施控制台、REST API 和指令行界面)管理 Oracle MySQL 資料庫服務中的兩個存儲引擎。并且通過 MySQL 連接配接到 HeatWave,是以,所有标準工具和基于标準的 ODBC/JDBC 連接配接器不需要修改即可使用。HeatWave 支援與 MySQL 相同的 ANSI SQL 标準和 ACID 屬性,并支援多種資料類型,并且無需更改應用程式代碼。
在對大型資料集進行複雜查詢的情況下,會面臨兩個問題,第一個問題是時間,分析引擎執行查詢并将有價值的結果傳回給請求者所需的時間。第二個問題是複雜,在資料驅動的組織中,資料儲存在部門和業務單元的不同資料源中,這些資料源通常是MySQL資料庫,但是MySQL并不适合OLAP處理。大多數情況下,組織多使用手動、分步驟的方法來為MySQL環境執行OLAP查詢。通常使用ETL工具從多個MySQL源擷取資料,并将其儲存在用于OLAP處理的資料倉庫中,最後,對資料運作分析。即使是雲廠商提供的服務,同樣需要使用ETL将資料移動到獨立的資料庫和工具。HeatWave改變了這一現狀。使用HeatWave的一個優勢在于省去了傳統大資料分析的ETL過程。可以在不需要任何資料移動的情況下運作事務處理和分析,這在這個領域是首創的。客戶也可以通過HeatWave實時做出決策,因為沒有ETL資料——所有資料都在一個單一的資料庫中。可即刻查詢,這完全不同于目前的MySQL資料庫雲服務。
此外,還可以利用MySQL的複制功能,将本地部署的MySQL執行個體中的資料通過複制功能同步到HeatWave。通過這種混合部署,可以使得大量的本地MySQL資料在雲端通過HeatWave進行加速分析處理。