Индексирование в ElasticSearch для аудита

Существует архитектура на основе микрослужб, в которой каждая служба имеет свой тип объекта. Например:

Сервис-1:

{
    "entity_type": "SKU",
    "sku": "123",
    "ext_sku": "201",
    "store": "1",
    "product": "abc",
    "timestamp": 1564484862000
}

Сервис-2:

{
    "entity_type": "PRODUCT",
    "product": "abc",
    "parent": "xyz",
    "description": "curd",
    "unit_of_measure": "gm",
    "quantity": "200",
    "timestamp": 1564484863000
}

Сервис-3:

{
  "entity_type": "PRICE",
  "meta": {
    "store": "1",
    "sku": "123"
  },
  "price": "200",
  "currency": "INR",
  "timestamp": 1564484962000
}

Сервис-4:

{
  "entity_type": "INVENTORY",
  "meta": {
    "store": "1",
    "sku": "123"
  },
  "in_stock": true,
  "inventory": 10,
  "timestamp": 1564484864000
}

Я хочу написать Службу аудита с поддержкой elasticsearch, которая будет принимать все эти объекты и индексировать их на основе entity_type, store, sku, timestamp.

Подойдет ли здесь elasticsearch? Кроме того, как будет работать индексация? Так, например, если я ищу store=1, он должен возвращать все различные объекты, которые имеют store как 1. Во-вторых, смогу ли я получить все сущности между 2 timestamps?

Будут ли здесь хорошим выбором ES и Kibana (для визуализации)?


person User_Targaryen    schedule 30.07.2019    source источник


Ответы (1)


Да. Ваш вариант использования в значительной степени соответствует тому, что описано в документах в контексте фильтра:

В контексте фильтра предложение запроса отвечает на вопрос «Соответствует ли этот документ этому предложению запроса?» Ответ прост: «Да» или «Нет» — баллы не рассчитываются. Контекст фильтра в основном используется для фильтрации структурированных данных, например.

  • Попадает ли эта временная метка в диапазон с 2015 по 2016 год?
  • Поле состояния установлено на published?
person xeraa    schedule 30.07.2019