背景:如题干所述,需要将一份数据导入到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. Java,数据库中的数据导入到Excel

    private static void executeMethod(JobExecutionContext arg0) throws Exception{ try { TContrastService ...

  2. UVa 10163 Storage Keepers (二分 + DP)

    题意:有n个仓库,m个管理员,每个管理员有一个能力值P,每个仓库只能由一个管理员看管,但是每个管理员可以看管k个仓库(但是这个仓库分配到的安全值只有p/k,k=0,1,...),雇用的管理员的工资即为 ...

  3. 预装apk

    一般是在device/rockchip/ LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := LanguageSetLOC ...

  4. 16-margin的用法

    margin塌陷问题 当时说到了盒模型,盒模型包含着margin,为什么要在这里说margin呢?因为元素和元素在垂直方向上margin里面有坑. 我们来看一个例子: html结构: <div ...

  5. noip第4课资料

  6. 3D打印切片软件介绍

    熟悉3D打印的流程的人都知道,在建立了3D模型以后要就进行切片,但是什么是切片呢?切片实际上就是讲3D模型转化为3D打印机本身可以执行的代码,G代码,M代码. 3D打印流程 今天我们简要的介绍3款切片 ...

  7. SVN代码管理发布

    1.svn的独立模式应用 2.svn钩子的应用(例如:代码提交前的文件格式限制,大小限制,代码发布svn成功后的备份等等) 3.大型企业的代码发布流程 有一些制度流程.逻辑方案 4.业务变更管理

  8. Android-Java-同步方法-synchronized

    1.方法具有封装性: /** * 1.方法具有封装性: */ public void addMoney(double moneyAsset) { this.moneyAsset += moneyAss ...

  9. JavaScript中的工厂函数

    所谓工厂函数,就是指这些内建函数都是类对象,当你调用他们时,实际上是创建了一个类实例. 在学习jQuery的时候,我们经常会看到“工厂函数”这个概念,那么究竟什么是“工厂函数”呢?我们来看看概念,“所 ...

  10. Android .9 图片

    最初对 .9 图片不是十分理解,一些教程让人摸不到头脑. 最近重新研究终于明白了它的原理. 其实最重要的一点记住就可以了,就是 .9 图片的四条黑边的意义,每条黑边的意义都不一样: 顶部:在水平拉伸的 ...