本篇文章給大家?guī)砹岁P(guān)于MySQL的相關(guān)知識,其中主要介紹了關(guān)于MySQL HeatWave的相關(guān)內(nèi)容,MySQL HeatWave 是一個內(nèi)置高性能內(nèi)存查詢加速器的 MySQL 云服務(wù);借助該服務(wù),我們無需對當(dāng)前應(yīng)用進(jìn)行任何更改,即可將混合工作負(fù)載的 MySQL 性能提高數(shù)個量級;下面一起來看一下,希望對大家有幫助。
MySQL 作為全球最歡迎的數(shù)據(jù)庫,已在交易場景叱咤風(fēng)云多年。在 2020 年底,OCI(Oracle Cloud Infrastructure)推出了一個黑科技插件,它彌補(bǔ)了 MySQL 在分析場景的短板,Oracle 官方稱它比 Aurora 快 1400 倍,比 Redshift 快 6.5 倍,而且還能以二分之一的成本完成這些工作,它就是 MySQL HeatWave。
MySQL HeatWave 簡介
MySQL HeatWave 是一個內(nèi)置高性能內(nèi)存查詢加速器的 MySQL 云服務(wù)。借助該服務(wù),我們無需對當(dāng)前應(yīng)用進(jìn)行任何更改,即可將混合工作負(fù)載的 MySQL 性能提高數(shù)個量級。
相比傳統(tǒng)的分析場景,MySQL HeatWave 可以讓用戶無需再使用單獨(dú)的分析數(shù)據(jù)庫、單獨(dú)的機(jī)器學(xué)習(xí) (ML) 工具以及提取、轉(zhuǎn)換和加載(ETL)復(fù)制。同時,借助 MySQL HeatWave 機(jī)器學(xué)習(xí),開發(fā)人員和數(shù)據(jù)分析師可以在 MySQL HeatWave 中構(gòu)建、訓(xùn)練、部署和解釋機(jī)器學(xué)習(xí)模型,無需將數(shù)據(jù)遷移到單獨(dú)的機(jī)器學(xué)習(xí)服務(wù)中。
目前 MySQL HeatWave 可在 OCI(Oracle Cloud Infrastructure)、AWS(Amazon Web Services)和 Microsoft Azure 上使用。
MySQL HeatWave 可以附加到 MDS(MySQL Database Service)來支持分析類查詢,它不會暴露給應(yīng)用程序。MySQL HeatWave 的數(shù)據(jù)庫是以列存形式存儲在內(nèi)存當(dāng)中。
簡單了解 MySQL HeatWave,首先了解如下三條內(nèi)容即可:
-
使用同一個 MySQL 數(shù)據(jù)庫來支持 OLTP 和 OLAP;
-
數(shù)據(jù)以分區(qū)的方式存儲在內(nèi)存中;
-
應(yīng)用程序無需做任何更改。
MySQL HeatWave 技術(shù)架構(gòu)
整體架構(gòu)
MySQL HeatWave 的架構(gòu)如下圖所示,它以一個插件的形式存在于整個 MySQL 數(shù)據(jù)庫系統(tǒng)當(dāng)中,它不會直接面對應(yīng)用程序,可以理解為 MySQL HeatWave 掛在了 MDS 之下,用戶無需修改原有的數(shù)據(jù)訪問方式。
MySQL HeatWave 插件對應(yīng)著若干個 MySQL HeatWave Node。MySQL HeatWave 的數(shù)據(jù)在內(nèi)存中以列存的方式存儲,其持久化的數(shù)據(jù)是存放在對象存儲中,可在 Node 失效后快速完成恢復(fù)。

