tutorial - Eliminar datos de ElasticSearch




kibana download (13)

Si alguna vez necesita eliminar todos los índices, esto puede ser útil:

curl -X DELETE 'http://localhost:9200/_all'

Soy nuevo en ElasticSearch . Estoy tratando de averiguar cómo eliminar datos de ElasticSearch. He borrado mis índices. Sin embargo, eso no parece eliminar realmente los datos en sí. Las otras cosas que he visto apuntan a la función Eliminar por consulta . Sin embargo, ni siquiera estoy seguro de qué preguntar. Conozco mis índices. Esencialmente, me gustaría averiguar cómo hacer una

DELETE FROM [Index]

Desde PostMan en Chrome. Sin embargo, no estoy teniendo ninguna suerte. Parece que no importa lo que haga, los datos cuelgan alrededor. Hasta ahora, he eliminado con éxito los índices utilizando DELETE HTTP Verb en PostMan y usando una URL como:

   http://localhost:9200/[indexName]

Sin embargo, eso no parece eliminar realmente los datos (también conocidos como documentos).


#list all index:       curl -XGET http://localhost:9200/_cat/indices?v 

#delete index:         curl -XDELETE 'localhost:9200/index_name'
#delete all indices:   curl -XDELETE 'localhost:9200/_all'
#delete document   :   curl -XDELETE 'localhost:9200/index_name/type_name/document_id'

Instalar kibana . Kibana tiene una herramienta de desarrollo más inteligente que ayuda a crear consultas fácilmente.


Para la eliminación masiva por consulta, puede utilizar la eliminación especial por API de consulta :

$ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

En la historia esa API fue eliminada y luego reintroducida de nuevo

Quien interesante tiene larga historia.

  1. En la primera versión de esa respuesta me refiero a la documentación de elasticsearch versión 1.6 . En él, esa funcionalidad estaba marcada como obsoleta pero funciona bien.
  2. En la versión 2.0 de elasticsearch se movió a un plugin separado . Y hasta se explicaron las razones por las que se convirtió en plugin.
  3. ¡Y nuevamente apareció en la API central en la versión 5.0 !

La documentation (o la Guía definitiva ) dice que también puede utilizar la siguiente consulta para eliminar todos los índices:

curl -XDELETE 'http://localhost:9200/*'

Y hay una nota importante:

Para algunos, la posibilidad de eliminar todos sus datos con un solo comando es una perspectiva muy aterradora. Si desea eliminar la posibilidad de una eliminación masiva accidental, puede configurar lo siguiente como true en su elasticsearch.yml :

action.destructive_requires_name: true


Al eliminar el índice se eliminará la asignación y el tipo a lo largo. Puedes eliminar todas las filas por la siguiente consulta

curl -XDELETE 'localhost:9200/twitter/tweet/_query?pretty' -d'
{
   "query": { 
      "match_all": 
   }
}'

Sin embargo, para la consulta anterior, debe instalar el complemento eliminar por consulta, ya que la eliminación por consulta 2.0.0-beta1 de Elasticsearch se eliminó de la API principal.

Install delete-by-query plugin

sudo bin/plugin install delete-by-query

Para más

http://blog.appliedinformaticsinc.com/how-to-delete-elasticsearch-data-records-by-dsl-query/


Puede eliminar el índice completo, el tipo de documento o un dato de identificación especial. estas son las tres formas:

  1. curl -XDELETE localhost: 9200 / nombre_índice

  2. curl -XDELETE localhost: 9200 / index_name / doc-type

  3. curl -XDELETE localhost: 9200 / nombre_índice / tipo-doc / documentoId

y si desea eliminar todo el índice, vaya al comodín.


Tienes que enviar una solicitud DELETE a

http://[your_host]:9200/[your_index_name_here]

También puede eliminar un solo documento:

http://[your_host]:9200/[your_index_name_here]/[your_type_here]/[your_doc_id]

Te sugiero que uses elastichammer .

Después de eliminar, puede buscar si el índice aún existe con la siguiente URL: http://[your_host]:9200/_stats/

¡Buena suerte!


Use Curl -L localhost: 9200 / _cat / indices - Para listar índices hacia abajo

9200: puerto predeterminado [cambiar el puerto si se usa algún otro puerto]

Es probable que encuentre todos los índices que comienzan con el formato logstash-aaaa-mm-dd. (Logstash- *)

Ahora puedes enumerar todos los índices y usarlos.

Curl -XDELETE localhost: 9200 / nombre_índice (que eliminará los datos y los índices).



Puede eliminar usando cURL o visualmente usando una de las muchas herramientas que los entusiastas de código abierto han creado para Elasticsearch.

Usando cURL

curl -XDELETE localhost:9200/index/type/documentID

p.ej

