Hologres支持多種方式的導入導出,如數據集成、Holo Shipper、跨庫查詢等,提供非常方便快捷的數據傳輸功能,在實際應用場景中經常有Hologres實例之間數據互訪遷移的情況。本文為您介紹Hologres實例間數據遷移最佳實踐。
Hologres實例間全量數據遷移
將一個實例的全量數據遷移至另外一個實例,可以使用Hologres提供的遷移工具Holo Shipper,只需要一個命令語句,即可簡單方便實現全量數據遷移操作,詳情請參見Holo Shipper。
說明
如果實例中的數據量較大,如TB級別或者以上的數據量,建議不要使用Holo Shipper,否則會因為ECS帶寬不足等原因導致數據傳輸時間過長。超大數據量的遷移建議重新從數據來源端寫入至Hologres另外一個實例。
遷移全量數據包括賬號、權限等,代碼示例如下:
$ java -jar holo-shipper.jar -s holo -h xx.xx.xx.xx -p xxxx -u username -w password -d holo -h xx.xx.xx.xx -p xxxx -u username2 -w password2 -l ship_list_json_path
ship_list_json_path
中JSON的內容如下。
[
{
"dbName": "DB",
"shipList": {
"schema1": ["*"],
"schema2": ["*"]
}
}
]
Hologres實例間部分表的全量數據遷移
將實例的部分表全量數據遷移至另外一個實例,也可以通過遷移工具Holo Shipper實現,只需要一個命令語句即可實現數據遷移,操作簡單方便。如下示例將一個Hologres實例中的某些表遷移到另一個Hologres實例中,保留源表Owner和權限,代碼示例如下:
將一個Holo實例中的某些表ship到另一個Holo實例中,保留源表owner和權限,不同步與這些表無關的用戶
$ java -jar holo-shipper.jar -s holo -h xx.xx.xx.xx -p xxxx -u username -w password -d holo -h xx.xx.xx.xx -p xxxx -u username2 -w password2 -l ship_list_json_path --no-all-roles
ship_list_json_path
中JSON的內容如下(不需要遷移的表,配置遷移blackList
,則不會被遷移)。
--遷移table1和table2表的全量數據,不遷移table3表的數據
[
{
"dbName": "DB1",
"shipList": {
"schema1": ["*"],
"schema2": ["table1", "table2"]
},
"blackList": {
"schema1": ["table3"]
}
}
]
下載超過10000行的數據
HoloWeb、DataStudio的Hologres SQL模塊僅支持10000行以內的數據下載,如果要下載超過10000行的結果集,建議使用COPY
命令語句將數據先導入至OSS,再下載,詳情請參見導出至本地文件。
文檔內容是否對您有幫助?