@timestamp
- это просто соглашение, поскольку префикс @
является префиксом по умолчанию для полей, сгенерированных Logstash.Поскольку вы не используете Logstash в качестве посредника между IoT и Elasticsearch, у вас нет сопоставления по умолчанию для @ timestamp.
Но в основном это просто имя, поэтому называйте его как хотите, единственноеважно то, что вы объявляете его как поле метки времени в разделе сопоставлений индекса Elasticsearch.
Если по какой-то причине вам все еще нужно, чтобы он назывался @timestamp
, вы можете либо SELECT
сделать это с этим префиксом прямо в разделе AS
(может быть проблема с ограничениями IoT для sql, но необязательно):
SELECT *, parse_time(\"yyyy-mm-dd'T'hh:mm:ss\", timestamp()) AS @timestamp, topic(2) AS deviceId FROM 'things/+/stdout'
Или вы используете функциональность copy_to , когда объявляете, что сопоставляете:
PUT devices/device
{
"mappings": {
"properties": {
"timestamp": {
"type": "date",
"copy_to": "@timestamp"
},
"@timestamp": {
"type": "date",
}
}
}
}