当前位置:首页 » 操作系统 » 大数据导入数据库

大数据导入数据库

发布时间: 2022-07-28 20:47:51

⑴ 如何快速进行大数据导入,更新旧数据及插入数据操作

如何快速进行大数据导入、更新旧数据及插入数据操作

对于大数据量的导入,同时又要对旧数据进行更新,对数据库的压力相当大,而且相当耗损时间,之前测试在一张一百万数据表中导入10万的数据,每条记录都进行查询判断,进行了半个小时还没处理完,等待的时间客户是无法接受的,何况在面对上千万的数据中,最后得出一个解决方法。

方法:建一个新表B,跟原表A的结构相同,把每次导入的新数据全部导入B表中,然后用左外连接 把重复数据删除:delete from A where A.id in(select id from B left join A on B.id = A.id),然后执行insert into A select * form B,最后再删除B表的数据,测试发现这个不到一分钟就可以在100万的数据中完成10W数据的导入。

⑵ 如何进行大数据处理

大数据处理之一:收集


大数据的收集是指运用多个数据库来接收发自客户端(Web、App或许传感器方式等)的 数据,而且用户能够经过这些数据库来进行简略的查询和处理作业,在大数据的收集进程中,其主要特色和应战是并发数高,因为同时有可能会有成千上万的用户 来进行拜访和操作


大数据处理之二:导入/预处理


虽然收集端本身会有许多数据库,但是假如要对这些海量数据进行有效的剖析,还是应该将这 些来自前端的数据导入到一个集中的大型分布式数据库,或许分布式存储集群,而且能够在导入基础上做一些简略的清洗和预处理作业。导入与预处理进程的特色和应战主要是导入的数据量大,每秒钟的导入量经常会到达百兆,甚至千兆等级。


大数据处理之三:核算/剖析


核算与剖析主要运用分布式数据库,或许分布式核算集群来对存储于其内的海量数据进行普通 的剖析和分类汇总等,以满足大多数常见的剖析需求,在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及根据 Mysql的列式存储Infobright等,而一些批处理,或许根据半结构化数据的需求能够运用Hadoop。 核算与剖析这部分的主要特色和应战是剖析触及的数据量大,其对系统资源,特别是I/O会有极大的占用。


大数据处理之四:发掘


主要是在现有数据上面进行根据各种算法的核算,然后起到预测(Predict)的作用,然后实现一些高等级数据剖析的需求。主要运用的工具有Hadoop的Mahout等。该进程的特色和应战主要是用于发掘的算法很复杂,并 且核算触及的数据量和核算量都很大,常用数据发掘算法都以单线程为主。


关于如何进行大数据处理,青藤小编就和您分享到这里了。如果您对大数据工程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于数据分析师、大数据工程师的技巧及素材等内容,可以点击本站的其他文章进行学习。

⑶ 如何用php导出导入大数据库

在使用PhpMyAdmin的时候经常用到数据的导入和导出(Export/Import),但是在导入大数据的时候由于php上传文件的限制和脚本响应时间的限制,导致phpMyAdmin无法导入大数据。很多时候都是由于文件过大,从本地浏览上传导入,容易中断失败,有没有更好的方法呢?

    方法:

    在phpMyAdmin的目录下,找到根目录的config.inc.php文件,

    打开config.inc.php文件,查找$cfg['UploadDir'],这个参数就是设定导入文件存放的目录,这里把值设定为:ImportSQLFile。

    在phpMyAdmin目录下,建立以ImportSQLFile命名的文件夹

    把我们需要导入的数据文件,放到ImportSQLFile文件夹下面,非常简单,

    登入phpMyAdmin,选择需要导入的数据,点击导航条上面的“导入”按钮,

    选中“从网站服务器上传文件夹ImportSQLFile/中选择:”选项,并需要导入的数据文件,

    最后点击“执行”,即可导入成功。

    注意事项

    如果在config.inc.php文件,没有找到$cfg['UploadDir'],可以自己在文件中添加上去即可。

⑷ mysql如何导入几个G的数据库

首先说明本人只测试了40G的东西。大于40G的还没有测试。

在上传之前我们需要将my.ini修改一个参数max_allowed_packet.将参数设置为max_allowed_packet=100000M。1M=1024*1024。以此类推。1G=...。

不经过此设置可能会发生以下问题:MySQLserver has gone away .出现这个问题的原因是因为client端和mysql server端断开了。一般是操作sql文件时间过长导致的。

设置好之后重启

这里我经过测试:max_allowed_packet最大只能设置为1G=10737418248/1024/1024/1024.

查看max_allowed_packet命令为如下:


三、如何检验文件是否在上传或者文件是否已经传完毕。打开您的mysql管理工具(比如navicat)。按F5看对应的库记录和大小或者上次更新时间是否在变化就好了。

四:上传过程可能比较漫长。上传完毕

