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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
SreamCQL¼Ü¹¹½âÎö£¬À´×Ô»ªÎªµÄ¿ªÔ´Á÷´¦Àí¿ò¼Ü
 
×÷ÕߣºÕÅÏþÅô À´Ô´:CSDN   ·¢²¼ÓÚ 2015-12-24
  2727  次浏览      29
 

ÕªÒª£ºStreamCQLÊÇÒ»¸öÀàSQLµÄÉùÃ÷ʽÓïÑÔ£¬ËüÓÃÓÚÔÚÁ÷£¨streams£©ºÍ¿É¸üйØÏµ£¨updatable relation£©ÉϵĿɳÖÐø²éѯ£¬¿ÉÔÚÁ÷´¦ÀíÆ½Ì¨·Ö²¼Ê½¼ÆËãÄÜÁ¦Ö®ÉÏͨ¹ýʹÓüòÒ×ͨÓõÄÀàSQLÓïÑÔ£¬Ê¹µÃÒµÎñÂß¼­µÄ¿ª·¢±äµÃͳһºÍ¼òÒס£

StreamCQLÊÇÒ»¸öÀàSQLµÄÉùÃ÷ʽÓïÑÔ£¬ËüÓÃÓÚÔÚÁ÷£¨streams£©ºÍ¿É¸üйØÏµ£¨updatable relation£©ÉϵĿɳÖÐø²éѯ£¬Ä¿µÄÊÇÔÚÁ÷´¦ÀíÆ½Ì¨·Ö²¼Ê½¼ÆËãÄÜÁ¦Ö®ÉÏ£¬Í¨¹ýʹÓüòÒ×ͨÓõÄÀàSQLÓïÑÔ£¬Ê¹µÃÒµÎñÂß¼­µÄ¿ª·¢±äµÃͳһºÍ¼òÒס£ÔÚ¹¦ÄÜÉÏ£¬StreamCQLÃÖ²¹ÁË´«Í³Á÷´¦ÀíÆ½Ì¨ÉÏһЩ»ù±¾ÒµÎñ¹¦ÄܵÄȱʧ£¬³ýÁ˹ýÂË¡¢×ª»»µÈ»ù±¾SQLÄÜÁ¦Ö®Íâ, »¹ÒýÈë»ùÓÚÄÚ´æ´°¿ÚµÄ¼ÆË㡢ͳ¼Æ¡¢¹ØÁªµÈÄÜÁ¦£¬ÒÔ¼°Á÷Êý¾ÝµÄ²ð·Ö¡¢ºÏ²¢µÈ¹¦ÄÜ¡£

StreamCQLÖØÒª¸ÅÄî½éÉÜ

  • Á÷£ºÁ÷ÊÇÒ»×飨ÎÞÇî£©ÔªËØµÄ¼¯ºÏ£¬Á÷ÉϵÄÿ¸öÔªËØ¶¼ÊôÓÚͬһ¸öschema£»Ã¿¸öÔªËØ¶¼ºÍÂß¼­Ê±¼äÓйأ»¼´Á÷°üº¬ÁËÔª×éºÍʱ¼äµÄË«ÖØÊôÐÔ¡£Á÷ÉϵÄÈκÎÒ»¸öÔªËØ£¬¶¼¿ÉÒÔÓÃElement<tuple, Time>µÄ·½Ê½À´±íʾ£¬tupleÊÇÔª×飬°üº¬ÁËÊý¾Ý½á¹¹ºÍÊý¾ÝÄÚÈÝ£¬Time¾ÍÊǸÃÊý¾ÝµÄÂß¼­Ê±¼ä¡£
  • Window£º´°¿Ú£¨window£©ÊÇÁ÷´¦ÀíÖнâ¾öʼþµÄÎޱ߽磨unbounded£©¼°Á÷¶¯ÐÔµÄÒ»ÖÖÖØÒªÊֶΣ¬°ÑʼþÁ÷ÔÚijһʱ¿Ì±ä³É¾²Ì¬µÄÊÓͼ£¬ÒÔ±ã½øÐÐÀàËÆÊý¾Ý¿â±íµÄ¸÷ÖÖ²éѯ²Ù×÷¡£ÔÚstreamÉÏ¿ÉÒÔ¶¨Òåwindow£¬´°¿ÚÓÐÁ½ÖÖÀàÐÍ£¬Ê±¼ä´°¿Ú£¨time-based£©ºÍ¼Ç¼´°¿Ú£¨row-based£©¡£Á½ÖÖ´°¿Ú¶¼Ö§³ÖÁ½ÖÖģʽ£¬»¬¶¯£¨slide£©ºÍÌø¶¯£¨tumble£©¡£
  • Ëã×Ó£ºËã×ÓÊǰüº¬ÁËһϵÁÐÔËËã¹ØÏµµÄ×éºÏ£¬±ÈÈç¾ÛºÏËã×Ó£¬¾Í°üº¬Á˲éѯ£¨select£©£¬´°¿Ú£¬¾ÛºÏ£¨aggregate£©£¬ÅÅÐò£¨sort£©£¬´°¿Úǰ¹ýÂË£¨filter before window£©£¬´°¿ÚÖ®ºóµÄ¹ýÂË£¨where£©£¬¾ÛºÏÖ®ºóµÄ¹ýÂË£¨having£©µÈ¹¦ÄÜ£¬³ý´ËÖ®Í⣬»¹ÓÐÁ÷²ð·ÖËã×Ó£¬Á÷ºÏ²¢Ëã×ӵȡ£StreamCQLÖеÄËã×Ó·ÖΪÈýÀࣺÊäÈëËã×Ó¡¢Êä³öËã×Ó¡¢¹¦ÄÜËã×Ó¡£

