数据分析_Elasticsearch/Kibana

目录

1 Elasticsearch基本概念

2 Elasticsearch架构

3 Elasticsearch命令

3.1 系统配置

3.2 创建

3.3 修改

3.4 删除

3.5 查询

3.6 参数配置

4 Kibana

4.1 常用命令


1 Elasticsearch基本概念

(1) Lucene:是一个开源的全文检索引擎工具包,提供了完整的查询引擎和索引引擎,但它不是一个完整的全文检索引擎.

(2) Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架.

(3) 搜索引擎:按照功能通常分为垂直搜索(专门针对某一类信息进行搜索)和综合搜索(对众多信息进行综合性的搜索).

(4) 倒排索引:对数据库原始的数据根据字或词进行索引,创建倒排索引数据区域,记录字或词在文档中出现位置(id列表)。用户有查询需求时,先访问倒排索引数据区域,得出文档id列表后,通过文档id即可快速、准确的找到具体的文档内容.

2 Elasticsearch架构

(1) 集群(cluster):集群中有多个节点,其中有一个为主节点,主节点通过选举产生的.

(2) 分片(shards):ES可以把一个完整的索引分成多个分片,分布到不同的节点上,构成分布式搜索.分片的数量只能在索引创建前指定,创建后不能更改.

(3) 副本(replicas):ES可以设置多个索引的副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复.二是提高ES的查询效率,ES会自动对搜索请求进行负载均衡.

(4) 索引(index):存储数据的表结构,任何搜索数据,存放在索引对象上.

(5) 文档类型(type):一个索引对象存放多种类型数据,数据用文档类型进行标识

(6) 映射(mapping):数据如何存放到索引对象上,需要有一个映射配置,包括:数据类型、是否存储、是否分词等.

(7) 文档(document):一条数据记录,存在索引对象上.

Elasticsearch 集群可以包含多个索引(Index),每个索引可以包含多个类型(Type),每个类型可以包含多个文档(Document),每个文档可以包含多个字段(Field).

3 Elasticsearch命令

3.1 系统配置

(1) 启动:bin/elasticsearch -d

(2) 停止:jps找到进程名为Elasticsearch对应的pid,杀掉进程

3.2 创建

(1) 创建索引

curl -XPUT http://ip:8200/index -d '
{
	"settings": {
		"index": {
			"number_of_shards": "5",
			"number_of_replicas": "1"
		}
	},
	"mappings": {
		"type": {
			"properties": {
				"tot_bring_pv": {
					"type": "long"
				},
				"tag_comm_detain": {
					"type": "integer"
				},
				"user_register_dur": {
					"type": "long"
				}
			}
		}
	}
}

3.3 修改

(1) 添加文档,指定doc_id.

curl -i -XPUT  http://ip:8200/index/type/1 -d '
{
	"birthday": null,
	"tenant_id": "1195139863579501676",
	"gender": "0",
	"city": null,
	"user_name": ""
}'

备注:也可用于修改文档

(2) 添加文档,自动产生文档id

curl -i -XPOST  http://ip:8200/index/type/ -d '
{
	"birthday": null,
	"tenant_id": "1195139863579501676",
	"gender": "0",
	"city": null,
	"user_name": ""
}'

3.4 删除

(1) 删除文档

curl -i -XPOST "http://ip:8200/index/_delete_by_query" -H 'Content-Type: application/json' -d'
{
  "query": { 
    "match": {
      "phone_number": "13672438580"
    }
  }
}

(2) 删除索引(谨慎)

#curl -i -XDELETE http://ip:8200/test_index/

3.5 查询

(1) 查询总记录数

curl -i -XGET 'http://ip:8200/feizhi_index/_count'

(2) 匹配查询

curl -i -XGET 'http://ip:8200/index/type/_search' -d '{
	"query": {
		"match": {
			"phone_number": "13672438580"
		}
	}
}'

(3) sql查询

curl -i XGET "http://ip:8200/_sql?sql=select%20*%20from%20index%20where%20phone_number=13536149112"

3.6 参数配置

(1) 设置每分钟可执行script的数量

curl -XPUT http://ip:8200/_cluster/settings -d '{ "transient": { "script.max_compilations_per_minute": 200 } }'

(2) 带账号密码

curl -i -XGET 'http://172.30.99.51:8200/index/_count'  -u 'elastic:Qinglian!2019'

(3) 禁止自动添加类型字段

PUT your_index
{
 "mappings":{
   "doc": {
    "dynamic": "strict",
    "properties": {
       ...
    }
   }
 }
}

4 Kibana

        Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看存储在Elasticsearch索引中的数据.使用Kibana,可以通过各种图表进行高级数据分析及展示.

4.1 常用命令

        启动:nohup ./kibana &

        查看Kibana进程:netstat -tunlp | grep 5601


版权声明:本文为weixin_43875878原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。