利用mongoimport命令导入csv大文件】的更多相关文章

最近我同事做了一个PHP项目,其中有一个功能是 上传excel文件并将数据导入mongodb某个集合中. 通常的做法是 写一个上传文件的页面,然后后端 读取 这个文件,利用phpexcel类库将这个excel文件中的数据读入到某个数组中, 然后循环写入monogodb的某个集合中. 经过实践成功搞定.文件小的时候一切OK,但是当上传的文件很大的时候,或者说数据量很大的时候, 上面的办法就发生问题了.有时候后端没有响应,有时候可以成功,但是一般需要很长的时间才能完成任务. 我们这边测试一下,上传一…
对于数百万条数据量的CSV文件,文件大小可能达到数百M,如果简单读取的话很可能出现超时或者卡死的现象. 为了成功将CSV文件里的数据导入数据库,分批处理是非常必要的. 下面这个函数是读取CSV文件中指定的某几行数据: /** * csv_get_lines 读取CSV文件中的某几行数据 * @param $csvfile csv文件路径 * @param $lines 读取行数 * @param $offset 起始行数 * @return array * */ function csv_get…
MYSQL导入CSV格式文件数据执行提示错误(ERROR 1290): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement. [1]分析原因 其实原因很简单,因为在安装MySQL的时候限制了导入与导出的目录权限.只允许在规定的目录下才能导入. 可以通过以下命令查看secure-file-priv当前的值是什么 SHOW VARIABLES LIKE "…
CSV大文件的读取已经在前面讲述过了(PHP按行读取.处理较大CSV文件的代码实例),但是如何快速完整的操作大文件仍然还存在一些问题. 1.如何快速获取CSV大文件的总行数? 办法一:直接获取文件内容,使用换行符进行拆分得出总行数,这种办法对小文件可行,处理大文件时不可行:办法二:使用fgets一行一行遍历,得出总行数,这种办法比办法一好一些,但大文件仍有超时的可能:办法三:借助SplFileObject类,直接将指针定位到文件末尾,通过SplFileObject::key方法获取总行数,这种办…
今天测试导入csv格式文件,虽然简单但是如果不注意还是会出现错误,而且mysql在某些方面做的确实对新手不是很友好,记录一下:创建一个csv格式文件:[mysql@xxx1 ycrdb]$ more /tmp/loaddata.txt 1,abc,abc@qq.com1,abc,abc@qq.com1,abc,abc@qq.com1,abc,abc@qq.com1,abc,abc@qq.com1,abc,abc@qq.com1,abc,abc@qq.com1,abc,abc@qq.com创建一个…
使用dd命令快速生成大文件或者小文件的方法     转载请说明出处:http://blog.csdn.net/cywosp/article/details/9674757     在程序的测试中有些场景需要大量的小文件或者几个比较大的文件,而在我们的文件系统里一时无法找到那么多或者那么大的文件,此时linux的dd命令就能快速的帮助你完成想要的文件.具体用法简单总结如下: 1. dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1…
使用dd命令快速生成大文件或者小文件 需求场景: 在程序的测试中有些场景需要大量的小文件或者几个比较大的文件,而在我们的文件系统里一时无法找到那么多或者那么大的文件,此时linux的dd命令就能快速的帮助你完成想要的文件.具体用法简单总结如下: 1.dd命令可以轻易实现创建指定大小的文件,如: dd if=/dev/zero of=test bs=1M count=1024 #生成一个1G 文件文件内容全为0 在当前目录下会生成一个1024M的test文件,文件内容为全0(因从/dev/zero…
注:这里说的大文件也不是太大,只有60多M而已(70多万条数据),相对比较大而已. 为了减轻编辑的工作,某种情况下网站上可能用会到csv格式的文件进行数据导入,但一般网站除了有上传文件大小限制以外,还有就是php脚本语言读取文件到内存一些以及写入到mysql中会超过最大范围.因此只考虑到用分割文件来实现.(当然偷懒就没有用到其他工具导入的方式了) 1.转换csv文件的到对应的编码.这个很多工具都可以做到. 2.在linux下分割文件:(表示按5000行分文件)# split -l 5000 ..…
将一个大文件分成若干个小文件方法 例如将一个BLM.txt文件分成前缀为 BLM_ 的1000个小文件,后缀为系数形式,且后缀为4位数字形式 先利用 wc -l BLM.txt       读出 BLM.txt 文件一共有多少行 再利用 split 命令 split -l 2482 ../BLM/BLM.txt -d -a 4 BLM_ 将 文件 BLM.txt 分成若干个小文件,每个文件2482行(-l 2482),文件前缀为BLM_ ,系数不是字母而是数字(-d),后缀系数为四位数(-a 4…
dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源) 但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢 在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘 则可以dd if=/dev/zero of=test bs=1M count=0 seek=100…
导入数据库有四种方法 1.宝塔网站自带的数据库导入 2.phpmyadmin导入 3.远程到linux服务器用导入命令 使用xshell进入到控制台 1.首先建空数据库 mysql>create database dbname ; 2.导入数据库 方法一: (1)选择数据库 mysql>use dbname ; (2)设置数据库编码 mysql>set names utf8; (3)导入数据(注意sql文件的路径) mysql>source /home/xxxx/dbname .s…
1. 导入csv文件 ### python导入csv文件的三种方法 ```python #原始的方式 lines = [line.split(',') for line in open('iris.csv')] df = [[float(x) for x in line[:4]] for line in lines[1:]] #使用numpy包 import numpy as np lines = np.loadtxt('iris.csv',delimiter=',',dtype='str')…
dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源). 但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢. 在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘. 则可以dd if=/dev/zero of=test bs=1M count=0 seek=…
前言 工作中经常遇到Linux系统磁盘空间不足,但是删除后较大的日志文件后,发现磁盘空间仍没有被释放,有点摸不着头脑,今天博主带大家解决这个问题. 思路 1.工作发现磁盘空间不足: 2.找到占用磁盘空间较大的文件进行删除: 3.删除文件后,查看磁盘空间使用情况,未释放: 4.找到相应delete进程,杀掉即可,问题解决. 具体操作 查看服务器磁盘空间使用情况 [root@i-3E5C86C8 ~]# df -h Filesystem Size Used Avail Use% Mounted on…
1.查看mysql容器 docker ps 比如我的是:94df84cbaaaa 2.复制sql文件到docker mysql里面的tmp文件夹 docker cp ./admin.sql 94df84cbaaaa:/tmp/ 3.然后进入docker mysql里面执行命令登录mysql docker exec -ti 94df84cbaaaa /bin/bash msyql -u root -p 回车输入密码 4.然后选择数据库 use admin; 5.执行命令导入 source /tmp…
前言 现在网上文件上传组件随便一搜都是一大堆,不过看大家一般都在用uploadify这个来上传文件.由于项目需要,我在来试了一下.因为第一次使用,也遇到了很多问题,特此记录! ----------------------------------我是分割线---------------------------------我是分割线--------------------------------------------------- 效果图: 启用批量上传开关 大文件上传时的webconfig配置…
转自:http://blog.csdn.net/think2me/article/details/12999907 1. 说说csv 和 Excel 这两者都是我们平时导出或者导入数据一般用到的载体.两者有什么区别呢?csv 格式更兼容一点.那么共同点都是GBK格式的,非UTF8.所以我们上传文件的时候,老是出现乱码,就是编码问题没有转好导致.   2. 推荐的几种方法 1. 函数 fgetss($handel);  返回字符串.它就是strip_tags(fget($handel))的组合读取…
    安装之后没有my.ini配置文件怎么办,因为自己安装的是zip压缩版的mysql,所以再5.7之后就没有my.ini配置文件,所以有时候需要去自己创建一个叫my.ini的配置文件,但是特别 要注意:如果你之前的数据库中有非常重要的表,那一定要先备份好,之后再去删除data和Mysql服务,具体的步骤如下:   系列目录 一.安装MySql 二.安装并破解Navicat 三.没有my.in配置文件怎么办 四.设置MySql的大小写敏感 五.重置MySql登陆密码 之前说过,Windows操…
