GBase新聞
Teradata遷移GBase 8a PoC實踐
隨著TeraData宣布退出中國市場,眾多用戶紛紛考慮正在使用的數據庫的遷移問題。數據庫遷移,考察的是數據庫廠商的配套工具、方法論、實施經驗,不僅僅要求轉換成功率高,轉換效率高,也要求轉換后可執行,執行結果要準確。近幾年,GBase完成了100+用戶TeraData等國外數據庫替換遷移,積累了多個項目的遷移經驗,以轉換高、精、準而收到合作伙伴或廠商的好評。
以2022年某金融用戶的POC測試為例:轉換內容包括DDL、視圖、批量Perl腳本,轉換的數量在PoC中也是算是偏多的,包括600多個DDL、視圖,超過100個Perl腳本。最終轉換成功率、轉換成功率均考核達標,DDL、視圖轉換成功率達到99% ,Perl腳本的轉換成功率要求達到85%,且即轉即用,不能做任何修改,轉完即跑,跑則能對。這種轉即用的遷移,做過數據庫遷移的廠商都知道這意味的什么,那種靠鋪眾多人力手動遷移的情況不能也不會發生在Teradata到GBase 8a遷移產品上。
數據庫系統遷移,包括如下的幾部分核心工作,從Teradata到GBase 8a的遷移也遵循此規則,主要步驟按照先后次序為:
從Teradata按照要求導出數據,導出要求數據的列分隔符、包圍符、空串與NULL值的區分、字符集等指標要提前規劃;
從Teradata數據庫對象的導出,包括DDL、視圖、函數等;
客制化GBase 8a的遷移工具,最大化覆蓋貼合于客戶特點的編寫語法寫作特點,最大化的提升轉換成功率,客制化時間可控制在3天到5天內完成。
在GBase側建立數據庫對象;
根據Perl腳本中的SQL語句,使用工具來重建數據分布鍵值,默認采用原Teradata中的index作為分布鍵;
導入GBase 8a從Teradata落地后的文本文件,并注意左空格的保留,注意日期的存儲格式,注意大小寫不敏感等信息;
遷移Perl腳本到GBase 8a;
遷移后處理結果Teradata于GBase 8a結果比對;
遷移到GBase 8a后性能極致性優化;
Teradata于GBase 8a的并行運行,確保穩定、數據無誤;
正式切換到GBase 8a,完成數據庫系統的遷移;
在本次的POC中,由于GBase 8a與Teradata的高度兼容性,涉及到遷移內容不多,如下面兩個部分的羅列,這些遷移都通過工具自動完成,遷移成功后,可直接運行。
DDL、視圖遷移
該部分遷移,主要包括表類型關鍵字的處理,字段類型的處理,字段約束、字符集的處理、以及Teradata其他DDL特殊數據處理內容,具體為:
表類型:CREATE [MULTI]SET TABLE直接改為CREATE TABLE,CREATE GLOBAL TEMPORARY TABLE改為GBase的物理表,CREATE VOLATILE TABLE 是SESSION級臨時表,改為GBase TEMPORARY表;
常見數據類型:99%可以通用,cHAR、VARCHAR、DATETIME、DATE、TIME、TIMESTAMP、DECIMAL、INT等;
字符集:遷移成統一的字符集,可以是GBK、UTF8等GBase支持的字符集,包括GBK、UTF8、UTF8MB4、GB18030等;
大小寫不敏感:關鍵字UPPERCASE、NO CASESPECIFIC直接去除并記錄表、字段信息,同時在腳本中對應字段的比較操作進行UPPER或者LOWER操作;
其他表信息:需要去除,包括FALLBACK、JOURNAL、CHECKSUM、MERGERBLOCKRATIO、FREESPACE等信息。
PRIMARY INDEX信息:轉化為GBase 8a的分布鍵;
COMPRESS壓縮信息:直接去除,改為表級的默認中度壓縮,不帶副本可以達到4.4倍壓縮;
TITLE注釋:改為COMMENT關鍵字;
腳本遷移
主要涉及語法、函數的處理,該去除的去除,該替換的替換,由于GBase 8a也是關系型數據庫,支持標準的SQL,所以超過90%的SQL語法可以不用任何修改而直接使用。包括如下內容:
缺少的函數:NVL2、RANK,其中NVL2函數用UDF函數替換,RANK改為RANK OVER,
替換的函數:CHAR、CHARACTER函數對應GBase 8a的Length函數,ZEROIF、IFZERO函數替換GBase的IFNULL、NULLIF,FORMAT的用法在TD中比較廣泛,遷移到8a時需要根據具體的不同用法進行對應修改。
排序順序及NULL空值的位置:
DESC:TD空排在最后面,GBase 8a空排在最前面(遷移時要加NULLS LAST)
ASC: TD空排在最前面,GBase 8a空排在最后面(遷移時要加NULLS FIRST)
日期格式化處理:主要用到GBase的DATE_FORMAT、STR_TO_DATE、DATE函數來處理,均可以通過轉換工具自動轉換。
別名依賴:目前GBase支持投影列中的別名,但對于WHERE條件、OLAP中的別名還需轉換工具進行替換。
總括上述技術遷移點,從Teradata到GBase的遷移,通過工具自動完成遷移后,即可完成差不多超過95%的工作量,再對極少數工具沒有覆蓋且語法特點毫無規律的內容進行手動修改完成整體遷移。基于豐富的遷移經驗及高精度的轉換工具,GBase 8a產品可以說在替換Teradata數據庫方面已經非常成熟,對于迫切替換Teradata的用戶可以隨時聯系GBase 8a,一流服務在等著你。
關于GBase 8a
GBase 8a是南大通用自主研發的,面向海量數據查詢分析應用領域的一款高性能國產分布式邏輯數據倉庫,用于滿足各個數據密集型行業日益增大的數據查詢、數據統計、數據分析、數據挖掘和數據備份等數據存儲、管理和處理需求,可用做數據倉庫系統、BI系統和決策支持系統的承載數據庫。產品主要應用在金融、電信、z政企、能源、安全等擁有海量業務數據的行業得到規模化應用。