2016-03-19 17 views
0

Mevcut alan sütununda:Hive Kibana için Elasticsearch için: Hayır Fields adımları aşağıda takip ediyorum

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. 

Sorgu 1: Neden Zaman alan adı submission_date alamıyorum?

Sorgu 2: _timestamp öğesini seçip 'Oluştur' seçeneğini tıklattığımda, Discover sekmesindeki Kullanılabilir alanlar altında hiçbir şey almadım. Neden böyle?

+0

Eğer elasticsearch indeks eşleme dosyası İşte – Arun

+0

paylaşabilir misiniz tutorials_tbl_es için dosyasıdır: Nasıl biçimlendirileceğini bilmiyorum. {"eğitmen": {"aliases": {}, "mappings": {"eğitmenler": {"properties": {"@ timestamp": {"type": "string"}, "created_on": { "type": "string"}, "tutorial_author": { "type": "string"}, "tutorial_id": { "type": "uzun"}, "tutorial_title": { "type": "string" }}}}, "ayarlar": { "index": { "CREATION_DATE": "1458356711152", "UUID": "7cAEGzhvQPit0R8atxgRbw", "number_of_replicas": "1", "number_of_shards": "5", "versiyonu" : {"created": "2000099"}}}, "warmers": {}}} – Gagan

+0

Eminim ki haritalamada bir şey kaçırmıyorum belki de ES'de veri sütununu Kibana ile nasıl eşleştirelim – Gagan

cevap

1

Lütfen verileri tutorials_tbl dosyasına yükleyin ve aşağıdaki adımları uygulayın.

1. Adım: ayarlar ve eşlemelerle "öğretmen" dinamik şablonu oluşturun.

{ 
    "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" 
} 
} 
} 
} 
} 

Adım 2: ES endeksi "öğretmen" oluşturmak tutor- dayalı * şablonu (1. adımdan).

Genellikle oluşturmak için elasticsearch head "Index" sekmesini/"Herhangi bir istek" kullanıyorum.

Adım 3:

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'); 

Adım 4 damgası haritalama ile ES HIVE tablo oluşturmak: tutorials_tbl gelen insert veri

INSERT INTO tutorials_tbl_es SELECT * FROM tutorials_tbl LIMIT 1;