elasticsearch bulk資料--ES批量匯入json資料
一、Bulk API
官網給出的介紹:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/docs-bulk.html
The REST API endpoint is /_bulk, and it expects the following newline delimited JSON (NDJSON) 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
也就是說每一個操作都有2行資料組成,末尾要回車換行。第一行用來說明操作命令和原資料、第二行是自定義的選項.舉個例子,同時執行插入2條資料、刪除一條資料。
{ "create" : { "_index" : "blog", "_type" : "article", "_id" : "3" }}
{ "title":"title1","posttime":"2016-07-02","content":"內容一" }
{ "create" : { "_index" : "blog", "_type" : "article", "_id" : "4" }}
{ "title":"title2","posttime":"2016-07-03","content":"內容2" }
{ "delete":{"_index" : "blog", "_type" : "article", "_id" : "1" }}
官網的解釋和例子:
Because this format uses literal \n's as delimiters, please be sure that the JSON actions and sources are not pretty printed. Here is an example of a correct sequence of bulk commands:
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"} }
二、把資料儲存在檔案中的提交方法。 官網的介紹和說明:
If you’re providing text file input to curl, you must use the --data-binary flag instead of plain -d. The latter doesn’t preserve newlines. Example:
$ cat requests
{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{ "field1" : "value1" }
$ curl -s -H "Content-Type: application/x-ndjson" -XPOST localhost:9200/_bulk --data-binary "@requests"
具體例子: 把下面的資料儲存在檔案request中,然後使用命令提交:
vim retuqest
curl -XPOST '192.168.0.153:9200/_bulk' --data-binary @request
{ "index" : { "_index" : "test_index", "_type" : "chen", "_id" : "1" } }
{ "field1" : "value1" }
{ "index" : { "_index" : "test_index", "_type" : "chen", "_id" : "2" } }
{ "field1" : "value2" }
{ "index" : { "_index" : "test_index", "_type" : "chen", "_id" : "3" } }
{ "field1" : "value3" }
看看有沒有提交成功:
curl -XGET 'http://192.168.0.153:9200/test_index/chen/1?pretty'
{
"_index" : "test_index",
"_type" : "chen",
"_id" : "1",
"_version" : 2,
"found" : true,
"_source" : {
"field1" : "value1"
}
}
ok,提交成功。
相關文章
- SQL Server Bulk Insert批量資料匯入SQLServer
- ElasticSearch7.4批量匯入_bulkElasticsearch
- Elasticsearch批量匯入資料指令碼(python)Elasticsearch指令碼Python
- 109.全文檢索-ElasticSearch-入門-刪除資料&bulk批量操作匯入樣本測試資料Elasticsearch
- Redis批量匯入文字資料Redis
- ELK研究(一):elasticsearch java api介面操作ES叢集 ---TransportClient的使用介紹 bulk批量提交資料ElasticsearchJavaAPIclient
- MySQL 批量匯入資料優化MySql優化
- sqlldr批量匯入匯出資料測試SQL
- 極速匯入elasticsearch測試資料Elasticsearch
- Elasticsearch Lucene 資料寫入原理 | ES 核心篇Elasticsearch
- Oracle:從SQL檔案批量匯入資料OracleSQL
- 將Mysql資料匯入到ElasticSearch叢集MySqlElasticsearch
- 使用csv批量匯入、匯出資料的需求處理
- 圖解JanusGraph系列 - 關於JanusGraph圖資料批量快速匯入的方案和想法(bulk load data)圖解
- 資料庫 MySQL 資料匯入匯出資料庫MySql
- 大文字資料,匯入匯出到資料庫資料庫
- 批量備份還原匯入與匯出MongoDB資料方式昝璽MongoDB
- 資料泵匯出匯入資料標準文件
- 使用資料泵impdp匯入資料
- 資料匯入SQLLDRSQL
- 資料泵匯出匯入
- Oracle 資料匯入匯出Oracle
- mysql資料匯入匯出MySql
- mysql資料匯出匯入MySql
- Oracle資料匯入匯出Oracle
- Oracle資料庫的BULK COLLECT用法之批量增刪改<轉>Oracle資料庫
- 資料匯入終章:如何將HBase的資料匯入HDFS?
- 在SQL Server資料庫中匯入匯出資料SQLServer資料庫
- Elasticsearch 資料寫入原理分析Elasticsearch
- Dynamics CRM 如何使用XrmToolBox中的Bulk Workflow Execution批量更新資料
- sqoop資料匯入匯出OOP
- 資料匯入匯出EXP/IMP
- MongoDB資料匯入與匯出MongoDB
- mysqldump匯入匯出表資料MySql
- exp/imp匯出匯入資料
- postgresql 資料匯入和匯出SQL
- 資料庫的匯入匯出資料庫
- 資料泵的匯入匯出