列存
HeatWave 的數(shù)據(jù)以列存方式存儲在內(nèi)存中,便于向量化處理,同時數(shù)據(jù)在加載到內(nèi)存前會進(jìn)行編碼和壓縮,可提高性能和減少內(nèi)存占用,從而降低客戶的成本。
-
基于行存數(shù)據(jù)做水平分區(qū),基于水平分區(qū),可以將查詢在節(jié)點(diǎn)級并行執(zhí)行來加速 scan、join、group-by、aggr 和 top-k 等算子,同時分區(qū)規(guī)劃是與底層 RAPID 定制化硬件適配的。
-
分區(qū)內(nèi)部將數(shù)據(jù)按照schema定義組織成列式存儲,以引入向量化執(zhí)行,每個向量化計算的單位是16KiB 的 vector,各列對應(yīng)行的vector組合在一起成為 chunk,每個 partition 會有多個 chunks。
-
為了適配 DMS,vector 又劃分為多個 tile,每 64 行組成一個tile作為數(shù)據(jù)傳輸?shù)淖钚卧?/p>
-
為了減少內(nèi)存的使用,所有存儲的數(shù)據(jù)都會做編碼或壓縮。
MySQL HeatWave 功能
以下內(nèi)容摘自 Oracle 官網(wǎng),地址為 https://www.php.cn/link/4228bfbd579799d63cb20810ef5c04d1
-
一個 MySQL 數(shù)據(jù)庫滿足 OLTP 和 OLAP 兩種需求
- 對 ETL 無依賴
- 提供實時分析
- 增強(qiáng)安全性
- 無需修改應(yīng)用程序
- 支持 MySQL 數(shù)據(jù)庫所支持的 BI 和數(shù)據(jù)可視化工具
- 可在公有云和用戶的數(shù)據(jù)中心使用
-
高性能內(nèi)存查詢加速器
- 采用大規(guī)模擴(kuò)展和高性能架構(gòu)設(shè)計
- 針對云進(jìn)行了優(yōu)化
- 針對高事務(wù)處理量和連接進(jìn)行了優(yōu)化
-
In-database 機(jī)器學(xué)習(xí)
- 無需額外的機(jī)器學(xué)習(xí)服務(wù)
- 利用機(jī)器學(xué)習(xí)生命周期自動化,節(jié)省時間并減輕工作量
- 可解釋的機(jī)器學(xué)習(xí)模型
-
MySQL 自動駕駛
- 自動配置
- 自動線程池
- 自動分片預(yù)測
- 自動編碼
- 自動查詢計劃優(yōu)化
- 自動數(shù)據(jù)安置
-
MySQL 湖倉一體(beta)
- TPC-H 性能優(yōu)于同類產(chǎn)品
- 快速分析所有數(shù)據(jù)
- 可擴(kuò)展的管理、處理數(shù)據(jù)架構(gòu)
- 機(jī)器學(xué)習(xí)驅(qū)動自動優(yōu)化,提升性能并節(jié)省時間
-
實時彈性
- 在高峰時間始終保持穩(wěn)定的高性能,成本更低且無停機(jī)時間
- 避免過度預(yù)配實例
-
全托管數(shù)據(jù)庫服務(wù)
- 由 MySQL 工程團(tuán)隊開發(fā)、管理和提供支持
- MySQL HeatWave 交互式控制臺:管理資源、運(yùn)行查詢和監(jiān)視性能
-
高級安全性
- 通過密鑰生成和數(shù)字簽名進(jìn)行非對稱加密
- 數(shù)據(jù)脫敏
- SQL 白名單
MySQL HeatWave 工作原理
-
RAPID 引擎支持語句中相關(guān)函數(shù);
-
RAPID 引擎執(zhí)行時間評估少于 InnoDB 的執(zhí)行時間。
當(dāng)同時滿足以上兩個條件時,將由 RAPID 引擎,也就是 MySQL HeatWave 來處理相關(guān)業(yè)務(wù)請求。
在啟用 MySQL HeatWave 插件后,對于接收到的請求,MDS 會通過兩個條件來判斷該請求是否走 RAPID 引擎,MySQL HeatWave 所使用的引擎是 RAPID,在研發(fā)階段 MySQL HeatWave 的名字就是“RAPID”。

MySQL HeatWave 數(shù)據(jù)加載
加載方式
對于 MySQL HeatWave 的數(shù)據(jù),可通過如下三種方式進(jìn)行加載:
- 手動加載數(shù)據(jù),每次加載一張表;
- 通過自動并行方式加載數(shù)據(jù),通過 Autopilot 的方式可并行執(zhí)行,效率較高;
- 通過 MySQL HeatWave 的控制臺,以可視化的操作來完成數(shù)據(jù)加載,這種方式目前僅限在 AWS 上進(jìn)行操作。沒錯,這里確實是只有 AWS 支持 MySQL HeatWave 控制臺,AWS 快了 OCI 一步。
在初次數(shù)據(jù)加載時可能會耗時久一些,在完成數(shù)據(jù)加載后,MySQL HeatWave 會自動地保持與 InnoDB 數(shù)據(jù)一致,這里值得關(guān)注的是,自動同步變更數(shù)據(jù)的模式是異步的,最多可能要用戶接受 200ms 的數(shù)據(jù)延遲,也就是說 MDS 上的數(shù)據(jù)變更不會等待 MySQL HeatWave 的反饋。
同步方式
MDS 會根據(jù)如下策略對數(shù)據(jù)進(jìn)行同步:
-
每 200 ms;
-
當(dāng)變更傳輸緩沖區(qū)達(dá)到 64MB 時;
-
在 MDS 中,經(jīng)過 DML 變更的數(shù)據(jù)被后續(xù)的 HeatWave 查詢需要讀取時。
MySQL HeatWave 部署方式
公有云
MySQL HeatWave 可支持在 OCI(Oracle Cloud Infrastructure)、AWS(Amazon Web Services)和 Microsoft Azure 上使用。
所需的 HeatWave 節(jié)點(diǎn)數(shù)取決于數(shù)據(jù)大小,OCI 和 Azure 最多支持 64 個節(jié)點(diǎn)。在亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)上,一個HeatWave集群最多支持128個 節(jié)點(diǎn)。

