Elasticsearch je besplatna tražilica i analitička tražilica otvorenog koda koja pokreće ELK Stack. Elasticsearch omogućuje različite podatkovne kanale pomoću alata kao što je Logstash za prikupljanje i agregiranje podataka. Elasticsearch zatim pohranjuje dostavljene podatke, dopuštajući aplikacijama pristup, pretraživanje, sortiranje i filtriranje velikih količina podataka u gotovo stvarnom vremenu. Elasticsearch vam također omogućuje vizualizaciju različitih podataka pomoću ugrađenih alata.
Takve značajke čine Elasticseach vrlo prikladnim za pretraživanje i sortiranje velikih količina podataka s minimalnom latencijom ili bez nje. Dakle, bilo da stvarate tražilicu ili analizirate zapisnike, metrike i druge tekstualne podatke, Elasticsearch je izvrstan izbor.
U srcu Elasticsearcha je indeks. Indeks se odnosi na jedinicu odgovornu za pohranu dokumenata u Elasticsearch. Indeks je relativno ekvivalentan bazi podataka u kontekstu relacijskih baza podataka. Na primjer, možete imati indeks koji sadrži sve podatke za zapisnike web aplikacije.
Kao i sve baze podataka, možete se susresti sa scenarijem u kojem trebate ukloniti sve podatke iz svog klastera, što vam omogućuje da počnete ispočetka.
Ovaj vam članak pokazuje kako koristiti značajke API-ja Elasticsearch za uklanjanje svih indeksa iz vašeg klastera.
OPREZ: Metode i tehnike korištene u ovom članku dovest će do gubitka podataka. Ne snosimo odgovornost za gubitak podataka do kojeg može doći zbog uputa u ovom članku.
Elasticsearch Delete Index API
Ako pokrećete Elasticsearch, morat ćete znati kako izvesti osnovne API pozive. To je zato što Elasticsearch maksimalno koristi API-je.
Kao što možete pogoditi, za uklanjanje indeksa iz klastera koristimo API za brisanje indeksa. Sintaksa za zahtjeve za brisanje indeksa je kao što je prikazano:
IZBRISATI /< indeks >
Zahtjev uklanja navedeni indeks i pohranjene dokumente, dijelove i sve njegove metapodatke.
Imajte na umu da ovo neće ukloniti nijednu Kibana komponentu povezanu s navedenim indeksom kao što su prikazi podataka itd.
Možete navesti jedan ili više indeksa odvajajući ih zarezima. Primjer sintakse je kao što je prikazano:
IZBRISATI / naziv_indeksaIZBRISATI / indeks1,indeks2,indeks3...indeksN
Elasticsearch vas sprječava da koristite pseudonim indeksa kada brišete indeks. Umjesto toga, morate koristiti naziv indeksa.
Primjer 1: Brisanje indeksa Elasticsearch
Sljedeći primjer pokazuje kako koristiti Elasticsearch API za brisanje indeksa za uklanjanje postojećeg indeksa iz klastera:
kovrča -XDELETE 'http://localhost:9200/kibana_sample_data_logs?pretty=true' -H 'kbn-xsrf: izvješćivanje'
Prethodni zahtjev šalje DELETE zahtjev API-ju za brisanje. Ovo bi trebalo ukloniti indeks s nazivom 'kibana_sample_data_logs'.
Rezultirajući izlaz je kao što je prikazano:
{'priznato' : pravi
}
Primjer 2: Elasticsearch Brisanje više indeksa
Možemo ukloniti višestruke indekse prosljeđivanjem kao popisa odvojenih zarezima. Primjer upita je kao što je prikazano:
kovrča -XDELETE 'http://localhost:9200kibana_sample_data_flights,kibana_sample_data_logs?pretty=true' -H 'kbn-xsrf: izvješćivanje'
Prethodna naredba briše navedene indekse i vraća poruku kao što je prikazano:
'priznato' : pravi
}
Napomena: Ako indeks ne postoji, Elasticsearch vraća pogrešku kao što je prikazano:
Primjer 3: Elasticsearch Brisanje svih indeksa
Možemo koristiti zamjenski znak _all u API-ju za brisanje indeksa kako bismo uklonili sve indekse iz klastera. API za brisanje indeksa će vas prema zadanim postavkama spriječiti u prosljeđivanju zamjenskih znakova u zahtjevu.
To možete onemogućiti postavljanjem action.desctructive_requires_name na false.
Sljedeći upit pokazuje vam kako omogućiti korištenje zamjenskih znakova u API-ju brisanja indeksa:
kovrča -XPUT 'localhost:9200 /_cluster/settings' -H 'kbn-xsrf: izvješćivanje' -H 'Content-Type: application/json' -d '{
'prolazno': {
'action.destructive_requires_name' : netočno
}
}'
NAPOMENA: Iako Elasticsearch ne preporučuje korištenje prolaznih postavki klastera, izbjegavajte postavljanje destruktivnih parametara klastera kao što je upotreba zamjenskih znakova kao trajne postavke klastera.
Prethodni upit trebao bi vratiti rezultat kao:
{'priznato' : pravi ,
'uporan' : { } ,
'prolazno' : {
'akcijski' : {
'destruktivno_zahtijeva_ime' : 'lažan'
}
}
}
Nakon uspjeha, možete ukloniti sve indekse u klasteru pokretanjem sljedeće naredbe:
Primjer 4: Elasticsearch Brisanje svih indeksa koji odgovaraju određenim imenima
Ako želite ukloniti sve indekse koji odgovaraju određenom uzorku, možete koristiti zamjenski znak (*).
Na primjer, da bismo uklonili sve indekse koji počinju s imenom kibana, možemo pokrenuti sljedeći upit:
kovrča -XDELETE “http://localhost:9200/kibana*” -H 'kbn-xsrf: izvješćivanje'
Prethodni zahtjev uklanja sve indekse koji počinju s kibana.
NAPOMENA: prethodni zahtjev zahtijeva korištenje zamjenskih znakova. Stoga morate omogućiti podršku za zamjenske znakove kao što je prikazano u prethodnom odjeljku.
Zaključak
Ovaj vodič vas je naučio kako koristiti Elasticsearch API za brisanje indeksa. Također ste naučili kako omogućiti podršku za zamjenske znakove u vašem klasteru, ukloniti sve indekse i ukloniti indekse koji odgovaraju određenom uzorku.