⑸ oracle sqldeveloper大数据量如何导入导出

方法一:利用PL/SQL Developer工具导出:
菜单栏---->Tools---->Export Tables


方法二:利用cmd的操作命令导出,详情如下:
1:G:Oracleproct10.1.0Client_1NETWORKADMIN目录下有个tnsname.ora文件,内容如下:

CMSTAR=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)(HOST=172.18.13.200)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=cmstar)
)
)

其中:CMSTAR为数据库名,HOST为IP地址,所以可以仿效上面的例子手动添加数据录连接。

2:用cmd进入命令行
输入:tnsping cmstar
就是测试172.18.13.200是否连接成功

3:导入与导出,如下:
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager
导出到D:chu.dmp中
exp system/manager@TEST file=d:chu.dmp
full=y
2将数据库中system用户与sys用户的表导出
expsystem/manager@TESTfile=d:chu.dmpowner=(system,sys)
3将数据库中的表table1、table2导出
expsystem/manager@TESTfile=d:chu.dmptables=(table1,table2)
4将数据库中的表table1中的字段filed1以"00"打头的数据导出
expsystem/manager@TESTfile=d:chu.dmptables=(table1)query="wherefiled1like'00%'"

上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面加上compress=y就可以了

数据的导入

1将D:chu.dmp中的数据导入TEST数据库中。
impsystem/manager@TESTfile=d:chu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上ignore=y就可以了。

2将d:chu.dmp中的表table1导入
impsystem/manager@TESTfile=d:chu.dmptables=(table1)

注意事项:导出dmp数据时需要有导出表的权限的用户,否则不能导出。

PL/SQL Developer是Oracle数据库中用于导入或导出数据库的主要工具,本文主要介绍了利用PL/SQL
Developer导入和导出数据库的过程,并对导入或导出时的一些注意事项进行了说明,接下来我们就一一介绍。

导出步骤:

1 tools ->export user object 选择选项,导出.sql文件。

2 tools ->export tables-> Oracle Export 选择选项导出.dmp文件。

导入步骤:

注:导入之前最好把以前的表删除,当然导入另外数据库除外。
1 tools->import tables->SQL Inserts
导入.sql文件。
2 tools->import talbes->Oracle Import然后再导入dmp文件。

一些说明:

Tools->Export User Objects导出的是建表语句(包括存储结构)。
Tools->Export
Tables里面包含三种导出方式,三种方式都能导出表结构以及数据,如下:
Oracle Export
Sql Insert
pl/sql
developer

第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广

第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下:
table contains one or more LONG columns cannot export in sql format,user Pl/sql
developer format instead)。
第三种是导出为.pde格式的,.pde为Pl/sql
developer自有的文件格式,只能用Pl/sql developer自己导入导出,不能用编辑器查看。

⑹ 如何导入超大mysql数据库备份文件

在mysql中导入/导出超大的sql文本文件,我们可以使用很多方法实例,如有:客户端直接命令操作,分块导入,客户端用source命令操作等等。
在实际工作中,有时经常地时行mysql数据库的导入和导入操作,但对于大型sql文件导入时,phpmyadmin是不行的,有太多限制,比如记录,内存等!

多种方案收集,如下:
方案一:客户端直接命令操作(此方法是我比较喜欢的)

刚恢复一个电商网站mysql备份数据,此备份文件有300多M,因为phpmyadmin支持上传有限,文件太大IE停止响应,所以在本地用

代码如下
复制代码

mysql -u root -p root jiahuibuydb<
c:/yebihai.sql

但没导入进去,出来一大堆mysql的参数提示,不认输入的命令参数,后来写成下面这个样子,就是去掉了参数和数据之间的空格

代码如下
复制代码

mysql -uroot -proot jiahuibuydb<
c:/yebihai.sql

导入就OK了

导出命令:

a)导出整个库

mysqlmp -u 用户名 -p 数据库名 > 导出的文件名

代码如下
复制代码

mysqlmp -u root -p student
>d:/yebihai.sql

b)导出一个表

mysqlmp -u 用户名 -p 数据库名 表名> 导出的文件名

方案二:分块导入

代码如下
复制代码

<?
//用来快速Mysql的大数据备份
//使用前请首先按照代码注释修改要导入的SQL文件名、数据库主机名、数据库用户名、密码、数据库名
//同时将数据库文件和本文本一起ftp导网站目录,然后以web方式访问此文件即可

$file_name="sql.sql"; //要导入的SQL文件名

$dbhost="localhost"; //数据库主机名
$dbuser="user"; //数据库用户名

$dbpass="pass"; //数据库密码
$dbname="dbname";
//数据库名

