0
点赞
收藏
分享

微信扫一扫

ELK


ELK简介

1. ElasticSearch: 分布式数据搜索引擎,用于全文搜索 //存储+搜索
2. Logstach : 数据收集引擎
3. Kibana: 提供分析平台和可视化的web平台,帮助汇总,分析和搜索数据日志 // 数据展现工具

ElasticSearch结构

ES6.0之后,一个索引只有一个type(一个数据库中只有一个表)

关系型数据库(mysql)

非关系型数据库(ElasticSearch)

数据库Database

索引index

表Table

类型type

数据行Row

文档Document

数据列Column(字段)

字段Field

约束Schema

映射Mapping

ES状态查看
  1. 查看节点健康状态

http://192.168.1.102:9200/_cat/health?v

ELK_elasticsearch

  1. 查看节点列表

http://192.168.1.102:9200/_cat/nodes?v

ELK_bigdata_02

  1. 查看索引列表(相当于查看数据库)

http://192.168.1.102:9200/_cat/indices?v

ELK_kibnana_03

Kibana

ELK_bigdata_04

  • Discover:用于数据查询工具
  • Visualize:生成图标
  • Dashboard:将生成的表放入到仪表盘中
  • Timelion: 实时性数据对比
  • APM:集群检测平台工具
  • Dev Tools:开发者工具(开发常用)
ES索引操作(对数据库操作)
创建索引

完整语法:
curl -X<REST Verb> <Node>:<Port>/<Index>/<Type>/<ID>

  • kibana会自动进行省略,帮助简化操作

curl -XPUT 'hadoop102:9200/index'
在Dev Tools中会自动进行省略
==》PUT /index

查询索引

PUT /index

GET /index

删除索引

DELETE /index

ELK_elasticsearch_05

ES数据库分片和副本

默认情况下,创建索引时会有5个数据分片,每个分片默认一个副本

工具查看分片和副本情况

ELK_elk_06

  • 通过下图可以看出,默认情况下index会有5个分片,每个分片一个副本
  • ELK_elasticsearch_07

文档相关操作
添加文档(相当于mysql中的一行数据)

POST /index/student/1
{
"name":"wangyg",
"age":25
}

查询

GET /index/student/1

更新操作

POST /index/student/1/_update
{
"doc":{
"name":"dilireba"
}
}

删除

DELETE  index/student/1

ES文档查询
文档查询的两种操作风格
  • REST查询风格(使用URL方式发送请求)
  • REQUEST BODY:(使用请求体方式)
REST风格查询
索引查询语法

常用:
GET /index/student/_search //查询指定索引的文档
GET /index,index1/_search //查询多个索引的文档
GET /in*/_search //类似模糊查询

泛查询

GET test12/_search?q=tom
df:指定字段
GET test12/_search?q=tom&df=name

指定字段查询

GET test12/_search?q=name:tom

term查询

GET /test12/_search?q=username:tom jack 
//相当于or的关系,只要满足其中一个即可

phrase查询

GET /test12/_search?q=username:"tom jack"  
//查询满足这个单词需要的即可

排序查询

GET test12/_search?q=tom&sort=age:asc //升序查询
//desc降序查询

查询时间

GET test12/_search?q=tom&df=user&timeout=1s //超过的超时时间限制

操作符语法

AND :与
OR :或
NOT:非
+ :must
- :must_not
范围查询:[] ==>ex: [1 TO 10]
通配符查询: ?:1个字符
* :多个字符
近似度查询fuzzy query//模糊查询 :name:le~1
group查询:通过( ) 进行分组
GET test12/_search?q=username:(tom OR jack) AND lee

查询的执行计划查看
  • Mysql的执行计划

1. 解析mysql语法 --解析mysql语法
2. 逻辑执行计划表--形成一个逻辑执行计划表
3. 对逻辑执行计划表优化--优化
4. 生成物理执行计划
5. plan 执行

  • ES查看的执行计划

GET test12/_search?q=tom
{
"profile":true
}

request body方式查询
普通方式查询

GET test12/_search
{
"query":{
"match": {
"username": {
"query":"tom jack"
"operator":"and" //可以增加operator控制单词间的关系
}
}
}
}

minimum_should_match参数可以控制需要匹配的单词数

GET test12/_search
{
"query":{
"match": {
"username": {
"query":"tom jack",
"operator":"and",
"minimum_should_match":3
}
}
}
}

倒排索引

索引:可以理解为搜索的引导目录
正排索引:mysql中通过索引记录的地址值,直接将数据获取到
倒排索引:将一行内容,进行分词,放入分词表,(分词表中形式为类似于 key,id ),查询时,先进入索引区查找,找到多个id,==》通过词key,找到id,再继而找到具体内容


举报

相关推荐

初学ELK - elk部署

elk...

ELK入门

ELK日志

dockercompose elk

ELK文档

ELK笔记

0 条评论