ǰÑÔ£º´óÊý¾ÝµÄ·Ö²¼Ê½µ÷¶ÈÊÇÔÚ½øÐÐÊý¾ÝETL¹ý³ÌÖÐÆðµ½ÁË×ÜÌåµÄ³ÐÉÏÆôϵĽÇÉ«£¬Õû¸öÊý¾ÝµÄÉú²ú¡¢½»¸¶¡¢Ïû·Ñ¶¼»á¹á´©ÆäÖУ¬±¾ÎÄ´Óµ÷¶È¡¢·Ö²¼Ê½µ÷¶ÈµÄÌØÕ÷Õ¹¿ª£¬ÔÙ¶Ô´óÊý¾Ýµ÷¶È¸öÐÔ»¯ÌØÕ÷µÄһЩ²ûÊö£¬ÓÉÂú×ã´óÊý¾ÝʹÓõļܹ¹ºÍÒµÎñ³¡¾°µÄÐèÇóÉÏæ¸æ¸µÀÀ´£¬´Óʵ¼ùµÄ½Ç¶È·ÖÏíÈçºÎ´òÔìÒ»¸ö¸ß¿ÉÓᢸßЧÂÊ¡¢Áé»îÐԵĴóÊý¾Ýµ÷¶Èƽ̨¡£
Ò»¡¢µ÷¶È
´ÓÉϸöÊÀ¼Í50Äê´úÆð£¬µ÷¶ÈÎÊÌâµÄÑо¿¾ÍÊܵ½Êýѧ¡¢Ô˳ïѧ¡¢¹¤³Ì¼¼ÊõѧµÈÁìÓò¿ÆÑ§µÄÖØÊÓ[1]£¬ÈËÃÇÖ÷Òª´ÓÊýѧµÄ½Ç¶ÈÀ´Ñо¿µ÷¶ÈÎÊÌ⣬µ÷¶ÈÎÊÌâҲͬÑù±»¶¨ÒåΪ¡±·ÖÅäÒ»×é×ÊÔ´À´Ö´ÐÐÒ»×éÈÎÎñ¡±£¬ÒÔ»ñµÃÉú²úÈÎÎñÖ´ÐÐʱ¼ä»ò³É±¾µÄ×îÓÅ[2]¡£µ÷¶ÈÔÚ¼ÆËã»úÈÎÎñµÄʵÏÖ¿ÉÒÔÒÀÀµ²Ù×÷ϵͳµÄ¶¨Ê±ÈÎÎñ½øÐд¥·¢£¨ÀýÈçLinuxϵͳµÄCrontab£©£¬Ö÷ÒªÕë¶Ôµ¥ÈÎÎñ»úÖÆµÄ´¥·¢£¬µ÷¶È×î»ù±¾µÄÐèÒªÄܹ»°´Ê±»òÕß°´ÕÕʼþ½øÐд¥·¢£¨At-least-once£©£¬Èç¹ûÈÎÎñ²»·ûºÏÔ¤ÆÚ£¬»¹ÐèÒªÔÚÓ¦Óö˽øÐÐÖØÊÔ£¬×î´ó¿ÉÄܱ£Ö¤ÈÎÎñ±»°´Ê±Ö´ÐУ¬²¢Çҳɹ¦Ö´ÐУ¬Í¬Ê±²»Äܶà´ÎÖ´ÐУ¨Exactly
once£©£»µ«ÊÇÔÚÒµÎñ³¡¾°Äܱ£Ö¤¿ÉÖØ¸´Ö´ÐС¢Ò»ÖÂÐÔ²Ù×÷Çé¿ö϶ÔÓÚÕùÈ¡ÄÜÕý³£µ÷¶ÈÖ´Ðжà´ÎÖ´ÐÐÒ²ÊDz»¿É»òȱµÄ£¬±ÈÈç¸øÉÌ»§½øÐÐ1minǰµÄÀýÐнáË㣬Èç¹û½áËãÊǰ´ÕÕ30minµÄʱ¼ä´°¿Ú²éÕÒδ½áËãµÄÉÌ»§£¬ÄÇô¾Í»áÈÝÈÌ30minÑÓ³Ù£¬²¢ÇÒ¶à´Î±»Ö´ÐÐÒ²²»»á¸øÉÌ»§¶à½áË㣬ÒòΪÔÚ½áË㸶¿îºÍÖØÖÃÊÇ·ñ½áËã±ê־λ¿ÉÒÔÉè¼Æ³ÉÔ×ÓÐÔ²Ù×÷¡£ËùÒÔÔÚµ÷¶ÈÉÏÄܹ»×öµ½°´Ê±¡¢ÕýÈ·µÄÖ´ÐУ¬ÔÚÒµÎñ·½Éè¼ÆÎªÁ˱£Ö¤×îÖÕÒ»ÖÂÐÔÒ²ÓÐһЩ¼Ü¹¹ÉϵÄÈ¡Éá¡£
Èç¹ûÓ¦Óó¡¾°ÓÐÉÏÏÂÓεÄÐ×÷£¬»òÕßÔÚÈÎÎñÖ´ÐÐ»á´æÔÚ²»Í¬µÄËÞÖ÷»úÀ´Íê³É£¬»òÕßΪÁ˱£Ö¤ÈÎÎñ¸ß¿ÉÓó¡¾°£¬¾ÍÐèÒªÒýÈë·Ö²¼Ê½µ÷¶ÈµÄ¼Ü¹¹¡£
¶þ¡¢·Ö²¼Ê½µ÷¶È
·Ö²¼Ê½µ÷¶ÈÊÇÔÚµ¥»úµÄ»ù´¡ÉÏ·¢Õ¹ÆðÀ´£¬ÔÚ×ۺϿ¼ÂǸ߿ÉÓᢸßЧÂÊ¡¢·Ö²¼Ê½Ð×÷µÄ±³¾°ÏÂÖð²½ÑݽøµÄµ÷¶È·½Ê½£¬´Óµ¥µãµ÷¶Èµ½·Ö²¼Ê½Ð×÷ÊÇÒ»¸öÖʱäµÄ¹ý³Ì£¬Õâ¸ö¹ý³ÌÉæ¼°µ½Ðí¶àÔÚµ¥»ú²¢²»´æÔÚµÄÌØÕ÷£¬ÏÂÃæÕë¶ÔÖØµãÕ¹¿ªÁÄÏ£º