<?php $db_host="192.168.1.10"; $db_user="root"; $db_psw="11111"; $db_name="csvimport"; $conn = mysql_connect($db_host,$db_user,$db_psw) or die("Connection occur error"); mysql_select_db($db_name,$conn)…
有时候会遇到这样的需求,比如log日志文件,这个文件很大,甚至上百M,需要把所有的日志拿来做统计,这时候我们如果用单进程来处理,效率会很慢.如果我们想要快速完成这项需求,我们可以利用Linux的一个利器split,先根据这个文件的总大小.总行数,来按照一个比例来分割,在根据分割的文件数量,fork出一定比例合适的子进程数量分批处理,那么效率可想而知. linux的split可以看这篇文章来学习测试下Centos文件切割利器_split命令及cat命令合并文件 //shell # split -l…
这是一个“”数据大发现”的时代,大家都在创造数据,使用数据以及分享数据,首先一步我们就需要从数据库download我们需要的数据. Ftp是一种常见的在线数据库,今天介绍一种可以批量下载文件夹的方法,也是shell中常常用到的wget命令: GNU Wget ,非交互式的网络文件下载工具. 用法: wget [选项]... [URL]... 长选项所必须的参数在使用短选项时也是必须的. 启动: -V, --version 显示 Wget 的版本信息并退出 -h, --help 打印此帮助 -b,…
导出数据库 直接使用命令: mysqldump -u root -p abc >abc.sql 然后回车输入密码就可以了: mysqldump -u 数据库链接用户名 -p  目标数据库 > 存储的文件名 文件会导出到当前目录下 导入数据库(sql文件) mysql -u 用户名 -p  数据库名 < 数据库名.sqlmysql -u abc -p abc < abc.sql 注意sql文件必须在当前目录下,如果不在当前目录下需要在< 之后加上具体sql文件路径…
导出数据库 直接使用命令: mysqldump -u root -p database >database.sql 然后回车输入密码就可以了: mysqldump -u 数据库链接用户名 -p  目标数据库 > 存储的文件名 文件会导出到当前目录下 导入数据库(sql文件) mysql -u 用户名 -p  数据库名 < 数据库名.sqlmysql -u abc -p database < database.sql 注意sql文件必须在当前目录下,如果不在当前目录下需要在<…
今天从qwiklab实验获取一组数据,大概有5万条,在qwiklab实验室使用的是pgsql数据库,但是今天想把他插入本地的mysql数据库中. 1.首先是查看一下数据内容: 数据中有的是空值,有的是boolean类型的值.那我们就要想想怎么插入数据库了. 2.我们先在mysql中建表. 建表语句比较长,一共有18个字段. 这里说一下:因为一开始是将数据中的“true”和“false”的数据插入到Mysql的boolean类型中,但是出现了50万条的警告,平均一条数据就10个警告.出现警告的原因…
引自:https://dba.stackexchange.com/questions/83125/mysql-any-way-to-import-a-huge-32-gb-sql-dump-faster innodb_buffer_pool_size = 4G innodb_log_buffer_size = 256M innodb_log_file_size = 1G innodb_write_io_threads = 16 innodb_flush_log_at_trx_commit = 0…
http://blog.csdn.net/johnnycode/article/details/7413111 今天遇到 Oracle 导出的12万条CSV格式数据导入 Android Sqlite 中 ,整个流程记录下,分享一下,因为处于考虑数据保密问题,下列数据都为 Demo 数据. 1.首先需要将 CSV  文件处理下字符集的问题 ,众所周知 sqlite 默认字符集 UTF-8 ,涉及中文的地方如果不设置那么导入sqlite的数据将会乱码. 右键选择 CSV 文件,打开方式为 记事本 ,…
功能描述:利用VBScript脚本创建csv/txt文件 有时需要将PLC或运动控制器Simotion中的数据写到SD卡或U盘上.一种实现方法是,如果使用的是精致面板(comfort panel),可以使用vbscript生成脚本. 软件 TIA Portal V14sp1, Wincc professional V15sp1 硬件 一个西门子 TP1200触摸屏 (wince系统),其它西门子comfort panel也可以 此功能不能使用Wincc模拟器执行,需要有真实的触摸屏 Wince…
Mac系统下利用ADB命令连接android手机并进行文件操作 标签: Mac adb android 2016-03-14 10:09 5470人阅读 评论(1) 收藏 举报  分类: Android(5)  获取序列号: adb get-serialno 查看连接计算机的设备: adb devices 重启机器: adb reboot 重启到bootloader,即刷机模式: adb reboot bootloader 重启到recovery,即恢复模式: adb reboot recove…
以前创建文件我一般用dd来创建,例如创建一个512M的文件: dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源) 但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢 在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘 则可以 dd if=/dev/zer…
Git仓库删除大文件 背景 当用Git久了,难免会手误或临时添加一些大文件到仓库中,即使以后添加进了.gitignore,甚至做了git rm,但是Git为了保证版本可回退,history pack里面依然会存储这些对象,这个时候我们就要为Git仓库进行瘦身. 或者不是大文件的情况,有时我们需要删除掉一些敏感信息文件,比如password.txt,即使回退也无法找到敏感文件,要实现这个要求,也要对history pack进行清理. 清理主要做如下一些事情: 寻找想要彻底清理的文件路径 查询这个文…