国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Elasticsearch:使用 ingest pipeline 來管理索引名稱

這篇具有很好參考價(jià)值的文章主要介紹了Elasticsearch:使用 ingest pipeline 來管理索引名稱。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在我之前的文章 “Elasticsearch:使用 pipelines 路由文檔到想要的 Elasticsearch 索引中去” 我詳述了如何使用已有的?date_index_name 處理器來把文檔歸類到所需要的和文檔日期相關(guān)的的索引中去。比如,我們想把 2023 年 4 月的所有文檔寫入到?my-index-2023-04-01 這個(gè)索引名稱中去。這個(gè)處理器很好地解決了在很多情況下,我們需要把當(dāng)月或者當(dāng)年的索引放到我們需要的以文檔時(shí)間戳相關(guān)索引名稱中,這樣便于以后的管理及搜索。

在今天的文章中,我們將以另外一種方式來實(shí)現(xiàn)同樣的方案。

各種不同的方法來修改數(shù)據(jù)

在 Elastic Stack 中的使用中,我們有許多不同的方案來修改數(shù)據(jù),比如:

Elasticsearch:使用 ingest pipeline 來管理索引名稱

在上面,我們使用定制的微服務(wù)來攝入商業(yè)應(yīng)用文檔,并使用我們的算法來修改文檔,最終通過 client 庫把文檔寫入到 Elasticsearch 中。這種方法的缺點(diǎn)是你需要編寫相應(yīng)的應(yīng)用程序來完成。針對(duì)大量的數(shù)據(jù),我們可能沒有緩沖,有時(shí)我們甚至不能保證至少一次傳輸。這種在 Logstash 和 Filebeat 中都有實(shí)現(xiàn)。

我們也可以采用 Logstash 來對(duì)數(shù)據(jù)進(jìn)行修改:

Elasticsearch:使用 ingest pipeline 來管理索引名稱?

Logstash 提供了豐富的過濾器來幫助我們處理數(shù)據(jù)。你可以閱讀文章 “Logstash:Logstash 入門教程 (一)” 以了解更多。這種方案的缺點(diǎn)是,為了應(yīng)付 single point of failure 及負(fù)載均衡,你需要管理多個(gè) Logstash 實(shí)例。這個(gè)需要額外的工作。??

在最新的開發(fā)者中,越來越多的開發(fā)者傾向于使用 ingest pipeline 來對(duì)數(shù)據(jù)進(jìn)行處理。更多關(guān)于 ingest pipeline 的文章可以參考 “Elastic:開發(fā)者上手指南”。

Elasticsearch:使用 ingest pipeline 來管理索引名稱

Ingest 節(jié)點(diǎn)是 Elasticsearch 集群中的一類節(jié)點(diǎn)。它可以幫我們運(yùn)行豐富的處理器來處理數(shù)據(jù)。由于它是 Elasticsearch 集群的一個(gè)部分,它可以很方便地進(jìn)行擴(kuò)容操作來應(yīng)付更多的需求。?

Elasticsearch:使用 ingest pipeline 來管理索引名稱

使用? Ingest pipeline 的好處是:

  • 能夠在不改變應(yīng)用程序邏輯的情況下修改數(shù)據(jù)
  • 與 Logstash 相比的輕量級(jí)解決方案
  • 單獨(dú)管理集群沒有額外開銷
  • 降低結(jié)構(gòu)復(fù)雜性

盡管 ingest pipeline 有上面的很多優(yōu)點(diǎn),但是使用 ingest pipeline 也有一些局限性:

  • 無法將文檔拆分為多個(gè)文檔([Ingest Pipeline] Ability to split documents · Issue #56769 · elastic/elasticsearch · GitHub)
  • 由于攝取管道的性質(zhì),同時(shí)處理多個(gè)文檔時(shí)可能會(huì)遇到挑戰(zhàn)
  • 不能和外部的數(shù)據(jù)庫進(jìn)行 join 等操作,也無法訪問外部的數(shù)據(jù)庫并寫入

除了上面所述的修改數(shù)據(jù)的方案中,另外一個(gè)就是通過 Beats processor 來對(duì)數(shù)據(jù)進(jìn)行加工。你可以更進(jìn)一步閱讀 “Beats:Beats processors”。

把數(shù)據(jù)寫入到我們想要的索引中去

我們接下來通過 ingest pipeline 的方法來把我們想要的數(shù)據(jù)寫入到我們想要的索引中去。我們想把

Elasticsearch:使用 ingest pipeline 來管理索引名稱

比如在上面,我們可以看到一個(gè)字段叫做 created_at。它是發(fā)生在 2022-11-30 這個(gè)天。我們想把這個(gè)文檔寫入到我們想要的索引名稱中 books.2022.11。道理很簡(jiǎn)單,我們就是想把當(dāng)月的所有文檔歸于同樣的一個(gè)索引名稱 books.2022.11 這個(gè)索引中。以后便于歸檔及搜索。在實(shí)際的生產(chǎn)環(huán)境中,有這種需求。那么我們?cè)撊绾螌?shí)現(xiàn)我們的這種需求呢?

