Elasticsearch не заполняет временную метку / не может изменить фильтр временной метки в визуализации kibana - PullRequest
0 голосов
/ 23 апреля 2020

У меня Elasticsearch / Kibana 7.6.2, работающий в docker

Я изначально загрузил новый индекс из CSV-файла, используя CSV-файл загрузки при загрузке kibana, который создал новый индекс

I ' я создал десятки визуализаций на приборной панели, которые все работали нормально

Я очистил данные в индексе, используя _delete_by_query

, и перезагрузил данные из файла JSON, используя curl myindex/_bulk

Это все сработало, НО @timestamp не заполнился в моем индексе, и поэтому теперь все визуализации не могут найти никаких данных, так как кажется, что исправлено использование @timestamp в качестве фильтра даты. Я не могу создать новую визуализацию, поскольку не могу заставить фильтр по умолчанию использовать мое поле даты (которое заполняется нормально)

Я перезагрузил, используя

myindex/_bulk
{ "index" : {} }
{"RECORDS" : -27620,"KPI_DATE" : "2020-04-01","KPI_TYPE" : "Net Sales","DEPARTMENT" : "Sales","BRANCH" : "My Company","BRAND" : "My Company","ORDER" : "1110"}
{ "index" : {} }
{"RECORDS" : -20880,"KPI_DATE" : "2020-04-06","KPI_TYPE" : "Net Sales","DEPARTMENT" : "Sales","BRANCH" : "My Company","BRAND" : "My Company","ORDER" : "1110"}
{ "index" : {} }
{"RECORDS" : -3981.5,"KPI_DATE" : "2020-02-21","KPI_TYPE" : "NET +/-","DEPARTMENT" : "Sales","BRANCH" : "My Company","BRAND" : "My Company","ORDER" : "1110"}

Все данные импортированы, но @timestamp не заполнен

GET myindex/_search?size=0
{
  "aggs": {
    "min_date": {"min": {"field": "KPI_DATE", "format": "yyyy-MM-dd"}},
    "max_date": {"max": {"field": "KPI_DATE", "format": "yyyy-MM-dd"}},
    "min_timestamp": {"min": {"field": "@timestamp"}},
    "max_timestamp": {"max": {"field": "@timestamp"}}
  }
}

Правильно показывает min / max KPI_DATE, но @timestamp имеет значение null

  "aggregations" : {
    "max_date" : {
      "value" : 1.5873408E12,
      "value_as_string" : "2020-04-20"
    },
    "min_date" : {
      "value" : 1.4278464E12,
      "value_as_string" : "2015-04-01"
    },
    "max_timestamp" : {
      "value" : null
    },
    "min_timestamp" : {
      "value" : null
    }
  }

Я попытался обновить @timestamp, используя

POST myindex/_update_by_query
{
  "query": {"match_all": {}},
  "script": {
    "source": "ctx._source._timestamp = ctx._source.KPI_DATE"
  }
}

, который возвращает ошибку, говоря, что поле является полем метаданных, которое я не могу обновить, Field [_timestamp] is a metadata field and cannot be added inside a document. Use the index API request parameters

Мое отображение выглядит так, дата выглядит хорошо:

{
  "mapping": {
    "_doc": {
      "_meta": {
        "created_by": "ml-file-data-visualizer"
      },
      "properties": {
        "@timestamp": {
          "type": "date"
        },
        "BRANCH": {
          "type": "keyword"
        },
        "BRAND": {
          "type": "keyword"
        },
        "DEPARTMENT": {
          "type": "keyword"
        },
        "KPI_DATE": {
          "type": "date",
          "format": "iso8601"
        },
        "KPI_TYPE": {
          "type": "keyword"
        },
        "ORDER": {
          "type": "integer"
        },
        "RECORDS": {
          "type": "float"
        }
      }
    }
  }
}

Он автоматически добавил @timestamp, который я не могу выяснить, устарел ли он или нет из-за различных вещей, которые я читал, пытаясь исправить это за последние несколько часов!

Так как же я продолжу ?! Я бы предпочел не начинать с нуля!

Мне нужно либо иметь возможность изменить фильтр по умолчанию в kibana вместо использования @timestamp (я уверен, что он установил это автоматически), либо мне нужно получить чтобы заполнить поле @timestamp в моем индексе.

Я искал несколько часов и чувствую, что, должно быть, упускаю что-то очевидное!

Заранее спасибо!

1 Ответ

0 голосов
/ 23 апреля 2020

Хорошо, частично понял это ... Я не вижу, как заполнить поле @timestamp в моем исходном индексе, НО я вижу, что визуализации Kibana используют шаблон индекса kibana, который смотрит на индексasticsearch ... в котором указывается поле даты

. Я могу создать новый шаблон индекса kibana, экспортировать панель мониторинга и визуализации, отредактировать файл JSON, чтобы заменить идентификатор шаблона индекса kibana (и фактически установить stati c идентификатор шаблона индекса, чтобы я мог легко перемещаться между средами разработки и разработки), а затем импортировать свою панель мониторинга и визуализации, которые теперь будут смотреть на новый шаблон индекса кибаны, который смотрит на мое поле даты, а не на поле @timestamp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...