背景:如题干所述,需要将一份数据导入到mongo数据库,减少项目依赖的数据源。

解决方案:

使用mongo自带的mongoimport工具。

首先在test库里创建一个空集合:【import_test】,起初用的导入指令如下:

[root@localhost mongodb]# ./bin/mongoimport --host 192.168.104.178: -u adminuser -p  --authenticationDatabase=admin  -d test -c import_test --fields=userid,serial,create_time --type csv -file csvToMongo.csv
--11T18::07.075+ connected to: 192.168.104.178:
--11T18::07.083+ imported documents

指令讲解:

  • --authenticationDatabase:测试集群使用了身份验证,需要在admin库里登陆后,才能操作
  • -d:集合所在的库
  • --fields:集合中的字段名

结果发现mongo的字段不能正常被创建,如下

只能换一种方式进行导入,后来发现将字段名称写到文件后,再导入就不会有问题,具体如下:

[root@localhost mongodb]# cat myfields.txt
userid
serial
create_time

myfields文件中保存了这三个字段,每行一个,然后执行导入命令:

[root@localhost mongodb]# ./bin/mongoimport --host 192.168.104.178: -u adminuser -p  --authenticationDatabase=admin  -d test -c import_test --fieldFile myfields.txt --type csv --file csvToMongo.csv
--11T18::06.894+ connected to: 192.168.104.178:
--11T18::06.903+ imported documents

结果如下:

最后贴上测试用的csv数据:

[root@localhost mongodb]# cat csvToMongo.csv
,,-- ::
,,-- ::
,,-- ::
,,-- ::
,,-- ::
,,-- ::
,,-- ::
,,-- ::
,,-- ::
,,-- ::
,,-- ::
,,-- ::
,,-- ::
,,-- ::
,,-- ::

 注意:最后的最后,我终于知道为什么字段名不正常了,和mongo的指令无关,只是第一个指令最后一个参数写的有误,file前面只有一个横杠“-”,如果写两个横杠,也一样有正确的结果,哈哈哈

./bin/mongoimport --host 192.168.104.178:17017 -u adminuser -p 112233 --authenticationDatabase=admin  -d test -c import_test --fields=userid,serial,create_time --type csv --file csvToMongo.csv

说完了。

补充一个json文件的导入指令

./bin/mongoimport --host 192.168.104.178:17017 -u adminuser -p 112233 --authenticationDatabase=admin --drop  -d test -c session_info --file jsonToMongo.json -j 10

-j,多线程跑,可以自定义
--drop,导入之前先清空表里所有数据

MySQL数据导入到Mongo的更多相关文章

  1. Sqoop将mysql数据导入hbase的血与泪

    Sqoop将mysql数据导入hbase的血与泪(整整搞了大半天)  版权声明:本文为yunshuxueyuan原创文章.如需转载请标明出处: https://my.oschina.net/yunsh ...

  2. 使用sqoop把mysql数据导入hive

    使用sqoop把mysql数据导入hive export HADOOP_COMMON_HOME=/hadoop export HADOOP_MAPRED_HOME=/hadoop   cp /hive ...

  3. MySQL数据导入导出方法与工具mysqlimport

    MySQL数据导入导出方法与工具mysqlimport<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office ...

  4. 使用MapReduce将mysql数据导入HDFS

    package com.zhen.mysqlToHDFS; import java.io.DataInput; import java.io.DataOutput; import java.io.IO ...

  5. 使用 sqoop 将mysql数据导入到hive表(import)

    Sqoop将mysql数据导入到hive表中 先在mysql创建表 CREATE TABLE `sqoop_test` ( `id` ) DEFAULT NULL, `name` varchar() ...

  6. 使用 sqoop 将mysql数据导入到hdfs(import)

    Sqoop 将mysql 数据导入到hdfs(import) 1.创建mysql表 CREATE TABLE `sqoop_test` ( `id` ) DEFAULT NULL, `name` va ...

  7. Logstash:把MySQL数据导入到Elasticsearch中

    Logstash:把MySQL数据导入到Elasticsearch中 前提条件 需要安装好Elasticsearch及Kibana. MySQL安装 根据不同的操作系统我们分别对MySQL进行安装.我 ...

  8. 使用sqoop将mysql数据导入到hive中

    首先准备工具环境:hadoop2.7+mysql5.7+sqoop1.4+hive3.1 准备一张数据库表: 接下来就可以操作了... 一.将MySQL数据导入到hdfs 首先我测试将zhaopin表 ...

  9. Logstash学习之路(四)使用Logstash将mysql数据导入elasticsearch(单表同步、多表同步、全量同步、增量同步)

    一.使用Logstash将mysql数据导入elasticsearch 1.在mysql中准备数据: mysql> show tables; +----------------+ | Table ...

随机推荐

  1. ZOJ 2132 The Most Frequent Number (贪心)

    题意:给定一个序列,里面有一个数字出现了超过 n / 2,问你是哪个数字,但是内存只有 1 M. 析:首先不能开数组,其实也是可以的了,后台数据没有那么大,每次申请内存就可以过了.正解应该是贪心,模拟 ...

  2. new命令简化的内部流程

    构造函数返回对象的一些问题: function fn(name,age){ this.name = name; this.age = age; //return 23; 忽略数字,直接返回原有对象 / ...

  3. Flex布局(CSS Flexbox)

    参考:Flex 布局语法教程 Flex布局是什么? Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局 注意:设为Fle ...

  4. 02:PostgreSQL Character Sets

    在利用postGIS导入shapefile文件到postgresql数据库的时候,老是提示字符串的问题,或者是乱码,试了好几种都不行,于是度娘之.... 使用默认的UTF8,提示信息是:建议使用LAT ...

  5. 20) maven 项目结构:all in one

    这是最常见的项目结构 垂直结构 也是初学者常用的 也是小项目常用的 优点 全部代码在一个项目里,一目了然. 结构简单易于理解 一开始时小巧 缺点 随之而来的缺点也十分明显 前端项目,后端项目,接口项目 ...

  6. C++类、继承、多态、虚函数

    一个比较好的虚函数例子 /****************************/ /* 作者:骆天 */ /* 时间:2018/1/26 */ /* 代码:多态的理解 */ /********** ...

  7. Design Principle

    原文地址:面向对象设计模式原则详解 http://blog.csdn.net/hguisu/article/details/7571617 程序员必备的七大面向对象设计原则(一) http://www ...

  8. python特殊方法定制类

    #coding:utf-8class RoundFloat(object): def __init__(self,val): assert isinstance(val, float),"v ...

  9. Python 7步机器学习

    http://python.jobbole.com/84108/ 由于我们要使用机器学习和科学计算的 packages ,这里建议安装  Anaconda.Anaconda 是一个可在 Linux , ...

  10. 关于 Keil uVision2 中文注释会显示不完整,字体不正常的问题

    在Keil中添加中文注释经常出现这样情况: ,注释文字不正常! 解决方案:Edit---->Option----->选择color&fonts选项卡中的Editor c Files ...