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