Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÃÀÍŵãÆÀ»ùÓÚ Flink µÄʵʱÊý²Ö½¨Éèʵ¼ù
 
  3054  次浏览      27
 2018-11-8
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ51cto£¬±¾ÎÄÕûÀíÁ˳£¼ûʵʱÊý¾Ý×é¼þµÄÐÔÄÜÌØµãºÍÊÊÓó¡¾°£¬½éÉÜÁËÃÀÍÅÈçºÎͨ¹ý Flink ÒýÇæ¹¹½¨ÊµÊ±Êý¾Ý²Ö¿â¡£

ÒýÑÔ

½üЩÄ꣬ÆóÒµ¶ÔÊý¾Ý·þÎñʵʱ»¯·þÎñµÄÐèÇóÈÕÒæÔö¶à¡£±¾ÎÄÕûÀíÁ˳£¼ûʵʱÊý¾Ý×é¼þµÄÐÔÄÜÌØµãºÍÊÊÓó¡¾°£¬½éÉÜÁËÃÀÍÅÈçºÎͨ¹ý Flink ÒýÇæ¹¹½¨ÊµÊ±Êý¾Ý²Ö¿â£¬´Ó¶øÌṩ¸ßЧ¡¢ÎȽ¡µÄʵʱÊý¾Ý·þÎñ¡£±¾ÎÄÖ÷Òª²ûÊöʹÓà Flink ÔÚʵ¼ÊÊý¾ÝÉú²úÉϵľ­Ñé¡£

ʵʱƽ̨³õÆÚ¼Ü¹¹

ÔÚʵʱÊý¾Ýϵͳ½¨Éè³õÆÚ£¬ÓÉÓÚ¶ÔʵʱÊý¾ÝµÄÐèÇó½ÏÉÙ£¬Ðγɲ»ÁËÍêÕûµÄÊý¾ÝÌåϵ¡£ÎÒÃDzÉÓõÄÊÇ¡°Ò»Â·µ½µ×¡±µÄ¿ª·¢Ä£Ê½£ºÍ¨¹ýÔÚʵʱ¼ÆËãÆ½Ì¨Éϲ¿Êð Storm ×÷Òµ´¦ÀíʵʱÊý¾Ý¶ÓÁÐÀ´ÌáÈ¡Êý¾ÝÖ¸±ê£¬Ö±½ÓÍÆË͵½ÊµÊ±Ó¦Ó÷þÎñÖС£

ͼ1 ³õÆÚʵʱÊý¾Ý¼Ü¹¹

µ«ÊÇ£¬Ëæ×ŲúÆ·ºÍÒµÎñÈËÔ±¶ÔʵʱÊý¾ÝÐèÇóµÄ²»¶ÏÔö¶à£¬ÐµÄÌôÕ½Ò²ËæÖ®·¢Éú¡£

Êý¾ÝÖ¸±êÔ½À´Ô½¶à£¬¡°ÑÌ´Ñʽ¡±µÄ¿ª·¢µ¼Ö´úÂëñîºÏÎÊÌâÑÏÖØ¡£

ÐèÇóÔ½À´Ô½¶à£¬ÓеÄÐèÒªÃ÷ϸÊý¾Ý£¬ÓеÄÐèÒª OLAP ·ÖÎö¡£µ¥Ò»µÄ¿ª·¢Ä£Ê½ÄÑÒÔÓ¦¸¶¶àÖÖÐèÇó¡£

ȱÉÙÍêÉÆµÄ¼à¿ØÏµÍ³£¬ÎÞ·¨ÔÚ¶ÔÒµÎñ²úÉúÓ°Ïì֮ǰ·¢ÏÖ²¢ÐÞ¸´ÎÊÌâ¡£

ʵʱÊý¾Ý²Ö¿âµÄ¹¹½¨

Ϊ½â¾öÒÔÉÏÎÊÌ⣬ÎÒÃǸù¾ÝÉú²úÀëÏßÊý¾ÝµÄ¾­Ñ飬ѡÔñʹÓ÷ֲãÉè¼Æ·½°¸À´½¨ÉèʵʱÊý¾Ý²Ö¿â£¬Æä·Ö²ã¼Ü¹¹ÈçÏÂͼËùʾ£º

ͼ2 ʵʱÊý²ÖÊý¾Ý·Ö²ã¼Ü¹¹

¸Ã·½°¸ÓÉÒÔÏÂËIJ㹹³É£º

ODS ²ã£ºBinlog ºÍÁ÷Á¿ÈÕÖ¾ÒÔ¼°¸÷ÒµÎñʵʱ¶ÓÁС£

