Ëæ×ÅÒµÎñ¹æÄ£µÄÀ©´ó£¬Êý¾ÝÁ¿µÄ¼¤Ôö¶ÔÊý¾Ý¿âµÄ´æ´¢¡¢¼ìË÷¼°·ÖÎöÄÜÁ¦Ìá³öÁ˸ü¸ßÒªÇó
MySQL£¬×÷Ϊ¹ã·ºÊ¹ÓõĹØÏµÐÍÊý¾Ý¿â¹ÜÀíϵͳ£¬ÒÔÆäÎȶ¨¡¢¿É¿¿¡¢Ò×ÓÚ²¿ÊðµÄÌØµã£¬³ÉΪÖÚ¶àÆóÒµ´æ´¢½á¹¹»¯Êý¾ÝµÄÊ×Ñ¡
È»¶ø£¬Ãæ¶Ô¸´ÔÓ¶à±äµÄ²éѯÐèÇó£¬ÓÈÆäÊÇÈ«ÎÄËÑË÷¡¢ÊµÊ±·ÖÎöµÈ¸ß²¢·¢¡¢µÍÑÓ³Ù³¡¾°£¬MySQLµÄÐÔÄÜÆ¿¾±Öð½¥ÏÔÏÖ
Õâʱ£¬Elasticsearch£¨¼ò³ÆES£©ÒÔÆäÇ¿´óµÄËÑË÷Óë·ÖÎöÄÜÁ¦£¬³ÉΪMySQLÊý¾Ýͬ²½µÄÀíÏë»ï°é
±¾ÎĽ«ÉîÈë̽ÌÖMySQLΪºÎҪͬ²½Êý¾Ýµ½Elasticsearch£¬ÒÔ¼°ÕâÒ»²ßÂÔÈçºÎÖúÁ¦ÆóÒµ¹¹½¨¸ßЧ¡¢Áé»îµÄÊý¾Ý´¦ÀíÌåϵ
Ò»¡¢MySQLµÄ¾ÖÏÞÐÔ 1. È«ÎÄËÑË÷ÐÔÄÜÆ¿¾± MySQLµÄÈ«ÎÄËÑË÷¹¦ÄÜËäÔÚ½üÄêÀ´ÓÐËùÔöÇ¿£¬µ«ÈÔÊÜÏÞÓÚÆäÉè¼Æ³õÖÔ¡ª¡ªÖ÷ÒªÓÃÓÚÊÂÎñ´¦ÀíºÍ¹ØÏµ¹ÜÀí
¶ÔÓÚ°üº¬´óÁ¿Îı¾×ֶεÄÊý¾Ý¼¯£¬MySQLµÄÈ«ÎÄË÷Òý´´½¨ºÍ²éѯЧÂÊÍùÍù²»¾¡ÈËÒâ£¬ÌØ±ðÊÇÔÚ´¦ÀíÄ£ºýÆ¥Åä¡¢¶à×Ö¶Î×éºÏ²éѯʱ£¬ÐÔÄÜϽµÓÈΪÃ÷ÏÔ
2. ʵʱÊý¾Ý·ÖÎöÌôÕ½ MySQLÉó¤µÄÊǵã²éѯºÍÊÂÎñ´¦Àí£¬¶ø·Ç´ó¹æÄ£Êý¾ÝµÄʵʱ·ÖÎö
µ±ÐèÒª¶ÔÊý¾Ý½øÐоۺϷÖÎö¡¢Ç÷ÊÆÔ¤²â»ò¸´ÔÓ±¨±íÉú³Éʱ£¬MySQL¿ÉÄÜ»áÒòÎªËø»úÖÆ¡¢±íɨÃèµÈ²Ù×÷¶øµ¼ÖÂÏìÓ¦ÑÓ³Ù£¬Ó°ÏìÓû§ÌåÑéºÍÒµÎñ¾ö²ßЧÂÊ
3. ˮƽÀ©Õ¹ÄÑÌâ ËäÈ»MySQLÖ§³ÖÖ÷´Ó¸´ÖÆÒÔʵÏÖ¶Áд·ÖÀëºÍÒ»¶¨µÄ¸ºÔؾùºâ£¬µ«ÔÚÃæ¶ÔTB¼¶ÉõÖÁPB¼¶Êý¾Ý¹æÄ£Ê±£¬µ¥´¿µÄˮƽÀ©Õ¹²»½ö³É±¾¸ß°º£¬¶øÇÒÄÑÒÔ±£Ö¤Êý¾ÝÒ»ÖÂÐԺͲéѯÐÔÄÜ
¶þ¡¢ElasticsearchµÄÓÅÊÆ 1. Ç¿´óµÄÈ«ÎÄËÑË÷ÄÜÁ¦ Elasticsearch»ùÓÚLucene¹¹½¨£¬×¨ÎªËÑË÷¶øÉú
ËüÖ§³Öµ¹ÅÅË÷Òý¡¢·Ö´ÊÆ÷¡¢Í¬Òå´ÊÌæ»»µÈ¸ß¼¶ËÑË÷ÌØÐÔ£¬Äܹ»Ñ¸ËÙ´¦Àíº£Á¿Îı¾Êý¾Ý£¬ÊµÏÖºÁÃë¼¶µÄ¾«×¼ËÑË÷
´ËÍ⣬Elasticsearch»¹Ö§³Ö¸´ÔӵIJ¼¶û²éѯ¡¢µØÀíλÖòéѯµÈ£¬Âú×ã¶àÑù»¯µÄËÑË÷ÐèÇó
2. ʵʱµÄÊý¾Ý·ÖÎöÄÜÁ¦ ElasticsearchÄÚÖÃÁ˷ḻµÄÊý¾Ý·ÖÎö¹¤¾ß£¬Èç¾ÛºÏ£¨Aggregations£©¡¢Í°£¨Buckets£©µÈ£¬ÔÊÐíÓû§¶ÔÊý¾Ý½øÐм´Ê±Í³¼Æ¡¢·Ö×é¡¢ÅÅÐòµÈ²Ù×÷£¬·Ç³£ÊʺÏÈÕÖ¾·ÖÎö¡¢ÒµÎñ¼à¿ØµÈ³¡¾°
ͬʱ£¬ElasticsearchÖ§³Ö½üʵʱËÑË÷£¨Near Real-Time Search, NRT£©£¬È·±£Êý¾Ý¸üкóÄÜѸËÙ·´Ó³ÔÚ²éѯ½á¹ûÖÐ
3. Áé»îµÄˮƽÀ©Õ¹ ElasticsearchÌìÉú¾ß±¸·Ö²¼Ê½¼Ü¹¹£¬Äܹ»ÇáËÉʵÏÖ½ÚµãµÄÌí¼ÓÓëÒÆ³ý£¬×Ô¶¯Æ½ºâÊý¾Ý¸ºÔØ
ÕâÖÖÉè¼ÆÊ¹µÃElasticsearchÄܹ»ÏßÐÔÀ©Õ¹£¬ÇáËÉÓ¦¶ÔPB¼¶Êý¾ÝµÄ´æ´¢Óë·ÖÎöÐèÇó£¬Í¬Ê±±£³Ö¸ßÐÔÄܺ͵ÍÑÓ³Ù
4. ·á¸»µÄ²å¼þÓ뼯³ÉÉú̬ ElasticsearchÓµÓзḻµÄ²å¼þÉú̬£¬ÈçLogstashÓÃÓÚÊý¾ÝÊÕ¼¯ÓëÔ¤´¦Àí£¬KibanaÌṩ¿ÉÊÓ»¯½çÃæ£¬ÒÔ¼°ÓëHadoop¡¢SparkµÈ´óÊý¾Ýƽ̨µÄÉî¶È¼¯³É£¬ÎªÆóÒµ¹¹½¨Ò»Õ¾Ê½Êý¾Ý´¦ÀíÓë·ÖÎöƽ̨ÌṩÁ˼«´ó±ãÀû
Èý¡¢MySQLͬ²½Êý¾Ýµ½ElasticsearchµÄ±ØÒªÐÔ 1. ÌáÉýÓû§ÌåÑé ͨ¹ý½«MySQLÖеÄÊý¾Ýͬ²½ÖÁElasticsearch£¬ÆóÒµ¿ÉÒÔΪÓû§Ìṩ½üºõ¼´Ê±µÄËÑË÷ÌåÑ飬ÎÞÂÛÊÇÉÌÆ·ËÑË÷¡¢ÖªÊ¶¿â²éѯ»¹Êǿͻ§·þÎñϵͳ£¬¶¼ÄÜÏÔÖøÌáÉýÓû§ÂúÒâ¶ÈºÍÖҳ϶È
ͬʱ£¬ElasticsearchµÄÇ¿´ó·ÖÎöÄÜÁ¦Äܹ»°ïÖúÆóÒµ¿ìËÙ¶´²ìÓû§ÐÐΪ£¬ÓÅ»¯²úÆ·ºÍ·þÎñ
2. ÔöÇ¿Êý¾Ý´¦ÀíÁé»îÐÔ MySQLÓëElasticsearchµÄ½áºÏ£¬Ê¹µÃÆóÒµÄܹ»ÔÚÒ»¸öϵͳÖÐͬʱӵÓÐÊÂÎñ´¦ÀíºÍÊý¾Ý·ÖÎöÁ½´óÄÜÁ¦
MySQL¸ºÔðÊý¾ÝµÄ³Ö¾Ã»¯´æ´¢ºÍÊÂÎñ¹ÜÀí£¬¶øElasticsearchÔòרעÓÚÊý¾ÝµÄ¿ìËÙ¼ìË÷Óë·ÖÎö£¬Á½ÕßÏศÏà³É£¬´ó´óÔöÇ¿ÁËÊý¾Ý´¦ÀíµÄÁé»îÐÔºÍЧÂÊ
3. ½µµÍÔËά³É±¾ Ëæ×ÅÒµÎñµÄ·¢Õ¹£¬µ¥Ò»Êý¾Ý¿âϵͳÍùÍùÄÑÒÔͬʱÂú×ãËùÓÐÐÔÄÜÐèÇó
ͨ¹ýÊý¾Ýͬ²½£¬ÆóÒµ¿ÉÒÔ¸ù¾Ýʵ¼ÊÐèÇóÑ¡ÔñºÏÊʵĴ洢Óë·ÖÎö·½°¸£¬±ÜÃâÁ˶Ե¥Ò»ÏµÍ³µÄ¹ý¶ÈÒÀÀµ£¬½µµÍÁËÒòϵͳÉý¼¶¡¢Î¬»¤´øÀ´µÄ³É±¾ºÍʱ¼äͶÈë
4. ´Ù½øÒµÎñ´´ÐÂÓë¾ö²ßÓÅ»¯ ElasticsearchµÄʵʱÊý¾Ý·ÖÎöÄÜÁ¦ÎªÆóÒµÌṩÁËÇ¿´óµÄÊý¾Ý¶´²ì¹¤¾ß
½áºÏ»úÆ÷ѧϰËã·¨£¬ÆóÒµ¿ÉÒÔ´Óº£Á¿Êý¾ÝÖÐÍÚ¾ò³öÒþ²ØµÄ¼ÛÖµ£¬Íƶ¯²úÆ·´´Ð¡¢Êг¡²ßÂÔµ÷ÕûµÈ£¬ÊµÏÖÊý¾ÝÇý¶¯µÄÒµÎñÔö³¤
ËÄ¡¢ÊµÏÖͬ²½µÄ¼¼Êõ·½°¸ ʵÏÖMySQLµ½ElasticsearchµÄÊý¾Ýͬ²½£¬ÓжàÖÖ¼¼Êõ·½°¸¿É¹©Ñ¡Ôñ£¬°üÀ¨µ«²»ÏÞÓÚ£º -Logstash£º×÷ΪElastic StackµÄÒ»²¿·Ö£¬LogstashÌṩÁËÇ¿´óµÄÊý¾Ý¹ÜµÀ¹¦ÄÜ£¬¿ÉÒÔÇáËÉʵÏÖ´ÓMySQLµ½ElasticsearchµÄÊý¾Ý²É¼¯¡¢×ª»»ºÍ´«Êä
-Canal£º°¢Àï°Í°Í¿ªÔ´µÄÊý¾Ý¿âbinlogÈÕÖ¾½âÎö¹¤¾ß£¬Äܹ»ÊµÊ±²¶»ñMySQLµÄÊý¾Ý±ä¸ü£¬²¢ÍÆË͵½KafkaµÈÏûÏ¢¶ÓÁУ¬ÔÙÓÉÏû·Ñ¶Ë´¦Àí²¢Ð´ÈëElasticsearch
-Debezium£ºÒ»¸ö¿ªÔ´µÄCDC£¨Change Data Capture£©Æ½Ì¨£¬Ö§³Ö¶àÖÖÊý¾Ý¿â£¬°üÀ¨MySQL£¬Äܹ»²¶»ñÊý¾Ý¿âµÄ±ä»¯Ê¼þ£¬²¢½«Æä·¢²¼µ½Kafka£¬±ãÓÚºóÐø´¦Àí
-×Ô¶¨Òå½Å±¾£º¸ù¾Ý¾ßÌåÒµÎñÐèÇ󣬱àдPython¡¢JavaµÈÓïÑԵĽű¾£¬¶¨ÆÚ»òʵʱµØ´ÓMySQL¶ÁÈ¡Êý¾Ý£¬²¢Ð´ÈëElasticsearch
ÿÖÖ·½°¸¶¼ÓÐÆäÊÊÓó¡¾°ºÍÓÅȱµã£¬ÆóÒµÓ¦¸ù¾Ý×ÔÉíÒµÎñÐèÇó¡¢¼¼ÊõÕ»¼°ÔËάÄÜÁ¦Ñ¡Ôñ×îºÏÊʵķ½°¸
Îå¡¢½áÓï ×ÛÉÏËùÊö£¬MySQLͬ²½Êý¾Ýµ½Elasticsearch£¬²»½öÊǽâ¾öMySQLÔÚ´¦Àí´ó¹æÄ£Êý¾ÝËÑË÷Óë·ÖÎö·½Ãæ¾ÖÏÞÐÔµÄÓÐЧ;¾¶£¬¸üÊÇÆóÒµ¹¹½¨¸ßЧ¡¢Áé»îÊý¾Ý´¦ÀíÌåϵµÄ¹Ø¼ü²½Öè
ͨ¹ýÕâÒ»²ßÂÔ£¬ÆóÒµ²»½öÄܹ»ÏÔÖøÌáÉýÓû§ÌåÑ飬ÔöÇ¿Êý¾Ý´¦ÀíÄÜÁ¦£¬»¹ÄܽµµÍÔËά³É±¾£¬´Ù½øÒµÎñ´´ÐÂÓë¾ö²ßÓÅ»¯
Ëæ×ż¼ÊõµÄ²»¶Ï½ø²½ºÍÓ¦Óó¡¾°µÄ³ÖÐøÍØÕ¹£¬MySQLÓëElasticsearchµÄÉî¶ÈÈںϣ¬ÎÞÒɽ«³ÉΪδÀ´Êý¾Ý´¦ÀíÁìÓòµÄÖØÒªÇ÷ÊÆ