curl -XDELETE localhost:9200/shop/product/1

A continuación, recibirá una respuesta sobre si esto tuvo éxito o no. También puede eliminar un índice completo o tipos con un índice, puede eliminar un tipo omitiendo la ID del documento como así:

curl -XDELETE localhost:9200/shop/product

Si desea eliminar un índice -

curl -XDELETE localhost:9200/shop

Si desea eliminar más de un índice que sigue una convención de nomenclatura determinada (observe el * , un carácter comodín), -

curl -XDELETE localhost:9200/.mar* 

Visualmente

Hay varias herramientas como se mencionó anteriormente, no las enumeraré aquí, pero las vincularé con una que le permite comenzar de inmediato, que se encuentra here . Esta herramienta se llama KOPF. Para conectarse a su host, haga clic en el logotipo en la esquina superior izquierda e ingrese la URL de su grupo.

Una vez conectado, podrá administrar todo su clúster, eliminar, optimizar y ajustar su clúster.


Quería eliminar el índice de logstash y busqué mucho sobre diferentes herramientas como curl. Pero encontré la solución al final. Inicia sesión en Kibana. Vaya a la pestaña Dev Tools (Herramientas de desarrollo) y escriba DELETE /logstash-* en el campo de consulta y DELETE /logstash-* botón de flecha verde. si obtiene un "acuse de recibo": verdadero en respuesta significa que los datos se han borrado.


También puede eliminar el índice usando la acción DELETE en 'elasticsearch head' ( complemento de Chrome ). Agrégalo a tu chrome y conéctalo a tu host. Allí encontrará todos sus índices y si hace clic en el botón de acciones debajo del índice que desea eliminar, encontrará una opción DELETE en el menú desplegable. haga clic en él e ingrese ELIMINAR en la ventana emergente. Su índice será eliminado. La extensión 'Elasticsearch head' es una manera fácil de ver y administrar sus índices y datos.


Vamos a aclarar la terminología un poco primero:

  • Nodo : ejecución de una instancia de Elasticsearch (un proceso de Java). Por lo general, cada nodo se ejecuta en su propia máquina.
  • Clúster : uno o más nodos con el mismo nombre de clúster.
  • Índice : más o menos como una base de datos.
  • Tipo : más o menos como una tabla de base de datos.
  • Shard : efectivamente un índice lucene. Cada índice está compuesto por uno o más fragmentos. Un fragmento puede ser un fragmento primario (o simplemente fragmento) o una réplica .

Cuando crea un índice, puede especificar la cantidad de fragmentos y el número de réplicas por fragmento. El valor predeterminado es 5 fragmentos primarios y 1 réplica por fragmento. Los fragmentos se distribuyen automáticamente de manera uniforme en el clúster. Nunca se asignará un fragmento de réplica en la misma máquina donde está el fragmento primario relacionado.

Lo que ves en el estado del clúster es raro, te sugiero que verifiques la configuración de tu índice utilizando la API de configuración de obtención . Parece que configuró solo un fragmento, pero de todos modos debería ver más fragmentos si tiene más de un índice. Si necesita más ayuda, puede publicar el resultado que obtiene de elasticsearch.

La cantidad de fragmentos y réplicas que utiliza realmente depende de sus datos, la forma de acceder a ellos y la cantidad de nodos / servidores disponibles. Es una buena práctica sobreasignar un poco los fragmentos para redistribuirlos en caso de que agregue más nodos a su clúster, ya que no puede (por ahora) cambiar el número de fragmentos una vez que haya creado el índice. De lo contrario, siempre puede cambiar la cantidad de fragmentos si está dispuesto a hacer un reindex completo de sus datos.

Cada fragmento adicional tiene un costo, ya que cada fragmento es efectivamente una instancia de Lucene. La cantidad máxima de fragmentos que puede tener por máquina realmente depende del hardware disponible y de sus datos también. Es bueno saber que tener 100 índices con cada fragmento o un índice con 100 fragmentos es realmente igual ya que tendría 100 instancias de lucene en ambos casos.

Por supuesto, en el momento de la consulta, si desea consultar un solo índice elasticsearch compuesto por 100 fragmentos, elasticsearch debería consultarlos a todos para obtener los resultados adecuados (a menos que utilice un enrutamiento específico para sus documentos y luego consulte solo un fragmento específico). Esto tendría un costo de rendimiento.

Puede verificar fácilmente el estado de su clúster y nodos utilizando la API de información de nodos de clúster a través de la cual puede verificar mucha información útil, todo lo que necesita para saber si sus nodos se ejecutan sin problemas o no. Aún más fácil, hay un par de complementos para verificar esa información a través de una agradable interfaz de usuario (que internamente usa las API bigdesk todos modos): paramedic y bigdesk .







elasticsearch