自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解MySQL重大新增功能,專治數(shù)據(jù)分析之痛

數(shù)據(jù)庫 MySQL
12月2日,Oracle在其官網(wǎng)正式推出“MySQL Database Service with Analytics Engine”。作為MySQL產(chǎn)品的一個重大增強,這一特性頗引人注目。抽空做了個簡單了解,各位從中可窺其一二。

 12月2日,Oracle在其官網(wǎng)正式推出“MySQL Database Service with Analytics Engine”。作為MySQL產(chǎn)品的一個重大增強,這一特性頗引人注目。抽空做了個簡單了解,各位從中可窺其一二。(本文部分資料、插圖來自O(shè)racle官方網(wǎng)站)

一、MySQL的天然短板“數(shù)據(jù)分析”

MySQL,作為最為流行的一款開源數(shù)據(jù)庫,已經(jīng)得到非常廣泛地使用。從最新的db-engines指數(shù)可以看出,其在數(shù)據(jù)庫領(lǐng)域中占據(jù)了重要的位置。

但作為一款如此流行的數(shù)據(jù)庫產(chǎn)品,其存在一個明顯的短板就是數(shù)據(jù)分析。相信MySQL使用者都有這種感覺,在大規(guī)模數(shù)據(jù)情況下MySQL有些力不從心。盡管其內(nèi)核也在不斷加強這方面的能力(如最新8.0支持hash join、直方圖等),但相較于其他數(shù)據(jù)庫仍然存在一定劣勢。其核心在于MySQL原生是為OLTP場景設(shè)計的,并沒有考慮OLAP場景。

雖然也有一些廠商通過擴展其存儲引擎,增強其數(shù)據(jù)分析能力,但總體來講還是不盡如人意。于是,通常的一種選擇就是在數(shù)據(jù)分析時,不得不將數(shù)據(jù)遷移到另一種數(shù)據(jù)庫/大數(shù)據(jù)架構(gòu)中。通過后者,去完成數(shù)據(jù)分析工作。在這一過程中,需要開發(fā)者自己定義ETL邏輯(可能基于日志解析或邏輯數(shù)據(jù)抽?。?,完成數(shù)據(jù)遷移。同時,在運行中需時刻關(guān)注數(shù)據(jù)同步,保證數(shù)據(jù)有效性。在使用上,還需編寫單獨的語句(異構(gòu)數(shù)據(jù)源的語句),來完成數(shù)據(jù)分析動作。

整個這一過程,無疑對用戶來說具有一定的使用門檻,且需要花費額外的精力去解決這一問題。相信Oracle原廠也是看到這一問題,因而推出了MySQL Analytics Engine。

二、MAE到底是個啥?

MySQL Analytics Engine(簡稱MAE),籠統(tǒng)來說是一款內(nèi)置的分析引擎。通過它與MySQL Database的組合,可以使得數(shù)據(jù)庫管理員和應(yīng)用程序開發(fā)人員能夠直接將MySQL數(shù)據(jù)庫作為OLTP和OLAP工作負(fù)載的統(tǒng)一服務(wù)。其提供的“MySQL Database Service with Analytics Engine”,是由一個MySQL DB實例和多個分析節(jié)點組成。當(dāng)分析功能被啟用時,分析服務(wù)將被安裝在DB實例上,其負(fù)責(zé)集群管理、數(shù)據(jù)加載、查詢執(zhí)行等。從用戶角度來看,可以通過標(biāo)準(zhǔn)的MySQL JDBC/ODBC Connector來連接使用。下面我們詳細(xì)展開看看。

首先從整體使用來看,對外提供統(tǒng)一的MySQL Database Service。用戶仍然是通過傳統(tǒng)的方式去使用它,無論是OLTP還是OLAP場景。在這個服務(wù)的內(nèi)部,是包括了傳統(tǒng)的OLTP引擎和新的Analytics引擎。在數(shù)據(jù)上,也是存在兩份。前者仍然保存在例如InnoDB這樣的存儲引擎之中,后者則保存在一組節(jié)點構(gòu)成集群的內(nèi)存之中。正常事務(wù)操作帶來的數(shù)據(jù)變化,會透明地傳播到后面的分析集群中,以加速分析處理。這樣就使得客戶可以在單個數(shù)據(jù)庫平臺上同時運行OLTP和OLAP工作負(fù)載。簡言之,就是兩個計算引擎、兩份數(shù)據(jù)存儲。

MAE的核心工作思想就是“化大為小”,通過分區(qū)機制,將數(shù)據(jù)打散后利用獨立的CPU資源進行處理。處理后的結(jié)果統(tǒng)一返回。

在MAE內(nèi)部,由多個分析節(jié)點組成。其具體節(jié)點數(shù)量,可由MySQL分析引擎提供的自動配置顧問自動獲得。在節(jié)點中,數(shù)據(jù)以一種混合列壓縮的格式存儲。這有助于向量化處理,從而獲得非常好的查詢性能。數(shù)據(jù)在內(nèi)存中運行之前被編碼和壓縮。這種壓縮和優(yōu)化的內(nèi)存使用,對于數(shù)值和字符串?dāng)?shù)據(jù)尤為顯著,可提高性能并減少內(nèi)存占用,從而為客戶降低成本。同時在每個節(jié)點中使用并行操作技術(shù),這為分析提供了高緩存命中率,并提供良好的節(jié)點間可伸縮性。集群內(nèi)的每個分析節(jié)點和節(jié)點內(nèi)的每個核心都可以并行處理分區(qū)數(shù)據(jù),包括并行掃描、連接、分組、聚合和top-k處理。

