首页 分类 关于我
ruby
Nginx 配置示例 工程师的产品观 理理File/Dir/Pathname(一) TracePoint介绍 ruby中的return 如何动态改变某个class的祖先链 ObjectSpace介绍 Rails日志实现探索(3) Rails日志实现探索(2) Rails日志实现探索(1) Rails中的request rescue exception in ruby 设计模式之观察者模式 require 的故事 ruby中的编码 研究ruby的一些小技巧 Rails中间件 ruby对象的序列化 ActiveSupport宝藏之MessageVerifier 如何写rakefile Ruby on Rails 环境及准备 基于Rack的项目初始化
git
如何移除某次提交之前的版本历史 Git 不常用的好用的命令 Git高级技巧之忽略文件
database
Mysql数据库编码 从mongodb向mysql迁移数据
工具
搭建ipsec服务
linux
Linux 常用查看命令

从mongodb向mysql迁移数据

数据迁移指南

从mongodb导出csv格式数据

  • 命令:mongoexport

    参数

  • -d: 指定数据库,-d status_dev
  • -c: 指定collicitons,-c users
  • -q: 指定查询条件,注意条件中出现的$符号需要转义\$
  • --csv: 导出为csv格式
  • -f: 指定导出的列,csv必须,-f user_key,token,user_behavior._id
  • -o: 指定导出文件及位置,-o ~/work/users.csv

完整示例:

mongoexport \
-d status_dev \
-c users \
-q "{'user_behavior.current_thin_plan_milestone': {'\$ne': null} }" \
--csv \
-f user_key,user_behavior.current_thin_plan_milestone,user_behavior.thin_plan_milestone_completed_on \
-o ~/work/users.csv

导入csv格式数据至mysql

load data infile '~/work/users.csv'   -- 为了安全,如果文件路径为根路径,需要使用load data local infile
into table users
fields terminated by ','  -- 字段之间以逗号分隔
fields enclosed by '"'  -- 字符串以半角双引号包围
fields escaped by '"'  -- 字符串本身的双引号用"转义,即用两个双引号表示,也有用\转义
lines terminated by '\r\n'  -- 数据行之间以\r\n分隔
ignore 1 lines;  -- 另外,第一行标题行需要单独设置。

里面最关键的部分就是格式参数,这个参数是根据RFC4180文档设置的,该文档全称Common Format and MIME Type for Comma-Separated Values (CSV) Files,其中详细描述了CSV格式。

© 2018 www.xinshengyin.com All rights reserved.

版权所有