ElasticSearch 学习笔记 20191215

基础概念

NRT (Near Realtime)

ES的查询不是实时的,进索引后再查出,延迟不会超过1秒

集群 Cluster

Cluster 是 Node 的集合,Cluster的名字唯一

节点 Node

节点存储数据,参与Index&Search运算

索引 Index

索引是文档的集合,索引名称只能是小写的

文档 Document

文档是信息的基本单元,被Index的信息,就是文档;文档的格式只能是JSON;

分片(Shards)& 副本(Replicas)

一个索引里的数据量可能有10亿条,占用1T的存储空间,如果只有1个Node可能运算、存储能力都跟不上;解决办法是,分割1个Index到N个Shards,每个Shard有Index的完整功能,可以被分配到任意1个Node上去,这样便于分割或横向扩展ES集群;通过这种分布式&并发,能够通过增加Node提高性能及吞吐量;
副本的能力:1)提升高可用能力;2)跟分片类似,也能提升并发能力、吞吐量;

总结

每个Index可分割为多个Shard,每个Index可以有0个副本或多个副本;拥有副本的Index,会拥有两类分片:Primary Shard 、Replica Shard,副本数量可随时动态的调整;

_shrink and _split,这俩接口可给已存在的Index增加或减少Shard数量;

每个分片的最大数量是:2,147,483,519

安装

待补充

查看索引基本信息

ES提供了1个强大的 REST API 给我们提供了跟ES Cluster交互的通道,主要功能如下:

  • 查看 集群 节点 索引 的健康状况、数据;
  • 管理 集群 节点 索引数据 元数据;
  • 索引的 CURD 操作、查询操作;
  • 执行高级查询操作:paging、sorting、filtering、scripting、aggregations等;

查看Cluster信息

GET /_cat/health?v

epoch      timestamp cluster                 status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1576394406 07:20:06  elasticsearch green          11         8    336 168    0    0        0             0                  -                100.0%

查看Node信息

GET /_cat/nodes?v

ip          heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.17.3.14           44          95  20    5.78    5.08     4.75 di        -      5xa5kOK
172.17.3.10           69          95  28    6.54    5.09     4.66 di        -      4dnxamP
172.17.3.15           74          95  22    4.83    4.87     4.52 di        -      Bs4CG9y
172.17.3.20            2          75   0    0.00    0.01     0.05 mi        -      rzZXZ5T
172.17.3.9            57          95  20    5.40    4.95     4.51 di        -      Hh9uMaU
172.17.3.18            3          75   0    0.00    0.04     0.06 mi        *      HFYmHzu
172.17.3.16           49          95  28    5.49    4.52     4.32 di        -      EaECxZP
172.17.3.19            1          75   0    0.00    0.01     0.05 mi        -      -vvjApo
172.17.3.13           56          95  23    6.22    5.17     4.59 di        -      HuQhdN6
172.17.3.11           50          95  21    6.26    5.44     5.01 di        -      iJDUeJ7
172.17.3.12           44          95  33    5.33    5.05     5.02 di        -      aDS9FZm

查看索引信息

GET /_cat/indices?v