MySQL分析引擎為分布式內(nèi)存分析處理實現(xiàn)了最新的算法。通過使用向量化的構(gòu)建和探測連接內(nèi)核,可以快速處理分區(qū)內(nèi)的連接。通過使用異步批處理I/O,優(yōu)化了分析節(jié)點之間的網(wǎng)絡(luò)通信。算法的設(shè)計是為了使計算時間與跨節(jié)點的數(shù)據(jù)通信重疊,這有助于實現(xiàn)良好的可伸縮性。

MySQL分析引擎與MySQL數(shù)據(jù)庫服務(wù)的集成為企業(yè)的所有OLTP和分析需求提供了一個單一的數(shù)據(jù)管理平臺。MySQL分析引擎被設(shè)計成一個MySQL可插拔存儲引擎,它完全屏蔽了存儲層的所有底層實現(xiàn)細(xì)節(jié),不讓最終用戶看到。用戶和應(yīng)用程序通過集群中的MySQL數(shù)據(jù)庫節(jié)點與MySQL分析交互。用戶通過標(biāo)準(zhǔn)工具和基于標(biāo)準(zhǔn)的ODBC/JDBC連接器連接到MySQL分析引擎。

MySQL分析引擎支持與MySQL相同的ANSI SQL標(biāo)準(zhǔn)和ACID屬性,并支持不同的數(shù)據(jù)類型。這使得現(xiàn)有的應(yīng)用程序無需對其應(yīng)用程序進行任何更改就可以利用MySQL分析引擎,從而實現(xiàn)簡單快速的集成。一旦用戶向MySQL數(shù)據(jù)庫提交查詢,MySQL查詢優(yōu)化器就會透明地決定是否將查詢卸載到分析集群以加速執(zhí)行。這是基于MySQL分析引擎是否支持查詢中引用的所有操作符和函數(shù)并且使用分析引擎處理查詢的估計時間比在MySQL中更少時,查詢將被下推到分析節(jié)點進行處理。處理之后,結(jié)果被發(fā)送回MySQL數(shù)據(jù)庫節(jié)點并返回給用戶。

由于MySQL分析引擎是一個內(nèi)存處理引擎,數(shù)據(jù)被持久化到MySQL InnoDB存儲引擎中。對表的任何更新都會自動實時地傳播到分析節(jié)點的內(nèi)存中。這使得后續(xù)查詢始終能夠訪問最新的數(shù)據(jù)。這是通過一個輕量級的更改傳播算法在后臺完成的,該算法可以跟上MySQL的數(shù)據(jù)更新率。同步原理未說明?

