gpt4 book ai didi

elasticsearch - Elasticsearch未填充时间戳/无法在Kibana可视化中更改时间戳过滤器

转载 作者:行者123 更新时间:2023-12-03 02:24:41 25 4
gpt4 key购买 nike

我在docker中运行了Elasticsearch / Kibana 7.6.2

我最初使用kibana upload import csv从csv文件中加载了新索引,从而创建了新索引

我已经在仪表板上创建了几十个可视化效果都很好的 View

我已经使用_delete_by_query清除了索引中的数据

并使用curl myindex/_bulk从JSON文件中重新加载数据

所有工作正常但@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"}}
}
}

正确显示最小/最大KPI_DATE,但@timestamp为空
  "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,我在过去的几个小时中一直在尝试解决此问题,从中我无法弄清楚它是否已被弃用!

那么我该如何进行呢?我宁愿不从头开始!

我要么需要能够更改使用@timestamp的kibana默认过滤器(我敢肯定它会自动设置此设置)
要么
我需要能够获取它来填充索引中的@timestamp字段。

我已经搜寻了几个小时,感觉到我一定缺少明显的东西!

提前致谢!

最佳答案

好的,部分解决了这个问题。...我看不到如何在原始索引中填充@timestamp字段,但我可以看到Kibana可视化使用一个kibana索引模式,该模式着眼于elasticsearch索引...日期字段

我可以创建一个新的kibana索引模式,导出我的仪表板和可视化文件,编辑JSON文件以替换kibana索引模式的ID(并实际上设置一个静态索引模式ID,以便我可以轻松地在开发环境和产品环境之间移动),然后导入我的仪表板和vizualization,它们现在将查看新的kibana索引模式,该模式将查看我的日期字段而不是@timestamp字段

关于elasticsearch - Elasticsearch未填充时间戳/无法在Kibana可视化中更改时间戳过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61375657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com