成都创新互联网站制作重庆分公司

大数据的导入php java大数据导入

php采集大数据的方案

1、建议你读写数据和下载图片分开,各用不同的进程完成。

创新互联公司专业为企业提供云溪网站建设、云溪做网站、云溪网站设计、云溪网站制作等企业网站建设、网页设计与制作、云溪企业网站模板建站服务,十载云溪做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

比如说,取数据用get-data.php,下载图片用get-image.php。

2、多进程的话,php可以简单的用pcntl_fork()。这样可以并发多个子进程。

但是我不建议你用fork,我建议你安装一个gearman worker。这样你要并发几个,就启几个worker,写代码简单,根本不用在代码里考虑thread啊,process等等。

3、综上,解决方案这样:

(1)安装gearman worker。

(2)写一个get-data.php,在crontab里设置它每5分钟执行一次,只负责读数据,然后把读回来的数据一条一条的扔到 gearman worker的队列里;

然后再写一个处理数据的脚本作为worker,例如叫process-data.php,这个脚本常驻内存。它作为worker从geraman 队列里读出一条一条的数据,然后跟你的数据库老数据比较,进行你的业务逻辑。如果你要10个并发,那就启动10个process-data.php好了。处理完后,如果图片地址有变动需要下载图片,就把图片地址扔到 gearman worker的另一个队列里。

(3)再写一个download-data.php,作为下载图片的worker,同样,你启动10个20个并发随便你。这个进程也常驻内存运行,从gearman worker的图片数据队列里取数据出来,下载图片

4、常驻进程的话,就是在代码里写个while(true)死循环,让它一直运行好了。如果怕内存泄露啥的,你可以每循环10万次退出一下。然后在crontab里设置,每分钟检查一下进程有没有启动,比如说这样启动3个process-data worker进程:

* * * * * flock -xn /tmp/process-data.1.lock -c '/usr/bin/php /process-data.php /dev/null 21'

* * * * * flock -xn /tmp/process-data.2.lock -c '/usr/bin/php /process-data.php /dev/null 21'

* * * * * flock -xn /tmp/process-data.3.lock -c '/usr/bin/php /process-data.php /dev/null 21'

不知道你明白了没有

php 怎么解决 大数据量 插入数据库(1次几千条数据)

如果是用mysql数据库的话,一条语句可以插入几千条语句。类似以下语句:

insert into table_name (field1,field2) values (1,2),(2,3),(3,5),(5,6)

请查看mysql手册。

其他数据库请查阅相应手册。

phpadmin如何导入导出大数据文件及php.ini参数修改

sql文件过大导致导入导出失败的话用

cmd mysql命令来导入导出即可

参考:

这个有点难度的话需要改php.ini的参数了

参考:

求关于php excel导入大数据到mysql的解决办法

下载 PHPExcel

require_once( './PHPExcel/IOFactory.php');

$filePath = 'D:/xxx.xlsx'; //excel 文件名 

$objReader = new PHPExcel_Reader_Excel2007();  //具体查看(Documentation/Examples/Reader/exampleReader01.php)

$objPHPExcel = $objReader-load($filePath);

$sheetData = $objPHPExcel-getActiveSheet()-toArray(null,true,true,true);

$insql = 'insert into 表名(x,x,x) valeus';

//遍历数组 $sheetData

//如果有标题 先删除 unset($sheetData[1]);

foreach($sheetData as $k = $data){

$insql .= '('.$data['A'].','.$data['B'].','.$data['C'].'),';

//一次插入100条数据  减少数据库压力

if(($k+1 / 100) == 0){

$insql = rtrim($insql,',').';'; //将最后的逗号替换成分好

//插入数据库 并且重置 字符串 $insql  

//或者保存到文件中 利用source 命令插入数据库

}

}

php+Mysql 大数据导入怎样提高效率

1、采用长连接连接数据库2、一次性读取查询结果到本地(mysqli_result::store_result、pdo::fetchall)


网站名称:大数据的导入php java大数据导入
分享路径:http://cxhlcq.com/article/hgopdj.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部