es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ELK: Gráfico de Kibana y mapeo de Elastic-Search.

Me gustaría solicitar consejo sobre la visualización de gráficos en Kibana y el mapeo de ElasticSearch con tipos de “join”.

Tengo diferentes entidades, digamos mascotas (llamémoslas entidades principales) y sus propietarios (entidad secundaria).

Estoy insertando mascotas en el índice “PETS” y colocando a los propietarios en un índice separado llamado “OWNERS”. Por lo tanto, algunas mascotas tienen una propiedad que se puede conectar/unir con su propietario correspondiente.

Así:

mascotas

{ 
  id: 1,
  name: 'Pikacho',
  ownerId: 1
}

propietario

{ 
  id: 1,
  name: 'Rachel',
  petId: 1
}

En realidad, soy libre de usar cualquier estructura que desee, incluso documentos anidados de propietario dentro de cada mascota. La verdadera pregunta es cómo lograr tener los datos en forma de gráfico.

Los propietarios realmente son una entidad separada y no los necesito en la lógica de negocio de mi aplicación, pero a veces, como usuario, me gustaría verificar en la interfaz de usuario de Kibana a través de un gráfico cuántas mascotas tiene un propietario, etc.

Entonces mi pregunta es: ¿Existen restricciones en la inserción de datos (con el método .index) a través del controlador de ElasticSearch para node.js, si quiero construir un gráfico?

  • ¿Debo crear el índice a través del método .create y marcar cada campo con el mapeo correcto, o puedo simplemente escribirlos como de costumbre en Elastic y luego conectar el campo necesario dentro de Kibana por el resultado?
  • ¿Cómo utilizar correctamente la relación de “join” en este caso, si tengo que utilizarlo para los gráficos y debo utilizarlo en absoluto?
  • ¿Debo tener dos índices diferentes para los gráficos que se puedan realizar, o es mejor tener una forma orientada a documentos con:
{
  id: 1,
  name: 'Pikachoo',
  owner: {
    id: 1,
    name: 'Rachel'
  }
}

Mis versiones de Elastic y Kibana son 7.16+ (actuales). Agradecería cualquier ejemplo proporcionado.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Consejos sobre la visualización de gráficos de Kibana y el mapeo de Elasticsearch con tipos de unión

    Si tienes diferentes entidades como mascotas y sus propietarios, puedes insertar las mascotas en el índice PETS y los propietarios en un índice separado llamado OWNERS. A veces, como usuario, es posible que desees verificar en la interfaz de usuario de Kibana a través de un gráfico de gráficos cuántas mascotas tiene un propietario, etc.

    Inserción de datos e indexación

    No hay restricciones en la inserción de datos a través del controlador de ElasticSearch para node.js. Puedes crear gráficos de gráficos creando un índice y marcando cada campo con el mapeo correcto, o simplemente puedes escribirlos como es habitual en Elastic y conectar los campos necesarios dentro de Kibana mediante el resultado.

    Relación de unión

    Puedes utilizar correctamente la relación join en este caso si necesitas usarla para los gráficos de gráficos. El mapeo del campo join define las relaciones entre documentos padre e hijos, por lo que puedes definir un mapeo de campo de unión entre los índices PETS y OWNERS. El campo de unión debe tener el mismo nombre en todos los documentos principales y el mismo nombre en todos los documentos secundarios.

    Puedes definir un mapeo de campo join de esta manera:

    PUT pets
    {
      "mappings": {
        "properties": {
          "id": { "type": "integer" },
          "name": { "type": "text" },
          "owner": { "type": "join", "relations": { "pets": "owners" } }
        }
      }
    }
    
    PUT owners
    {
      "mappings": {
        "properties": {
          "id": { "type": "integer" },
          "name": { "type": "text" },
          "pet_id": { "type": "integer" },
          "owner": { "type": "join", "relations": { "owners": "pets" } }
        }
      }
    }
    

    Indexación de datos

    Puedes tener dos índices diferentes para realizar gráficos de gráficos o tener un enfoque orientado a documentos con documentos incrustados como:

    {
      "id": 1,
      "name": "Pikachoo",
      "owner": {
        "id": 1,
        "name": "Rachel"
      }
    }
    

    Luego puedes insertar datos utilizando el método .index en el controlador de ElasticSearch para node.js.

    Conclusión

    En resumen, puedes crear dos índices separados para las entidades y definir el mapeo del campo join para construir gráficos de gráficos en Kibana. También puedes tener un enfoque orientado a documentos con documentos incrustados. No hay restricciones en la inserción de datos a través del controlador de ElasticSearch para node.js.

Comments are closed.