混合部署
混合部署是指本地部署 OLTP + 云端部署 OLAP 的方式,在這種混合部署中,客戶可以使用 MySQL 復(fù)制將本地 MySQL 數(shù)據(jù)復(fù)制到 OCI 或 AWS 的 MySQL HeatWave,而無需通過 ETL 來滿足分析業(yè)務(wù)需求。
這種混合部署方式需要考慮數(shù)據(jù)延遲情況,在“數(shù)據(jù)加載”中已介紹,InnoDB 和 HeatWave 間數(shù)據(jù)是異步進(jìn)行傳輸?shù)?,加上網(wǎng)絡(luò)的延遲,需要考慮數(shù)據(jù)的實時性問題。據(jù)了解目前中國區(qū)沒有 MySQL HeatWave。

本地部署
OCI 支持部署在用戶的數(shù)據(jù)中心,可滿足合規(guī)要求,讓數(shù)據(jù)駐留在用戶的數(shù)據(jù)中心。這樣的部署方式具備以下特點(diǎn):
-
具有獨(dú)立的 OCI 云區(qū)域,由 Oracle 托管;
-
滿足數(shù)據(jù)駐留在用戶數(shù)據(jù)中心的需求;
-
滿足低延遲的需求。
MySQL HeatWave 性價比
MySQL HeatWave 和 Amazon Redshift 「最快的實例」進(jìn)行性能對比,對 19 次 TPC-H 測試結(jié)果進(jìn)行幾何平均計算后,MySQL HeatWave 比 Amazon Redshift 速度快 2.7 倍,成本僅為 Amazon Redshift 的三分之一。

MySQL HeatWave 和 Amazon Redshift 「低成本實例」進(jìn)行性能對比,MySQL HeatWave 性能上要領(lǐng)先 Amazon Redshift 17 倍以上,投入成本持平。

從官方公布的性價比數(shù)據(jù)看,相比圖上其他幾款產(chǎn)品,MySQL HeatWave 性價比最高。
MySQL HeatWave 費(fèi)用
在 Oracle 公益課堂中,我們可以了解到 MySQL HeatWave 的大概使用成本,對于這張圖我們只需要關(guān)注下半部分,對于 2T 數(shù)據(jù)量的環(huán)境,每月的成本約為 1260 美元。
其中包括了 MDS 費(fèi)用、MDS 存儲的費(fèi)用和 HeatWave 的費(fèi)用。
MySQL HeatWave 多云差異
OCI 和 AWS
HeatWave 在 OCI 和 AWS 兩朵云的 Roadmap 上的差異是比較有趣的,前面已提到可視化的數(shù)據(jù)加載只能通過 AWS 來完成,不只是這項能力,通過下圖來看,AWS 在用戶體驗上要優(yōu)于 OCI。

(https://www.oracle.com/mysql/#roadmap)
在 OCI 中需要使用控制臺時,將會跳轉(zhuǎn)到 AWS。
Azure
對于 Azure 用戶,仍然可以使用 MySQL HeatWave 服務(wù),它是通過 Azure VNET 連接 OCI 的 MySQL HeatWave,也就是說,實際上使用的還是 OCI 的環(huán)境。
目的是為 Azure 用戶提供原生用戶體驗,私有互聯(lián)的方式將網(wǎng)絡(luò)延遲控制在 2ms 內(nèi)。
(https://www.oracle.com/cloud/azure/oracle-database-for-azure/)
總結(jié)
MySQL HeatWave 可支持在 OCI(Oracle Cloud Infrastructure)、AWS(Amazon Web Services)和 Microsoft Azure 上使用,也支持將 OCI 部署到用戶數(shù)據(jù)中心。
啟用 MySQL HeatWave 插件后,用戶可以通過一個 MySQL 服務(wù)來滿足業(yè)務(wù)在 TP 和 AP 的需求,而無需修改業(yè)務(wù)。通過內(nèi)部流程自動地完成數(shù)據(jù)同步,不需要單獨(dú)維護(hù) ETL,可保持架構(gòu)簡潔。自動駕駛(AI)和湖倉一體的能力給用戶