前言:在云時代,開發(fā)者與企業(yè)需要怎樣的數(shù)據(jù)管理產(chǎn)品,一方面提升開發(fā)者的效率加速企業(yè)發(fā)展,另一方面又需要保障數(shù)據(jù)安全。NineData則是嘗試在兩者之間找到平衡,讓開發(fā)者能夠高效率且安全的完成企業(yè)內(nèi)部的數(shù)據(jù)管理,發(fā)掘企業(yè)數(shù)據(jù)價值。
百花齊放的數(shù)據(jù)時代
說“卷”并不合適,充分的競爭是可以給開發(fā)者/企業(yè)帶來實惠的,當(dāng)下的數(shù)字化也只是開始,潛力還非常巨大,所以,這里用了“百花齊放”來形容當(dāng)下的數(shù)據(jù)時代。這里用兩個“多”來具象化“百花齊放”這四個字。首先是云廠商多,這里簡單羅列了一下,就有十六家廠商之多。另外,數(shù)據(jù)庫也非常多,而且似乎還在變得更多。這里取了DB-Engines上10月份最新的數(shù)據(jù),該網(wǎng)站十月份一共統(tǒng)計了397個數(shù)據(jù)庫,這里列舉了其中的15到20個,一部分是這個全球這個流行度最高的數(shù)據(jù)庫,一部分是出現(xiàn)在DB-Engines榜單中的部分國產(chǎn)數(shù)據(jù)庫。
數(shù)據(jù)管理的挑戰(zhàn)與機遇
在這個百花齊放的數(shù)據(jù)時代,我們先看一下在數(shù)據(jù)管理場景下,有一些什么樣的挑戰(zhàn)。
在信息技術(shù)持續(xù)演進的過去幾十年里,已經(jīng)有一些傳統(tǒng)的、成熟的數(shù)據(jù)管理軟件和產(chǎn)品。這里列出來了一部分產(chǎn)品,包括Oracle Goldengate、Informatica、SharePlex等,我們自己也都比較熟悉,有些也用得很多。我們注意到,這些產(chǎn)于云時代之前的產(chǎn)品,并不能很好適應(yīng)當(dāng)下的環(huán)境。
第一,是權(quán)限管理非常困難。這些產(chǎn)品大部分是本地客戶端,而企業(yè)內(nèi)部的人非常多,開發(fā)人員少則是幾十,多則是幾百,要給每個人配置權(quán)限與賬號,管理起來其實非常困難。另外,當(dāng)用這些客戶端工具的時候,企業(yè)內(nèi)部操作審計也會非常困難。
第二,由于云廠商很多,數(shù)據(jù)會分布在不同的云廠商或者本地的IDC,此外,數(shù)據(jù)的種類也非常多,各種各樣的數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)流動也非常困難。而數(shù)據(jù)無法很流暢的流動起來,會導(dǎo)數(shù)據(jù)價值發(fā)現(xiàn)變得困難。
第三,使用這些工具產(chǎn)品的時候,對業(yè)務(wù)的穩(wěn)定性挑戰(zhàn)非常大。這些產(chǎn)品和工具,大多數(shù)都是由開發(fā)人員作為本地客戶端使用,并且直連數(shù)據(jù)庫,直接向數(shù)據(jù)庫發(fā)送SQL請求,如果某一條SQL語句的性能不好,就可能讓在線的數(shù)據(jù)庫變慢甚至崩潰,以致于無法正常提供服務(wù)。
第四,這些產(chǎn)品通常都需要自己安裝和部署,在現(xiàn)在這個時代,每家企業(yè)都在非??焖俸兔艚莸陌l(fā)展,企業(yè)需要將最重要的研發(fā)資源都投入到自己最核心的業(yè)務(wù)上,而不希望在基礎(chǔ)設(shè)施上花費過多的精力。所以,在這種情況下,這些軟件的部署、維護以及穩(wěn)定性的保障就會變得累贅。
NineData,全球領(lǐng)先的多云數(shù)據(jù)管理
這就是NineData(www.ninedata.cloud)產(chǎn)生的背景和原因,NineData要做的就是在這個多云時代,在這個數(shù)據(jù)庫百花齊放的時代,構(gòu)建全球領(lǐng)先的多云數(shù)據(jù)管理平臺。
那么我們先來整體的看看來NineData,它有哪些產(chǎn)品能力,以及它在企業(yè)的數(shù)據(jù)架構(gòu)中處于怎樣的一個位置。一般來說,一家企業(yè)可能會同時使用多家云廠商、本地IDC等環(huán)境下的多種不同的數(shù)據(jù)庫,在此之上,再構(gòu)建企業(yè)自己的數(shù)據(jù)平臺。
那么,通常數(shù)據(jù)都需要在多個環(huán)境之間互相流動,例如需要構(gòu)建容災(zāi)、跨云遷移、構(gòu)建只讀實例等。另外,數(shù)據(jù)有時候還需要在多個業(yè)務(wù)系統(tǒng)之間流動,例如,因為在線數(shù)據(jù)需要向搜索平臺流動,幫組企業(yè)構(gòu)建實時搜索等;在線的數(shù)據(jù)還需要向數(shù)據(jù)倉庫、大數(shù)據(jù)平臺流動,幫助企業(yè)構(gòu)建實時數(shù)據(jù)分析等。而數(shù)據(jù)在多個系統(tǒng)之間流動之后,為了保證數(shù)據(jù)質(zhì)量,還需要對數(shù)據(jù)進行驗證與對比。
在日常的開發(fā)與運營中,企業(yè)的開發(fā)人員、BI人員、業(yè)務(wù)運營人員、DBA等,可能因為在線數(shù)據(jù)分析、驗證、問題排查等,都需要對數(shù)據(jù)進行讀取與操作。
這就是我們今天發(fā)布的NineData平臺向企業(yè)所提供的能力,以及通過上面的大圖展現(xiàn)了他在企業(yè)數(shù)據(jù)架構(gòu)中的位置。從功能模塊上,NineData包括了四大塊,第一個是SQL開發(fā),第二是數(shù)據(jù)備份,第三是數(shù)據(jù)復(fù)制,第四是數(shù)據(jù)對比。
NineData SQL開發(fā)
首先,來看一下“SQL開發(fā)”產(chǎn)品。在企業(yè)內(nèi)部,也有許多傳統(tǒng)的開發(fā)工具和方案,例如DBeaver、Navicat、dbForge等,各個數(shù)據(jù)庫通常也會提供一些附帶的工具,例如MySQL Workbench這樣的產(chǎn)品。另外呢,部分云廠商也會有一些自己產(chǎn)品提供給企業(yè)使用。但在實踐中,我們遇到了一些問題。
第一,訪問權(quán)限管理通常比較困難。因為這些客戶端的工具都是由開發(fā)人員獨立使用,那么,誰可以訪問哪個數(shù)據(jù)庫,有哪些權(quán)限,整個的管理就會非常困難。第二,使用這些工具的時候,開發(fā)人員需要直接連到數(shù)據(jù)庫上來,那么如果編寫的SQL語句性能不好,則可能會對生產(chǎn)環(huán)境的數(shù)據(jù)庫產(chǎn)生重大影響,留下穩(wěn)定性隱患。第三,在數(shù)據(jù)安全日益重要的今天,這些產(chǎn)品,通常缺乏審計以及敏感數(shù)據(jù)保護等功能。另外,如果在企業(yè)內(nèi)部,禁止研發(fā)人員使用這些產(chǎn)品,將所有的數(shù)據(jù)查詢和數(shù)據(jù)處理的工作都交由DBA來執(zhí)行的話,那么對整個企業(yè)的研發(fā)效率會有非常大的影響。
我們來看一下NineData的“SQL開發(fā)”產(chǎn)品,怎么解決這些問題。首先,他提供了完整的SQL窗口功能,可以幫助企業(yè)內(nèi)部的所有開發(fā)人員去執(zhí)行在線的數(shù)據(jù)查詢,還支持完整的權(quán)限管理和審計日志等功能。這就讓開發(fā)者便捷的訪問在線數(shù)據(jù)的同時,又能保證安全。其次,它還支持“SQL任務(wù)”功能。通常為了保證生產(chǎn)環(huán)境的穩(wěn)定,很多的數(shù)據(jù)庫變更,需要在晚上或者凌晨去執(zhí)行,如果由DBA晚上執(zhí)行的話,一方面非常辛苦,另外,也非常容易出問題,那么,NineData的“SQL任務(wù)”就可以解決這些問題。使用該功能,研發(fā)人員或者DBA可以將自己的SQL變更定時的發(fā)布到生產(chǎn)環(huán)境,在這個發(fā)布的過程中,可以有多個審批的節(jié)點,由不同的人去把控風(fēng)險。
此外,“SQL開發(fā)”模塊還提供了表設(shè)計/表編輯功能,通過GUI式的交互,讓你很簡單的就可以去設(shè)計一個表,該功能支持的數(shù)據(jù)類型非常廣泛,對每一個數(shù)據(jù)類型的選項也支持的非常完整。第三,是支持敏感數(shù)據(jù)的管理。如果你打開了某個數(shù)據(jù)庫的敏感數(shù)據(jù)管理功能,它會自動去發(fā)現(xiàn)在這個實例中是不是有敏感數(shù)據(jù),如果有的話,那么當(dāng)用戶去查詢這個敏感數(shù)據(jù)的時候,默認(rèn)的會對這些數(shù)據(jù)進行遮掩保護,用戶需要額外的權(quán)限才能看到這些敏感數(shù)據(jù)。另外,這里支持的是列粒度的權(quán)限管理,當(dāng)用戶當(dāng)他只需要查某一列的時候,可以單獨申請某列的權(quán)限,另外所有的這些SQL查詢功能,都支持很好的權(quán)限管理和審計,幫助企業(yè)更好的保護線上數(shù)據(jù)安全的同時,也讓開發(fā)人員能夠更高效的去完成日常業(yè)務(wù)開發(fā)。
簡單的概括NineData SQL開發(fā)產(chǎn)品的常見使用場景如下。第一,在日常的業(yè)務(wù)開發(fā)中,用它去做SQL查詢與開發(fā)。第二,生產(chǎn)數(shù)據(jù)的直接查詢。另外,可以使用該功能去做生產(chǎn)變更的發(fā)布。NineData支持完整的權(quán)限管理、審計日志以及敏感數(shù)據(jù)保護等能力,可以非常好的保護企業(yè)的數(shù)據(jù)安全。
NineData數(shù)據(jù)備份和恢復(fù)
接下來,要介紹的是NineData的“數(shù)據(jù)備份和恢復(fù)”。
我們都說,現(xiàn)在是一個數(shù)據(jù)的時代,數(shù)據(jù)是企業(yè)最核心的資產(chǎn)。但是,數(shù)據(jù)安全卻面臨著諸多的挑戰(zhàn),并且,因為這些挑戰(zhàn)對于單個企業(yè)來說并不頻發(fā),所以讓這些安全挑戰(zhàn)看起來很隱蔽。這些挑戰(zhàn)包括了人為操作失誤、應(yīng)用程序錯誤、惡意軟件攻擊與勒索、硬件失敗以及其他的一些不可抗力等,都會給數(shù)據(jù)安全帶來風(fēng)險。此外,相比于其他類型數(shù)據(jù)的備份,數(shù)據(jù)庫的備份管理又更加復(fù)雜。備份數(shù)據(jù)庫通常需要將數(shù)據(jù)文件和日志文件一起備份,很多時候配置文件也要一起備份,有時候,即便是沒有正確備份配置文件,也會導(dǎo)致數(shù)據(jù)無法正常的恢復(fù)。另外,數(shù)據(jù)庫的種類繁多,也增加了其備份的復(fù)雜性,如果想構(gòu)建一個可以這個按時間點恢復(fù)的備份方案通常都比較復(fù)雜,想實現(xiàn)比較好的RPO和RTO保障并不容易。我們來看一下傳統(tǒng)的數(shù)據(jù)庫備份方案,看看有哪些優(yōu)點和缺點,這里列了一部分備份產(chǎn)品和方案,在我們實踐中發(fā)現(xiàn),這些方案要么就是顆粒度太大了,要么太小了。例如Cohesity、Rubrik,所提供的備份能力粒度就比較大,通常只適合文件備份或者虛擬機備份等。又如數(shù)據(jù)庫或者一些開源廠商所提供的單一的備份軟件,如XtraBackup、smydumper、以及每個數(shù)據(jù)庫自己提供的備份程序,他們的備份粒度又太小,他們通常只支持單個實例的備份。要構(gòu)建一個企業(yè)級的備份方案,還有哪些挑戰(zhàn)和問題?這里概括了幾個點,第一,如果要構(gòu)建一個完整的企業(yè)級備份方案,則需要做對應(yīng)的機房建設(shè)、存儲建設(shè)、網(wǎng)絡(luò)建設(shè)等,而且對這些基礎(chǔ)設(shè)施要求都很高,這帶來的初始成本就非常高,而且規(guī)劃建設(shè)的時間也非常長。第二,如果要構(gòu)建一個異地數(shù)據(jù)災(zāi)備的話,那么前面所說的這些成本和時間的投入又要翻倍。所以,總的來說,需要投入的時間、人力和金錢成本都非常高。
我們看一下NineData如何解決這些問題。首先,它的配置非常簡單,是一個SaaS化的服務(wù),一分鐘就可以完成整個的備份任務(wù)配置。第二,它可以達到RPO幾乎等于零的效果。另外,它的備份性能也會非常高,10分鐘可以完成100GB備份,可以滿足絕大多數(shù)線上備份的訴求。另外我們還提供了超越業(yè)界所有的產(chǎn)品,并且非常實用的功能,就是對數(shù)據(jù)備份的實時查詢。也就是說,在備份完成后,就立刻可以查詢到備份中的數(shù)據(jù),不需要去做恢復(fù)。這樣就可以很好的去驗證備份的有效性。第二,當(dāng)數(shù)據(jù)發(fā)生故障的時候,也不需要花費非常長的時間,先去做數(shù)據(jù)恢復(fù),就可以直接對歷史的數(shù)據(jù)進行查詢和恢復(fù)。
具體來說,該功能有如下模塊。第一,它可以提供數(shù)據(jù)備份的能力,包括全量備份、單表備份、結(jié)構(gòu)備份以及日志備份。第二,可以做對應(yīng)的恢復(fù),包括按時間點恢復(fù),且RPO接近于零。另外,可以支持實時的備份數(shù)據(jù)查詢,做快速的數(shù)據(jù)校驗,也可以做簡單的數(shù)據(jù)分析,這個是我們產(chǎn)品默認(rèn)自帶的功能,無需做任何的額外的配置。另外,它天然就支持全國數(shù)十個區(qū)域,可以選擇將數(shù)據(jù)拷貝到異地區(qū)域?qū)崿F(xiàn)跨區(qū)域的數(shù)據(jù)容災(zāi)。此外,還有失敗告警、周期性備份等相關(guān)功能。
再簡單的來看一下數(shù)據(jù)備份和恢復(fù)在企業(yè)內(nèi)部有哪些典型的使用場景。首先,可以用它快速的去構(gòu)建一個企業(yè)級備份的方案,具備高性能、按時間點恢復(fù)、快速查詢驗證等;第二,它可以幫助企業(yè)快速的構(gòu)建一個跨區(qū)域的備份,幫企業(yè)滿足等保等行業(yè)合規(guī)的需求。
NineData 數(shù)據(jù)復(fù)制
接下來,來看一下NineData的第三個產(chǎn)品:數(shù)據(jù)復(fù)制。
先看一下傳統(tǒng)的數(shù)據(jù)復(fù)制方案,它在當(dāng)下面臨著哪些挑戰(zhàn)。傳統(tǒng)的復(fù)制方案我這里列了幾個,例如Oracle GoldenGate、Informatica、SharePlex等,另一個國內(nèi)用戶用得比較多的是自建開源的Canal,此外,各個云廠商也會提供一些數(shù)據(jù)復(fù)制和流動的產(chǎn)品或者方案。
這些方案大多需要自己搭建,安裝配置成本通常都非常高。而且,由于數(shù)據(jù)庫本身運行的SQL,包括DDL、DML等,非常多也非常復(fù)雜,如果長時間運行這些方案,都容易遇到各種各樣的穩(wěn)定性問題。一般,這些方案對于新的數(shù)據(jù)庫或者新的版本支持都有一定的滯后,導(dǎo)致這些方案的長期穩(wěn)定性比較差。云廠商也提供了一些方案,但大多數(shù)“寬進嚴(yán)出“。使用這些產(chǎn)品時,從其他云遷移到過來會比較容易,但是如果想將數(shù)據(jù)遷出去,則會遇到各種各樣的限制甚至就直接不支持。
另外,同構(gòu)數(shù)據(jù)和異構(gòu)數(shù)據(jù)的適配通常都很困難。不同的數(shù)據(jù)庫由于其特性差異大,架構(gòu)原理也不一樣,數(shù)據(jù)類型也不同,這些都導(dǎo)致異構(gòu)數(shù)據(jù)復(fù)制困難,而這也就最終會阻礙企業(yè)去發(fā)現(xiàn)這些數(shù)據(jù)的價值。
NineData的數(shù)據(jù)復(fù)制產(chǎn)品,它是一個多云全托管的服務(wù),支持阿里云、騰訊云等國內(nèi)外主流的云廠商。另外,這是一個全托管服務(wù),只需做一些簡單的配置,就能擁有一個非常好的、長期穩(wěn)定運行的數(shù)據(jù)復(fù)制鏈路。NineData同時支持同構(gòu)和異構(gòu)復(fù)制,不管是MySQL到MySQL,還是MySQL到可ClickHouse,都可以支持的非常好。另外,它的性能也非常好,TPS可以支持到10萬,可以滿足企業(yè)絕大多數(shù)在線的數(shù)據(jù)復(fù)制訴求。下面這個架構(gòu)圖,就是數(shù)據(jù)復(fù)制所具備的主要的產(chǎn)品能力,包括遷移時預(yù)檢查、結(jié)構(gòu)和對象遷移,全量數(shù)據(jù)遷移,增量數(shù)據(jù)遷移,以及在整個數(shù)據(jù)完成復(fù)制之后,支持對兩端數(shù)據(jù)的對比和校驗。
數(shù)據(jù)復(fù)制底層使用了基于增量日志解析的技術(shù),可以讓線數(shù)據(jù)復(fù)制的同時,減少對生產(chǎn)庫性能的影響。NineData還支持庫/表/字段三級映射,很好的實現(xiàn)異構(gòu)場景下的數(shù)據(jù)復(fù)制。
企業(yè)最最常見的復(fù)制場景包括如下情況。最常見的應(yīng)該是OLTP到OLAP以及大數(shù)據(jù)之間的數(shù)據(jù)流動,比如說數(shù)據(jù)倉庫的構(gòu)建、數(shù)據(jù)湖的構(gòu)建、實時分析系統(tǒng)的構(gòu)建等。第二個比較常見的是OLTP與OLTP數(shù)據(jù)庫之間的數(shù)據(jù)流動。例如,需要構(gòu)建一個雙活的災(zāi)備,或者要從一個云廠商A遷移到云廠商B,或者需要構(gòu)建一個用于只讀的分析庫等。
另外還有一比較常見的場景是OLTP數(shù)據(jù)到其他的應(yīng)用系統(tǒng)的數(shù)據(jù)流動,例如到消息系統(tǒng)、搜索系統(tǒng)等,如果數(shù)據(jù)同步到消息系統(tǒng),其他業(yè)務(wù)系統(tǒng)就可以很好的對這些數(shù)據(jù)再做新的分析和處理。
我們相信讓數(shù)據(jù)更好的流動起來,就可以幫助企業(yè)更好的發(fā)現(xiàn)數(shù)據(jù)的價值。
NineData數(shù)據(jù)對比
最后,來看看NineData的數(shù)據(jù)對比。目前市面上有一些零散的數(shù)據(jù)對比產(chǎn)品,例如前面提到的Navicat、dbForge等,這些工具也支持?jǐn)?shù)據(jù)對比,但是有如下的問題,首先,它是一個客戶端的,它不能長時間的對在線的數(shù)據(jù)進行對比。第二,也因為是客戶端的原因,它的性能也非常有限,通常只適合于小數(shù)據(jù)量的對比,比如適用于幾千、幾萬的數(shù)據(jù)量。
但是,實際情況比較復(fù)雜。例如,通常每一家企業(yè)至少都有多套環(huán)境,包括開發(fā)測試環(huán)境、生產(chǎn)環(huán)境、預(yù)發(fā)環(huán)境、性能測試環(huán)境等,由于企業(yè)應(yīng)用迭代速度很快,所以要保障多套環(huán)境下的數(shù)據(jù)結(jié)構(gòu)一致就很難。第二,在海量的數(shù)據(jù)發(fā)生流動以后,數(shù)據(jù)不一致是非常常見的。第三,即便是在線實時同步的系統(tǒng),不管是數(shù)據(jù)庫的主備復(fù)制也好,或者是容災(zāi)復(fù)制也好,或者只讀復(fù)制也好,在這些動態(tài)復(fù)制的過程中,由于各種原因,也會出現(xiàn)一些數(shù)據(jù)不一致。
這些場景都可以使用”NineData數(shù)據(jù)對比”去解這。它有幾個大的功能模塊,包括結(jié)構(gòu)對比、全數(shù)據(jù)量對比,另外它可以支持快速對比和周期性對比等。
該功能在完成了數(shù)據(jù)或者結(jié)構(gòu)對比之后,可以快速的生成修復(fù)差異的DDL或DML語句,如果去目標(biāo)庫上執(zhí)行這些SQL,就可以讓兩個數(shù)據(jù)庫快速的達到一致的狀態(tài)。NineData還會根據(jù)數(shù)據(jù)庫本身的壓力進行并發(fā)度的自動降級,如果數(shù)據(jù)庫帶來的壓力太大,或者數(shù)據(jù)庫本身的壓力太大了的話,那么它就會自動降低對比的速度,從而優(yōu)先保障數(shù)據(jù)庫的穩(wěn)定。
我們來看看使用數(shù)據(jù)對比的常見場景。包括,前面提到的多環(huán)境下的數(shù)據(jù)結(jié)構(gòu)對比,以及在構(gòu)建了多活多區(qū)域容災(zāi)的時候數(shù)據(jù)一致性校驗,或者從IDC遷移到云上之后的數(shù)據(jù)一致性的對比。通過NineData的數(shù)據(jù)對比產(chǎn)品,可以更好的保障企業(yè)的數(shù)據(jù)質(zhì)量。
這是一個百花齊放的時代,在這之中,NineData致力于構(gòu)建于全球領(lǐng)先的多云數(shù)據(jù)管理平臺?,F(xiàn)在大家就可以登錄NineData官網(wǎng) www.ninedata.cloud 體驗完整的產(chǎn)品功能
關(guān)于作者
周振興,是NineData的聯(lián)合創(chuàng)始人,致力于解決云時代的數(shù)據(jù)管理挑戰(zhàn)。周振興是數(shù)據(jù)庫領(lǐng)域的一名老兵了,是Oracle ACE(MySQL方向),也是《高性能MySQL》第三、四版的譯者。2009年,加入了阿里數(shù)據(jù)庫團隊,在這個團隊供職12年,是阿里數(shù)據(jù)庫架構(gòu)演進的核心人員,從早期的去IOE,再到全面分布式支持歷屆的雙十一。之后,則在阿里云上將集團的數(shù)據(jù)庫技術(shù)全面云化,服務(wù)更多客戶。
-
SQL
+關(guān)注
關(guān)注
1文章
751瀏覽量
43990 -
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3739瀏覽量
64176
發(fā)布評論請先 登錄
相關(guān)推薦
評論