Êý¾ÝÃ÷ϸ²ã£ºÒµÎñÁìÓòÕûºÏÌáÈ¡ÊÂʵÊý¾Ý£¬ÀëÏßÈ«Á¿ºÍʵʱ±ä»¯Êý¾Ý¹¹½¨ÊµÊ±Î¬¶ÈÊý¾Ý¡£

Êý¾Ý»ã×ܲ㣺ʹÓÿí±íÄ£ÐͶÔÃ÷ϸÊý¾Ý²¹³äά¶ÈÊý¾Ý£¬¶Ô¹²ÐÔÖ¸±ê½øÐлã×Ü¡£

App ²ã£ºÎªÁ˾ßÌåÐèÇó¶ø¹¹½¨µÄÓ¦Óò㣬ͨ¹ý RPC ¿ò¼Ü¶ÔÍâÌṩ·þÎñ¡£

ͨ¹ý¶à²ãÉè¼ÆÎÒÃÇ¿ÉÒÔ½«´¦ÀíÊý¾ÝµÄÁ÷³Ì³ÁµíÔÚ¸÷²ãÍê³É¡£±ÈÈçÔÚÊý¾ÝÃ÷ϸ²ãͳһÍê³ÉÊý¾ÝµÄ¹ýÂË¡¢ÇåÏ´¡¢¹æ·¶¡¢ÍÑÃôÁ÷³Ì;ÔÚÊý¾Ý»ã×ܲã¼Ó¹¤¹²ÐԵĶàάָ±ê»ã×ÜÊý¾Ý¡£Ìá¸ßÁË´úÂëµÄ¸´ÓÃÂʺÍÕûÌåÉú²úЧÂÊ¡£Í¬Ê±¸÷²ã¼¶´¦ÀíµÄÈÎÎñÀàÐÍÏàËÆ£¬¿ÉÒÔ²ÉÓÃͳһµÄ¼¼Êõ·½°¸ÓÅ»¯ÐÔÄÜ£¬Ê¹Êý²Ö¼¼Êõ¼Ü¹¹¸ü¼ò½à¡£

¼¼ÊõÑ¡ÐÍ

1.´æ´¢ÒýÇæµÄµ÷ÑÐ

ʵʱÊý²ÖÔÚÉè¼ÆÖв»Í¬ÓÚÀëÏßÊý²ÖÔÚ¸÷²ã¼¶Ê¹ÓÃͬÖÖ´¢´æ·½°¸£¬±ÈÈç¶¼´æ´¢ÔÚ Hive ¡¢DB ÖеIJßÂÔ¡£Ê×ÏȶÔÖмä¹ý³ÌµÄ±í£¬²ÉÓý«½á¹¹»¯µÄÊý¾Ýͨ¹ýÏûÏ¢¶ÓÁд洢ºÍ¸ßËÙ KV ´æ´¢»ìºÏµÄ·½°¸¡£ÊµÊ±¼ÆËãÒýÇæ¿ÉÒÔͨ¹ý¼àÌýÏûÏ¢Ïû·ÑÏûÏ¢¶ÓÁÐÄÚµÄÊý¾Ý£¬½øÐÐʵʱ¼ÆËã¡£¶øÔÚ¸ßËÙ KV ´æ´¢ÉϵÄÊý¾ÝÔò¿ÉÒÔÓÃÓÚ¿ìËÙ¹ØÁª¼ÆË㣬±ÈÈçά¶ÈÊý¾Ý¡£ Æä´ÎÔÚÓ¦ÓòãÉÏ£¬Õë¶ÔÊý¾ÝʹÓÃÌØµãÅäÖô洢·½°¸Ö±½ÓдÈë¡£±ÜÃâÁËÀëÏßÊý²ÖÓ¦Óòãͬ²½Êý¾ÝÁ÷³Ì´øÀ´µÄ´¦ÀíÑÓ³Ù¡£ ΪÁ˽â¾ö²»Í¬ÀàÐ͵ÄʵʱÊý¾ÝÐèÇ󣬺ÏÀíµÄÉè¼Æ¸÷²ã¼¶´æ´¢·½°¸£¬ÎÒÃǵ÷ÑÐÁËÃÀÍÅÄÚ²¿Ê¹ÓñȽϹ㷺µÄ¼¸ÖÖ´æ´¢·½°¸¡£

±í1 ´æ´¢·½°¸Áбí

ÃÀÍŵãÆÀ»ùÓÚ Flink µÄʵʱÊý²Ö½¨Éèʵ¼ù

¸ù¾Ý²»Í¬ÒµÎñ³¡¾°£¬ÊµÊ±Êý²Ö¸÷¸öÄ£ÐͲã´ÎʹÓõĴ洢·½°¸´óÖÂÈçÏ£º

ͼ3 ʵʱÊý²Ö´æ´¢·Ö²ã¼Ü¹¹