三、MAE能為我們帶來什么?

從產(chǎn)品角度來看,MySQL Analytics Engine是一種云原生服務(wù),專門在Oracle云基礎(chǔ)設(shè)施中提供,為分析工作負(fù)載提供了令人信服的性能和成本。使用MySQL數(shù)據(jù)庫管理企業(yè)數(shù)據(jù)的組織現(xiàn)在可以使用MySQL分析引擎運行分析查詢,性能顯著提高,成本更低,不需要ETL,并且支持實時分析。該服務(wù)可以只部署在云中,也可以部署在混合環(huán)境中,它簡化了事務(wù)和分析應(yīng)用程序的管理。從其推出產(chǎn)品上,可歸納為以下幾個理念:

ONE DB

這一產(chǎn)品最核心價值點就是統(tǒng)一處理場景。之前MySQL的在處理混合業(yè)務(wù)場景是不得不使用下面方式(如下圖):

通過引入MAE,增強MySQL能力,達到統(tǒng)一效果。

ONE SQL

第二個價值點在于,不僅僅是統(tǒng)一平臺,而且使用同樣的交互方式。原有的邏輯,不需要做任何的改變。無論是前端的事務(wù)交易場景,還是后端的數(shù)據(jù)可視化分析,均不需要做改變。這無疑對用戶的吸引力很大,可以有效保護用戶的已有軟件資產(chǎn)。

NO ETL

對用戶來說,不在需要關(guān)心數(shù)據(jù)同步的細(xì)節(jié),不需要編寫額外的ETL作業(yè)。這將大大減少用戶的負(fù)擔(dān)。

NO TUNING

在MAE之前,用戶如果想解決數(shù)據(jù)分析問題,無外乎兩種。要么在庫內(nèi)解決,要么在庫外解決。在庫內(nèi)解決的話,需要對MySQL做大量的優(yōu)化工作或者采取針對分析場景的存儲引擎,這些都帶來了優(yōu)化的工作量。對于庫外方案同樣如此,用戶需要自己完成優(yōu)化工作。

而使用MAE則不需要顧慮這點。其利用了Oracle實驗室開發(fā)的自動機器學(xué)習(xí)(AutoML)功能來自動化服務(wù)的各個方面。由于這種自動化是基于機器學(xué)習(xí)的,系統(tǒng)可以智能地預(yù)測各種場景并采取行動,包括自動估算工作負(fù)載所需的分析節(jié)點數(shù)量。

當(dāng)服務(wù)啟動時,需要將運行分析查詢的數(shù)據(jù)庫表加載到MySQL分析集群內(nèi)存中。所需集群的大小取決于加載所需的表和列,以及此數(shù)據(jù)在內(nèi)存中實現(xiàn)的壓縮。在傳統(tǒng)的配置中,用戶需要猜測集群的大小。由于空間限制,低估會導(dǎo)致數(shù)據(jù)加載或查詢執(zhí)行失敗。高估會導(dǎo)致不必要資源的額外成本。因此,用戶會不斷迭代,直到確定正確的集群大小,當(dāng)更新表時,這種大小估計就會變得不準(zhǔn)確。而MAE則可自動完成上述過程。

HIGH PERFORMANCE

MAE作為一種分布式、可伸縮、內(nèi)存型、混合列式查詢引擎,其通過內(nèi)存中的矢量化處理及大規(guī)模節(jié)點間和節(jié)點內(nèi)并行處理來極速性能。同時查詢處理已針對Oracle云基礎(chǔ)設(shè)施做了優(yōu)化,包括節(jié)點間網(wǎng)絡(luò)帶寬優(yōu)化等。通過上述能力,MAE提供了強大的分析能力。下面是針對其主要競品的性能對比。

  •  MySQL Analytics vs MySQL

  •  MySQL Analytics vs Amazon Aurora

  •  MySQL Analytics vs Amazon Redshift

