提交之前
提交之后
数据查看
ES批量提交代码如下:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import com.alibaba.fastjson.JSONObject;
public class ImportDB2ES {
/**
* @param args
The REST API endpoint is /_bulk, and it expects the following JSON structure:
action_and_meta_data\n
optional_source\n
action_and_meta_data\n
optional_source\n
....
action_and_meta_data\n
optional_source\n
POST _bulk
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_type" : "type1", "_id" : "2" } }
{ "create" : { "_index" : "test", "_type" : "type1", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_type" : "type1", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }
@author http://gaojingsong.iteye.com/
*/
public static void main(String[] args) {
String url = "http://192.168.1.104:9200/_bulk";
List<Student> list = new ArrayList<Student>();
//1、准备数据阶段
list.add(new Student("1","zhangsan1",13));
list.add(new Student("2","zhangsan2",23));
list.add(new Student("3","zhangsan3",33));
list.add(new Student("4","zhangsan4",43));
//2、构造Json阶段
String json = toBatchJSon(list,"test_bulk");
System.out.println(json);
//3、批量提交阶段
try {
httpPostWithJSON(url,json);
} catch (Exception e) {
e.printStackTrace();
}
}
public static String toBatchJSon(List list,String indexname) {
StringBuffer sb = new StringBuffer();
int i=0;
for (@SuppressWarnings("rawtypes")
Iterator iterator = list.iterator(); iterator.hasNext();) {
JSONObject json = (JSONObject) JSONObject.toJSON(iterator.next());
++i;
String str="{ \"create\" : { \"_index\" : \""+indexname+"\", \"_type\" : \"type1\", \"_id\" : \""+i+"\" } }";
sb.append(str).append("\n");
sb.append(json).append("\n");
}
return sb.toString();
}
public static String httpPostWithJSON(String url,String json) throws Exception {
HttpPost httpPost = new HttpPost(url);
CloseableHttpClient client = HttpClients.createDefault();
String respContent = null;
StringEntity entity = new StringEntity(json,"utf-8");//解决中文乱码问题
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
System.out.println();
HttpResponse resp = client.execute(httpPost);
if(resp.getStatusLine().getStatusCode() == 200) {
HttpEntity he = resp.getEntity();
respContent = EntityUtils.toString(he,"UTF-8");
}
return respContent;
}
}
原创不易,欢迎打赏,请认准正确地址,谨防假冒
相关推荐
从Kafka中批量拉去数据,然后批量更新到es里。一次拉取的数量可以设置,现在是10000,轻松运转,更新到es内部也是,目标是百万日志秒处理
Java做客户端对Elasticsearch服务的增删改查及批量修改操作,代码简洁易懂,思路清晰有注释.详情参考https://blog.csdn.net/linhaiyun_ytdx/article/category/7042758
ETL工具kettle7.1抽取数据目前不支持elasticsearch 2.X以上版本,如果想要支持elasticsearch 6.X以上版本,必须替换elasticsearch-bulk-insert-plugin插件,该资源提供该插件的替换。 具体步骤为在spoon kettle\data-...
kettle 支持elasticsearch7.x 批量上传的插件,减压后放到data-integration\plugins 目录下即可
ElasticSearch 批量导入一批数据 解压后再当前位置命令行执行命令
Linux环境下使用sqlplus工具将oracle中的数据导入到elasticsearch中。只需要在es_bulk_tool.properties配置sql即可实现数据的批量导入。在elasticsearch6中测试通过。shell脚本需要使用sqlplus。
kettle9.1(PDI)连接elasticsearch7.13.2,使用时,直接将原kettle目录下-->plugin-->elasticsearch-bulk-insert-plugin下的文件删除,将该压缩包下的内容解压,放在该目录即可
消费kafka数据,然后批量导入到Elasticsearch,本例子使用的kafka版本0.10,es版本是6.4,使用bulk方式批量导入到es中,也可以一条一条的导入,不过比较慢。 <groupId>org.elasticsearch <artifactId>elastic...
安装npm install -g elasticsearch-tools 安装后,您将可以使用以下命令行工具:出口 输入用法:es-export-bulk选项es-export-bulk --helpUsage: es-export-bulk [options] Options: -h, --help output usage ...
es-bulk-update-builder Elasticsearch的批量更新请求主体构建器安装$ npm install --save es-bulk-update-builder用法用法基本上如下: const BulkUpdateBuilder = require ( 'es-bulk-update-builder' ) ;...
docker实现elasticsearch批量dump导出导入,实现es批量导入导出
kettle7.1+elasticsearch7.0.1版本,此包通过pentaho-kettle-8.2.0.4-R源码编译,可用于elasticsearch7.0.1版本,解压此包,放入在kettle的plugin中,重启kettle即可,在配置项中设置address:<es的id>,port:9200
分布式搜索elasticsearch java API 之(六)--- 批量添加删除索引 9 分布式搜索elasticsearch java API 之(七)--- 与MongoDB同步数据 10 分布式搜索elasticsearch java API 之(八)--- 使用More like this实现...
现有a表和b表,两张mysql数据库的表,需要把两张表的数据取共同字段,合并并导入es中,其中a表共有数据1000条,b表共有数据1200条,a表和b表的主键id都是从1开始递增的,结果导入的时候显示成功导入2200条数据,而...
(狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战),包含了小狂神讲的东西,特别适合新手学习,笔记保存下来可以多看看。好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个...
elasticsearch elasticsearch-6.2.2 elasticsearch-6.2.2.zip 下载
kettle etl工具中,实现批量导入到 elasticsearch中的插件