set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe
mode模式下无效,此时可能会导致导入超时,此时需要分段导入
$fp = @fopen($file_name, "r") or
die("不能打开SQL文件 $file_name");//打开文件
mysql_connect($dbhost, $dbuser,
$dbpass) or die("不能连接数据库 $dbhost");//连接数据库
mysql_select_db($dbname)
or die ("不能打开数据库 $dbname");//打开数据库
mysql_query('set names utf8');

echo "正在执行导入操作";
while($SQL=GetNextSQL()){
if
(!mysql_query($SQL)){
echo
"执行出错www.111cn.net:".mysql_error()."
";
echo
"SQL语句为:
".$SQL."
";
};
}
echo
"导入完成";

fclose($fp) or die("Can’t close file $file_name");//关闭文件

mysql_close();

//从文件中逐条取SQL
function GetNextSQL() {

global $fp;
$sql="";
while ($line =
@fgets($fp, 40960)) {
$line =
trim($line);

//以下三句在高版本php中不需要,在部分低版本中也许需要修改
$line =
str_replace("////","//",$line);
$line =
str_replace("/’","’",$line);
$line =
str_replace("//r//n",chr(13).chr(10),$line);
// $line
= stripcslashes($line);
if (strlen($line)>1)
{
if ($line[0]=="-" && $line[1]=="-")
{

continue;
}

}

$sql.=$line.chr(13).chr(10);
if
(strlen($line)>0){
if
($line[strlen($line)-1]==";"){

break;
}

}
}
return $sql;

}
?>

方案三:客户端用source命令操作

比较好的办法仍是用mysql的source命令:

一、在客户端下操作:

1、进行入客户端 代码如下
复制代码

2、mysql>use 数据库名(如果没有,先建一个)

3、mysql>set names 'utf8'; (一般看导入的是什么格式的文件)

4、mysql>source d:/aaa.sql;

即可正常导入,如果有错,可以看出错提示

二、PHP文件操作:

建立a.php

里面有下面内容 代码如下
复制代码

mysql_connet('xxxx');

mysql_query("set names 'utf8'");

mysql_query("source d:/aaa.sql'");

原理同上,主要方便了无法使用命令行用户的操作

方案四:下面教大家一个简单有效的办法,适合不会使用命令窗口的非技术人员,可以导入任意大小的mysql数据库,理论上不论您的数据库备份文件多大,都可以导入

方法如下:

1.将数据库备份文件(如backup.sql)上传至网站根目录。

2.将以下代码保存为mysql.php文件,上传至网站根目录。

代码如下
复制代码

system("mysql -hdbhost -udbuser -ppassword dbname < backup.sql");

print "导入成功";

其中

dbhost 改为您的数据库服务器地址(小提示:一般主机默认数据库服务器地址是:localhost)

dbuser 改为您的数据库用户名

password 改为您的数据库用户密码

dbname 改为您的数据库名(导入的时候此库必须先建立好,否则会失败并且不会进行任何提示)

backup.sql表示通过ftp上传到网站根目录下数据库文件的文件名(该文件是解压缩后的文件)

3.在浏览器里面访问mysql.php, 那么就在浏览器里面输入/mysql.php,只要浏览器一访问这个mysql.php文件,数据就开始导入,数据导入结束后,就会显示“导入成功”的字样。这个时间根据您要导入的数据大小决定,一般时间很短

⑺ mysql数据库 文件过大 如何导入

1.把已导出文件拷贝到服务器2.利用root权限提交命令:#mysql -u 用户名 -p 密码 库名 < 需要导入的.sql文件 在本地导入会比phpmyadmin稳定,快

⑻ php 怎么解决 大数据量 插入数据库

ini_set('max_execution_time','0');
$pdo
=
new
PDO("mysql:host=localhost;dbname=test","root","123456");
$sql
=
"insert
into
test(name,age,state,created_time)
values";
for($i=0;
$i<100000;
$i++){
$sql
.="('zhangsan',21,1,'2015-09-17')";
}
$sql
=
substr($sql,0,strlen($sql)-1);
var_mp($sql);
if($pdo
->
exec($sql)){
echo
"插入成功!";
echo
$pdo
->
lastinsertid();
}
试试吧。10万条1分钟多,我觉得还行

热点内容
华为怎么清除开机密码 发布:2025-01-19 03:34:03 浏览:983
java编译成class文件过程 发布:2025-01-19 03:31:21 浏览:983
androidactivity销毁 发布:2025-01-19 03:29:09 浏览:386
做访问学者要多少钱 发布:2025-01-19 03:20:04 浏览:284
苹果7的存储空间在哪 发布:2025-01-19 03:10:35 浏览:583
2012文件服务器如何新建用户 发布:2025-01-19 02:43:10 浏览:884
android复试 发布:2025-01-19 02:39:11 浏览:654
c获取文件夹中 发布:2025-01-19 02:33:48 浏览:549
如何查看360浏览器保存的密码 发布:2025-01-19 02:27:14 浏览:94
源码分享站 发布:2025-01-19 01:21:26 浏览:911