ͼ1 ·Ö²¼Ê½µ÷¶È×é¼þ»¯·Ö½âͼ
2.1 µ÷¶ÈÆ÷È¥ÖÐÐÄ»¯&¸ß¿ÉÓÃ
Éæ¼°µ½·Ö²¼Ê½µ÷¶ÈµÄÐ×÷£¬¾ÍÐèÒªÓе÷¶ÈÖÐÐĽڵ㣬ͬʱҪ±£Ö¤¸ß¿ÉÓõÄÄ¿µÄ¾ÍÐèÒªµ÷¶ÈÖÐÐĽڵãÊǶà½Úµã·¢²¼£¬Ö÷±¸µÄ·½Ê½È¥µ¥µãÒÀÀµ¡£
2.2 ËÞÖ÷Ñ¡Ôñ
·Ö²¼Ê½µ÷¶ÈÔÚÈÎÎñÖ´Ðн׶Σ¬¿ÉÒÔÔÚÄ¿±êËÞÖ÷ÖнøÐÐÈ«²¿Ö´ÐС¢NÑ¡M£¨N>=M>=1£©µÄÑ¡Ôñ£¬ËÞÖ÷»ú¾ß±¸ÏàͬÀàÐÍÈÎÎñ»¥±¸µÄ»úÖÆ£¬ÔÚMPP(Massively
Parallel Processor)¼Ü¹¹ÖÐÓÈΪ³£¼û£¬°Ñ´óÈÎÎñ·Ö¶øÖÎÖ®¿ìËÙÍê³É¡£Ò²´æÔÚ³¡¾°£¨±ÈÈçÍâÂô¸øÉÌ»§½áË㣩ΪÁËÒ»ÖÂÐÔºÍ׼ȷÐÔÖ»ÄÜÓÉһ̨Ö÷»ú½øÐÐÖ´ÐУ¬²¢ÇÒÐèÒª³É¹¦Ö´ÐС£
1.±»¶¯Ñ¡Ôñ²ßÂÔ£ºËÞÖ÷µÄ±»¶¯Ñ¡Ôñ»úÖÆÒ»°ã¿ÉÒÔËæ»ú»òÕß°´ÕÕ˳ÐòÑ¡Ôñ²ßÂÔ£¬Ò²¿ÉÒÔ°´ÕÕµ±Ç°ËÞÖ÷»ú½øÐеÄÈÎÎñÖ´ÐÐÊýÁ¿µÄ·½Ê½½øÐг£¹æµÄµ÷¶È·ÖÅä¡£µ±È»£¬Ò²¿ÉÒÔ½øÐи߼¶µÄ²Ù×÷£¬²ÎÕÕËÞÖ÷»úµÄ´¦ÀíÄÜÁ¦£¨ÍÌÍÂÁ¿ºÍÏìӦʱ¼ä£©¡¢×ÊԴʹÓÃÇé¿ö£¨CPU¡¢Memory¡¢Disk
I/O¡¢Net I/OµÈ£©½øÐз´À¡»úÖÆµÄ¶¯Ì¬·ÖÅä¡£ºóÕßÐèÒªÓм¯ÖÐ½Úµã´æ´¢µ±Ç°ËÞÖ÷»úµÄ´¦ÀíÄÜÁ¦¡¢×ÊÔ´Çé¿ö£¬±ãÓÚÔÚ¾ö²ßÑ¡ÔñÖÐÌṩ²ÎÕÕ¡£
2.Ö÷¶¯Ñ¡Ôñ²ßÂÔ£ºËÞÖ÷µÄÖ÷¶¯Ñ¡Ôñ¾ß±¸¸ü¼Ó·á¸»µÄÑ¡¾Ù²ßÂÔ£¬ÈÎÎñÔÚÏ´ﵽ¾ßÌåËã×Óʱ£¬»á±È½ÏÃ÷È·µÄ¶¨Òå³öµ±Ç°ÈÎÎñÐèÒªÓɶàÉÙ¸öËÞÖ÷²ÎÓëÖ´ÐУ¬Í¨¹ýzookeeperµÄ·Ö²¼Ê½ËøÀ´ÊµÏÖËøµÄÇÀÕ¼»úÖÆ£¬ÇÀÕ¼³É¹¦ÔòÖ´ÐУ¬·ñÔò·ÅÆú¡£ÕâÖÖÑ¡¾Ù²ßÂÔÈÃËÞÖ÷»úµÃµ½Á˸ü¶àµÄ²ÎÓ룬½µµÍÁ˶Ե÷¶ÈÆ÷µÄÒÀÀµ¡£ÕâÖÖÖ÷¶¯Ñ¡ÔñµÄ·½Ê½£¬±ÜÃâ±»¶¯Ñ¡ÔñÒò²»¾ß±¸Ö´ÐÐÌõ¼þ±»Ñ¡ÖУ¬ÔÚÖ´ÐеÄÄÜÁ¦ÔÚʱ¼äÉϵÄËðºÄ¡£
2.3 ÈÎÎñ¹ÊÕÏ×ªÒÆ
µ÷¶ÈÈÎÎñµÄ´ÓÈÎÎñ¼¶±ðjobµ½transformer¡¢operator£¬Õû¸öÁ´Ìõ¶¼´æÔÚ¾ßÌå¾Ö²¿Ê§°ÜµÄÇé¿ö£¬µ÷¶ÈÆ÷ÐèÒªÔÚÔÄ¿±êËÞÖ÷»úÖØÊÔºÍʧ°Üºó×ªÒÆµ½ÆäËû±¸ËÞÖ÷»úµÄ¹¦ÄÜ£¬×î´óÁ¦¶ÈµÄ±£Ö¤ÈÎÎñ±»³É¹¦Ö´ÐС£
2.4 Ö´ÐÐËã×Ó³éÏó
ÒÔÍùµ¥»úÈÎÎñµÄµ÷¶È¿ÉÒԱȽÏÁé»îµÄÖ´ÐжàÑùµÄÈÎÎñ£¬¿ÉÒÔÊǽű¾¡¢Webserviceµ÷Óá¢HDFS ClientÃüÁîÐеȣ¬µ«ÊǶÔÓÚ·Ö²¼Ê½Ð×÷ÐèÒª½ÓÊÕÍⲿÃüÁîÔËÐУ¬Õâ¾ÍÐèÒªËã×Óͨ¹ý±ê×¼µÄÊý¾ÝͨѶÐÒé¶ÔÍâÌṩµ÷Ó÷þÎñ£¬³£¹æµÄWebService¡¢RPC£¨thrift/protocol
buffer£©µÈÐÒéÔÚ¿çÓïÑÔͨѶÉϾßÓнÏΪ¹ã·ºµÄÓ¦Óá£ËùÒÔ¾ßÌåÖ´Ðе¥Ôª¿ÉÒÔÊǾßÌåÈÎÎñµÄ³éÏó£¬ÀýÈçÌṩÁËRest
API·½Ê½£¬µ÷ÓõÄURLºÍ²ÎÊý¶¼ÊÇÖ´Ðз½ÌîÈ룬×î´ó³Ì¶ÈÉÏÖ§³ÅÁËÁé»îÐÔ£»Êý¾Ý¿â²Ù×÷Ëã×Ó¿ÉÒÔ°üº¬Êý¾Ý¿âÑéÖ¤ÐÅÏ¢¡¢¾ßÌåÖ´ÐеÄSQLµÈ¡£Ö´ÐÐËã×Ó³éÏóºó£¬Âú×ã¹æ·¶ºÍÁé»îÐÔ£¬Áé»îÊÇÒ»¸öË«Èн££¬¿ÉÒÔ×î´óÏ޶ȵÄÂú×ãÓû§ÐèÇ󣬵«Ò²»áµ¼Ö´óÊý¾Ý²ãÃæÎÞ·¨ºÜϸÁ£¶ÈµÄÈ¥¸ÐÖªÊý¾ÝµÄ±í¡¢×Ö¶ÎÊý¾ÝµÄÍê³ÉÇé¿ö£¬¶ÔÊý¾ÝÉú²úÎÞ·¨¸ü¼Ó¾«Ï¸Á£¶ÈµÄ²ú³ö½»¸¶¡£
2.5 µ¯ÐÔÀ©Õ¹
ÈÎÎñ¾ßÌåÖ´ÐеÄËÞÖ÷»úÐèÒªÔÚµ÷¶È²ãÃæÂú×㵯ÐÔµÄÀ©Õ¹£¬À©Õ¹×îÖ÷ÒªµÄÐèÒªÊÇÂú×ã¸ß¿ÉÓúÍÈÎÎñËæ×ÅˮƽÀ©Õ¹½øÐзÖ̯ѹÁ¦¡£ÔÚ¼¯ÈºÄ¿±êËÞÖ÷»úÑ¡Ôñʱ£¬Ò»°ãÄ¿±ê¼¯ºÏ¿ÉÒÔÖ¸¶¨¾ßÌåIP-List£¬Ò²¿ÉÒÔÊÇÒ»¸öBNS(°Ù¶È»úÆ÷µÄNameServer·þÎñ)¡£IP-List·½Ê½ÉèÖñȽϼòµ¥Ö±¹Û£¬µ«ÊÇ´æÔÚÿ´Îµ÷ÕûÒÀÀµ±ä¸üµ÷¶Èϵͳ·þÎñ£¬±ä¸üÖ®ºó»¹ÐèÒª½øÐÐË¢ÐÂËÞÖ÷»úµÄÇé¿ö¡£¶øÍ¨¹ýBNS·þÎñ±È½Ï¼òµ¥£¬Í¬Ê±ºÍÏßÉÏ·þÎñ·¢²¼²¿Êð½øÐнáºÏ£¬²»´æÔÚÑÓ³Ù²¿ÊðºÍˢУ¬ÍƼöͨ¹ýBNSµÄ·½Ê½½éÈë¡£
2.6 ´¥·¢»úÖÆ
³£¹æ´¥·¢Êǰ´ÕÕÖ´Ðмä¸ô»òÕß¾ßÌåʱ¼äµÄCrontabÓï·¨£¬¿ªÊ¼Ê±¼ä£¬½ØÖ¹Ê±¼ä²ÎÊýÍê³É£¬µ«ÊÇÔÚ·Ö²¼Ê½µ÷¶ÈÈÎÎñÖУ¬×îÖØÒªµÄ¾ÍÊÇÍê³ÉÐ×÷£¬ËùÒÔÈç¹ûÒª½ø½×µÄ»°£¬¾ÍÊÇÒÀÀµ´¥·¢µÄ»úÖÆ¡£ÕâÖ־ͺܺõÄÐγÉÁËÉÏÏÂÓÎÒÀÀµ´¥·¢£¬ÊÇ·Ö²¼Ê½Ð×÷µÄ¹Ø¼ü²½Öè¡£´Ó×î³õµÄÈÎÎñ½Úµã°´ÕÕ³£¹æ´¥·¢£¬ÏÂÓνڵãÐγÉÒÀÀµÁ´Ìõ£¬ÕâÀïÈç¹ûÔڸ߼¶½ø½×µÄ»°£¬¾ÍÊÇÒÀÀµµÄij¸ö/ijЩƵ´Î´¥·¢£¬±ÈÈçÿСʱµÄ12·ÖÖÓ¿ªÊ¼±»Ö´ÐУ¬ÏÂÓοÉÒÔÑ¡Ôñ¾ßÌåµÄ2:12
£¬4:12½øÐд¥·¢£¬¶ø·Çÿ¸öÕûµã12·Ö¶¼±»µ÷Óá£ÕâÈýÖÖ·½Ê½Ä¿Ç°ÔÚÍâÂôµÄ´óÊý¾Ýƽ̨¶¼Óв»Í¬³¡¾°ËßÇ󣬼ܹ¹Éè¼ÆÔÚ3¸öÐèÇóÉ϶¼ÓÐÁé»îµÄ½»¸¶¡£
2.7 ¶ÂÈû»úÖÆ
¶ÔÓÚÏàͬÈÎÎñµÄ²»Í¬Ê±¼äµÄÔËÐÐʵÀý£¬»á´æÔÚÇ°ÃæµÄʵÀý»¹Ã»ÓÐÕý³£½áÊøµÄÇé¿ö£¬ÕâÖÖÔÚ¸ßÆµ´Îµ÷Ó㬵ÚÈý·½ÒÀÀµ¹ÊÕÏÑÓ³ÙµÈÇé¿öÏ»á³öÏÖ£¬Èç¹û¼ÌÐøµ÷ÓûáÔì³Éµ÷ÓÃÁ´Ìõ¶ñ»¯£¬ËùÒÔ·ÀÖ¹ÕâÖÖÇé¿ö£¬¶ÂÈû»úÖÆ»áÌṩÈýÖÖģʽ£º³£¹æÀýÐУ¨Ä¬ÈÏģʽ£©¡¢¶ªÆúºóÐø¡¢¶ªÆúǰÀý¡£ºóÃæ2ÖÖ·½°¸¶¼ÐèÒªÌṩÈÝ´íÖØ·Å»úÖÆ£¬Õâ¸ö³¡¾°±È½ÏÀàËÆ1.1Õ½ÚÌáµ½µÄ½áËã°¸Àý¡£
2.8 ͼÐλ¯½øÕ¹²é¿´
µ÷¶È¿ÉÒÔ¸ù¾Ýµ÷ÓÃÁ´ÌõºÍ²»Í¬Ê¼þƵ´ÎµÄʵÀý£¬Í¨¹ýÊ÷״ͼÐλ¯µÄ·½Ê½²é¿´Ö´ÐеĽø¶ÈÇé¿ö£¬ÀýÈç¿ÉÒԲ鿴jobÖÐtransformer¡¢Ëã×ÓµÄÔËÐлúÆ÷×´¿ö¡¢×´Ì¬ºÍ¾ßÌåµÄʵʱִÐÐÈÕÖ¾¡£Í¼Ðλ¯ÊǸù¾Ýµ÷ÓõĴ¥·¢»úÖÆ·ÖÎö³öÀ´µÄÒ»¸öÁ´Ìõ£¬ÊÇÔÚ·³È߸´Ôӵĵ÷ÓùØÏµÖÐÕÒµ½ÇåÎúÂöÂçµÄÊý¾ÝÖ±¹Û±í´ïµÄ·½Ê½£¬Êǵ÷¶ÈÖг£¹æµÄչʾ·½Ê½¡£ÔÚ½ø½×ÖпÉÒԲ鿴ÏàÓ¦µÄ²ÎÊý´«µÝ£¬²¢·¢Ëã×ÓµÄÖ´Ðнø¶ÈÌõ£¬Ô¤¹ÀÍê³ÉÖÜÆÚµÈ¡£
2.9 ±¨¾¯
ͨ¹ýÓʼþ»òÕß¶ÌÐŵķ½Ê½¶Ô²»·ûºÏÔ¤ÆÚ·µ»Ø±êʶµÄ½øÐÐÖÐÖ¹£¬Í¬Ê±Í¨¹ýÓʼþ»òÕß¶ÌÐŵȷ½Ê½¶ÔÔ¤ÏÈÉèÖõÄÓû§»òÕßÓû§×é·¢³ö¾¯¸æ¡£±¨¾¯´¥·¢µÄ»úÖÆ¿ÉÒÔÔÚËÞÖ÷»úµ¥Ì¨Ê±ºò´¥·¢£¬Ò²¿ÉÒÔÔÚÒ»¶¨Õ¼±ÈµÄËÞÖ÷»úÔÚÒ»¶¨µÄʱ¼ä´°¿Ú³¬¹ýÁËãÐÖµ£¬´¥·¢±¨¾¯¡£Í¬Ê±Ò²ÒªÖ§³Ö±¨¾¯µÄÆÁ±Î£¬ÓÃÔÚ½øÐÐÔËά»òÕßÉý¼¶²¿Êð¡¢ÔËά½Ó¹ÜµÄÇé¿ö¡£
ÉÏÃæÊǺܶೣ¹æµ÷¶ÈÓµÓеÄÒ»Ð©ÌØÕ÷£¬ÕâЩÊÇÔÚ·Ö²¼Ê½³¡¾°ÏµÄÑÓÉìÐèÇ󣬴ӵ¥µã¼òµ¥µÄÂß¼µ½¶à½ÚµãµÄÐ×÷ͳ³ïÔÚ¹¤³Ì²ãÃæÎÞÒÉÔö¼ÓÁ˶îÍ⸨Öú£¬ÕâЩ¶¼ÊÇÔÚÒµÎñÑݽøÖÐÖð²½ÍêÉÆÆðÀ´£¬¶ø¸ß¿ÉÓᢸßЧÂÊÊÇÔÚ·Ö²¼Ê½»·¾³ÏÂ×ö³öµÄ¸Ä±ä¡£
Èý¡¢´óÊý¾Ý·Ö²¼Ê½µ÷¶È
´óÊý¾Ý·Ö²¼Ê½µ÷¶È£¬ÔÚÉÏÃæÍ¨Óõ÷¶ÈµÄ»ù´¡ÉÏÓÖ½øÐÐÁ˾ßÌå¸úÊý¾ÝÌØÕ÷ÏàÆ¥ÅäµÄ¸ÄÁ¼¡£Ö÷ÒªÊÇ´ÓÊý¾ÝµÄÁ÷³Ì²ãÃæ½øÐÐÊáÀí£¬ÓÃÀ´½âÊÍÊý¾ÝµÄÉÏÏÂÓΡ¢ÑªÔµ¹ØÏµµÄÎÊÌ⣬¾ßÌåÓÖÓÐÄÄÐ©ÌØÕ÷ÊÇÕë¶Ô´óÊý¾ÝµÄÄØ£¿
3.1 Êý¾ÝÉÈÈëÉȳö
´óÊý¾ÝµÄ´æ´¢ºÍ¼ìË÷·½°¸ºÜ¶à£¬Òò´óÊý¾ÝÌØÕ÷Ö®Ò»¾ÍÊǶàÑùÐÔ£¬ÎªÁËÂú×ã¶àÑùµÄÒµÎñ³¡¾°»áÓв»Í¬µÄÒýÇæ»òÕߴ洢ѡÔñ£¬ÔÚ¶àÑù»¯½â¾ö·½°¸µÄͬʱ£¬Ôì³ÉÁËÊý¾ÝÖ®¼ä½øÐн»»»±äµÃ¸´ÔÓ£¬ÒýÇæÖ®¼äµÄÊý¾Ý´æÈ¡¹æÔò¶¼ÓиöÐÔ»¯µÄÖ§³Ö£¬±ÈÈçHbaseµÄÊý¾Ýµ½MysqlºÍElasticSearch£¨ÒÔϼò³ÆES£©£¬Éæ¼°µ½HbaseµÄ¶ÁÈ¡ºÍºóÐøºóÃæÁ½ÕßµÄÊý¾Ý´æÈ룬ÕâÖÖ¶ÔÓÚHbase¾ÍÊÇÒ»¶Ô¶þµÄÊý¾ÝÉȳö£¬µ«ÊÇÔÚÊý¾ÝÔÚHbaseÖÐͨ¹ýGet»òÕßScan·½Ê½»ñÈ¡ºó£¬Òª²åÈëÊý¾ÝÐèÒªÁ˽âºóÃæ2ÕߵĴ洢½á¹¹£¬ÉõÖÁÊÇË÷Òý½á¹¹¡£ËùÒÔÀàËÆÕâÖÖ¿çÒýÇæ£¨»òÕß¿ç°æ±¾£¬²»Í¬API£©µÄ·½Ê½£¬ÎªÁ˱£³ÖͨÓã¬ÐèÒª½øÐÐÐèÇóµÄ³éÏó£¬ÔÚÍâÂôƽ̨Õë¶ÔÊý¾ÝµÄ½»»»¶¨ÒåÁËÒ»Ì׿ª·ÅʽSQL£¬Õâ¸ö¿ò¼Ü¶ÔÊý¾ÝÒýÇæµÄ´æºÍÈ¡·Ö±ð×÷Á˳éÏó£¬ÔÚ²»Í¬µÄÄ¿±êÒýÇæÖÐÓоßÌåµÄʵÏÖ£¬ËùÒÔ¾ÍÓÐһЩԼ¶¨µÄ¹æ·¶¡£

