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