Êý¾ÝÃ÷ϸ²ã ¶ÔÓÚά¶ÈÊý¾Ý²¿·Ö³¡¾°Ï¹ØÁªµÄƵÂʿɴï 10w+ TPS£¬ÎÒÃÇÑ¡Ôñ Cellar(ÃÀÍÅÄÚ²¿´æ´¢ÏµÍ³) ×÷Ϊ´æ´¢£¬·âװά¶È·þÎñΪʵʱÊý²ÖÌṩά¶ÈÊý¾Ý¡£

Êý¾Ý»ã×ܲ㠶ÔÓÚͨÓõĻã×ÜÖ¸±ê£¬ÐèÒª½øÐÐÀúÊ·Êý¾Ý¹ØÁªµÄÊý¾Ý£¬²ÉÓúÍά¶ÈÊý¾ÝÒ»ÑùµÄ·½°¸Í¨¹ý Cellar ×÷Ϊ´æ´¢£¬Ó÷þÎñµÄ·½Ê½½øÐйØÁª²Ù×÷¡£

Êý¾ÝÓ¦Óòã Ó¦ÓòãÉè¼ÆÏà¶Ô¸´ÔÓ£¬ÔÙ¶Ô±ÈÁ˼¸ÖÖ²»Í¬´æ´¢·½°¸ºó¡£ÎÒÃÇÖÆ¶¨ÁËÒÔÊý¾Ý¶ÁдƵÂÊ 1000 QPS Ϊ·Ö½çµÄÅжÏÒÀ¾Ý¡£¶ÔÓÚ¶Áдƽ¾ùƵÂʸßÓÚ 1000 QPS µ«²éѯ²»Ì«¸´ÔÓµÄʵʱӦÓ㬱ÈÈçÉÌ»§ÊµÊ±µÄ¾­ÓªÊý¾Ý¡£²ÉÓà Cellar Ϊ´æ´¢£¬ÌṩʵʱÊý¾Ý·þÎñ¡£¶ÔÓÚһЩ²éѯ¸´ÔӵĺÍÐèÒªÃ÷ϸÁбíµÄÓ¦Óã¬Ê¹Óà Elasticsearch ×÷Ϊ´æ´¢Ôò¸üΪºÏÊÊ¡£¶øÒ»Ð©²éѯƵÂʵͣ¬±ÈÈçһЩÄÚ²¿ÔËÓªµÄÊý¾Ý¡£ Druid ͨ¹ýʵʱ´¦ÀíÏûÏ¢¹¹½¨Ë÷Òý£¬²¢Í¨¹ýÔ¤¾ÛºÏ¿ÉÒÔ¿ìËÙµÄÌṩʵʱÊý¾Ý OLAP ·ÖÎö¹¦ÄÜ¡£¶ÔÓÚһЩÀúÊ·°æ±¾µÄÊý¾Ý²úÆ·½øÐÐʵʱ»¯¸ÄÔìʱ£¬Ò²¿ÉÒÔʹÓà MySQL ´æ´¢±ãÓÚ²úÆ·µü´ú¡£

2.¼ÆËãÒýÇæµÄµ÷ÑÐ

ÔÚʵʱƽ̨½¨Éè³õÆÚÎÒÃÇʹÓà Storm ÒýÇæÀ´½øÐÐʵʱÊý¾Ý´¦Àí¡£Storm ÒýÇæËäÈ»ÔÚÁé»îÐÔºÍÐÔÄÜÉ϶¼±íÏÖ²»´í¡£µ«ÊÇÓÉÓÚ API ¹ýÓڵײ㣬ÔÚÊý¾Ý¿ª·¢¹ý³ÌÖÐÐèÒª¶ÔһЩ³£ÓõÄÊý¾Ý²Ù×÷½øÐй¦ÄÜʵÏÖ¡£±ÈÈç±í¹ØÁª¡¢¾ÛºÏµÈ£¬²úÉúÁ˺ܶà¶îÍâµÄ¿ª·¢¹¤×÷£¬²»½öÒýÈëÁ˺ܶàÍⲿÒÀÀµ±ÈÈ绺´æ£¬¶øÇÒʵ¼ÊʹÓÃʱÐÔÄÜÒ²²»ÊǺÜÀíÏ롣ͬʱ Storm ÄÚµÄÊý¾Ý¶ÔÏó Tuple Ö§³ÖµÄ¹¦ÄÜÒ²ºÜ¼òµ¥£¬Í¨³£ÐèÒª½«Æäת»»Îª Java ¶ÔÏóÀ´´¦Àí¡£¶ÔÓÚÕâÖÖ»ùÓÚ´úÂ붨ÒåµÄÊý¾ÝÄ£ÐÍ£¬Í¨³£ÎÒÃÇÖ»ÄÜͨ¹ýÎĵµÀ´½øÐÐά»¤¡£²»½öÐèÒª¶îÍâµÄά»¤¹¤×÷£¬Í¬Ê±ÔÚÔö¸Ä×Ö¶ÎʱҲºÜÂé·³¡£×ÛºÏÀ´¿´Ê¹Óà Storm ÒýÇæ¹¹½¨ÊµÊ±Êý²ÖÄѶȽϴó¡£ÎÒÃÇÐèÒªÒ»¸öеÄʵʱ´¦Àí·½°¸£¬ÒªÄܹ»ÊµÏÖ£º

