2015-10-09 8 views
7

मेरे पास दो टेबल के साथ एक MySQL डेटाबेस है, मैं mysql डेटा को ElasticSearch पर माइग्रेट करना चाहता हूं। बैच नौकरी के माध्यम से पूरे डेटाबेस को ईएस में माइग्रेट करना आसान है। लेकिन मैं mysql रीयलटाइम से ES को कैसे अपडेट करना चाहिए। यानी अगर MySQL में एक अद्यतन ऑपरेशन था तो मुझे ES में एक ही ऑपरेशन करना चाहिए। मैंने mysql binLog का शोध किया जो mysql से किसी भी बदलाव को प्रतिबिंबित कर सकता है। लेकिन मुझे ES वाक्यविन्यास में binLog को पार्स करना है, मुझे लगता है कि यह वास्तव में दर्दनाक है। धन्यवाद! (सोलर के साथ एक ही मामला)mysql डेटा को ElasticSearch रीयलटाइम पर माइग्रेट करने के लिए कैसे करें

उत्तर

7

मौजूदा प्रोजेक्ट जो आपके binlog लेता है, यह और जहाजों यह Elasticsearch को बदल देती है, आप इसे बाहर की जाँच कर सकते हैं: https://github.com/siddontang/go-mysql-elasticsearch

एक और एक होगा इस एक: https://github.com/noplay/python-mysql-replication

नोट, हालांकि, जो भी आप चुनते हैं, यह आपके बिनलॉग को अनुक्रमणित करने से पहले अपनी अनुक्रमणिका और मैपिंग को पूर्व-निर्माण करने का एक अच्छा अभ्यास है। इससे आपको अपने डेटा पर अधिक नियंत्रण मिल जाता है।

+0

आपको बहुत बहुत धन्यवाद! go-mysql-es भयानक है! सिर्फ एक प्रश्न: क्या आपको पता है कि यह अप्सर्ट ऑपरेशन कैसे करता है? उदाहरण के लिए मेरे पास दो टेबल टी 1 (यूआईडी, नाम), टी 2 (यूआईडी, आयु) हैं, उनके पास एक ही आईडी है और दो टेबल एक इंडेक्स से संबंधित हैं। लेकिन जब एक टेबल अपडेट किया गया था तो यह ईएस में मौजूदा रिकॉर्ड को ओवरराइट (हटा देगा)। असल में मुझे आशा है कि अपडेट ओवरराइट नहीं होगा। – Jack

1

सबसे अच्छा ओपन सोर्स समाधान this होगा। आप इसे कमांड लाइन के रूप में चला सकते हैं और कमांड में वृद्धिशील तर्क भी दे सकते हैं।

this सत्र के माध्यम से एक पूर्ण विचार प्राप्त करने के लिए जाओ।

+0

धन्यवाद! लेकिन यह वह नहीं है जिसे मैं ढूंढ रहा हूं। दस्तावेज़ केवल दिखाता है कि वृद्धिशील डेटा कैसे प्राप्त करें, लेकिन मुझे हटाए गए डेटा और अद्यतन डेटा की निगरानी करने की आवश्यकता है। – Jack

संबंधित मुद्दे