LOW COST

使用帶有分析引擎的MySQL數(shù)據(jù)庫服務(wù)的成本取決于配置的分析節(jié)點的數(shù)量。分析集群的大小取決于數(shù)據(jù)集的大小和工作負(fù)載的特性。一個分析節(jié)點可以容納大約400GB的數(shù)據(jù)。當(dāng)客戶使用Analytics Engine遷移到MySQL數(shù)據(jù)庫服務(wù)時,他們的成本有望大幅降低。與Amazon Aurora和Redshift相比,MySQL分析引擎的成本是其成本的1/3。

EASY SCALE

MAE目前在一個集群中支持最多24個分析節(jié)點(上千個Core),處理能力約為10 TB的分析數(shù)據(jù)。10TB是在給定時刻可以填充到分析節(jié)點內(nèi)存中的大約數(shù)據(jù)量。MySQL數(shù)據(jù)庫中存儲的數(shù)據(jù)量沒有限制,客戶可以選擇從MySQL數(shù)據(jù)庫模式中加載哪些表或列到分析節(jié)點的內(nèi)存中。如果查詢不再需要這些表,用戶可以從內(nèi)存中刪除這些表,為其他數(shù)據(jù)騰出空間。

EASY USE

MAE將大量細(xì)節(jié)隱藏在后面,對于前端客戶來講使用非常簡單。只需要根據(jù)推薦大小配置分析集群、配置預(yù)加速查詢的對象、手工完成第一次加載。后面即可享受到分析集群帶來的加速能力。

通過查看執(zhí)行計劃,可以直觀看出是否使用了分析集群(下圖中的Using secondary engine RAPID)

此外,針對混合云場景(即無法將數(shù)據(jù)部署到云端的客戶),可以利用MySQL復(fù)制將本地MySQL數(shù)據(jù)復(fù)制到MySQL分析引擎,同樣不需要ETL。目前MAE僅在Oracle Cloud Infrastructure (OCI) Gen 2 hardware 平臺提供。

寫在最后

MAE的出現(xiàn),很好地彌補了MySQL原生在數(shù)據(jù)分析場景的短板。相信,這一特性將更加擴大MySQL的使用范圍,為其在更大規(guī)模、更為重要的企業(yè)化應(yīng)用鋪平道路。比較遺憾的是,MAE目前僅能在OCI中使用,目前國內(nèi)的廣大線下用戶還無法使用。 

 

責(zé)任編輯:龐桂玉 來源: DBAplus社群
相關(guān)推薦

2010-09-29 14:08:31

2010-04-26 14:10:44

虛擬化Xen

2014-07-02 09:45:10

MongoDB

2023-11-14 16:14:49

2021-02-25 23:57:09

數(shù)據(jù)分析大數(shù)據(jù)技術(shù)

2010-06-12 16:08:18

UML圖書館管理系統(tǒng)

2014-10-30 14:42:57

Android 5.0Google

2024-01-10 08:22:38

物聯(lián)網(wǎng)數(shù)據(jù)分析建模人工智能

2010-05-10 09:32:02

2009-09-27 10:03:53

Silverlight

2011-04-07 14:12:04

Firefox 5.0

2021-06-29 07:04:39

SQL數(shù)據(jù)視圖

2018-04-20 12:12:18

數(shù)據(jù)分析可視化數(shù)據(jù)挖掘

2020-03-27 10:28:51

數(shù)據(jù)分析消防安全大數(shù)據(jù)

2016-12-15 21:15:58

大數(shù)據(jù)

2015-08-19 13:50:19

數(shù)據(jù)分析

2015-08-27 09:41:01

app推廣appstore

2024-01-09 13:58:22

PandasPython數(shù)據(jù)分析

2017-04-28 08:13:08

大數(shù)據(jù)框架HDFS

2017-01-23 13:34:44

點贊
收藏

51CTO技術(shù)棧公眾號