我們采用 ingest pipeline 來實(shí)現(xiàn)這個(gè)需求。我們?cè)?Kibana 中打入如下的命令:

POST _ingest/pipeline/_simulate
{
  "pipeline": {
    "description": "Change index name according to created_at",
    "processors": [
      {
        "date": {
          "field": "created_at",
          "target_field": "index_suffix", 
          "formats": ["ISO8601"],
          "output_format": "yyyy.MM"
        }
      },
      {
        "set": {
          "field": "_index",
          "value": "{{ _index }}.{{index_suffix}}"
        }
      }
    ]
  },
  "docs": [
    {
      "_source": {
        "created_at": "2023-04-13T23:57:11.092808962ZZ",
        "content": "This is Xiaoguo, Liu from Elastic"
      }
    }
  ]
}

運(yùn)行上面的命令,我們看到的結(jié)果是:

{
  "docs": [
    {
      "doc": {
        "_index": "_index.2023.04",
        "_id": "_id",
        "_version": "-3",
        "_source": {
          "created_at": "2023-04-13T23:57:11.092808962ZZ",
          "content": "This is Xiaoguo, Liu from Elastic",
          "index_suffix": "2023.04"
        },
        "_ingest": {
          "timestamp": "2023-04-14T00:01:24.74589526Z"
        }
      }
    }
  ]
}

在上面,由于我們沒有指定?_index,所以測(cè)試的結(jié)果是?_index.2023.04。在下面,如果我們指定 _index,那么就會(huì)自動(dòng)替換我們想要的索引名稱。上面顯示它已經(jīng)是我們想要的結(jié)果。我們可以創(chuàng)建如下的 pipeline:

PUT _ingest/pipeline/change_index_according_to_created_at
{
  "description": "Change index name according to created_at",
  "processors": [
    {
      "date": {
        "field": "created_at",
        "target_field": "index_suffix",
        "formats": [
          "ISO8601"
        ],
        "output_format": "yyyy.MM"
      }
    },
    {
      "set": {
        "field": "_index",
        "value": "{{ _index }}.{{index_suffix}}"
      }
    }
  ]
}

運(yùn)行完上面的命令后,我們使用如下的命令來做測(cè)試:

PUT books/_doc/1?pipeline=change_index_according_to_created_at
{
  "created_at": "2023-04-13T23:57:11.092808962ZZ",
  "content": "This is Xiaoguo Liu from Elastic"
}

上面的命令返回的結(jié)果為:

{
  "_index": "books.2023.04",
  "_id": "1",
  "_version": 1,
  "result": "created",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 0,
  "_primary_term": 1
}

如上所示,我們的 _index 名稱現(xiàn)在變?yōu)?books.2023.04,而不是在寫入時(shí)的 books。我們可以通過如下的命令來進(jìn)行查詢剛才寫入的數(shù)據(jù):

GET books.2023.04/_search

上面的命令返回:

{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "books.2023.04",
        "_id": "1",
        "_score": 1,
        "_source": {
          "created_at": "2023-04-13T23:57:11.092808962ZZ",
          "content": "This is Xiaoguo Liu from Elastic",
          "index_suffix": "2023.04"
        }
      }
    ]
  }
}

其實(shí)安裝同樣的套路,通過修改 _index,我們可以任意組合我們的索引名稱。在生產(chǎn)環(huán)境中,我們更希望使用帶有日期標(biāo)簽的名稱來標(biāo)識(shí)我們的索引!文章來源地址http://www.zghlxwxcb.cn/news/detail-472525.html

