數據導入和導出__最佳實踐_分布式關係型數據庫 DRDS-阿裏雲
小數據量導入
數據量較小(千萬級別),且不需要增量的一次性數據導入,或者以測試兼容性為目的導入一些數據。推薦直接使用Mysql source或Navicat進行單線程遷移,或者手寫代碼多線程batch將數據寫入DRDS。
單線程導入數據,其劣勢是導入的速度會比較慢,無法發揮分布式數據庫非常高的係統並行度優勢,但實際使用相當方便。例如,使用mysql source命令導入數據:https://www.blogjava.net/hh-lux/archive/2007/05/05/115419.html 或使用navicat進行xxx.sql 或xxx.csv的數據導入
大數據導入
DRDS在數據散列均衡的時候是可以充分發揮下層存儲100%的讀寫能力的,您可以不用擔心。如果希望使用自己的數據進行寫入性能驗證,那麼我們建議您使用batch 方式進行寫入(同時多線程讀取效果更佳),如用java,可以使用jdbc api中有batch提交sql的接口,代碼如果要實現高效必須在jdbc url中加入參數rewriteBatchedStatements=true(代碼片段使用druid數據源 https://github.com/alibaba/druid ),允許mysql connector將多條insert語句 合並成multi values格式的一條insert語句提交給mysql server執行,並且需要是PrepareStatement執行sql。具體原理分析可以參考: https://www.cnblogs.com/xhan/p/3958521.html
代碼示例:
//連接設置和創建
ds = new DruidDataSource();
ds.setUrl("jdbc:mysql://" + c.getHost() + ":" + c.getPort() + "/" + c.getSchema());
ds.setConnectionProperties("autoReconnect=true;socketTimeout=600000;rewriteBatchedStatements=true");
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUsername(c.getUser());
ds.setPassword(c.getPassword());
ds.setMaxActive(16);
ds.setMaxWait(5000);
ds.init();
//數據導入代碼
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class BatchedInsertDemo {
public static void doBatchedInsert(Connection conn, int batchSize, int insertCount) throws SQLException {
PreparedStatement ps = conn.prepareStatement("insert into Test (name,gmt_created,gmt_modified) values (?,now(),now())");
for (int i = 0; i < insertCount; i++) {
ps.setString(1, i+" ");
ps.addBatch();
if((i+1) % batchSize == 0) {
ps.executeBatch();
}
}
ps.executeBatch();
ps.close();
}
}
DRDS對於數據導入的支持
對於應用正式上線,我們有專用的工具進行數據遷移。這種情況下通常需要準備一台或多台遷移機,具體部署方式根據用戶數據庫的網絡情況分為兩類:
1) 如果用戶數據庫可以從雲內直接訪問,此時推薦使用ECS作為遷移機器。由於ECS到DRDS通過內網傳輸數據,帶寬很高,同時ECS的公網帶寬可以彈性升級,可以使得數據遷移的效率達到最優。為了降低上雲的成本,我們已經部署好了一些專門用於遷移的ECS,一般情況下不需要額外準備。
2) 某些案例中出於安全或其他方麵的考慮,用戶網絡能夠訪問到阿裏雲,而阿裏雲環境中的機器無法訪問用戶網絡。這種場景下需要將遷移程序部署在用戶的機器上進行數據遷移。
數據導出
DRDS支持導出數據(mysqldump命令),也可以從DRDS控製台直接跳到底下數據節點RDS的控製台進行數據庫備份並下載備份文件。具體步驟參見 https://help.aliyun.com/view/13440586.html
最後更新:2016-11-23 17:31:29
上一篇:
應用連接池選擇__最佳實踐_分布式關係型數據庫 DRDS-阿裏雲
下一篇:
SQL優化__最佳實踐_分布式關係型數據庫 DRDS-阿裏雲
JSON日誌__常見日誌格式_用戶指南_日誌服務-阿裏雲
遷移 RDS for SQL Server 數據到本地 SQL Server__數據遷移_用戶指南_雲數據庫 RDS 版-阿裏雲
屬性值類型__語義表示協議_自然語言理解(NLU)_智能語音交互-阿裏雲
SignatureItem__數據類型_API_API 網關-阿裏雲
多版本 Python 使用說明__用戶指南_E-MapReduce-阿裏雲
SetLoadBalancerHTTPListenerAttribute__Listener相關API_API 參考_負載均衡-阿裏雲
批量添加域名解析記錄__批量管理接口_API文檔_雲解析-阿裏雲
耗資源(客戶程序故障)停權通知及相關問題匯總__網站訪問異常_技術分享_雲虛機主機-阿裏雲
雲計算服務價格仍未觸底 阿裏雲部分企業級服務器降價35%
FileZilla使用手冊__網站上傳/下載_使用指南_雲虛機主機-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