elasticsearch批量导入数据注意事项


刚刚初始化启动kiabna后是没有索引的,当然,如果elasticsearch中导入过数据那么kibana会自动匹配索引

现在按照官方例子开始批量给elasticsearch导入数据

链接如下https://www.elastic.co/guide/en/kibana/6.1/tutorial-load-dataset.html

我们会依次导入如下 三块数据 

1.The Shakespeare data 莎士比亚文集的数据结构

{

    "line_id": INT,

    "play_name": "String",

    "speech_number": INT,

    "line_number": "String",

    "speaker": "String",

    "text_entry": "String",

}

2.The accounts data  账户数据结构

{

    "account_number": INT,

    "balance": INT,

    "firstname": "String",

    "lastname": "String",

    "age": INT,

    "gender": "M or F",

    "address": "String",

    "employer": "String",

    "email": "String",

    "city": "String",

    "state": "String"

}

3.The schema for the logs data 日志数据

{

    "memory": INT,

    "geo.coordinates": "geo_point"

    "@timestamp": "date"

}

然后向elasticsearch设置字段映射

Use the following command in a terminal (eg bash) to set up a mapping for the Shakespeare data set:

以下是莎士比亚的字段映射 可以用postman或者curl等发出请求~完整的url应该是localhost:9200/shakespear

PUT /shakespeare

{

 "mappings": {

  "doc": {

   "properties": {

    "speaker": {"type": "keyword"},

    "play_name": {"type": "keyword"},

    "line_id": {"type": "integer"},

    "speech_number": {"type": "integer"}

   }

  }

 }

}

Use the following commands to establish geo_point mapping for the logs:

这是 logs的字段映射

PUT /logstash-2015.05.18

{

  "mappings": {

    "log": {

      "properties": {

        "geo": {

          "properties": {

            "coordinates": {

              "type": "geo_point"

            }

          }

        }

      }

    }

  }

}

 

PUT /logstash-2015.05.19

{

  "mappings": {

    "log": {

      "properties": {

        "geo": {

          "properties": {

            "coordinates": {

              "type": "geo_point"

            }

          }

        }

      }

    }

  }

}

COPY AS CURLVIEW IN CONSOLE 

PUT /logstash-2015.05.20

{

  "mappings": {

    "log": {

      "properties": {

        "geo": {

          "properties": {

            "coordinates": {

              "type": "geo_point"

            }

          }

        }

      }

    }

  }

}

账户信息没有字段映射。。。

现在批量导入

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary @accounts.json

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/doc/_bulk?pretty' --data-binary @shakespeare_6.0.json

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/_bulk?pretty' --data-binary @logs.jsonl

windows下的curl命令可以到https://curl.haxx.se/download.html#Win64下载,解压后设置环境变量即可

这里要注意的是 @accounts.json,@shakespeare_6.0.json,@logs.json这些文件的位置应该是你所在的当前目录,

如果你当前位置是D盘~那么这些文件位置就要放在D盘下,否则读不到

还有一点~~~windows下要把命令行中的单引号换成双引号,,。。。否则会报

curl: (6) Could not resolve host: application这样的错误

时间: 2024-10-26 11:54:38

elasticsearch批量导入数据注意事项的相关文章

Elasticsearch —— bulk批量导入数据

在使用Elasticsearch的时候,一定会遇到这种场景--希望批量的导入数据,而不是一条一条的手动导入.那么此时,就一定会需要bulk命令! 更多内容参考我整理的Elk教程 bulk批量导入 批量导入可以合并多个操作,比如index,delete,update,create等等.也可以帮助从一个索引导入到另一个索引. 语法大致如下: action_and_meta_data\n optional_source\n action_and_meta_data\n optional_source\

用QueryTable向excel批量导入数据

前面写过两篇excel操作的文章,有朋友质疑大批量数据下的性能问题,这个时候最好用批量复制的 方法,可以用excel的QueryTable来直接查询数据库,但是必须引用com组件. 参考代码: using System;using System.Collections.Generic;using System.Text;using System.Reflection;using Excel = Microsoft.Office.Interop.Excel;namespace ConsoleApp

使用Oracle sql loader批量导入数据

在性能测试中,有一项十分重要的准备工作就是准备测试数据.在进行性能测试之前,首先要保证测试数据库中有测试所需要的足够多的数据.对于数据的准备工作,有时候我会使用LoadRunner生成相应的脚本去准备数据,这样的做法有一个好处就是简便易行,然而它有一个很大的缺点就是效率太慢,当我们需要的数据量极大时,这样做是非常耗时间的,所以我觉得还需要掌握各种不同的技能来完成这个任务.以下就是我在前不久的一次测试中学到的经验: 使用oracle sql loader批量导入数据(在准备测试数据时很有用!) 生

Cassandra使用pycassa批量导入数据

本周接手了一个Cassandra系统的维护工作,有一项是需要将应用方的数据导入我们维护的Cassandra集群,并且为应用方提供HTTP的方式访问服务.这是我第一次接触KV系统,原来只是走马观花似的看过KV啊,NoSQL啊.但是实际上没有实际的使用经验.经过两天的学习和接手,终于搞明白了在生产环境中的使用方式.在此简要的笔记一下.本文主要包括的内容有: Cassandra的简介, Cassandra的相关CLI Cassandra的Python API,并且给出一个批量导入数据的例子. 1. C

.net 批量导入数据SQL Server

问题描述 刚开始学习批量导入数据,一点都不懂什么意思,求例子,带有上传控件,支持Excel2003,和2007,拜托了,大家 解决方案 解决方案二:例子代码没有,推荐使用NPOI

Django框架利用ajax实现批量导入数据功能_AJAX相关

本文实例为大家分享了网页中利用ajax实现批量导入数据功能的实现方法,供大家参考,具体内容如下 url.py代码: 复制代码 代码如下: url(r'^workimport/$', 'keywork.views.import_keywork', name='import_keywork') view.py代码: from keywork.models import DevData from django.http import JsonResponse #django ajax部分 def im

asp.net线程批量导入数据时怎么通过ajax获取执行状态

前言 最近因为工作中遇到一个需求,需要做了一个批量导入功能,但长时间运行没个反馈状态,很容易让人看了心急,产生各种臆想!为了解决心里障碍,写了这么个功能. 通过线程执行导入,并把正在执行的状态存入session,既共享执行状态,通过ajax调用session里的执行状态,从而实现反馈导入状态的功能! 上代码: 前端页面    代码如下 复制代码 <!DOCTYPE html> <htmllang="en"> <head>  <metachars

sql 利用存储过程批量导入数据

什么是存储过程 存储过程(stored procedure)是一组为了完成特定功能的sql语句集,是利用sql server所提供的transact-sql语言所编写的程序.经编译后存储在数据库教程中.存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是由流控制和sql语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量 .同时,存储过程可以接收和输出参数.返回执行

对有自增长字段的表导入数据注意事项_MsSql

对有自增长字段的表导入数据注意事项: 1.把自增长字段暂时设置成非自增长的:导入数据成功后,再设置成自增长字段. 2.导出.导入数据时,注意选择文本格式,防止出现乱码.数据转换不成功等情况. 3.对于表中的原有数据,不会覆盖原有数据,只会增加.