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