實時 SQL 語句翻譯,推進企業數據庫產品信創國產化建設——Fast SQL Translate

  新聞資訊     |      2024-12-16 09:30 閱讀量:

  近年來,在信息技術快速發展的浪潮推動下,國產數據庫與開源數據庫迎來了高速發展期,它們很好地契合了國家信創戰略以及數據安全方面的要求。從商業數據庫向國產數據庫或開源免費數據庫進行管理軟件產品遷移,或者基于客戶實際需求構建能夠同時支持不同類型數據庫的應用體系,已然成為當前信息化行業發展的顯著趨勢。

  企業管理軟件

  然而,這一進程并非一帆風順。就拿常見的企業管理軟件來說,業務遷移并非簡單的數據和數據庫對象轉移,管理軟件中存在大量復雜業務邏輯、報表邏輯相關的 SQL 語句,這些語句在不同數據庫中的語法和語義存在明顯差異,這就使得實時等效轉換難度極大,開發人員需要花費大量時間去分析、調整。

  目前市面上支持多數據庫產品的方式有兩種:

  - 一種是大型軟件公司通過劃分產品線,為不同數據庫開發不同版本的軟件產品。這種方式需要同時維護多套不同數據庫版本的產品,延長了產品研發周期的同時還增加了投入成本。

  - 另一種是部分公司從產品規劃初期就定義自家的 SQL 語句規范,使用自定義的 SQL 子集來兼容不同數據庫的 SQL 版本。這就要求開發人員額外掌握一套不通用的 SQL 規范,增加了學習成本,并且在一定程度上限制了產品的功能拓展。

  由于產品邏輯復雜且有長期的歷史沉淀,國內傳統 ERP 行業的中小軟件公司大多都是以 SQL Server 或 Oracle 作為主要數據庫。如今,面對信創友好國產數據庫、自主可控開源數據庫的興起,這些企業陷入兩難:是推翻重來重新研發以適應新數據庫,還是嘗試同時支持多個不同數據庫版本?

  作為深耕 ERP 行業的軟件公司,深圳櫟偲信息技術有限公司(以下簡稱“櫟偲信息”)開辟出第三條路,成功研發出 Fast SQL Translate 這款 SQL 語句實時翻譯引擎,填補了 SQL Server 的聯機事務處理SQL語句向MySQL的聯機事務處理SQL語句實時語義無損轉換這一領域的空白,很快還將實現純國產數據庫(如達夢)、開源數據庫(如 PostgreSQL)以及商業數據庫(如 Oracle)等不同數據庫產品之間聯機事務處理語句的自由轉換。


Fast SQL Translate將 SQL Server語句轉換為MySQL語句操作演示

(Fast SQL Translate將 SQL Server語句轉換為MySQL語句操作演示)

  目前Fast SQL Translate 實時翻譯引擎已在物業行業資深數智化專家——深圳市極致科技股份有限公司的全線產品中裝配并得到深入應用,獲得了極佳的使用反饋。

  以往在涉及 SQL Server 向 MySQL 轉換時,開發人員往往需要手動編寫代碼來實現。如今借助該引擎,即使不了解兩種數據庫語言的差異,也能夠實現實時語義無損轉換,極大地削減了開發人員的學習成本,進而將更多精力與時間投入到核心業務邏輯的開發與優化之中。

  Fast SQL Translate 翻譯引擎的應用場景非常豐富:

  一、日常場景處理

  - 數據定義語句等效轉換

  涵蓋增刪改數據庫、表、字段類型、索引、視圖、函數、存儲過程、觸發器等,確保數據定義操作在不同數據庫間無縫轉換

  - 增刪改查語句等效轉換

  無論語句長度多長、嵌套多復雜,都能精準實現等效轉換,滿足各類數據操作需求

  - 函數等效轉換

  全部聚合函數、字符函數、日期函數、數學函數、Pivot 函數等可實現等效轉換,維持數據處理邏輯一致性

  - 窗口函數與Top語句等效轉換

  窗口函數、Top語句在跨數據庫時能準確轉換,保障數據查詢與分析的有效性

 增刪改查語句

 

  二、復雜場景處理

  - 特殊函數等效轉換

  Call、exec、execute、sp_executesql、Nullif、checkindent、col_length、object_id、dbreindex、scope_identity、ident_current 函數都能完成等效轉換,確保相關功能穩定運行

  - 動態 SQL 語句等效轉換

  利用拼接字符串構建的行轉列語句或任意復雜拼裝的動態 SQL 語句均可等效轉換,無需重新構思和編寫

  - 臨時表轉換與清理

  局部臨時表語句等效轉換,全局臨時表自動轉換為模擬一個 TempDB 數據庫管理的物理表,并配合定時任務清理過期臨時表,優化數據庫性能

  - 全局變量等效轉換

  全局變量@@Identity、@@rowcount的等效轉換,輔助開發人員準確獲取操作信息

 增刪改查語句

  三、邏輯與流程處理

  - 控制語句等效轉換

  條件判斷、普通循環、游標循環、遞歸循環、控制跳轉goto語句等都能順利在不同數據庫環境下轉換,保障程序邏輯完整重現

  - 錯誤處理等效轉換

  RaiseError函數、try.catch捕獲錯誤處理的等效轉換,保障系統面對異常能正確響應

  - SQL腳本中條件、循環等語句轉換處理

  針對 MySQL 和 SQL Server在條件判斷、循環語句使用場景差異,自動封裝臨時存儲過程進行轉換調用,調用完自動銷毀

  處理數據

  四、特殊場景處理

  - 元數據表查詢語句等效轉換

  針對sysobjects、sysindex、syscolumns、sysdatabases等元數據表查詢語句的轉換,便于準確知曉數據庫內部的構成情況

  - 復雜語句等效轉換

  With Rollup、For XML Path 語句轉換后,滿足數據統計與交換需求

  - 行級鎖語句等效轉換

  行級鎖With(updlock)語句轉換,在多數據庫協同工作場景下確保并發控制機制的有效性

  - 自定義函數調用轉換

  調用用戶自定義函數的語句能轉換輸出同名函數及適配后的函數參數組合,節省開發成本

 多數據庫協同工作

  Fast SQL Translate 實時翻譯引擎不僅使用便捷、轉化準確率高,而且轉化速度也很快。經測試,它轉換50行 SQL 僅需7毫秒,300行僅需35毫秒,1000行僅需100毫秒,5萬行僅需10余秒。

SQL語句轉換速度

  櫟偲信息 Fast SQL Translate 實時翻譯引擎為管理軟件中的不同數據庫產品的 SQL 語句實時轉換或同時支持多家數據庫產品提供了可行的路徑,不僅有效契合國家信創戰略與數據安全方面的要求,助力企業掙脫對單一數據庫的束縛,還大幅降低了客戶總體擁有成本。

  點擊下方鏈接免費體驗 Fast SQL Translatehttp://m.cheyooh.com/fastsqltranslate/