ͼ2 ¿ª·ÅʽSQLÉÈÈëÉȳöÁ÷³Ìͼ
1.Ö÷¼ü£ºÊý¾Ý±ØÐë´æÔÚÒµÎñÖ÷¼ü»òÕßÁªºÏÖ÷¼ü£¬Ä¿µÄÊÇΪÁ˱£Ö¤Êý¾ÝÔھۺϻòÕ߸üеÄʱºòÓÐÒÀ¾Ý¡£Ö÷¼üÔÚNosqlµÄÒýÇæÖÐ×÷ΪRowKey£¬ÔÚ¹ØÏµÊý¾Ý¿âÖÐ×÷ΪÖ÷¼ü£¬ÔÚESÖÐ×÷ΪÖ÷¼ükey¡£¶ÔÓÚKuduÀ´½²Ò²ÊÇÖ÷¼ü£¬Õë¶ÔÊý¾ÝµÄupsert¾Í¿ÉÒÔÓÐÒÀ¾ÝµÄ½øÐиüлòÕß²åÈë¡£
2.Êý¾ÝÁУºÊý¾ÝÁеıä¸ü»áÉÔ΢¸´ÔÓ£¬Èç¹ûÔÚ¹ØÏµÊý¾Ý¿âÖлáÉæ¼°µ½Ôö¼Ó¡¢±ä¸üÁУ¬µ«ÊÇÔÚHbase¡¢ESÖлù±¾²»ÐèÒªÖ÷¶¯À©Õ¹ÁУ¬Ö»ÐèÒª¶ÔÊý¾Ý±ä¸ü¾Í¿ÉÒÔÁË¡£
3.·ÖÇø×ֶΣº¶ÔÓÚÊÂʵ±íÊý¾Ý£¬ÔÚ´óÊý¾ÝÁ¿µÄÇé¿öÏ£¬ÎªÁ˼ìË÷ЧÂʺÍÊý¾Ý´æ·Å×îÓÅ£¬Ò»°ã»áÌṩ·ÖÇøºÍͰµÄ²ßÂÔ£¬Õë¶ÔHive¡¢Impala¡¢GreenPlumµÄÒýÇæ»á¶îÍâÔö¼Ó·ÖÇø×ֶΣ¬·ÖÇø¿ÉÒÔÊÇÒ»¼¶µ½¶à¼¶£¬Ò»°ãÒµÎñ³¡¾°ÏµÚÒ»·ÖÇøÎªÈÕÆÚ£¬¸ù¾Ýʵ¼ÊÒµÎñÐèÇó¿ÉÒÔ±ä¸ü¸üϸÁ£¶È»òÕ߯äËûÒµÎñ×ֶΡ£ÔÚÒ»°ãMysql¡¢Postgresql¡¢HbaseÕâÖÖÒýÇæÖв»ÐèÒªµ¥¶ÀÔö¼Ó·ÖÇø×ֶΡ£
4.Êý¾Ý¸üз¶Î§£º´óÊý¾ÝµÄÊý¾Ý½»»»£¬Ò»°ãΪÁËÌá¸ßЧÂÊ»á½øÐжàÅú´ÎµÄ²¢·¢´¦Àí£¬Õâ¾ÍÐèÒªÔÚÒ»Åú´ÎµÄÊý¾Ý½øÐзָһ°ãÇé¿öÏ»ᰴÕÕµ¥Ò»×ֶεĽøÐнØÈ¡£¬×ֶεÄÀàÐÍÒÔʱ¼ä´Á£¨create_time¡¢update_time£©¾Ó¶à£¬Ò²¿ÉÒÔ¸ù¾ÝÖ÷¼üµÄkeyÅÅÐòºó·ÖÅú´Î»ñÈ¡£¬ÔÚÔ´Êý¾ÝÒýÇæÔÊÐíµÄÇé¿öÏ£¬°´ÕÕ¶àÅú´ÎµÄ²¢·¢query¿ÉÒÔ×öµ½ºÜºÃµÄÊý¾Ý»ñÈ¡£¬°Ñ´®ÐеIJÙ×÷½Ø¶Ï³É¶à¶ÎµÄ²¢·¢£»ÕâÖÖÔÚͬһ¸öÈÎÎñ¶àʱ¼äÅú´ÎµÄÇé¿öÏÂÒ²ºÜÖØÒª£¬Ã¿¸öÅú´Î»á½ç¶¨±¾Åú´ÎÉè¼ÆÊý¾Ý¸üеķ¶Î§¡£Êý¾Ý¸üз¶Î§Ê¹ÓÃǰһ°ã»á»ñÈ¡±¾´Î¸üеÄÊý¾ÝÁ¿£¬¿ÉÒÔ¸ù¾ÝÔÄ¿±êÒýÇæµ¥¸öÅú´ÎµÄ×îÓÅÐÔÄܼÆËã³öoffset¡£
5.¶à²½Öè¹ý³Ì£º¶à²½Öè¹ËÃû˼Òå¾ÍÊÇÊý¾ÝµÄ×¼±¸²»ÊÇÒ»õí¶ø¾ÍµÄ£¬ÀýÈçÔÚ3¸öMysql¿â¡¢Postgresql¡¢OracleÖлñȡԱ¹¤ÐÅÏ¢£¬¶øÔ±¹¤±àºÅÊÇͳһµÄ£¬×îÖÕÊý¾ÝÔÚDB2Öлã¾ÛÔÚÒ»Æð£¬×î»ù´¡µÄ²½ÖèÊÇÈý·ÝÊý¾Ý»ãÈëµ½OracleÖУ¬Õâ¾ÍÉæ¼°µ½Ç°ÃæÍ¨¹ýkey×öÊý¾ÝµÄMerge£¬ÕâÀï»áÉæ¼°µ½Êý¾ÝµÄ²åÈëºÍ¸üУ¬µ«ÊÇÈç¹ûÓÐkey´æÔÚ²¢ÇÒ²»Í¬Êý¾ÝÔ´Ä¿±êÊý¾ÝÁÐÇå³þµÄÇé¿öÏ£¬Èý·ÝÊý¾ÝÔçµ½ºÍÍíµ½³¡¾°¶¼Ã»ÓÐÌ«´óÇø±ð¡£µÚ¶þ²½ÖèÔò¸ù¾Ý»ã×ÜÍêµÄÊý¾Ý·ÖÎö³öÒ»¸ö¹ýÂ˳¡¾°ÏµľۺÏÐÅÏ¢£¬Õâ²½ÖèµÄ³¡¾°×÷Ϊ¼ÆËãÊý¾ÝÔ´£¬ÔٴνøÐÐÊý¾ÝµÄÉȳö²åÈë½á¹û¡£µÚÈý²½Öè¿ÉÒ԰ѵÚÒ»²½µÄÁÙʱ½á¹û½øÐÐɾ³ý¡£ËùÒÔÔڶಽÖèµÄ³¡¾°ÏÂÊý¾ÝÊÇ·Ö²½ÖèÍê³ÉÁË»ã¾Û¡¢¾ÛºÏºÍɾ³ý¡£
6.¸üÐÂÀàÐÍ£º°Ù¶ÈÍâÂô´óÊý¾Ýʵ¼ùµÄ¿ª·ÅʽSQL³¡¾°ÓÐInsert£¨´óÅúÃ÷ϸ³¡¾°£©¡¢Update£¨Êý¾ÝºóÐø¸üУ©¡¢Insert
Once£¨¾ÛºÏ½á¹û²åÈ룩¡¢Insert Temp£¨ÁÙʱ½á¹û»º´æ£©¡¢Delete£¨Éƺó´¦Àí³¡¾°£©£¬ÔÚÕâЩ×éºÏ²Ù×÷ÀàÐ͵ij¡¾°Ï£¬ÐèÒªÔÚÊÇÏßÉÏÔö¼ÓÒ»¸öÖ´ÐÐÓÅÏȼ¶µÄÐÅÏ¢£¬Èç¹ûÇø·ÖÓÅÏȼ¶»á°´ÕÕ´Óǰµ½ºóµÄ²½ÖèÖ´ÐУ¬Èç¹ûûÓÐÉ趨Ôò¿ÉÒÔ²¢·¢²Ù×÷¡£
7.ºÚºÐ±©Â¶²Ù×÷£ººÚºÐ²Ù×÷ÊÇÔÚͨ¹ý¿ª·ÅʽSQLµÄ´æÈ¡ÔÔòÇé¿öÏ£¬¶ÔÎÞ·¨°´ÕÕÔ¼¶¨¹æ·¶²Ù×÷µÄÇé¿öÏÂʵÐеÄÒ»ÖÖÍ×з½Ê½£¬Ä¿µÄÓÐÁ½¸ö£ºÒ»·½ÃæÒª°ÑºÚºÐ¶ÔÊý¾ÝÒÀÀµ¹ý³Ì±ØÐë¶ÔÍⱩ©£¬ÕâÑùÊÇΪÁ˺óÆÚÊáÀíÊý¾ÝѪԵ¹ØÏµÌá¹©ËØ²Ä£»ÁíÒ»·½ÃæÍ¨¹ýºÚºÐÀ´Âú×ãÊý¾Ý´¦ÀíµÄÁé»îÐÔ£¬±ÈÈç¶Ôjson¸ºÔðxpathµÄÑ¡Ôñ£¬¼¯Öлº´æÓÅ»¯·½°¸£»ºÚºÐËäȻͨ¹ý¹æ·¶±©Â¶ÁËÒÀÀµÔ´Êý¾Ý£¬µ«ÊÇÒ²Ôì³ÉÁ˶ÔÍâ²»ºÃ½âÊÍÊý¾ÝµÄ´¦Àí¹ý³Ì£¬Í¬Ê±ÕâÖÖºÚºÐÒ»°ãÕë¶Ô±í»òÕß¶à¸ö×ֶΣ¬¾«Ï¸»¯³Ì¶È²»¹»¡£
¿ª·ÅʽSQLÊÇ´óÊý¾ÝÔÚ×öÊý¾ÝETLµÄÒ»¸ö¹æ·¶±ê×¼£¬Ä¿µÄÔÚÊý¾ÝµÄ½»»»ºÍÁ÷¶¯ÊÇͨ¹ýÅäÖõķ¶Ê½À´Íê³É£¬²¢·ÇÊÇͨ¹ýÓ²±àÂë»òÕßµ¥´¿×é¼þ»¯µÄ·½Ê½¡£±àÂë¸ü¶àµÄÊÇÒªÌṩ·á¸»µÄ½âÎöº¯Êý£¬¸üÓÅÐãµÄÖмä´ó½á¹û¼¯µÄCacheºÍ¸´Ó᣿ª·ÅʽSQLÌṩÁËÊý¾Ý´ÓÄÄÀïÀ´£¬µ½ÄÄÀïÈ¥µÄÕÜѧÎÊÌ⣬ͬʱҲ¿ÉÒÔ½øÐжÔÍâ²ûÊö¶ÔÊý¾Ý×öºÎÖÖ²Ù×÷£¬ÕâÊÇÔÚΪºóÆÚÊý¾ÝѪԵ¹ØÏµÌṩ×î»ù´¡µÄÖ¸µ¼£¬ÔÚ·¢Õ¹¹ý³ÌÖУ¬°Ù¶ÈÍâÂô´óÊý¾Ýƽ̨Ҳ¾ÀúÁËÈçϵIJ»Í¬½×¶Î¡£
ͼ3 ·Ö²¼Ê½µ÷¶ÈµÄÑݽø¹ý³Ì
3.2 Ð×÷²ÎÊýÒ»ÖÂÐÔ
µ÷¶È²ßÂÔ³ýÁËÓÐ֮ǰÌáµ½µÄÉÏÏÂÓιØÏµÍ⣬ÔÚ´óÊý¾Ý³¡¾°Ï»¹Ðè±£Ö¤Êý¾Ý´¦ÀíµÄͳ³ïÐ×÷£¬¸üÎªÖØÒªµÄÊǾ«Ï¸²ÎÊýµÄÉÏ´«Ï´ÉÏÏÂÓÎʹÓÃϵͳĬÈϵIJÎÊýKey¶¨Ò壬Ҳ¿ÉÒÔ×Ô¶¨ÒåKeyµÄ²ÎÊý£»ÏµÍ³²ÎÊý±ÈÈç˵Æðֹʱ¼ä´Á¡¢»úÆ÷IP¡¢Ö´ÐÐÈÎÎñʵÀýµÈ¡£¶ÔÓÚÈ«¾ÖϵͳĬÈϵÄKey£¬Óɵ÷¶Èϵͳ½øÐи³Öµ¡£
²ÎÊýµÄ×÷ÓÃÓòÓб¾µØ»¯ºÍÈ«¾Ö2ÖÖ·½Ê½£¬±¾µØ»¯¿ÉÒÔÉ趨²ÎÊýµÄKey£ºValue£¬ÏàͬKeyµÄÈ«¾Ö²»»á±»¸²¸Ç£¬±¾µØµÄÓÅÏȼ¶¸ßÓÚÈ«¾Ö£»¶øÈ«¾ÖµÄ±äÁ¿ÊÇÓÉÉÏÓβúÉú²¢ÇÒ½øÐÐÁ÷ת£»µ÷¶È±¾Éí¹æ¶¨Á˲»Í¬Ëã×ÓÔÚ²ÎÊý½ÓÊÕ·½ÃæµÄ×·¼Ó¡¢½âÎö¡¢±àÂë¹æ·¶£¬±ÈÈçÔÚShellÃüÁîºÍWebServiceÖÐ×·¼Ó²ÎÊýÓнϴóÇø±ð¡£
²ÎÊý³ýÁË×÷ÓÃÓò»¹ÓÐÊÇ·ñ±»´«µÝµÄÊôÐÔ£¬ÉÏÓεIJÎÊý¿ÉÒÔÓÐÕë¶ÔÐԵĶÔÏÂÓÎÊä³ö£¬Í¬Ñù£¬Èç¹ûËã×Ó½ÓÊÕµ½ÉÏÓβÎÊý¿ÉÒÔÑ¡ÔñÐÞ¸ÄÖµ£¬µ«ÊÇÕâÖÖ´«µÝÊDz»±»Ð޸ġ£
3.3 Êý¾ÝÖÊÁ¿ÊµÊ±Check
Êý¾ÝÉú²úÔÚ½»¸¶Ö®Ç°Ò»°ã»á¶ÔÊý¾Ý½øÐÐУÑ飬ÓÉÓÚ´óÊý¾ÝÉú²úµÄ¹ý³Ì±È½ÏÈß³¤£¬Èç¹ûÔÚºóÆÚÊä³öÊý¾ÝÔÙ½øÐÐÖÊÁ¿Ð£Ñ飬ÍùÍù·¢ÏÖÎÊÌâ±È½ÏÖͺó¡£ËùÒÔÔÚÊý¾ÝµÄ½×¶ÎÐÔ½»¸¶¹ý³Ì¾Í¿ÉÒÔ¶ÔÊý¾Ý½øÐкËÑ飬¿ÉÒԱȽÏÔçµÄ¶ÔÊý¾ÝµÄÎÊÌâ½øÐиÉÔ¤£¬±£Ö¤Êý¾Ý½»¸¶µÄ¿É¿¿¼°Ê±ÐÔ¡£
1.CheckËã×Ó£ºÕë¶ÔÊý¾ÝµÄУÑéÌØµã£¬Éè¼ÆÁËרÃÅËã×ÓÌṩÖÊÁ¿±£Ö¤¡£Êý¾ÝºËÑéµÄ·½Ê½Ò»°ãÓÐ2ÖÖ£º¸ú×ÔÉíÀúÊ·±È½Ï¡¢¸úÆäËûÊý¾ÝÔ´½øÐбȽϡ£Ç°ÕßÖ»ÐèÒª¶ÔÄ¿±êÊý¾ÝÔ´½øÐÐÑ¡ÔñÏàÓ¦µÄSQL»òÕß±ê×¼APIÀ´»ñÈ¡µ±Ç°Éú²ú´°¿ÚµÄÊý¾Ý£¬È»ºó²Åȥͬ±È¡¢»·±È¡¢»¬¶¯´°¿ÚµÄ¾ùÖµ¡¢×óÓұ߽çµÈ·½Ê½£¬Ê±¼äÁ£¶È¿ÉÒÔÁé»îµ½Ì졢Сʱ¡¢·ÖÖÓ¡£Èç¹û¸úÆäËûÊý¾ÝÔ´½øÐбȽÏÔòÐèÒª¶ÔÔ´ºÍÄ¿±ê·Ö±ð½øÐÐÃèÊö£¬¿ÉÒÔ½øÐÐÑϸñÏàµÈ¡¢Çø¼ä¡¢¸¡¶¯Âʵȷ½Ê½±È½Ï£¬Ó¦Óõij¡¾°ÒÔÊý¾Ý½»»»½Ï¶à¡£³ýÁËÊý¾Ý±È½ÏÖ®Í⣬»¹Ìṩ¹Ø¼üÐÔ×Ö¶ÎÀàÐÍ¡¢¾«¶È¡¢¿í¶ÈµÄ±È½Ï£¬ÒÔ¼°¶Ô¿ÕÖÃÂÊ¡¢Öظ´ÂÊ¡¢Çø·Ö¶ÈµÄͳ¼Æ±¨±í²ú³ö£¬±È½ÏÖ±¹ÛµÄ²é¿´Êý¾ÝµÄÏ¡ÊèºÍ·Ö²¼¡£
2.ÕûÌåºÍ³éÑù£ºÕë¶ÔÓÚÆäËûÊý¾ÝÔ´½øÐбȽϵķ½Ê½£¬³£¹æµÄÊÇͨ¹ýºê¹ÛµÄ×ֶγéÑùµÄCount·½Ê½ÌõÊý±È½Ï£¬Ò²¿ÉÒÔͨ¹ý¶ÔÊý¾ÝÀàÐ͵ÄSum¡¢AvgµÄ±È½Ï£¬ÕâÀïÐèҪעÒⲻͬÒýÇæµÄ´æ´¢¾«¶ÈÂÔÓÐÇø±ð£¬¾¡Á¿Ñ¡ÔñÕûÐÎ×ֶΣ»³ý´ËÖ®ÍâÒ²»áÔö¼Ó¶ÔÃ÷ϸÊý¾Ý³éÑùµÄÈ«ÁеÄ×ֶαȽϣ¬ÕâÖֱȽÏÈÝÒ×·¢ÏÖ×Ö¶ÎÖµµÄȱʧ£¬ÀàÐͱä¸üµÈÎÊÌâ¡£
ÕâÀïÐèҪ˵Ã÷µÄÊÇ£¬Èç¹ûûÓÐÅäÖÃCheckËã×Ó£¬ÔòÈÏΪÊý¾ÝÉú²úÍê¾Í¿ÉÒÔ½øÐн»¸¶£»Èç¹ûÊý¾ÝµÄÊ÷×´½á¹¹ÖÐÓÐCheckËã×Ó£¬ÔòÈÏΪÔÚÏÂÒ»¸öCheckËã×ÓÖ®¼äµÄËùÓÐÊý¾ÝÉú²ú½Úµã¶¼Ä¬ÈÏÊý¾Ý¿ÉÒÔ½»¸¶¡£ÕâÑùĬÈϲÙ×÷ÊÇÒòΪÊý¾ÝµÄУÑé²»Ò»¶¨ÒªÃæÃæ¾ãµ½£¬·ñÔòÒ²»á´øÀ´Ê±¼äÉϵÄËðºÄ£¬Ò»°ãÇé¿öÏÂÎÒÃÇÈÏΪֻÐèÒªÔڹؼüÐÔ½Úµã½øÐкËÑé¾Í¿ÉÒÔÁË¡£Ð£Ñéʧ°Üͨ¹ý¸æ¾¯µÄ·½Ê½ÖÐÖ¹Êý¾ÝETL¹ý³Ì£¬ºóÐø¿ÉÒÔÖØÊÔ»òÕßÈ˹¤·½Ê½½éÈë´¦Àí¡£
3.4 Êý¾ÝѪԵ¹ØÏµ
ÈËÉúÕÜѧ½âÊÍ£ºÑªÔµ¹ØÏµ·ÖÎöÊÇ´óÊý¾Ýµ÷¶ÈÓëÆäËûµ÷¶ÈÖ®¼äµÄÇø·Ö¶È½Ï´óÌØÕ÷Ö®Ò»£¬Ö÷Òª½â¾ö´óÊý¾ÝµÄ¡°ÈËÉúÕÜѧÎÊÌ⡱£ºÎÒÊÇË£¬´ÓÄÄÀïÀ´£¬µ½ÄÄÀïÈ¥¡£¶øÕâÒ»ÇеĻù´¡ÊÇ¿ª·ÅʽSQL¶ÔÊý¾Ý´æÈ¡µÄ¹æ·¶£¬Ö®ºóÒÀÀµ¶Ô¿ª·ÅʽSQLµÄ½âÎöÀ´Íê³ÉѪԵ¹ØÏµ·ÖÎö£¬Ö÷Òª°üº¬Êý¾ÝµÄÉÏÓÎÒÀÀµ¹ØÏµºÍÏÂÓεı»ÒÀÀµ¹ØÏµ£¬Õâ2¸öÊÇͨ³£±»Éæ¼°µ½µÄ£¬³ý´ËÖ®Í⻹°üº¬µÚÈý¸öÌØÕ÷£º¼ÆËãÂß¼»òÕ߿ھ¶¶ÔÍâµÄÊä³ö£¬¼øÓÚ´óÊý¾ÝÔÚ½øÐмÆËãºÍÍÚ¾òÖ®ºóÊý¾Ý»á±»ÍÆË͵½²»Í¬µÄÒµÎñ³¡¾°Ê¹Ó㬻áÔì³ÉÏàͬ¿Ú¾¶Ö¸±ê²»Í¬µÄ¼ÆËã½á¹û£¬µ±±»Ìá¼°¼ÆËãÂ߼ʱ£¬Ñз¢Í¬Ñ§Ò²ÎÞËùÊÊ´Ó£¬¾³£ÐèҪ׷¸ùËÝÔ´¶Ô´úÂëºÍ¹ý³Ì½øÐлط㬽ø¶øµ¼ÖÂÎÞÒæÏûºÄµÄÔö¼Ó¡£
ËùÒÔ¼ÆËãÂß¼Êä³öÒ²Êdz£¹æºÍ¼õÉÙÈËÁ¦ÊáÀí³É±¾µÄÖØÒªÌØµã¡£
¿ª·ÅʽSQL¿ÉÒÔ¶ÔÍâ½âÊÍ£¬Êý¾Ý´ÓÄÄÀïÀ´£¬µ½ÄÄÀïÈ¥µÄÂß¼ÎÊÌ⣬Ҳ»áÉæ¼°µ½¾ßÌåSQL»òÕßAPI²ãÃæµÄ¼ÆËã¿Ú¾¶£¬µ«ÊÇÕâÀïÐèÒªÌᵽ֮ǰµÄ¡¾ºÚºÐ±©Â¶¡¿ºÍÑз¢×¨×¢¿ª·¢ETLµÄ·á¸»function£¬ºÚºÐÊÇÎÞ·¨½âÊͼÆËãÂß¼µÄ£¬µ«ÊÇfunctionÈ´¿ÉÒÔ¸ø³öÈë²Î¡¢³ö²ÎµÄ˵Ã÷£¬ÈÃÌØÕ÷ÈýµÄÌṩ³É±¾×îµÍ¡£
ѪԵ¹ØÏµ·ÖÎöµÄÊÖ·¨Ò»·½ÃæÒÀÀµSQLÊôÖ÷ÒýÇæµÄÓï·¨½âÎö£¬ÀýÈçMysql¿ÉÒÔʹÓÃAlibaba druid¡¢JSqlparser£¬GreenPlum¡¢Postgresql¿ÉÒÔ½èÖúJSqlparser£¬ImpalaÔòÐèҪͨ¹ýimpala-frontend½øÐÐÓï·¨·ÖÎö£¬·ÖÎöµÄ½á¹ûÔÚÍâÂô´óÊý¾Ýƽ̨ÐèÒª¾«È·µ½µ¥¸ö×Ö¶ÎÒÀÀµÉÏÓεÄÄÄЩ¿â±í¡¢×ֶΣ»Ô½ÊǾ«Ï¸Ô½ÊǾ«Ï¸ÔÚ½øÐдóÊý¾Ý»ØËݵÄʱºò¾ÍÔ½ÓÐÕë¶ÔÐÔ£¬Í¬Ê±Ò²Ô½ÓÐÀûÓÚЧÂʵÄÌá¸ß¡£
ÔÚ½øÐдóÊý¾Ý»ØËݵÄʱºòÔ½ÓÐÕë¶ÔÐÔºÍÀûÓÚЧÂʵÄÌá¸ß¡£
Õë¶Ô·ÇSQL·½Ê½£¬ÀýÈçHbase¡¢ElasticSearchÊý¾ÝÔ´µÄÒÀÀµ£¬Ò²»áͬÑù±»Ó³Éä³É²»Í¬µÄÎĵµ/±í£¬¾ßÌåµÄÁдØÖеÄÁУ¬sourceÖеÄkey¡£
×ÜÖ®£¬Êý¾Ý¿É½âÊÍÊÇѪԵ¹ØÏµ´æÔڵļÛÖµ£¬ÑªÔµ¹ØÏµÍ¬ÑùºÍ¿ª·ÅʽSQL¶¼ÔÚETLµÄÑݽøÖоßÓÐÀï³Ì±®µÄÒâÒå¡£
3.5 »ùÓÚ±íµÄTransformerÑݽø
ÔÚ´óÊý¾Ýµ÷¶ÈÖУ¬¶ÔÓû§×îÖ±¹ÛµÄչʾÊÇij¸ö±íÊÇ·ñ¿ÉÒÔ±»½»¸¶£¬»òÕ߸üΪ¾«È·²é¿´±íÖеÄ×Ö¶ÎÄÄЩ¾ß±¸ÁË¿ÉÒÔ±»½»¸¶£¿ÕâÑù×öÊÇΪÁËÈÃÏÂÓÎÊý¾Ý¸üºÃµÄÓÐÑ¡ÔñÐԵġ¢Ï¸Á£¶ÈµÄÒÀÀµ´¥·¢¶¯×÷¡£ËùÒÔÔÚ´óÊý¾Ýµ÷¶ÈÖлáÇø·Ö³öÈýÀà½ÇÉ«£¬´Ó´ÖÁ£¶Èµ½Ï¸Á£¶È·Ö±ðÊÇ£ºJob¡¢Transformer¡¢operator¡£

