Există o modalitate de a seta ttl în indexul de căutare elastic? (Programare, Elasticsearch)

Dhyan a intrebat.

Văd că documentele spun că putem seta ttl pe un document, dar nu și pe index/indice. De asemenea, am vrut să știu dacă are vreun impact asupra performanței dacă setăm ttl.

3 răspunsuri
Andrei Ștefan

_ttl este activat per index, dar expirarea funcționează per document.

Dacă vrei ca indicii tăi să „expire”, șterge-i. Mult mai simplu și mai performant.

Și da, _ttl are un impact asupra performanței.Modul Elasticsearch de a trata datele „expirate” este de a crea indici pe bază de timp. Adică, pentru fiecare zi sau pentru fiecare săptămână creați un indice. Indexați tot ceea ce aparține acelei zile/săptămâni în acel indice. Decideți câte zile doriți să păstrați și respectați acel număr.

Să spunem că doriți să păstrați datele timp de 7 zile. În a 8-a zi creați un nou index, ca de obicei, apoi ștergeți indexul din cele 8 zile anterioare. În tot acest timp veți avea în clusterul dvs. 7 indici. Site-ul ttl mecanismul verifică la fiecare indices.ttl.interval (60 de secunde în mod implicit) pentru documentele expirate, creează cereri în bloc din acestea și le șterge. Acest lucru înseamnă cereri inutile care vin la cluster.

În schimb, ștergerea unui index este foarte ușoară și rapidă.

Aruncați o privire la acest și cum să gestionați cu ușurință indicii pe bază de timp cu Curator.

Comentarii

  • De fapt, ar fi mai ușor să aveți TTL pentru fiecare document, așa cum are Cassandra în acest caz. Performanța nu este o problemă Vă mulțumesc! –  > Por Jacek Perry.
Serhii Povisenko

_ttlAbordarea de tip -like este depreciată acum (din cauza impactului asupra performanței al reiterării la nesfârșit), iar Elastic a introdus index lifecycle management (ILM)

Așadar, ceea ce ați dori să faceți acum în schimb este crearea unui index dinamic în fiecare zi, de exemplu, cu un model de nume specific datei, de ex. my-app-log-yyyy-mm-dd și o politică ILM care să se ocupe de ștergerea indicilor care nu mai sunt într-un interval de timp dorit

Pe lângă aceasta, Elastic vă oferă API pentru gestionarea unor astfel de politici, și anume POST sau GET prin urmare, puteți automatiza acest lucru în cadrul aplicației dvs. pentru a evita munca manuală și pentru a păstra totul frumos și coerent.

Indexurile în sine sunt, de obicei, ușor de gestionat de către logger, Logback de exemplu, vă permite să creați indici dinamici atunci când îi definiți numele în configurație în felul următor:

 <index>my-app-logs-%date{yyyy-MM-dd}</index

Dmitry Polyakovsky

Este TTL încă acceptat în versiunea ElasticSearch 6.1? Documentația nu o menționează, dar eram curios dacă cineva a încercat. Sunt de acord că utilizarea Curator și crearea de indici pe bază de timp este o modalitate mult mai bună.

Comentarii

  • acesta ar trebui să fie un comentariu –  > Por colidyre.
  • TTL a fost eliminat în 5.0 –  > Por xeraa.