Ìṩ¸ß¼¶ API£¬Ö§³Ö³£¼ûµÄÊý¾Ý²Ù×÷±ÈÈç¹ØÁª¾ÛºÏ£¬×îºÃÊÇÄÜÖ§³Ö SQL¡£

¾ßÓÐ״̬¹ÜÀíºÍ×Ô¶¯Ö§³Ö¾Ã»¯·½°¸£¬¼õÉÙ¶Ô´æ´¢µÄÒÀÀµ¡£

±ãÓÚ½ÓÈëÔªÊý¾Ý·þÎñ£¬±ÜÃâͨ¹ý´úÂë¹ÜÀíÊý¾Ý½á¹¹¡£

´¦ÀíÐÔÄÜÖÁÉÙÒªºÍ Storm Ò»Ö¡£

ÎÒÃǶÔÖ÷ÒªµÄʵʱ¼ÆËãÒýÇæ½øÐÐÁ˼¼Êõµ÷ÑС£×ܽáÁ˸÷ÀàÒýÇæÌØÐÔÈçϱíËùʾ£º

±í2 ʵʱ¼ÆËã·½°¸Áбí

ÃÀÍŵãÆÀ»ùÓÚ Flink µÄʵʱÊý²Ö½¨Éèʵ¼ù

´Óµ÷Ñнá¹ûÀ´¿´£¬Flink ºÍ Spark Streaming µÄ API ¡¢ÈÝ´í»úÖÆÓë״̬³Ö¾Ã»¯»úÖÆ¶¼¿ÉÒÔ½â¾öÒ»²¿·ÖÎÒÃÇĿǰʹÓà Storm ÖÐÓöµ½µÄÎÊÌâ¡£µ« Flink ÔÚÊý¾ÝÑÓ³ÙÉÏºÍ Storm ¸ü½Ó½ü£¬¶ÔÏÖÓÐÓ¦ÓÃÓ°Ïì×îС¡£¶øÇÒÔÚ¹«Ë¾ÄÚ²¿µÄ²âÊÔÖÐ Flink µÄÍÌÍÂÐÔÄÜ¶Ô±È Storm ÓÐÊ®±¶×óÓÒÌáÉý¡£×ۺϿ¼Á¿ÎÒÃÇÑ¡¶¨ Flink ÒýÇæ×÷ΪʵʱÊý²ÖµÄ¿ª·¢ÒýÇæ¡£

¸ü¼ÓÒýÆðÎÒÃÇ×¢ÒâµÄÊÇ£¬Flink µÄ Table ³éÏóºÍ SQL Ö§³Ö¡£ËäȻʹÓà Strom ÒýÇæÒ²¿ÉÒÔ´¦Àí½á¹¹»¯Êý¾Ý¡£µ«±Ï¾¹ÒÀ¾ÉÊÇ»ùÓÚÏûÏ¢µÄ´¦Àí API £¬ÔÚ´úÂë²ã²ãÃæÉϲ»ÄÜÍêÈ«ÏíÊܲÙ×÷½á¹¹»¯Êý¾ÝµÄ±ãÀû¡£¶ø Flink ²»½öÖ§³ÖÁË´óÁ¿³£ÓÃµÄ SQL Óï¾ä£¬»ù±¾¸²¸ÇÁËÎÒÃǵĿª·¢³¡¾°¡£¶øÇÒ Flink µÄ Table ¿ÉÒÔͨ¹ý TableSchema ½øÐйÜÀí£¬Ö§³Ö·á¸»µÄÊý¾ÝÀàÐͺÍÊý¾Ý½á¹¹ÒÔ¼°Êý¾ÝÔ´¡£¿ÉÒÔºÜÈÝÒ׵ĺÍÏÖÓеÄÔªÊý¾Ý¹ÜÀíϵͳ»òÅäÖùÜÀíϵͳ½áºÏ¡£Í¨¹ýÏÂͼÎÒÃÇ¿ÉÒÔÇåÎúµÄ¿´³ö Storm ºÍ Flink ÔÚ¿ª·¢Í³¹ý³ÌÖеÄÇø±ð¡£

ͼ4 Flink - Storm ¶Ô±Èͼ

