成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Elasticsearch 存儲一條數據, put 過程是什么樣子的?

存儲 存儲軟件
在前面已經介紹了 ES 中常用的一些名詞,知道了數據是存儲在 shard 中的,而 index 會映射一個或者多個 shard 。那這時候我要存儲一條數據到某個索引下,這條數據是在哪個 index 下的呢?

 [[340646]]

前言

 在前面已經介紹了 ES 中常用的一些名詞,知道了數據是存儲在 shard 中的,而 index 會映射一個或者多個 shard 。那這時候我要存儲一條數據到某個索引下,這條數據是在哪個 index 下的呢? "

1.ES演示

一切按照官方教程使用 三條命令,在本機啟動三個節點組裝成偽集群。

  1. ~  % > ./elasticsearch 
  2.  
  3. ~  % > ./elasticsearch -Epath.data=data2 -Epath.logs=log2 
  4.  
  5. ~  % > ./elasticsearch -Epath.data=data3 -Epath.logs=log3 

創建一個索引

  1. curl -X PUT "localhost:9200/my-index-000001?pretty" -H 'Content-Type: application/json' -d' 
  2.   "settings": { 
  3.     "index": { 
  4.       "number_of_shards": 3,   
  5.       "number_of_replicas": 2  
  6.     } 
  7.   } 

當前版本 7.9

ES 默認 number_of_shards 為 1

默認 number_of_replicas 為 1,即一個分片只有一個副本

 

下面命令可以查看索引信息:

  1. curl -X GET "localhost:9200/_cat/indices/my-index-000001?v&s=index&pretty" 

 

存放數據

  1. curl -X PUT "localhost:9200/my-index-000001/_doc/0825?pretty" -H 'Content-Type: application/json' -d' 
  2.   "name""liuzhihang" 

 

查詢數據

  1. curl -X GET "localhost:9200/my-index-000001/_doc/0825?pretty" 

 

2.一條數據該存放在哪個 shard ?

通過命令可以看出:在存放數據時并沒有指定到哪個 shard,那數據是存在哪里的呢?

當一條數據進來,會默認會根據 id 做路由:

  1. shard = hash(routing) % number_of_primary_shards 

從而確定存放在哪個 shard。routing 默認是 _id, 也可以設置其他。

這個 id 可以自己指定也可以系統給生成, 如果不指定則會系統自動生成。

3.put 一條數據的過程是什么樣的?

 

寫入過程主要分為三個階段

1.協調階段:Client 客戶端選擇一個 node 發送 put 請求,此時當前節點就是協調節點(coordinating node)。協調節點根據 document 的 id 進行路由,將請求轉發給對應的 node。這個 node 上的是 primary shard 。

2.主要階段:對應的 primary shard 處理請求,寫入數據 ,然后將數據同步到 replica shard。

  • primary shard 會驗證傳入的數據結構
  • 本地執行相關操作
  • 將操作轉發給 replica shard

3.當數據寫入 primary shard 和 replica shard 成功后,路由節點返回響應給 Client。

4.副本階段:每個 replica shard 在轉發后,會進行本地操作。

在寫操作時,默認情況下,只需要 primary shard 處于活躍狀態即可進行操作。

在索引設置時可以設置這個屬性

index.write.wait_for_active_shards

默認是 1,即 primary shard 寫入成功即可返回。

如果設置為 all 則相當于 number_of_replicas+1 就是 primary shard 數量 + replica shard 數量。就是需要等待 primary shard 和 replica shard 都寫入成功才算成功。

可以通過索引設置動態覆蓋此默認設置。

4.總結

如何看一條數據在哪個 shard 上呢?

curl -X GET "localhost:9200/my-index-000001/_search_shards?routing=0825&pretty"

通過上面命令可以查到數據 0825 的所在 shard。

 

相關資料

[1] ES 創建索引:

https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html

[2] ES 查詢數據:

https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-get.html

[2] ES 檢索 shard:

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-shards.html

本文轉載自微信公眾號「劉志航」,可以通過以下二維碼關注。轉載本文請聯系劉志航公眾號。

 

 

 

責任編輯:武曉燕 來源: 劉志航
相關推薦

2023-06-18 23:13:27

MySQL服務器客戶端

2018-01-16 15:02:20

存儲RAIDSAN

2022-10-10 08:47:49

ITCIO數據

2021-02-19 10:14:49

云計算公共云

2015-11-18 10:13:54

數據中心數據中心發展

2021-05-08 13:11:58

物聯網IOT物聯網技術

2022-03-15 16:19:13

物聯網物聯網 2.0IoT

2011-10-10 11:04:54

2020-11-04 11:17:20

好代碼程序員整潔

2014-04-08 09:56:30

銷售易CRM

2021-11-29 07:42:44

CSS 技巧CSS 繪圖技巧

2024-03-04 09:19:33

CSSbackground前端

2021-05-27 09:30:51

Java流程控制

2023-02-17 14:40:06

物聯網供應鏈

2021-10-04 15:46:31

網絡通信5G

2012-10-29 15:45:51

2021-01-07 07:33:06

Tomcat啟動工具

2021-09-30 19:12:46

通信網絡ADSL

2022-11-18 10:17:10

2019-09-03 14:57:33

智慧城市虛擬新加坡3D
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩在线大片 | 欧美精品在欧美一区二区少妇 | 中文字字幕在线中文乱码范文 | 五十女人一级毛片 | 中文字幕在线播放不卡 | 亚洲va欧美va天堂v国产综合 | 精品国产一区二区三区久久狼黑人 | a级免费观看视频 | 成人午夜毛片 | 亚洲欧洲在线观看视频 | 亚洲国产成人在线视频 | 国产精华一区 | 亚洲h视频 | 精久久久 | 亚洲精品中文字幕在线观看 | 9久9久9久女女女九九九一九 | av夜夜操| 色免费视频 | 精品国产三级 | 中文字幕日韩一区二区 | 国产高清在线 | 一级免费毛片 | 中文字幕不卡在线观看 | 国产不卡一区 | 欧美一级二级视频 | 亚洲九色| 成人av大全 | av乱码 | 亚洲五码久久 | 久久国产精品99久久久大便 | av手机免费在线观看 | 九九伦理电影 | 日本a视频| 久久国产精品免费视频 | 国产精品免费一区二区三区四区 | 久久中文字幕视频 | 西西裸体做爰视频 | 日韩精品一区二区在线观看 | 国产男女猛烈无遮掩视频免费网站 | 亚洲黄色片免费观看 | 色资源站|