背景 写这篇文章主要是介绍一下我做数据仓库ETL同步的过程中遇到的一些有意思的内容和提升程序运行效率的过程. 关系型数据库: 项目初期:游戏的运营数据比较轻量,相关的运营数据是通过Java后台程序聚合查询关系型数据库MySQL完全可以应付,系统通过定时任务每日统计相关数据,等待运营人员查询即可. 项目中后期:随着开服数量增多,玩家数量越来越多,数据库的数据量越来越大,运营后台查询效率越来越低.对于普通的关系型来说,如MySQL,当单表存储记录数超过500万条后,数据库查询性能将变得极为缓慢,而往…
http://afei2.sinaapp.com/?p=456 今天在线上使用mysqldump将数据表从一个库导入到另外一个库,结果速度特别慢,印象中有个多线程的数据导入导出工具Mydumper,于是简单的调查和测试一下. 下午导数据的过程中,这个表是没有更新的,因此不需要确保多个数据之间的一致性,就简单的写个shell脚本启动多个mysqldumper来导数据,这样有几个问题: 需要处理表数据大小不均匀的问题,有的会很快结束,有的会比较慢. 如果需要保证多个导出之间的一致性时,则无法保证.…
哈喽,前几久,和大家分享过如何把文本数据快速导入数据库(点击即可打开),今天再和大家分享一个小技能,将Oracle数据库中的数据按照指定分割符.指定字段导出至文本文件.首先来张图,看看导出的数据是什么样子. 用到的就是Oracle的spool命令,可以将数据库数据导出一个文本文件,而且也可以指定数据分隔符,其中!^是数据之间的分隔符. 首先和大家分享一下,我的这个脚本是怎么写的,其中写select时,需要导出那些字段,直接写在select里面就可以了,此外,我也是在select里面指定了分割符!…
一. mysqldump工具基本用法,不适用于大数据备份   1. 备份所有数据库: mysqldump -u root -p --all-databases > all_database_sql 2. 备份mysql数据库:mysqldump -u root -p --databases mysql > mysql_database_sql 3. 备份指定的多个数据库:mysqldump -u root -p --databases db1 db2 db3 > bak.sql 4. 备…
使用MySQL的SELECT INTO OUTFILE .Load data file LOAD DATA INFILE语句从一个文本文件中以很高的速度读入一个表中.当用户一前一后地使用SELECT ... INTO OUTFILE 和LOAD DATA INFILE 将数据从一个数据库写到一个文件中,然后再从文件中将它读入数据库中时,两个命令的字段和行处理选项必须匹配.否则,LOAD DATA INFILE 将不能正确地解释文件内容. 假设用户使用SELECT ... INTO OUTFILE…
如果数据有20几万以上的时候,下面的方法很实用 导出数据 1.into outfile select * from table into outfile 'C:/a.sql'; 2.mysqldump,按条件导出 mysqldump -uroot -p1234 dbname a –where "tag='88′"> c:\a.sql 导入数据 1.source(批模式) show databases; use table; source C:/a.sql; source命令导入多…
1.开发背景 在web项目中,经常会需要查询数据导出excel,以前比较常见的就是用poi.使用poi的时候也有两种方式,一种就是直接将集合一次性导出为excel,还有一种是分批次追加的方式适合数据量较大的情况.poi支持xls和xlsx,使用2003版本的只支持6万多行以下的数据量,使用2007版本的支持百万行.但是呢,当数据量大了之后这种方式却非常耗内存和时间. 接触了etl之后就想着用kettle来做导数据,经过测试是完全可行的.几十万行,一百万行都能快速导出来,代码也非常简单.   2.…
1.Navicat for Mysql XML导出导入格式支持二进制数据:虽然同步数据人眼看不出区别,但是java尝试读取数据时,报datetime字段取出的值为“0000-00-00 00:00:00”,找不到理由: 2.mysqldump数据导出 1) export: mysqldump -h <ip> -P <port> -u <user> <database> <table> -p > <table>.sql 2) im…
日常开发中,经常会涉及到对于数据库中数据的导入与导出操作,格式也有很多: TXT,CSV,XLS,SQL等格式,所以,在此总结一下,省的总是百度查询. 一 导出 1) 常用的方式就是使用现成的工具例如: Navicat 或者phpmyadmin 当然这是在Windows下经常使用到的工具,如果是Mac当然也有比较好用的软件进行数据导出 Navicat: 选择要导出的表/库 -> 导出向导->选择导出的格式 即可 phpmyadmin: 选择表/库  ->  导出 -> 选择导出的格…
导入数据: 首页进入mysql命令行界面: use 数据库名: source d:/data/test.sql; 如果是windows系统必须使用d:/,如果使用d:\会报语法错误. 那么如何导出(备份)mysql数据库呢?我们使用mysql自带的工具mysqldump进行导出 mysqldump -u用户名 -p密码 数据库名 > /yousqldata.sql…