ÔÚʹÓà Storm ¿ª·¢Ê±´¦ÀíÂß¼­ÓëʵÏÖÐèÒª¹Ì»¯ÔÚ Bolt µÄ´úÂë¡£Flink Ôò¿ÉÒÔͨ¹ý SQL ½øÐпª·¢£¬´úÂë¿É¶ÁÐÔ¸ü¸ß£¬Âß¼­µÄʵÏÖÓÉ¿ªÔ´¿ò¼ÜÀ´±£Ö¤¿É¿¿¸ßЧ£¬¶ÔÌØ¶¨³¡¾°µÄÓÅ»¯Ö»ÒªÐÞ¸Ä Flink SQL ÓÅ»¯Æ÷¹¦ÄÜʵÏÖ¼´¿É£¬¶ø²»Ó°ÏìÂß¼­´úÂ롣ʹÎÒÃÇ¿ÉÒ԰Ѹü¶àµÄ¾«Á¦·Åµ½µ½Êý¾Ý¿ª·¢ÖУ¬¶ø²»ÊÇÂß¼­µÄʵÏÖ¡£µ±ÐèÒªÀëÏßÊý¾ÝºÍʵʱÊý¾Ý¿Ú¾¶Í³Ò»µÄ³¡¾°Ê±£¬ÎÒÃÇÖ»Ðè¶ÔÀëÏ߿ھ¶µÄ SQL ½Å±¾ÉÔ¼Ó¸ÄÔì¼´¿É£¬¼«´óµØÌá¸ßÁË¿ª·¢Ð§ÂÊ¡£Í¬Ê±¶Ô±ÈͼÖÐ Flink ºÍ Storm ʹÓõÄÊý¾ÝÄ£ÐÍ£¬Storm ÐèҪͨ¹ýÒ»¸ö Java µÄ Class È¥¶¨ÒåÊý¾Ý½á¹¹£¬Flink Table Ôò¿ÉÒÔͨ¹ýÔªÊý¾ÝÀ´¶¨Òå¡£¿ÉÒԺܺõĺÍÊý¾Ý¿ª·¢ÖеÄÔªÊý¾Ý£¬Êý¾ÝÖÎÀíµÈϵͳ½áºÏ£¬Ìá¸ß¿ª·¢Ð§ÂÊ¡£

FlinkʹÓÃÐĵÃ

ÔÚÀûÓà Flink-Table ¹¹½¨ÊµÊ±Êý¾Ý²Ö¿â¹ý³ÌÖС£ÎÒÃÇÕë¶ÔһЩ¹¹½¨Êý¾Ý²Ö¿âµÄ³£ÓòÙ×÷£¬±ÈÈçÊý¾ÝÖ¸±êµÄά¶ÈÀ©³ä£¬Êý¾Ý°´Ö÷Ìâ¹ØÁª£¬ÒÔ¼°Êý¾ÝµÄ¾ÛºÏÔËËãͨ¹ý Flink À´ÊµÏÖ×ܽáÁËһЩʹÓÃÐĵá£

1.ά¶ÈÀ©³ä

Êý¾ÝÖ¸±êµÄά¶ÈÀ©³ä£¬ÎÒÃDzÉÓõÄÊÇͨ¹ýά¶È·þÎñ»ñȡά¶ÈÐÅÏ¢¡£ËäÈ»»ùÓÚ Cellar µÄά¶È·þÎñͨ³£µÄÏìÓ¦ÑÓ³Ù¿ÉÒÔÔÚ 1ms ÒÔÏ¡£µ«ÊÇΪÁ˽øÒ»²½ÓÅ»¯ Flink µÄÍÌÍ£¬ÎÒÃǶÔά¶ÈÊý¾ÝµÄ¹ØÁªÈ«²¿²ÉÓÃÁËÒì²½½Ó¿Ú·ÃÎʵķ½Ê½£¬±ÜÃâÁËʹÓà RPC µ÷ÓÃÓ°ÏìÊý¾ÝÍÌÍ¡£

¶ÔÓÚһЩÊý¾ÝÁ¿ºÜ´óµÄÁ÷£¬±ÈÈçÁ÷Á¿ÈÕÖ¾Êý¾ÝÁ¿ÔÚ 10W Ìõ/ÃëÕâ¸öÁ¿¼¶¡£ÔÚ¹ØÁª UDF µÄʱºòÄÚÖÃÁË»º´æ»úÖÆ£¬¿ÉÒÔ¸ù¾ÝÃüÖÐÂʺÍʱ¼ä¶Ô»º´æ½øÐÐÌÔÌ­£¬ÅäºÏÓùØÁªµÄ Key Öµ½øÐзÖÇø£¬ÏÔÖø¼õÉÙÁ˶ÔÍⲿ·þÎñµÄÇëÇó´ÎÊý£¬ÓÐЧµÄ¼õÉÙÁË´¦ÀíÑӳٺͶÔÍⲿϵͳµÄѹÁ¦¡£