ͼ4 ÈýÕßÐ×÷ʾÀý
ÏÂÃæ½âÊÍÏÂÈýÕߵķֹ¤ºÍÐ×÷£º
1.ÈÎÎñ£¨Job£©£ºJobµÄÖ÷Òª×÷ÓÃÊǽøÐÐÊý¾ÝÏà¹ØÐÔµÄͳ³ï£¬¼òµ¥À´½²ÊÇÕë¶Ô±íÖ®¼ä¡¢¶àÖÖÊý¾ÝÔ´Ö®¼ä½øÐÐÐ×÷µÄÒ»¸öͳ³ï£¬ÊÇÒ»¸ö×î´óÁ£¶ÈµÄ¹ý³Ì£¬¾ßÌåµ÷¶ÈµÄʵÀý»¯¹ý³Ì¶¼ÊÇÒÔJob×÷ΪÈë¿Ú£¬ÆäËû2¸ö½ÇÉ«¶¼²»¾ß±¸ÊµÀý»¯µÄÄÜÁ¦¡£ÕâÀï»áÇø·Ö³öͬÑùÓÐÊý¾ÝÖ®¼äÒÀÀµ£¬µ«ÊDz¢²»Ò»¶¨ÔÚÒ»¸öÖ´ÐÐÆµ´ÎÉϵÄÈÎÎñ£¬¿ÉÒÔ²ÉÈ¡ÅäÖò»Í¬µÄjobÒÀÀµ¹ØÏµ¡£
2.ת»»£¨Transformer£©£ºÒ»¸öת»»¾Í´ú±íÒ»¸ö±í£¬µ¥¶À°Ñ±íÄóöÀ´£¬ÊÇÒòΪÔÚ´óÊý¾ÝµÄ½»¸¶¹ý³Ì£¬±íÊÇÒ»¸öÍêÕûµÄ·ûºÅ£¬²»Èç¿âµÄÁ£¶È´ó£¬Ò²²»Ïñ×Ö¶ÎÌ«¾«Ï¸ÎÞ·¨¶ÔÍâÍêÕû±íÊö¡£
3.Ëã×Ó£¨operator£©£ºËã×ÓÊǵ÷¶ÈµÄ×îϸÁ£¶È£¬²»¿É·Ö¸î¡£Ëã×ӵķÖÀà¸ù¾ÝÓ¦ÓûáÀ©Õ¹ºÜ¶à£¬ÓпØÖÆÀàÐÍËã×Ó£¬ÀýÈçÆôÍ£Ëã×Ó¡¢·Ö·¢Ëã×Ó¡¢CheckËã×ӵȡ£Ò²»áÓÐÕë¶ÔÊý¾Ý²Ù×÷½øÐзâ×°µÄ¹¦ÄÜÐÔËã×Ó£¬±ÈÈç»ñÈ¡hdfsÊý¾ÝÍÆË͵½mysql£¬Ftpµ½¶ÔÏó´æ´¢µÈ£»Õë¶Ô´óÊý¾Ýµ÷¶ÈµÄ¹¦ÄÜÐÔËã×ÓÊÇÕë¶Ôµ¥¸ö×ֶλòÕß¼¸¸ö×ֶεIJúÉú£¬Õâ¸öÍêÈ«ÒÀÀµÓÚÊý¾Ý²úÉúµÄÄÑÒ׳̶ȺÍ×éºÏ»ØËݵÄÏà¹ØÐÔ£¬×îÖÕÓÉ¿ª·ÅʽSQL½øÐÐÅäÖã¬ÀýÈçÆäÖеÄÒ»ÐÐÔòÈÏΪÊǶÔÒ»¸öËã×ӵŦÄܽøÐеÄÃèÊö£¬select×Ö¶ÎÖеÄÊý¾Ý»ñÈ¡¿ÉÒÔÊǶà¸ö£¬Í¬Ñù¶ÔÓ¦µÄinsertÖÐÒ²¿ÉÒÔÊǶà¸ö£»´óÊý¾Ýµ÷¶ÈÔÚÍê³É¿ª·¢Ö®ºó£¬ºóÆÚµÄ¸ü¶àÔËά¾«Á¦¾ÍÔÚËã×ӵķḻ¡£Ëã×ÓµÄʵÏֻῼÂǵ½Ç°ÃæÌáµ½µÄÁé»îºÍͨÓõÄÑ¡Ôñ¡£
3.6 »ùÓÚ×ֶξ«Ï¸»¯»ØËÝ
×ֶμ¶±ðµÄ»ØËÝ£¬Ö÷ÒªÒÀÀµ2+1µÄ·½Ê½Íê³É£¬Ç°ÃæµÄ2ÊÇָѪԵ¹ØÏµ+¿É¸üÐÂÄ¿±êÒýÇæ£»Í¨¹ý¿ª·ÅʽSQL¿ÉÒÔÊáÀí³öÊý¾ÝµÄѪԵ¹ØÏµ£¬±ãÓÚ·ÖÎö³öÕû¸öÁ´ÌõÖпÉÒÔÉÏÏÂÓÎÒÀÀµµÄµãºÍ²¢·¢µÄµã¡£ÁíÍâµÄ1ÊÇÖ¸ÔÚµ÷¶ÈµÄͼÐλ¯½çÃæÖУ¬¿ÉÒÔÕë¶ÔÒ»¸ö¾ßÌåʵÀý»¯µÄJobÑ¡ÔñÐèÒª»ØËݵÄtransformer»òÕßijЩËã×Ó¡£
ͬÑù£¬¸ù¾ÝÉÏͼ4ÖеÄÁ÷³Ì£¬ÎÒÃÇ×ßÒ»¸ö¾ßÌåµÄʵÀý¡£Í¼ÖбêʶµÄºÚÉ«0/6´ú±íµÄÊÇ¿ª·ÅʽSQLÖкںеIJ¿·Ö£¬Õⲿ·Ö¶ÔÊý¾ÝÀ´ËµÎÞ·¨½âÊ͵ÄÉú²ú¹ý³Ì£»Èý¸ö±êʶͼÐÎ2´ú±íµÄÊÇCheckËã×Ó£¬ÆäËûÔ²½Ç·½ÐÎÑÕÉ«Ïàͬ´ú±íÓÐÉÏÏÂÓÎѪԵ¹ØÏµÒÀÀµ£¬ÀýÈç7»áÒÀÀµÉÏÓεÄ1¡£ÏÂÃæÎÒÃÇÁ˽âϼ¸¸ö³¡¾°µÄ»ØËÝ£º
1£©»ØËÝ1£ºÔÚÕâÖÖÇé¿öÏÂËã×Ó1/2/3/4/6»á±»½øÐлØËÝ£¬¶øËã×Ó0ºÍ5Ôò²»»á±»Ö´Ðе½£¬Í¬ÑùÒòΪ1ºóÃæÓнôÁÚµÄcheckËã×Ó2£¬Ôò1Ö´ÐÐÍ꣬Ëã×Ó7²»»áÂíÉϱ»²¢·¢Ö´ÐУ¬ÒòΪÓÐÒ»¸öºÚÉ«µÄËã×Ó6¡£µ«ÊÇÔÚËã×Ó2Ö´Ðгɹ¦Ö®ºó£¬Èç¹ûÄܱ©Â¶³öËã×Ó6µÄÒÀÀµºÍ²ú³ö¹ØÏµ£¬Ëã×Ó7¾Í¿ÉÒÔ±»Ö´ÐУ¬²»ÐèÒªµÈ´ýËã×Ó3/4/6µÄÖ´ÐÐÍê³É¡£ËùÒÔ½ÚÔ¼ÁËÒ»¶¨µÄʱ¼ä¡£ÆäËû³¡¾°Ò²ÊÇÀàËÆ
2£©»ØËÝTransformer2£¬ÕâÖÖ³¡¾°Ëã×Ó7ºÍËã×Ó9»áͬʱ´¥·¢Ö´ÐУ¬Í¬Ñù£¬Èç¹ûËã×Ó9ÔÚÍê³ÉµÄÇé¿öÏ£¬ÏÂÓÎtransformer3ÖеÄ11²»»á±»Ö´ÐУ¬ÒòΪÊÇ·ÇÊ׽ڵ㣬µ«ÊÇÔÚËã×Ó7Ö´ÐÐÍê³ÉÖ®ºó£¬Ëã×Ó13ºÍËã×Ó10¶¼»á±»Í¬Ê±µ÷Æð¡£
¿É¸üÐÂÄ¿±êÒýÇæÊÇÖ¸·ÇSQL On HadoopµÄÎļþ½â¾ö·½°¸£¬ÀàËÆGreenPlum¡¢Hbase¡¢ES¶¼ÊÇ¿ÉÒÔ±»ÊµÊ±¸üС£ÕâÀï²»Ïêϸչ¿ª¡£
3.7 ÐźŵÆ
ÐźŵÆÔÚ´óÊý¾Ý·Ö²¼Ê½µ÷¶ÈÖÐ×÷Ϊһ¸öÏûÏ¢Öмä¼þ£¬Ö÷Òª×÷ÓÃÊÇÉú²úÕߣ¨Producer£©ÔÚÊý¾ÝÉú²ú½áÊø¡¢Êý¾ÝÖÊÁ¿ºËÑéͨ¹ýµÈ¹ý³Ì¶ÔÍâÊÍ·ÅÐźţ¬ÕâÀïÃæ°üº¬¾ßÌåµÄ¿â±í¡¢×ֶκͱ¾Åú´ÎµÄÊý¾Ý·¶Î§µÈÐÅÏ¢£¬Ïû·ÑÕߣ¨Consumer£©¿ÉÒÔ¸ù¾ÝÐèÒª¼àÌý²»Í¬µÄ±íÖ÷Ì⣬À´Íê³ÉºóÐøµÄ²Ù×÷¡£Í¨¹ýÐźŵƵķ½Ê½£¬¿ÉÒԺܺõĶÔÊý¾ÝÏÂÓÎÒÀÀµ½âñîºÏ£¬Í¬Ê±ÐźŵÆÒ²¿ÉÒÔ±»Ó¦ÓÃÔÚÊý¾Ý¼¯ÊÐÖпâ±í¡¢×ֶεÄÊý¾ÝÍê³ÉÇé¿ö±êʶ£¬¿ÉÒÔÈÃÓû§½øÐв鿴£¬ÃâÈ¥ÁËÊý¾ÝÊÇ·ñ¿ÉÓã¬ÊÇ·ñ½»¸¶µÄ½»»¥¡£
×ܽ᣺
´óÊý¾Ý·Ö²¼Ê½µ÷¶ÈµÄÓ¦Óó¡¾°ºÍETLµÄ¶¨Òå¹ý³Ì¡¢Êý¾ÝÒýÇæºÍÒµÎñ³¡¾°µÄÐèÇóÓÐ×ÅÖÁ¹ØÖØÒªµÄ¹ØÁª£¬·Ö²¼Ê½µ÷¶ÈµÄ¹ý³ÌÊÇͨ¹ý³¡¾°»¯Çý¶¯Öð²½ÍêÉÆµÄ¹ý³Ì£¬°Ù¶ÈÍâÂô´óÊý¾ÝµÄµ÷¶ÈV2.0ÊÇÂú×ãÁËͨÓõĵ÷¶ÈÖ®ºó£¬·¢ÏÖ´æÔÚµÄÊý¾Ý½âÊͺÍϸÁ£¶È¸üÐÂÑÓ³ÙµÈÎÊÌâÖ®ºó£¬¿ªÆôÁËÖð²½µü´úÍêÉÆ¹ý³Ì£¬ºóÆÚÒ²ÆÚ´ýÎÒÃǵÄϵͳ¿ªÔ´µÄÒ»Ìì¡£
|