StreamCQL¼Ü¹¹½éÉÜ

StreamCQL×ÜÌå¼Ü¹¹ÈçÏÂͼËùʾ£º


ͼ1?StreamCQL¼Ü¹¹Í¼

StreamCQLµÄ×ÜÌå¼Ü¹¹·ÖΪÒýÇæ¡¢¹¦ÄÜ¡¢ÒµÎñ½Ó¿ÚÈý²ã£¬Ã¿¸ô²ã´ÎÖ®¼ä·Ö¹¤Ã÷È·£¬ÔðÈÎÇåÎú£¬¿ÉÒÔÇáÒ×½øÐй¦ÄÜÍØÕ¹¡£

1. ÒýÇæ

StreamCQLµÄÒýÇæ²ã£¬¿ÉÒÔÊÊÅä¸÷ÖÖ²»Í¬µÄÁ÷´¦ÀíÒýÇæ£¬±ÈÈçFlinkµÈ£¬Ä¿Ç°Ö÷ÒªÊÊÅäStorm¡£

ÒýÇæ²ãµÄ×÷ÓÃÔÚÓÚÍê³ÉÍê³É¶Ô¸÷ÀàËã×ӶԵײ㲻ͬÁ÷´¦ÀíÒýÇæµÄ½Ó¿ÚÊÊÅä¡¢ÍØÆËµÄ¹¹½¨¡¢Ìá½»²é¿´É¾³ýµÈ²Ù×÷¡£

ÒÔStormÊÊÅäΪÀý£¬ÔÚStormÖУ¬¶ÔÍâ½Ó¿Ú·ÖΪSpoutºÍBolt£¬ÆäÖУ¬Spout¾Í¶ÔÓ¦ÊäÈëËã×Ó£¬Bolt¶ÔÓ¦Êä³öËã×Ӻ͹¦ÄÜËã×Ó£»StreamCQLÖÐËùÓвÙ×÷ÊÇÒÔËã×ÓΪµ¥Î»µÄ£¬¸÷ÀàÔËËã¶¼·¢ÉúÔÚ²»Í¬µÄËã×ÓÄÚ²¿¡£Ëã×Ó·ÖΪÊäÈëËã×Ó¡¢Êä³öËã×Ӻ͹¦ÄÜËã×Ó£¬ÔÚStormÊÊÅä²ãÖУ¬¾Í°üº¬ÊäÈëËã×Ó¶ÔSpoutµÄÊÊÅ䣬Êä³öËã×Ӻ͹¦ÄÜËã×Ó¶ÔBoltµÄÊÊÅ䣬ÒÔ¼°emitµÄÊÊÅ䣬topology builderµÄÊÊÅ䡣ֻҪͨ¹ý¼¸°ÙÐдúÂë¾Í¿ÉÒÔÍê³É¶ÔStormÒýÇæµÄÊÊÅ乤×÷¡£