2.Êý¾Ý¹ØÁª

Êý¾ÝÖ÷ÌâºÏ²¢£¬±¾ÖÊÉϾÍÊǶà¸öÊý¾ÝÔ´µÄ¹ØÁª£¬¼òµ¥µÄÀ´Ëµ¾ÍÊÇ Join ²Ù×÷¡£Flink µÄ Table Êǽ¨Á¢ÔÚÎÞÏÞÁ÷Õâ¸ö¸ÅÄîÉϵġ£ÔÚ½øÐÐ Join ²Ù×÷ʱ²¢²»ÄÜÏñÀëÏßÊý¾ÝÒ»Ñù¶ÔÁ½¸öÍêÕûµÄ±í½øÐйØÁª¡£²ÉÓõÄÊÇÔÚ´°¿Úʱ¼äÄÚ¶ÔÊý¾Ý½øÐйØÁªµÄ·½°¸£¬Ï൱ÓÚ´ÓÁ½¸öÊý¾ÝÁ÷Öи÷×Ô½ØÈ¡Ò»¶Îʱ¼äµÄÊý¾Ý½øÐÐ Join ²Ù×÷¡£ÓеãÀàËÆÓÚÀëÏßÊý¾Ýͨ¹ýÏÞÖÆ·ÖÇøÀ´½øÐйØÁª¡£Í¬Ê±ÐèҪעÒâ Flink ¹ØÁª±íʱ±ØÐëÓÐÖÁÉÙÒ»¸ö¡°µÈÓÚ¡±¹ØÁªÌõ¼þ£¬ÒòΪµÈºÅÁ½±ßµÄÖµ»áÓÃÀ´·Ö×é¡£

ÓÉÓÚ Flink »á»º´æ´°¿ÚÄÚµÄÈ«²¿Êý¾ÝÀ´½øÐйØÁª£¬»º´æµÄÊý¾ÝÁ¿ºÍ¹ØÁªµÄ´°¿Ú´óС³ÉÕý±È¡£Òò´Ë Flink µÄ¹ØÁª²éѯ£¬¸üÊʺϴ¦ÀíһЩ¿ÉÒÔͨ¹ýÒµÎñ¹æÔòÏÞÖÆ¹ØÁªÊý¾Ýʱ¼ä·¶Î§µÄ³¡¾°¡£±ÈÈç¹ØÁªÏµ¥Óû§¹ºÂò֮ǰ 30 ·ÖÖÓÄÚµÄä¯ÀÀÈÕÖ¾¡£¹ý´óµÄ´°¿Ú²»½ö»áÏûºÄ¸ü¶àµÄÄڴ棬ͬʱ»á²úÉú¸ü´óµÄ Checkpoint £¬µ¼ÖÂÍÌÍÂϽµ»ò Checkpoint ³¬Ê±¡£ÔÚʵ¼ÊÉú²úÖпÉÒÔʹÓà RocksDB ºÍÆôÓÃÔöÁ¿±£´æµãģʽ£¬¼õÉÙ Checkpoint ¹ý³Ì¶ÔÍÌͲúÉúÓ°Ïì¡£¶ÔÓÚһЩÐèÒª¹ØÁª´°¿ÚÆÚºÜ³¤µÄ³¡¾°£¬±ÈÈç¹ØÁªµÄÊý¾Ý¿ÉÄÜÊǼ¸ÌìÒÔǰµÄÊý¾Ý¡£¶ÔÓÚÕâЩÀúÊ·Êý¾Ý£¬ÎÒÃÇ¿ÉÒÔ½«ÆäÀí½âΪÊÇÒ»ÖÖÒѾ­¹Ì¶¨²»±äµÄ"ά¶È"¡£¿ÉÒÔ½«ÐèÒª±»¹ØÁªµÄÀúÊ·Êý¾Ý²ÉÓúÍά¶ÈÊý¾ÝÒ»ÖµĴ¦Àí·½·¨£º"»º´æ + ÀëÏß"Êý¾Ý·½Ê½´æ´¢£¬Óýӿڵķ½Ê½½øÐйØÁª¡£ÁíÍâÐèҪעÒâ Flink ¶Ô¶à±í¹ØÁªÊÇÖ±½Ó˳ÐòÁ´½ÓµÄ£¬Òò´ËÐèҪעÒâÏȽøÐнá¹û¼¯Ð¡µÄ¹ØÁª¡£

3.¾ÛºÏÔËËã

