Elasticsearch 500万索引批量存储php的示例分析
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章给大家分享的是有关Elasticsearch 500万索引批量存储php的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。引用文件dict.txt.cache
千家信息网最后更新 2025年02月02日Elasticsearch 500万索引批量存储php的示例分析
这篇文章给大家分享的是有关Elasticsearch 500万索引批量存储php的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
引用文件
dict.txt.cache.json, pinyin.php 云盘下载地址:
http://pan.baidu.com/s/1c1W6fQC
索引生成测试代码 php
单条索引生成,速度较慢 elastic.php
build();$dict = array_map(function($str){ return str_ireplace('.', '', $str);}, array_keys(json_decode(file_get_contents('./dict.txt.cache.json'), true) ));$a = 1;do { $params = [ 'index' => 'my_index', 'type' => 'my_type', 'id' => $a, 'body' => [ 'user_id' => mt_rand(100000000, 2000000000).'@qq.com', 'name' => $tmpname = $dict[mt_rand(1000,360000)], 'py' => \Utils\Pinyin::conv($tmpname), 'phone' => array_rand(array_flip([13,15,17,18])) . mt_rand(100000000, 999999999), 'mail' => substr( str_shuffle( "0123456789abcdefghijklmnopqrstuvwxyz"), 0, mt_rand(5,20) ) . '@' . array_rand( array_flip( [ '163.com', '126.com', 'yeah.net', 'qq.com', 'foxmail.com', 'gmail.com', 'yahoo.com', 'hotmail.com', 'sina.com', 'sina.cn', 'sina.com.cn' ] ) ), 'appoint' => implode( '-', array_map(function() use($dict) { return $dict[mt_rand(1000,360000)] . (mt_rand(0,100) > 60 ? $dict[mt_rand(1000,360000)] : '') . (mt_rand(0,100) > 80 ? $dict[mt_rand(1000,360000)] : '');}, array_pad([], mt_rand(2,5), '') ) ), ] ]; //创建索引 $response = $client->index($params); $a = isset($a) ? ++$a : 1; $a % 50 === 0 ? print(($b = isset($b) ? ++$b : 1).'%'.PHP_EOL) : '';} while ($a <= 5000);$end = "结束时间:" . time() . PHP_EOL;echo $end;echo "耗时:" . ($end - $start);
批量索引生成 elasticBulk.php
setRetries(10)//重试次数,默认重试次数为集群节点数 ->setConnectionPool($connectionPool) ->setSelector($selector) ->build();$dict = array_map(function($str){ return str_ireplace('.', '', $str);}, array_keys(json_decode(file_get_contents('./dict.txt.cache.json'), true) ));echo $start = "开始时间:" . time() . PHP_EOL;createData($client, $dict);echo $end = "结束时间:" . time() . PHP_EOL;echo "耗时:" . $end - $start;function createData($client, $dict){ $bulk = array('index'=>'my_index4','type'=>'my_type4'); //bulk批量生成 for($j = 0;$j <= 99; $j++) { for($i = $j * 50000 + 1; $i <= $j * 50000 + 50000; $i ++) { $bulk['body'][]=array( 'index' => array( '_id'=>$i ), 'type' => 'blocking' ); $bulk['body'][] = [ 'user_id' => mt_rand(100000000, 2000000000).'@qq.com', 'name' => $tmpname = $dict[mt_rand(1000,360000)], 'py' => \Utils\Pinyin::conv($tmpname), 'phone' => array_rand(array_flip([13,15,17,18])) . mt_rand(100000000, 999999999), 'mail' => substr( str_shuffle( "0123456789abcdefghijklmnopqrstuvwxyz"), 0, mt_rand(5,20) ) . '@' . array_rand( array_flip( [ '163.com', '126.com', 'yeah.net', 'qq.com', 'foxmail.com', 'gmail.com', 'yahoo.com', 'hotmail.com', 'sina.com', 'sina.cn', 'sina.com.cn' ] ) ), 'appoint' => implode( '-', array_map(function() use($dict) { return $dict[mt_rand(1000,360000)] . (mt_rand(0,100) > 60 ? $dict[mt_rand(1000,360000)] : '') . (mt_rand(0,100) > 80 ? $dict[mt_rand(1000,360000)] : '');}, array_pad([], mt_rand(2,5), '') ) ), ]; } $client->bulk($bulk); //进度统计 print($j + 1).'%'.PHP_EOL; }}
单节点测试结论
1.单条性能约100条/s , 批量性能约5000条/s
2.单节点批量处理一次性bulk数据上限35万,否则报错:PHP Fatal error: Uncaught exception 'Elasticsearch\Common\Exceptions\NoNodesAvailableException' with message 'No alive nodes found in your cluster
3. 500万全真模拟数据占空间2G
4.查询性能:
第一次稍慢,但在1秒以内
第二次极速
感谢各位的阅读!关于"Elasticsearch 500万索引批量存储php的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
索引
生成
性能
时间
示例
分析
存储
内容
数据
更多
次数
篇文章
节点
测试
不错
实用
一次性
上限
代码
地址
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
阿里云数据库的账号密码
数据库快照文件出现可疑
软件开发成本和开发费用区别
天津什么是软件开发应用
网络安全可实现的威胁包括
网络安全和分析
阿里云服务器25端口
数据库搭建测试环境
四年级上册网络安全手抄报怎么做
浙江发展软件开发项目信息
我的世界练习起床战争的服务器
福建服务器硬盘维修
软件开发程序员先学习哪种语音
英雄联盟服务器黑屏
广州巨划算互联网科技有限公司
武汉有软件开发与应用培训班吗
操作系统可以做多少个服务器
c 做游戏服务器
esim使用的网络技术
宝山区创新软件开发协议
四六级英语单词软件开发
网络安全音译
网络安全公益赛
小蛋糕兽 数据库
执法仪视屏软件开发商
安徽电话网络技术开发费用是多少
青少年日网络安全简介
数据库估算语句耗时
客户关系管理数据库设计
计算机等级网络技术考试复习题