StreamCQLÒýÇæ²ãºÍStreamingµÄ¶ÔÍâ½Ó¿ÚÈçÏÂͼËùʾ£º


ͼ2 StreamCQLµ×²ã½âñî¼Ü¹¹

StreamCQLÔÚStorm×ÔÉíµÄIRichSpout£¬IRichBolt½Ó¿Ú»ù´¡ÉÏ£¬ÊµÏÖÁËStormSpout¡¢StormBoltºÍStormOutputBoltÀ´ÆÁ±Îµ×²ã²»Í¬ÒýÇæ´øÀ´µÄ½Ó¿Ú±ä¸ü¡£

StreamApapterÊÇÒ»¸öÊÊÅäÆ÷£¬Ö÷Òª×÷ÓþÍÊǽ«StreamingËã×Ó×¢Èëµ½SpoutºÍBoltÖС£

IInputStreamOperator¡¢IFunctionStreamOperatorºÍIOutputStreamOperatorÊÇËùÓеÄÊäÈëÊä³öºÍ¹¦ÄÜÐÔËã×ӵĽӿڣ¬Í¬Óû§×Ô¶¨Òå½Ó¿ÚÒ»Ö¡£

¸Ã¼Ü¹¹Ê¹ÓÃÒÀÀµ×¢ÈëµÄÔ­Ôò£¬ÊµÏÖÁ˸÷¸öÿ¸ö²ã¼¶Ëã×ÓÖ®¼äµÄ½âñî¡£

2. ¹¦ÄÜ

¹¦ÄܲãÒÔStreamºÍWindowΪ»ù´¡£¬¹¹½¨³öÁËJoin£¬AggregateµÈËã×Ó¡£

Stream¼´Á÷£¬¸Ã¹¦Äܹ¹½¨³öÁËÕû¸öÁ÷´¦ÀíÆ½Ì¨Êý¾ÝÁ÷µÄ»ù´¡¡£¶¨ÒåÁËÊý¾ÝÁ÷¶¯¡¢½âÎöºÍ·Ö·¢¹æÔò¡£

Window£ºwindowÊÇÁ÷ÉÏÒ»¶Îʱ¼äÄÚÊý¾ÝµÄ¼¯ºÏ¡£StreamCQLÉϾø´ó²¿·ÖµÄ¼ÆË㣬¶¼ÊÇ»ùÓÚ´°¿ÚµÄ¡£

Á÷ºÍ´°¿Ú¹¹³ÉÁËÕû¸öÁ÷´¦ÀíÆ½Ì¨µÄºËÐÄ¡£

StreamCQL¹¦ÄܲãµÄËã×Ó°üº¬JoinËã×Ó¡¢AggregateËã×Ó¡¢SplitËã×Ó¡¢MergeËã×Ó¡¢FunctorËã×Ó¡¢filterËã×Ó¡¢unionËã×Ó¡¢ÊäÈëËã×ÓºÍÊä³öËã×Ó£¬Ä£Ê½Æ¥ÅäËã×ÓĿǰÔÝʱûÓÐʵÏÖ¡£

JoinËã×ÓÌṩµÄ¹¦ÄÜÀàËÆ¹ØÏµÐÍÊý¾Ý¿âµÄJoin¹¦ÄÜ¡£Ä¿Ç°StreamCQLÖ§³ÖµÄJoinÀàÐͰüº¬Inner?Join£¬Left?(outer)?Join£¬Right?(outer)?Join£¬Full?(outer)?Join?£¬Cross?JoinËÄÖÖÀàÐÍ¡£Ä¿Ç°Ö»Ö§³ÖË«Á÷Join¡£ÓÉÓÚÁ÷µÄÌØÊâÐÔ£¬JoinµÄʱºò£¬Á½¸öÁ÷µÄÊý¾Ý¶¼ÊÇÔÚ²»¶Ï·¢Éú±ä»¯µÄ£¬ËùÒÔÁ½¸öÁ÷ÈκÎÒ»¸öÁ÷µÄÊý¾Ý±ä»¯£¬¶¼»á´¥·¢Join²Ù×÷¡£Èç¹ûÖ»ÏëÈÃij¸öÁ÷´¥·¢Join£¬ÄÇô¾ÍÓ¦¸ÃʹÓÃUNIDIRECTION¹Ø¼ü×Ö¡£