ʹÓþۺÏÔËËãʱ£¬Flink ¶Ô³£¼ûµÄ¾ÛºÏÔËËãÈçÇóºÍ¡¢¼«Öµ¡¢¾ùÖµµÈ¶¼ÓÐÖ§³Ö¡£ÃÀÖв»×ãµÄÊǶÔÓÚ Distinct µÄÖ§³Ö£¬Flink-1.6 ֮ǰµÄ²ÉÓõķ½°¸ÊÇͨ¹ýÏȶÔÈ¥ÖØ×ֶνøÐзÖ×éÔÙ¾ÛºÏʵÏÖ¡£¶ÔÓÚÐèÒª¶Ô¶à¸ö×Ö¶ÎÈ¥ÖØ¾ÛºÏµÄ³¡¾°£¬Ö»ÄÜ·Ö±ð¼ÆËãÔÙ½øÐйØÁª´¦ÀíЧÂʺܵ͡£Îª´ËÎÒÃÇ¿ª·¢ÁË×Ô¶¨ÒåµÄ UDAF£¬ÊµÏÖÁË MapView ¾«È·È¥ÖØ¡¢BloomFilter ·Ç¾«È·È¥ÖØ¡¢ HyperLogLog ³¬µÍÄÚ´æÈ¥ÖØ·½°¸Ó¦¶Ô¸÷ÖÖÊµÊ±È¥ÖØ³¡¾°¡£µ«ÊÇÔÚʹÓÃ×Ô¶¨ÒåµÄ UDAF ʱ£¬ÐèҪעÒâ RocksDBStateBackend ģʽ¶ÔÓڽϴóµÄ Key ½øÐиüвÙ×÷ʱÐòÁл¯ºÍ·´ÐòÁл¯ºÄʱºÜ¶à¡£¿ÉÒÔ¿¼ÂÇʹÓà FsStateBackend Ä£Ê½Ìæ´ú¡£ÁíÍâҪעÒâµÄÒ»µã Flink ¿ò¼ÜÔÚ¼ÆËã±ÈÈç Rank ÕâÑùµÄ·ÖÎöº¯Êýʱ£¬ÐèÒª»º´æÃ¿¸ö·Ö×é´°¿ÚϵÄÈ«²¿Êý¾Ý²ÅÄܽøÐÐÅÅÐò£¬»áÏûºÄ´óÁ¿ÄÚ´æ¡£½¨ÒéÔÚÕâÖÖ³¡¾°ÏÂÓÅÏÈת»»Îª TopN µÄÂß¼­£¬¿´ÊÇ·ñ¿ÉÒÔ½â¾öÐèÇó¡£

ÏÂͼչʾһ¸öÍêÕûµÄʹÓà Flink ÒýÇæÉú²úÒ»ÕÅʵʱÊý¾Ý±íµÄ¹ý³Ì£º

ͼ5 ʵʱ¼ÆËãÁ÷³Ìͼ

ʵʱÊý²Ö³É¹û

ͨ¹ýʹÓÃʵʱÊý²Ö´úÌæÔ­ÓÐÁ÷³Ì£¬ÎÒÃǽ«Êý¾ÝÉú²úÖеĸ÷¸öÁ÷³Ì³éÏóµ½ÊµÊ±Êý²ÖµÄ¸÷²ãµ±ÖС£ÊµÏÖÁËÈ«²¿ÊµÊ±Êý¾ÝÓ¦ÓõÄÊý¾ÝԴͳһ£¬±£Ö¤ÁËÓ¦ÓÃÊý¾ÝÖ¸±ê¡¢Î¬¶ÈµÄ¿Ú¾¶µÄÒ»Ö¡£ÔÚ¼¸´ÎÊý¾Ý¿Ú¾¶·¢ÉúÐ޸ĵij¡¾°ÖУ¬ÎÒÃÇͨ¹ý¶Ô²Ö¿âÃ÷ϸºÍ»ã×ܽøÐиÄÔ죬ÔÚÍêÈ«²»ÓÃÐÞ¸ÄÓ¦ÓôúÂëµÄÇé¿öϾÍÍê³ÉÈ«²¿Ó¦ÓõĿھ¶Çл»¡£ÔÚ¿ª·¢¹ý³ÌÖÐͨ¹ýÑϸñµÄ°Ñ¿ØÊý¾Ý·Ö²ã¡¢Ö÷ÌâÓò»®·Ö¡¢ÄÚÈÝ×éÖ¯±ê×¼¹æ·¶ºÍÃüÃû¹æÔò¡£Ê¹Êý¾Ý¿ª·¢µÄÁ´Â·¸üΪÇåÎú£¬¼õÉÙÁË´úÂëµÄñîºÏ¡£ÔÙÅäºÏÉÏʹÓà Flink SQL ½øÐпª·¢£¬´úÂë¼Ó¼ò½à¡£µ¥¸ö×÷ÒµµÄ´úÂëÁ¿´Óƽ¾ù 300+ ÐÐµÄ JAVA ´úÂë £¬Ëõ¼õµ½¼¸Ê®ÐÐµÄ SQL ½Å±¾¡£ÏîÄ¿µÄ¿ª·¢Ê±³¤Ò²´ó·ù¼õ¶Ì£¬Ò»ÈËÈÕ¿ª·¢¶à¸öʵʱÊý¾ÝÖ¸±êÇé¿öÒ²²»ÉÙ¼û¡£