到了這里,關(guān)于Elasticsearch:使用 ingest pipeline 來管理索引名稱的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Elasticsearch 索引管理:使用別名來修改字段類型

    在 Elasticsearch 中,一個(gè)常見的問題是如何修改已存在的索引的字段類型。這是一個(gè)棘手的問題,因?yàn)?Elasticsearch 本身不允許直接修改字段類型。如果刪除現(xiàn)有索引,重新建索引的話則會(huì)導(dǎo)致數(shù)據(jù)丟失。有一個(gè)方法是使用別名索引,當(dāng)需要調(diào)整索引時(shí)可以先新建一個(gè)索引,把數(shù)

    2024年02月03日
    瀏覽(31)
  • 使用阿里云試用Elasticsearch學(xué)習(xí):1.7 基礎(chǔ)入門——索引管理

    我們已經(jīng)看到 Elasticsearch 讓開發(fā)一個(gè)新的應(yīng)用變得簡(jiǎn)單,不需要任何預(yù)先計(jì)劃或設(shè)置。 不過,要不了多久你就會(huì)開始想要優(yōu)化索引和搜索過程,以便更好地適合您的特定用例。 這些定制幾乎圍繞著索引和類型的方方面面,在本章,我們將介紹管理索引和類型映射的 API 以及一

    2024年04月12日
    瀏覽(22)
  • 使用Elasticsearch進(jìn)行word,excel,PDF的全文檢索 windows實(shí)現(xiàn) 超完整(ingest-attachment實(shí)現(xiàn))

    使用Elasticsearch進(jìn)行word,excel,PDF的全文檢索 windows實(shí)現(xiàn) 超完整(ingest-attachment實(shí)現(xiàn))

    首先要明確的一點(diǎn)就是Elasticsearch的版本要和ingest-attachment的版本一致,要不然沒辦法安裝。然后還有一點(diǎn)JAVA版本要在11以上 先說說原理吧,其實(shí)就是將文件base64編碼,然后再用插件讀取文件內(nèi)容并保存到es中。 安裝完jdk之后用cmd查看一下java -version看看是否已經(jīng)從1.8修改為了

    2024年02月13日
    瀏覽(20)
  • Elasticsearch:Simulate ingest API

    Elasticsearch:Simulate ingest API

    Ingest pipeline 為我們攝入數(shù)據(jù)提供了極大的方便。在我之前的文章中,有非常多的有關(guān) ingest pipeline 的文章。請(qǐng)?jiān)敿?xì)閱讀文章 “Elastic:開發(fā)者上手指南”。針對(duì)一組提供的文檔執(zhí)行攝取管道,可以選擇使用替代管道定義。 Simulate ingest?API 旨在用于故障排除或管道開發(fā),因?yàn)樗?/p>

    2024年01月24日
    瀏覽(2)
  • Elasticsearch索引生命周期管理

    Elasticsearch索引生命周期管理

    數(shù)據(jù)量非常大 經(jīng)常訪問新增的數(shù)據(jù),隨著時(shí)間的推移,數(shù)據(jù)的價(jià)值也在逐漸降低 隨著數(shù)據(jù)量的增大,Elasticsearch創(chuàng)建索引的數(shù)量也在不斷增長(zhǎng),這個(gè)時(shí)候就需要對(duì) 索引 進(jìn)行一定策略的維護(hù)管理甚至是刪除清理,否則隨著數(shù)據(jù)量越來越多除了浪費(fèi)磁盤與內(nèi)存空間之外,還會(huì)嚴(yán)

    2024年02月04日
    瀏覽(18)
  • Elasticsearch 索引管理

    創(chuàng)建索引 壓縮前準(zhǔn)備 壓縮前準(zhǔn)備工作 副本0; 禁止寫; 必須同一個(gè)node 從這幾點(diǎn)能看出其背后的一些限制 壓縮索引 查看設(shè)置 是否生效或者有沒有其他限制 執(zhí)行 - 索引壓縮 寫數(shù)據(jù)前把禁止寫開關(guān)去掉 寫入數(shù)據(jù) 查看寫入數(shù)據(jù) 實(shí)際上是壓縮的分片,并非在原有索引上壓縮,而是

    2024年02月11日
    瀏覽(16)
  • 一起學(xué)Elasticsearch系列-索引管理

    本文已收錄至Github,推薦閱讀 ?? Java隨想錄 微信公眾號(hào):Java隨想錄 在Elasticsearch中,索引是對(duì)數(shù)據(jù)進(jìn)行組織和存儲(chǔ)的基本單元。索引管理涉及創(chuàng)建、配置、更新和刪除索引,以及與索引相關(guān)的操作,如數(shù)據(jù)導(dǎo)入、搜索和聚合等。這些關(guān)鍵任務(wù)直接影響著系統(tǒng)性能、數(shù)據(jù)可用

    2024年02月02日
    瀏覽(23)
  • ElasticSearch索引生命周期管理--DELETE

    概要 ElasticSearch中的索引生命周期管理,也就是ilm(Manage the index lifecycle),是指定了索引在不同周期下的處理策略。 ilm 的對(duì)象是索引而不是索引中的數(shù)據(jù)。 ilm 包括四個(gè)階段:hot 、warm、cold和delete。 hot、warm和cold表示索引的使用情況,delete可以指定索引完成rollover后的舊索引

    2024年02月13日
    瀏覽(31)
  • Elasticsearch 別名:靈活索引管理的利器

    在現(xiàn)代的大數(shù)據(jù)應(yīng)用中,Elasticsearch 以其卓越的全文搜索能力和分布式特性,成為了許多企業(yè)和開發(fā)者的首選數(shù)據(jù)存儲(chǔ)和查詢引擎。在Elasticsearch 的眾多功能中,別名(Alias)是一個(gè)相對(duì)簡(jiǎn)單但非常實(shí)用的特性。通過別名,我們可以更加靈活地管理索引,實(shí)現(xiàn)無縫的版本控制、

    2024年02月22日
    瀏覽(26)
  • Elasticsearch 懸掛索引解析與管理指南

    Elasticsearch 懸掛索引解析與管理指南

    在 Elasticsearch 的實(shí)戰(zhàn)中,懸掛索引是一個(gè)既常見又容易引起困擾的概念。 今天,我將分享一次處理集群狀態(tài)為RED,原因?yàn)?DANGLING_INDEX_IMPORTED 的實(shí)戰(zhàn)經(jīng)驗(yàn),深入探討懸掛索引的定義、產(chǎn)生原因、管理方法,以及如何有效處理它們,確保讀者能夠明白并解決自己面臨的問題。 值

    2024年04月08日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包