ͼ3 Ë«Á÷JoinʾÀý

ϱíʱµ±ÓÐÊý¾ÝÁ÷¶¯µÄʱºò£¬Ë«ÏòJoinµÄÊä³ö¾ÙÀý¡£


ͼ4 Ë«Á÷Join½á¹ûʾÀý


ͼ5 Ë«Á÷Joinµ¥Á÷´¥·¢JoinʾÀý


ͼ6 Ë«Á÷Joinµ¥Á÷´¥·¢JoinÊý¾ÝʾÀý

FilterËã×ÓÊʺÏÖ»Óе¥´¿Êý¾Ý¹ýÂ˵ļòµ¥³¡¾°£¬²»Ö§³ÖÈÎºÎÆäËûÁÐת»»ÔËË㣬²»Ö§³Ö´°¿Ú¡£

FunctorËã×ÓÔÚFilterËã×ӵĻù´¡ÉÏ?Ìí¼ÓÁËÁÐת»»ÔËË㣬֧³ÖSelect×Ó¾äÔËËã¡£

AggregateËã×ÓÊÇÒ»¸ö´ó¶øÈ«µÄËã×Ó£¬ÔÚFunctorµÄ»ù´¡ÉÏ£¬Ìí¼ÓÁË´°¿Ú¹¦ÄÜ£¬²¢Ö§³Ö·Ö×飬¾ÛºÏ£¬´°¿Úǰ¹ýÂË£¬´°¿Úºó¹ýÂË£¬¾ÛºÏºó¹ýÂË(having)£¬ÅÅÐò¹¦ÄÜ¡£


ͼ7 aggregate¾ÛºÏËã×ÓÄÚ²¿¹ØÏµËµÃ÷

SplitËã×ÓµÄÖ÷Òª×÷ÓÃÔÚÓÚÍê³Éµ¥¸öÁ÷µ½¶à¸öÁ÷µÄ²ð·Ö£¬Ö§³Öÿ¸öÁ÷Êä³ö²»Í¬Êý¾Ý¡£


ͼ8?SplitËã×ÓʾÀý


ͼ9?SplitËã×ÓÊä³ö¾ÙÀý

MergeËã×Ó×÷ÓÃÕýºÃºÍSplitËã×ÓÏà·´£¬Ö§³Ö¶àÁ÷µ½µ¥¸öÁ÷µÄºÏ²¢¡£MergeËã×ÓÒªÇóÿ¸öÁ÷¶¼ÓÐÒ»¸ö×Ö¶ÎºÍÆäËûÁ÷ÖеÄÒ»¸ö×Ö¶ÎÆ¥Å䣬ÕâÑù²Å»áºÏ²¢×öͬһÌõÊý¾Ý¡£ÀàËÆ¹ØÏµÐÍÊý¾Ý¿âÖеĶàÁôµÈÖµJoin¡£


ͼ10?MergeËã×ÓʾÀý


ͼ11?MergeËã×ÓÊý¾ÝÊä³öʾÀý

UnionËã×ÓÔÚCQLÓï·¨²ãÃæ²»Ö§³Ö£¬µ«ÊÇÔÚCQLÄÚ²¿£¬»á×Ô¶¯½«Âú×ãÌõ¼þµÄËã×ÓÓÅ»¯ÎªUnionËã×Ó¡£UnionËã×Ó²»Ö§³ÖÈκιýÂ˲éѯÔËË㣬ֻÊǼòµ¥½øÐÐÁ÷ºÏ²¢¡£

InputºÍoutputËã×ÓÊǵ¥´¿µÄÊäÈëºÍÊä³öËã×Ó£¬ÆäÖаüº¬Êý¾ÝµÄ¶ÁÈ¡£¬Ð´È룬ÐòÁл¯¡¢·´ÐòÁл¯¹¦ÄÜ¡£

