Hive to Elasticsearch to Kibana: Available field 列没有字段

Hive to Elasticsearch to Kibana: No Fields in the Available field column

我正在按照以下步骤操作:

Step 1:
create table tutorials_tbl(submission_date date, tutorial_id INT,tutorial_title STRING,tutorial_author STRING) ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe';

Step 2:
INSERT INTO tutorials_tbl (submission_date, tutorial_title, tutorial_author) VALUES ('2016-03-19 18:00:00', "Mark Smith", "John Paul");

Step 3:
CREATE EXTERNAL TABLE tutorials_tbl_es(submission_date date,tutorial_id INT,tutorial_title STRING,tutorial_author STRING)STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler' TBLPROPERTIES('es.resource'='tutor/tutors','es.nodes'='saturn:9200');

Step 4:
INSERT INTO tutorials_tbl_es SELECT * FROM tutorials_tbl LIMIT 1;

Now I selected the index in Kibana>Settings. I have configured _timestamp in the advanced settings so i only got that in the Time-field name even though I have submission_date column in the data.

问题 1:为什么我在时间字段名称中没有得到 submission_date?

查询 2:当我选择 _timestamp 并单击 'Create' 时,我在“发现”选项卡的“可用字段”下没有得到任何信息?为什么会这样?

请将数据加载到 tutorials_tbl 并尝试以下步骤。

第 1 步:使用设置和映射创建 "tutor" 动态模板。

{ 
  "order": 0,
  "template": "tutor-*",
  "settings": {
  "index": {
    "number_of_shards": "4",
    "number_of_replicas": "1",
    "refresh_interval": "30s"
    }
  },
"mappings": {

"tutors": {
"dynamic": "true",
"_all": {
"enabled": true
},
"_timestamp": {
"enabled": true,
"format": "yyyy-MM-dd HH:mm:ss"
},
"dynamic_templates": [
{
"disable_string_index": {

"mapping": {
"index": "not_analyzed",
"type": "string"
},
"match_mapping_type": "string",
"match": "*"
}

}
],
"date_detection": false,
"properties": {
"submission_date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"tutorial_id": {
"index": "not_analyzed",
"type": "integer"
},
"tutorial_title": {
"index": "not_analyzed",
"type": "string"
},
"tutorial_author": {
"index": "not_analyzed",
"type": "string"
}
}
}
}
}

第 2 步:基于 tutor-* 模板(来自第 1 步)创建 ES 索引 "tutor"。

我一般使用elasticsearch head "Index" tab / "Any request"来创建

第 3 步:使用时间戳映射创建 ES HIVE table

CREATE EXTERNAL TABLE tutorials_tbl_es(submission_date STRING ,tutorial_id INT,tutorial_title STRING,tutorial_author STRING)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'   TBLPROPERTIES('es.resource'='tutor/tutors','es.nodes'='saturn:9200','es.mapping.timestamp'='submission_date');

第 4 步:将数据从 tutorials_tbl 插入到 tutorials_tbl_es

INSERT INTO tutorials_tbl_es SELECT * FROM tutorials_tbl LIMIT 1;