±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ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 µÄÄÚ´æ¼´¿ÉÂúÐèÇó¡£¶ø»ã×ܲãÖ÷ÒªÔòÖ÷Òª½øÐоۺÏÓë¹ØÁªÔËË㣬¿ÉÒÔͨ¹ýÓÅ»¯¾ÛºÏËã·¨¡¢ÄÚÍâ´æ¹²Í¬ÔËËãÀ´Ìá¸ßÐÔÄÜ¡¢¼õÉٳɱ¾¡£×ÊÔ´ÅäÖÃÉÏÒ²»á·ÖÅä¸ü¶àµÄÄڴ棬±ÜÃâÄÚ´æÒç³ö¡£Í¨¹ýÕâЩÓÅ»¯ÊֶΣ¬ËäÈ»Ïà±ÈÔÓÐÁ÷³ÌʵʱÊý²ÖµÄÉú²úÁ´Â·¸ü³¤£¬µ«Êý¾ÝÑÓ³Ù²¢Ã»ÓÐÃ÷ÏÔÔö¼Ó¡£Í¬Ê±ÊµÊ±Êý¾ÝÓ¦ÓÃËùʹÓõļÆËã×ÊÔ´Ò²ÓÐÃ÷ÏÔ¼õÉÙ¡£
Õ¹Íû
ÎÒÃǵÄÄ¿±êÊǽ«ÊµÊ±²Ö¿â½¨Éè³É¿ÉÒÔºÍÀëÏß²Ö¿âÊý¾Ý׼ȷÐÔ£¬Ò»ÖÂÐÔæÇÃÀµÄÊý¾Ýϵͳ¡£ÎªÉ̼ң¬ÒµÎñÈËÔ±ÒÔ¼°ÃÀÍÅÓû§Ìṩ¼°Ê±¿É¿¿µÄÊý¾Ý·þÎñ¡£Í¬Ê±×÷Ϊµ½²ÍʵʱÊý¾ÝµÄͳһ³ö¿Ú£¬Îª¼¯ÍÅÆäËûÒµÎñ²¿ÃÅÖúÁ¦¡£Î´À´ÎÒÃǽ«¸ü¼Ó¹Ø×¢ÔÚÊý¾Ý¿É¿¿ÐÔºÍʵʱÊý¾ÝÖ¸±ê¹ÜÀí¡£½¨Á¢ÍêÉÆµÄÊý¾Ý¼à¿Ø£¬Êý¾ÝѪԵ¼ì²â£¬½»²æ¼ì²é»úÖÆ¡£¼°Ê±¶ÔÒì³£Êý¾Ý»òÊý¾ÝÑÓ³Ù½øÐÐ¼à¿ØºÍÔ¤¾¯¡£Í¬Ê±ÓÅ»¯¿ª·¢Á÷³Ì£¬½µµÍ¿ª·¢ÊµÊ±Êý¾Ýѧϰ³É±¾¡£Èøü¶àÓÐʵʱÊý¾ÝÐèÇóµÄÈË£¬¿ÉÒÔ×Ô¼º¶¯ÊÖ½â¾öÎÊÌâ¡£ |