2012-10-19 7 views
5

मैं jprante's elasticsearch jdbc river का उपयोग कर elasticsearch में सूचकांक mysql रिकॉर्ड कोशिश कर रहा हूँ बदलते। मैंने अभी देखा है कि सूचकांक में दिनांक फ़ील्ड में मूल्य बदल रहा है।jprante elasticsearch JDBC नदी दिनांक मान

मैपिंग:

content_date:{ 
    "type":"date" 
} 

content_date mysql में एक रिकॉर्ड के लिए क्षेत्र ->2012-10-06 02:11:30

elasticsearch में JDBC नदी .... एक ही रिकार्ड के लिए

content_date क्षेत्र चलाने के बाद - >2012-10-05T20:41:30Z

नदी:

curl -XPUT 'localhost:9200/_riv_index/_riv_type/_meta' -d '{ 
    "type" : "jdbc", 
    "jdbc" : { 
     "driver" : "com.mysql.jdbc.Driver", 
     "url" : "jdbc:mysql://localhost:3306/db", 
     "user" : "user", 
     "password" : "password", 
     "sql" : "select * from table where id=2409", 
     "poll" : "1d", 
     "versioning" : false 
    }, 
    "index" : { 
     "index" : "myindex", 
     "type" : "mytype" 
    } 
}' 

दिनांक प्रारूप में परिवर्तन स्वीकार्य है, लेकिन दिनांक मूल्य क्यों बदल रहा है? नदी mysql रिकॉर्ड की तारीख करने के लिए UTC समय अंतर को जोड़ने और elasticsearch में सहेजने का है। मैं इस समय रूपांतरण को कैसे रोकूं?

+0

अभी भी हो रहा है, आपने इसे कैसे हल किया? – tostasqb

+0

मैं एक ही मुद्दे से जूझ रहा हूं .. इसे हल करने के लिए कोई भी तरीका http://serverfault.com/questions/674399/elasticsearch-river-jdbc-inserting-duplicate-record-in-mysql-db/674681#674681 –

उत्तर

0

Elasticsearch पीओवी से, यहाँ क्या डॉक्स कहा है:

दिनांक प्रकार एक विशेष प्रकार जो JSON स्ट्रिंग प्रकार के लिए नक्शे है। यह एक विशिष्ट प्रारूप का पालन करता है जिसे स्पष्ट रूप से सेट किया जा सकता है। सभी तिथियां यूटीसी हैं। आंतरिक रूप से, एक नंबर प्रकार स्ट्रिंग से लंबे समय तक के लिए और लंबे समय से स्ट्रिंग के लिए, लंबे समय से जोड़ा पार्स चरण के साथ करने के लिए एक पुराने नक्शों।

सुनिश्चित नहीं है कि आप इसे बदल सकते हैं। इस समस्या के लिए

0

समाधान JDBC ब्लॉक

"timezone" : "TimeZone.getDefault()" 

में समय-क्षेत्र का उपयोग करने के अलावा मैं mysql में अलग क्षेत्र में दिनांक और समय की बचत कर रहा हूँ डीबी

| date | date | YES | | NULL | | 
| time | time | YES | | NULL | | 

Elasticsearch है तारीख को बचाने के लिए Joda timeformat उपयोग करता है। इसलिए यह स्वचालित रूप से मेरी तिथि को डेटाटाइम में परिवर्तित कर रहा है।

तारीख क्षेत्र में, के बाद से मैं समय नहीं है, यह स्वतः ही शून्य के जोड़ रहा है इसे करने के लिए।

जब से मैं Kibana के माध्यम से डेटा प्रदर्शित करने के लिए यही कारण है कि मैं जरूरत इस split..I परिवर्तित varchar (20) के रूप में की तारीख और समय का स्वरूप एक समाधान के रूप (बुरा विचार मुझे पता है) और उसके ठीक काम कर रहा ..

की जरूरत