3. ÒµÎñ½Ó¿Ú

StreamCQLµÄÒµÎñ½Ó¿Ú¹¹½¨ÔÚStormËùÓй¦ÄÜÖ®ÉÏ£¬·ÖΪCQLºÍIDE£¬ÆäÖÐIDEÖ¸µÄÊÇÀàËÆEclipseµÄ¿ª·¢IDE£¬ÕâÖÖIDEÒÔ¹¦Äܲã¸÷ÀàËã×Ӻʹ°¿ÚΪ»ù´¡£¬¿ÉÒÔºÜÈÝÒ×½øÐÐÍÏÀ­×§µÈÁ÷ÍØÆË¿ª·¢£»IDE¹¦ÄÜĿǰ»¹Ã»ÓÐʵÏÖ¡£

CQLÖ¸µÄÊÇCQLµÄÓï·¨£¬°üº¬Óï·¨¶¨Ò壬Óï·¨½âÎö£¬ÓïÒå·ÖÎö£¬Á÷³éÏóÍØÆË¹¹½¨µÈ¹¦ÄÜ¡£CQL¶ÔStreamCQL¶ÔÍ⹦ÄÜչʾµÄÈë¿Ú¡£Ïà¹ØCQLÓï·¨Éè¼ÆºÍ¶ÔÍâÍØÕ¹½Ó¿Ú¿ÉÒÔÔÚGithubÉϲ鿴Óï·¨Êֲᡣ

 

 

   
2727 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

Óû§¹ÊÊÂÓëÓÃÀý
½»»¥Éè¼ÆÊ¦Ö®¾«Òæ»­²¼Æª
Êý¾Ý·ÖÎöÖ®Óû§»­Ïñ·½·¨Óëʵ¼ù
ÈçºÎ¿ìËÙ½¨Á¢Óû§Ä£ÐÍ£¿
 
Ïà¹ØÎĵµ

Óû§½çÃæÉè¼Æ
¸øÆóÒµ×ö´óÊý¾Ý¾«×¼Óû§»­Ïñ
Óû§ÌåÑéºÍ½»»¥Éè¼Æ
´óÊý¾ÝϵÄÓû§»­Ïñ
Ïà¹Ø¿Î³Ì

Óû§ÌåÑé&½çÃæÉè¼Æ
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
Óû§Ñо¿ÓëÓû§½¨Ä£
Óû§ÌåÑéµÄÈí¼þUIÉè¼Æ×î¼Ñʵ¼ù
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

´ÓÊÖ»úµÇÂ¼Ò³ÃæÉè¼ÆÏëµ½µÄ
ÈçºÎ°ÑÎÞÒâʶÒýÈë½»»¥Éè¼ÆÖÐ
½»»¥Éè¼ÆµÄÕæÏà
µ±ÊÓ¾õÉè¼ÆÊ¦ÓöÉϲúÆ·¾­Àí
ÊÖ»ú½»»¥Éè¼ÆÔ­Ôò
Óû§ÌåÑéÖ®ÍøÒ³°å¿éÉè¼Æ

ÒÔÓû§ÎªÖÐÐĵÄÉè¼Æ
¿ÉÓÃÐÔÆÀ¹À
Desktop¼°Web-basedÊÓ¾õÉè¼Æ
ÈÏÖªÔ­ÀíÓëÉè¼ÆÓ¦ÓÃ
ÊÖ»úÓû§½çÃæÉè¼Æ

±±¾© ÒÔÓû§ÎªÖÐÐĵĽçÃæÉè¼Æ
±±¾© Óû§ÌåÑé& ½çÃæÉè¼Æ
ÉϺ£ »ªÎª Óû§ÌåÑé& ½çÃæÉè¼Æ
ÉîÛÚ Óû§ÌåÑé& ½çÃæÉè¼Æ
°®Á¢ÐÅ ÒÔÓû§ÎªÖÐÐĵÄÉè¼Æ
±±¾© Óû§ÌåÑéÓë½çÃæÉè¼Æ
¸£ÖÝ ÒÔÓû§ÎªÖÐÐĵĽçÃæÉè¼Æ