health status index                      uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   abnormal-92        -ASolaunSieNjRuJOfp8-Q   1   0     138684           26    593.8mb        593.8mb
green  open   ac-apply-batch-91  R6HR3kX1QNK8PfvnuI6AFg   1   1     473153            0    556.9mb        278.4mb
green  open   ac-apply-daily-91  bJbruUXmSxmBPxk3B1PywQ   1   1     292742            0    297.9mb        148.9mb
green  open   ac-apply-order-91  mNOtjL28Tiin4vdKxrP_QA   8   1   14093331            0     15.6gb          7.8gb
green  open   accounts-91        8DxWjlImQAOFFZskWINimQ   8   0    7451614            0     18.9gb         18.9gb
green  open   amap-zone-90       nw91DRxoRY6okv2queOmLg   1   0          0            0       261b           261b
green  open   approval-90        hmmn4TlvQiGuW2x5-HdUaA   1   0          0            0       261b           261b
green  open   batch-96           rtST_ROXTNKv5CHgvbiJnQ   8   0   20728026            0     92.1gb         92.1gb
green  open   batch-account-91   oH-lw8NURlmkTyuHchxFIQ   1   0    5003832            0      3.1gb          3.1gb
green  open   batch-invoice-91   EUEnLoyQRxGqGWTJ2y7Yog   1   0          0            0       261b           261b
green  open   co-dy-batch-90     TFGohd0cQhqJeXde14BGjQ   1   0          0            0       261b           261b
green  open   co-dy-ticket-90    iDletuK-QWqR5sCq1_Bzrw   1   0          0            0       261b           261b
green  open   company-info-94    6kt2KEPJQOWwOSwmYNb3Ew   1   0          0            0       261b           261b
green  open   customer-95        59wvGQ8CSTyupNlJVAGlQg   8   0          0            0        2kb            2kb
green  open   customer-proj-90   AxGfRZDoTNK3ZDA_lah4Gg   1   0       1140            0    659.7kb        659.7kb
green  open   driver-91          V9B8s6bqTMaKWpU0MXnkjQ   1   0          0            0       261b           261b
green  open   fuel-card-92       SvENC7tKTAqV2y9xVsKOiQ   1   0          0            0       261b           261b
green  open   fuel-carrier-90    MURSlOJaTVKHYXujok7YRw   1   0          0            0       261b           261b
green  open   goods-90           lvZFldjQQP6srkgBSWYygA   1   0      21601            0     27.6mb         27.6mb
green  open   goods-category-90  nPR0BmKASoiKxY-7PUtE3g   1   0        440            0      120kb          120kb
green  open   insurance-90       60jVebmbS7erCy5IrgMTWQ   1   0          0            0       261b           261b
green  open   line-91            F0w6DvAHSU26VFXsps_yoQ   1   0          0            0       261b           261b
green  open   log-92             2EUyrFSYScS1xug9KPdt5Q   8   0    5928788            1     70.6gb         70.6gb
green  open   loss-91            hx0KQR5-QUqq0IXBpSkPig   1   0        339            0    551.8kb        551.8kb
green  open   material-91        pA0ZZF3DSqWlL0Y1B1WSgg   1   0        330            0      7.9mb          7.9mb
green  open   material-apply-91  ry3G3knsSFK89KwWCzE_mA   1   0       1567            0      1.5mb          1.5mb

创建索引

PUT /customer?pretty

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "customer"
}

索引&查询数据

PUT /customer/_doc/1?pretty
{
  "name": "John Doe"
}
// 索引新增Document结果
{
  "_index" : "customer",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "_seq_no" : 0,
  "_primary_term" : 1
}

// 获取数据
GET /customer/_doc/1?pretty
// 返回的结果
{
  "_index" : "customer",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 2,
  "_seq_no" : 1,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "name" : "John Doe"
  }
}

// 删除索引

API的模式
///

更新Document

// 更新name值
POST /customer/_doc/1/_update?pretty
{
  "doc": { "name": "Jane Doe" }
}
// 更新的同时新增字段
POST /customer/_doc/1/_update?pretty
{
  "doc": { "name": "Jane Doe", "age": 20 }
}
// 通过script动态更新Document数据
POST /customer/_doc/1/_update?pretty
{
  "script" : "ctx._source.age += 5"
}
// 删除Document数据
DELETE /customer/_doc/2?pretty

批量操作

// 批量更新两条数据
POST /customer/_doc/_bulk?pretty
{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }

// 更新1条数据 删除1条数据
POST /customer/_doc/_bulk?pretty
{"update":{"_id":"1"}}
{"doc": { "name": "John Doe becomes Jane Doe" } }
{"delete":{"_id":"2"}}

批量操作,如果其中某条执行失败,其余的会继续执行

你可能感兴趣的:(ElasticSearch 学习笔记 20191215)