近日,MySQL 5.7停服事件引發(fā)廣泛關(guān)注。MySQL目前已經(jīng)成為中國(guó)用戶使用非常廣泛的數(shù)據(jù)庫(kù),其中5.7版本的用戶比重又是最高的。隨著信息技術(shù)應(yīng)用創(chuàng)新深入各行各業(yè),國(guó)產(chǎn)數(shù)據(jù)庫(kù)對(duì)MySQL的平滑替換成為大勢(shì)所趨。
作為數(shù)據(jù)庫(kù)領(lǐng)域國(guó)家隊(duì),人大金倉(cāng)以服務(wù)用戶為中心,率先加大對(duì)MySQL兼容性開(kāi)發(fā),目前對(duì)MySQL常用功能的兼容性已達(dá)到90%以上。此外KingbaseES對(duì)MySQL的兼容性,已從功能兼容階段過(guò)渡到強(qiáng)性能兼容、生態(tài)全面兼容階段,做到在遷移過(guò)程中對(duì)上層應(yīng)用透明,實(shí)現(xiàn)低成本、低難度、低風(fēng)險(xiǎn)的平滑遷移。
靈活擴(kuò)展的兼容架構(gòu)
KingbaseES在產(chǎn)品架構(gòu)上采用可插拔式的體系架構(gòu),可靈活擴(kuò)展,兼容多種生態(tài),兼容商業(yè)和開(kāi)源的外部接口協(xié)議,能夠支撐更多核心能力。
KingbaseES支持通過(guò)控制參數(shù)“initdb -m”切換兼容模式,可將數(shù)據(jù)庫(kù)設(shè)置為兼容MySQL模式。
全面完備的兼容能力
KingbaseES以內(nèi)核兼容為基礎(chǔ),通過(guò)初始化參數(shù)控制,兼容MySQL 數(shù)據(jù)庫(kù),在該模式下支持MySQL常用功能,兼容程度達(dá)90%以上。
數(shù)據(jù)類(lèi)型兼容
數(shù)據(jù)遷移中,數(shù)據(jù)類(lèi)型的兼容性作為最重要的一環(huán),KingbaseES不僅兼容MySQL所有常見(jiàn)數(shù)據(jù)類(lèi)型,還支持MySQL獨(dú)有的year類(lèi)型、interval類(lèi)型的復(fù)雜語(yǔ)法。
此外,KingbaseES還兼容enum類(lèi)型、set類(lèi)型,應(yīng)用中使用該類(lèi)型,可以減少字段的數(shù)量,減少存儲(chǔ)空間和成本,在查詢時(shí)利用緩存技術(shù)和索引能力提升查詢效率。這兩個(gè)類(lèi)型還提供強(qiáng)大的數(shù)據(jù)約束,保證數(shù)據(jù)的規(guī)范性和一致性,減少數(shù)據(jù)錯(cuò)誤的可能性。
函數(shù)和操作符兼容
數(shù)據(jù)庫(kù)應(yīng)用常用的MySQL函數(shù)和操作符,KingbaseES實(shí)現(xiàn)全部兼容。對(duì)于操作符,MySQL特殊的DIV、MOD、<=>,以及邏輯操作符KingbaseES都支持。對(duì)于常見(jiàn)函數(shù),尤其是MySQL特有的日期時(shí)間函數(shù),JSON函數(shù)達(dá)到全部覆蓋。
KingbaseES的JSON數(shù)據(jù)類(lèi)型允許存儲(chǔ)復(fù)雜的結(jié)構(gòu)化數(shù)據(jù),包括鍵值對(duì)、數(shù)組和嵌套對(duì)象。KingbaseES提供全面的JSON數(shù)據(jù)庫(kù)處理函數(shù),不僅全面兼容MySQL的函數(shù)語(yǔ)法,還擴(kuò)展了更豐富語(yǔ)法功能,這使得JSON在存儲(chǔ)和處理復(fù)雜數(shù)據(jù)方面更加靈活。
SQL語(yǔ)句兼容
SQL語(yǔ)句方面,對(duì)常用的DDL、DML、DQL語(yǔ)句的兼容度達(dá)到90%以上。特別是MySQL特有語(yǔ)法,例如DML語(yǔ)句中的LIMIT及ORDER BY子句限定用戶一次更新的數(shù)據(jù)條目或按照順序更新;COMMENT子句讓用戶在創(chuàng)建對(duì)象時(shí)就可以添加注釋;INSERT...SET和INSERT IGNORE INTO子句、多表JOIN的多表更新語(yǔ)法、直接操作分區(qū)表的數(shù)據(jù),插入語(yǔ)句等都在兼容語(yǔ)法的細(xì)節(jié)上做了增強(qiáng),例如省略into關(guān)鍵字,一次性對(duì)多表進(jìn)行更新。當(dāng)客戶的應(yīng)用過(guò)程引發(fā)數(shù)據(jù)庫(kù)存儲(chǔ)的數(shù)據(jù)變更時(shí),需要將數(shù)據(jù)定時(shí)同步到數(shù)據(jù)庫(kù)中,這時(shí)insert插入數(shù)據(jù)時(shí),可能發(fā)生主鍵/唯一鍵沖突,若想在沖突時(shí)變更為update語(yǔ)句,則可通過(guò)INSERT...ON DUPLICATE KEY UPDATE語(yǔ)句達(dá)成。
在數(shù)據(jù)庫(kù)中,主鍵是用來(lái)唯一標(biāo)識(shí)每條記錄的,而自增長(zhǎng)類(lèi)型可以為每個(gè)記錄分配唯一的標(biāo)識(shí)符。因此,將自增長(zhǎng)類(lèi)型應(yīng)用于主鍵列,可以方便地為每個(gè)記錄分配唯一的標(biāo)識(shí)符,在MySQL數(shù)據(jù)庫(kù)中可通過(guò)數(shù)據(jù)列的AUTO_INCREMENT屬性來(lái)達(dá)到此目的。KingbaseES也兼容該功能,可方便地為每個(gè)記錄分配唯一的標(biāo)識(shí)符,避免了手動(dòng)輸入主鍵的麻煩。
KingbaseES支持三種標(biāo)識(shí)符的表示方式,反引號(hào)、單引號(hào)、雙引號(hào)這三種符號(hào)括起來(lái)標(biāo)識(shí)符,其中帶反引號(hào)的標(biāo)識(shí)符是兼容MySQL特有的,用于區(qū)分保留字和普通字符,其使用規(guī)則完全兼容MySQL,為將應(yīng)用程序平滑遷移到KingbaseES做到更加細(xì)致入微的努力。
PLSQL兼容
在過(guò)程化語(yǔ)言的語(yǔ)法基礎(chǔ)、數(shù)據(jù)、游標(biāo)、動(dòng)態(tài)SQL、子程序、存儲(chǔ)過(guò)程/函數(shù)、觸發(fā)器等各方面,KingbaseES常用語(yǔ)法的兼容度也大大得到提升,達(dá)到90%以上。
客戶實(shí)際應(yīng)用中,通過(guò)計(jì)數(shù)器收集積分遇到的問(wèn)題,在某些高并發(fā)場(chǎng)景下常會(huì)出現(xiàn)積分統(tǒng)計(jì)遺漏的問(wèn)題,這類(lèi)問(wèn)題可通過(guò)用戶變量的方式解決。MySQL中的變量主要是用于保存臨時(shí)結(jié)果,并在不同語(yǔ)句中傳遞。KingbaseES兼容MySQL的用戶變量功能,在不同場(chǎng)景中,通過(guò)@變量來(lái)存儲(chǔ)中間結(jié)果、計(jì)算結(jié)果、過(guò)濾數(shù)據(jù)等。
輕松完成MySQL數(shù)據(jù)庫(kù)遷移
KingbaseES數(shù)據(jù)庫(kù)提供異構(gòu)數(shù)據(jù)庫(kù)和應(yīng)用SQL遷移評(píng)估系統(tǒng)KDMS以及簡(jiǎn)單、高效的一鍵遷移工具KDTS。通過(guò)這兩種工具,可以輕松完成MySQL數(shù)據(jù)庫(kù)遷移工作。
數(shù)據(jù)遷移評(píng)估系統(tǒng)KDMS通過(guò)智能翻譯技術(shù),無(wú)侵入業(yè)務(wù)應(yīng)用實(shí)現(xiàn)SQL采集、評(píng)估和轉(zhuǎn)換。每分鐘可處理20萬(wàn)行SQL/PLSQL代碼,短時(shí)間內(nèi)完成大規(guī)模MySQL數(shù)據(jù)庫(kù)遷移評(píng)估和智能轉(zhuǎn)換,提高遷移效率。降低遷移成本。KDTS數(shù)據(jù)庫(kù)遷移工具支持MySQL5.x、MySQL8.x全系列版本的一鍵遷移。支持多種復(fù)雜遷移任務(wù)配置,滿足多種數(shù)據(jù)遷移條件,實(shí)現(xiàn)多樣化遷移需求,使用多線程異步讀寫(xiě)機(jī)制,大大提升遷移效率,并提供詳細(xì)的MySQL遷移報(bào)告。
MySQL Workbench是MySQL官方提供的數(shù)據(jù)庫(kù)管理工具。KingbaseES數(shù)據(jù)庫(kù)自身也提供了功能強(qiáng)大的數(shù)據(jù)庫(kù)管理工具KStudio,可為數(shù)據(jù)庫(kù)開(kāi)發(fā)人員、DBA提供高效、高質(zhì)的數(shù)據(jù)庫(kù)開(kāi)發(fā)、調(diào)試、維護(hù)等各項(xiàng)功能。KStudio可進(jìn)行一站式數(shù)據(jù)庫(kù)管理,提供全功能SQL編輯器和PLSQL調(diào)試工具,進(jìn)行審計(jì)等數(shù)據(jù)庫(kù)安全管理,還支持?jǐn)?shù)據(jù)對(duì)比等高級(jí)功能。
此外,KingbaseES還提供全方位運(yùn)維監(jiān)控平臺(tái)KMonitor,可對(duì)服務(wù)器狀態(tài)、數(shù)據(jù)庫(kù)資源和數(shù)據(jù)庫(kù)性能、集群情況進(jìn)行全天候監(jiān)控和告警,使用戶全面掌握MySQL遷移服務(wù)器,遷移后的KingbaseES運(yùn)行情況、健康狀況,及時(shí)獲取異常信息并快速做出合理應(yīng)對(duì),保障數(shù)據(jù)庫(kù)及業(yè)務(wù)應(yīng)用安全。DBA用戶還可通過(guò)直觀豐富的數(shù)據(jù)庫(kù)性能報(bào)表,快速排查故障問(wèn)題以及進(jìn)行容量規(guī)劃。
目前,KingbaseES已在銀行、證券、保險(xiǎn)、泛金融機(jī)構(gòu)等細(xì)分領(lǐng)域打造了一系列替換MySQL數(shù)據(jù)庫(kù)的標(biāo)桿案例。經(jīng)過(guò)項(xiàng)目實(shí)戰(zhàn)中不斷測(cè)試和驗(yàn)證,人大金倉(cāng)確保產(chǎn)品的穩(wěn)定性和可用性,能夠高可用高性能高安全地支撐和保障用戶業(yè)務(wù)。未來(lái),KingbaseES不僅實(shí)現(xiàn)MySQL功能100%兼容,性能兼容還會(huì)更勝一籌,讓用戶的數(shù)字化之旅更簡(jiǎn)單!
為助力信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)高質(zhì)量發(fā)展,筑牢數(shù)據(jù)安全防線,人大金倉(cāng)特別策劃三大兼容系列文章,基于金倉(cāng)數(shù)據(jù)庫(kù)與Oracle常用功能100%兼容,與MySQL、SQLServer常用功能90%兼容,分享產(chǎn)品背后的技術(shù)原理和應(yīng)用情況,助力用戶無(wú)憂遷移,請(qǐng)持續(xù)關(guān)注我們!
相關(guān)稿件