1043
英雄联盟
数据导入和导出__最佳实践_分布式关系型数据库 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-阿里云