亞信安慧AntDB資料並行載入工具的實現(二)

亞信AntDB資料庫發表於2024-02-29

3.功能性說明

本節對並行載入工具的部分支援的功能進行簡要說明。

1) 支援表型別

並行載入工具支援普通表、分割槽表。

2) 支援指定匯入欄位

檔案中並不是必須包含表中所有的欄位,使用者可以指定匯入某些欄位,但是指定的欄位數要和檔案中的欄位數保持一致。

3) 支援匯入部分記錄

並行載入工具支援指定Where條件,只將符合條件的記錄匯入到資料庫中。

4) 自動生成序列欄位值

本工具支援自動生成序列欄位值,有些表的欄位設定了Default值為序列,使用者可能需要資料庫自己生成,並沒有包含在檔案中。

當該欄位為非分片鍵時,我們可以使用資料庫自有的功能,在插入時自動生成該欄位值。但是當該欄位為分片鍵時,我們需要先在載入工具中生成該值,然後根據該值進行分片,插入到對應的DN節點。

5) 無分片鍵檔案匯入

當檔案中不包含分片鍵,並且沒有Default值時,載入工具將該欄位置為Null計算並插入相應節點。

6) 觸發器

當匯入的表包含觸發器時,並行載入工具並不會做特殊的處理,當觸發器涉及非本資料節點時,並行載入工具並不支援。例如一個表的觸發器,該觸發器會插入另外一張表,但是該表分片與原表不同,此時將會涉及多個資料節點。

7) 不支援輔助表

AntDB有輔助表功能,用來最佳化SQL語句的效能,該表中存放資料表的相應資料。當資料表有輔助表時,並行載入工具只能將檔案匯入到資料表,並不會修改相應的輔助表。

8) 支援編碼轉換

並行載入工具支援資料編碼轉換,在檔案中資料和資料庫的編碼不同時,工具會對檔案中資料編碼的轉換之後再插入資料庫。

4.效能

並行載入工具相比Copy命令,有效提升了資料載入的效率。由於表欄位的個數、型別及資料的不同,並行載入工具相對Copy命令所提升的倍率並不完全相同。下面以TPCC的資料匯入進行效能的對比。

1000倉的資料,需要匯入到表Bmsql_Stock的記錄有1億條,資料檔案Stock.csv檔案的大小為29GB。測試的AntDB叢集有2個DN主節點。在此場景的測試中,載入效率提升了7倍左右,載入速度對比圖如下所示:

Bmsql_Stock表結構如下:

5. 總結

本文介紹了AntDB並行載入工具的實現方式和使用方法,透過多執行緒的方式實現並行處理檔案資料,並載入到AntDB資料庫,有效提升了載入的效率。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70026696/viewspace-3007746/,如需轉載,請註明出處,否則將追究法律責任。

相關文章