背景:如题干所述,需要将一份数据导入到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. php 16进制颜色代码转换为rgba,rgb格式

    <?php $rgb = hex2rgba('#FFFFFF', false, true); echo 'rgb: '.$rgb[0].','; echo $rgb[1].','; echo $ ...

  2. python.csv 按行按列读取

    参考:https://blog.csdn.net/ly_ysys629/article/details/55107237 # header=0,表示文件第0行为列索引 # index_col=0,表示 ...

  3. 微信小程序踩坑集合

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...

  4. IP和网段及子网掩码基础知识

    IP地址由网络号和主机号两部分组成,网络号的最高位必须是"0",IP地址和子网掩码求"与"算出网络地址,只有网络地址相同才可直接通信,否则需要借助路由. 主机标 ...

  5. spring整合quartz时间任务调度框架

    spring整合quartz框架 1.创建maven工程 2.导入jar包(pom.xml) <dependencies> <dependency> <groupId&g ...

  6. (最优m个候选人 和他们的编号)Jury Compromise (POJ 1015) 难

    http://poj.org/problem?id=1015   Description In Frobnia, a far-away country, the verdicts in court t ...

  7. hdu1258

    给你两个数t,n 接下来输入n个数字 让你输出所有数字相加等于n的组合 4 6 4 3 2 2 1 1 t n 4 3+1 2+2 2+1+1 Sample Input 4 6 4 3 2 2 1 1 ...

  8. VirtualBox 安装 CentOS6.5 教程

    VirtualBox安装 CentOS6.5教程 1.选择第一个进行安装 2.选择右面的 skip 进入安装 3.点击next 4.选择中文简体 5.选择美式键盘 6.选择第一个 7.输入主机名 8. ...

  9. 如果datanode连接不上namenode,导致datanode无法启动。

    如果datanode连接不上namenode,导致datanode无法启动. 问题:  ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: j ...

  10. Python基础的练习

    ---恢复内容开始--- 简单输入输出交互. >>> name='Jame' >>> print('Hi,%s.'%name) Hi,Jame. >>& ...