³ý´ËÒÔÍâÎÒÃÇͨ¹ýÕë¶ÔÊý²Ö¸÷²ã¼¶¹¤×÷ÄÚÈݵIJ»Í¬Ìص㣬¿ÉÒÔ½øÐÐÕë¶ÔÐÔµÄÐÔÄÜÓÅ»¯ºÍ²ÎÊýÅäÖᣱÈÈç ODS ²ãÖ÷Òª½øÐÐÊý¾ÝµÄ½âÎö¡¢¹ýÂ˵ȲÙ×÷£¬²»ÐèÒª RPC µ÷Óú;ۺÏÔËËã¡£ ÎÒÃÇÕë¶ÔÊý¾Ý½âÎö¹ý³Ì½øÐÐÓÅ»¯£¬¼õÉÙ²»±ØÒªµÄ JSON ×ֶνâÎö£¬²¢Ê¹Óøü¸ßЧµÄ JSON °ü¡£ÔÚ×ÊÔ´·ÖÅäÉÏ£¬µ¥¸ö CPU Ö»ÅäÖà 1GB µÄÄÚ´æ¼´¿ÉÂúÐèÇó¡£¶ø»ã×ܲãÖ÷ÒªÔòÖ÷Òª½øÐоۺÏÓë¹ØÁªÔËË㣬¿ÉÒÔͨ¹ýÓÅ»¯¾ÛºÏËã·¨¡¢ÄÚÍâ´æ¹²Í¬ÔËËãÀ´Ìá¸ßÐÔÄÜ¡¢¼õÉٳɱ¾¡£×ÊÔ´ÅäÖÃÉÏÒ²»á·ÖÅä¸ü¶àµÄÄڴ棬±ÜÃâÄÚ´æÒç³ö¡£Í¨¹ýÕâЩÓÅ»¯ÊֶΣ¬ËäÈ»Ïà±ÈÔ­ÓÐÁ÷³ÌʵʱÊý²ÖµÄÉú²úÁ´Â·¸ü³¤£¬µ«Êý¾ÝÑÓ³Ù²¢Ã»ÓÐÃ÷ÏÔÔö¼Ó¡£Í¬Ê±ÊµÊ±Êý¾ÝÓ¦ÓÃËùʹÓõļÆËã×ÊÔ´Ò²ÓÐÃ÷ÏÔ¼õÉÙ¡£

Õ¹Íû

ÎÒÃǵÄÄ¿±êÊǽ«ÊµÊ±²Ö¿â½¨Éè³É¿ÉÒÔºÍÀëÏß²Ö¿âÊý¾Ý׼ȷÐÔ£¬Ò»ÖÂÐÔæÇÃÀµÄÊý¾Ýϵͳ¡£ÎªÉ̼ң¬ÒµÎñÈËÔ±ÒÔ¼°ÃÀÍÅÓû§Ìṩ¼°Ê±¿É¿¿µÄÊý¾Ý·þÎñ¡£Í¬Ê±×÷Ϊµ½²ÍʵʱÊý¾ÝµÄͳһ³ö¿Ú£¬Îª¼¯ÍÅÆäËûÒµÎñ²¿ÃÅÖúÁ¦¡£Î´À´ÎÒÃǽ«¸ü¼Ó¹Ø×¢ÔÚÊý¾Ý¿É¿¿ÐÔºÍʵʱÊý¾ÝÖ¸±ê¹ÜÀí¡£½¨Á¢ÍêÉÆµÄÊý¾Ý¼à¿Ø£¬Êý¾ÝѪԵ¼ì²â£¬½»²æ¼ì²é»úÖÆ¡£¼°Ê±¶ÔÒì³£Êý¾Ý»òÊý¾ÝÑÓ³Ù½øÐÐ¼à¿ØºÍÔ¤¾¯¡£Í¬Ê±ÓÅ»¯¿ª·¢Á÷³Ì£¬½µµÍ¿ª·¢ÊµÊ±Êý¾Ýѧϰ³É±¾¡£Èøü¶àÓÐʵʱÊý¾ÝÐèÇóµÄÈË£¬¿ÉÒÔ×Ô¼º¶¯ÊÖ½â¾öÎÊÌâ¡£

   
3054 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