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,提交成功。
相關文章
- Elasticsearch批量匯入資料指令碼(python)Elasticsearch指令碼Python
- 109.全文檢索-ElasticSearch-入門-刪除資料&bulk批量操作匯入樣本測試資料Elasticsearch
- ElasticSearch7.4批量匯入_bulkElasticsearch
- 圖解JanusGraph系列 - 關於JanusGraph圖資料批量快速匯入的方案和想法(bulk load data)圖解
- 極速匯入elasticsearch測試資料Elasticsearch
- Elasticsearch Lucene 資料寫入原理 | ES 核心篇Elasticsearch
- 使用csv批量匯入、匯出資料的需求處理
- 資料庫 MySQL 資料匯入匯出資料庫MySql
- Dynamics CRM 如何使用XrmToolBox中的Bulk Workflow Execution批量更新資料
- 大文字資料,匯入匯出到資料庫資料庫
- 批量備份還原匯入與匯出MongoDB資料方式昝璽MongoDB
- MATLAB匯入資料Matlab
- sqoop資料匯入匯出OOP
- Oracle 資料匯入匯出Oracle
- 資料泵匯出匯入
- Oracle資料匯入匯出Oracle
- phpMyAdmin匯入/匯出資料PHP
- 【elasticsearch】bulk api奇特的json格式的原因ElasticsearchAPIJSON
- 資料匯入終章:如何將HBase的資料匯入HDFS?
- .NET Core使用NPOI將Excel中的資料批量匯入到MySQLExcelMySql
- Python批量匯入Excel資料到MySQLPythonExcelMySql
- Excel 表匯入資料Excel
- MySQL資料的匯入MySql
- Oracle 資料匯入ExcelOracleExcel
- mysqlimport 資料匯入程式MySqlImport
- PHP大資料xlswriter匯入匯出(最優資料化)PHP大資料
- MySQL入門--匯出和匯入資料MySql
- Elasticsearch 資料寫入原理分析Elasticsearch
- 如何將Excl內資料匯入資料庫?資料庫
- Oracle使用資料泵expdp,impdp進行資料匯出匯入Oracle
- Mongodb資料的匯出與匯入MongoDB
- oracle資料匯出匯入(exp/imp)Oracle
- 匯入和匯出AWR的資料
- EasyPoi, Excel資料的匯入匯出Excel
- Mysql 資料庫匯入與匯出MySql資料庫
- es6將txt資料序列化成jsonJSON
- 匯入excel資源到資料庫Excel資料庫
- mybatis插入資料、批量插入資料MyBatis
- Access 匯入 oracle 資料庫Oracle資料庫