白话Elasticsearch73_ES生产集群中的索引管理02
文章目录
概述
继续跟中华石杉老师学习ES,第74篇
课程地址: https://www.roncoo.com/view/55
官方指导
Index APIs: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices.html
1、mapping管理
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices.html#mapping-management
put mapping命令可以让我们给一个已有的索引添加一个新的type,或者修改一个type,比如给某个type加一些字段
put mapping: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html
下面这个命令是在创建索引的时候,直接跟着创建一个type
curl -XPUT 'http://elasticsearch02:9200/twitter?pretty' -d ' { "mappings": { "tweet": { "properties": { "message": { "type": "text" } } } } }'
下面这个命令是给一个已有的索引添加一个type 。 7.x 已经取消这个功能了,了解即可。
curl -XPUT 'http://elasticsearch02:9200/twitter/_mapping/user?pretty' -d ' { "properties": { "name": { "type": "text" } } }'
下面这个命令是给一个已有的type添加一个field
curl -XPUT 'http://elasticsearch02:9200/twitter/_mapping/tweet?pretty' -d ' { "properties": { "user_name": { "type": "text" } } }'
curl -XGET 'http://elasticsearch02:9200/twitter/_mapping/tweet?pretty',上面这行命令可以查看某个type的mapping映射信息
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html
curl -XGET 'http://elasticsearch02:9200/twitter/_mapping/tweet/field/message?pretty',这行命令可以看某个type的某个field的映射信息
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-field-mapping.html
Type exists API https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-types-exists.html
mapping管理是运维中,索引管理中,很基础的一块
2、索引别名管理
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices.html#alias-management
curl -XPOST 'http://elasticsearch02:9200/_aliases?pretty' -d ' { "actions" : [ { "add" : { "index" : "twitter", "alias" : "twitter_prod" } } ] }'
curl -XPOST 'http://elasticsearch02:9200/_aliases?pretty' -d ' { "actions" : [ { "remove" : { "index" : "twitter", "alias" : "twitter_prod" } } ] }'
POST /_aliases { "actions" : [ { "remove" : { "index" : "test1", "alias" : "alias1" } }, { "add" : { "index" : "test2", "alias" : "alias1" } } ] }
POST /_aliases { "actions" : [ { "add" : { "indices" : ["test1", "test2"], "alias" : "alias1" } } ] }
上面是给某个index添加和删除alias的命令,还有重命名alias的命令(先删除再添加),包括将一个alias绑定多个index
POST /_aliases { "actions" : [ { "add" : { "index" : "test1", "alias" : "alias2", "filter" : { "term" : { "user" : "kimchy" } } } } ] }
DELETE /logs_20162801/_alias/current_day
GET /_alias/2016
索引别名,还是挺有用的,主要是什么呢,就是说,可以将一个索引别名底层挂载多个索引,比如说7天的数据
索引别名常常和之前讲解的那个rollover结合起来,我们为了性能和管理方便,每天的数据都rollover出来一个索引,但是在对数据分析的时候,可能是这样子的,有一个索引access-log,指向了当日最新的数据,用来计算实时数据的; 有一个索引access-log-7days,指向了7天的7个索引,可以让我们进行一些周数据的统计和分析。
3、index settings管理
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices.html#index-settings
3.1 Update index settings API
语法
PUT /<index>/_settings
curl -XPUT 'http://elasticsearch02:9200/twitter/_settings?pretty' -d ' { "index" : { "number_of_replicas" : 1 } }'
3.2 Get index settings API
curl -XGET 'http://elasticsearch02:9200/twitter/_settings?pretty'
经常可能要对index做一些settings的调整,常常和之前的index open和close结合起来使用
4、index template
4.0 官方文档
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices.html#index-templates
我们可以定义一些index template,这样template会自动应用到根据匹配规则( based on an index pattern)匹配到的新创建的索引上去。
template中可以包含settings和mappings,还可以包含一个pattern,决定了template会被应用到哪些index上。
而且template仅仅在index创建的时候会被应用,修改template,是不会对已有的index产生影响的。
4.1 新建/更新模板
语法:
PUT /_template/<index-template>
创建或者更新模板
curl -XPUT 'http://elasticsearch02:9200/_template/template_access_log?pretty' -d ' { "template": "access-log-*", "settings": { "number_of_shards": 2 }, "mappings": { "log": { "_source": { "enabled": false }, "properties": { "host_name": { "type": "keyword" }, "created_at": { "type": "date", "format": "EEE MMM dd HH:mm:ss Z YYYY" } } } }, "aliases" : { "access-log" : {} } }'
4.2 删除模板
curl -XDELETE 'http://elasticsearch02:9200/_template/template_access_log?pretty'
# 删除模板 DELETE _template/template_1
返回
{ "acknowledged": true }
4.3 查看模板
curl -XGET 'http://elasticsearch02:9200/_template/template_access_log?pretty'
# 查看所有的模板 GET _template # 查看特定的模板 GET _template/template_1
4.4 使用模板创建索引
curl -XPUT 'http://elasticsearch02:9200/access-log-01?pretty'
查看索引, 观察模板是否被自动的关联到了匹配的模板上了。
curl -XGET 'http://elasticsearch02:9200/access-log-01?pretty'
# 新建索引 匹配模板的index_patterns PUT test
GET test/_mapping
4.5 模板的使用场景
index template使用场景: 举个例子你可能会经常创建不同的索引,比如说商品,分成了多种,每个商品种类的数据都很大,可能就是说,一个商品种类一个索引,但是每个商品索引的设置是差不多的,所以干脆可以搞一个商品索引模板,然后每次新建一个商品种类索引,直接绑定到模板,引用相关的设置。
简言之,将公共的东西抽取到模板中,省去了一遍一遍设置的麻烦。
- 点赞 1
- 收藏
- 分享
- 文章举报
- 白话Elasticsearch63-生产集群部署之硬件配置、jvm以及集群规划建议
- ES 30 - Elasticsearch生产集群的服务器配置建议
- ES 31 - 从0开始搭建Elasticsearch生产集群
- Elasticsearch应用三:索引详解(分词器、文档管理、路由详解(集群))
- Elasticsearch中的document数据格式,简单的集群管理,商品的索引的CRUD操作(学习资料记录)
- Elasticsearch之重要核心概念(cluster(集群)、shards(分配)、replicas(索引副本)、recovery(据恢复或叫数据重新分布)、gateway(es索引的持久化存储方式)、discovery.zen(es的自动发现节点机制机制)、Transport(内部节点或集群与客户端的交互方式)、settings(修改索引库默认配置)和mappings)
- elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)
- elasticsearch系列三:索引详解(分词器、文档管理、路由详解(集群))
- Elasticsearch集群管理之1——如何高效的添加、删除节点?
- elasticsearch 索引 Warmer 管理
- es集群web管理工具cerebro
- Elasticsearch-ES 5.x (Head,Kibana,X-Pack) 集群的部署、配置、测试
- Elasticsearch 权威教程 - 索引管理
- 02-aggregation-and-analysis-es控制聚合内存使用-elasticsearch权威指南翻译
- elasticsearch的集群配置更新和索引配置更新
- 效率SMT生产管理系统(ES-PMS)
- elasticsearch源码分析之集群管理(一)
- 干货 | Elasticsearch索引生命周期管理探索
- Elasticsearch6.2 研究--索引管理
- 生产环境Docker搭建Elasticsearch集群