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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
SparkSQL¨CÓбØÒª×øÏÂÀ´ÁÄÁÄJoin
 
  2939  次浏览      27
 2017-12-19
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚ·¶ÐÀÐÀ£¬±¾ÎÄ´ø´ó¼ÒÕæÕý×ß½øJoinµÄÊÀ½ç£¬Á˽ⳣÓõļ¸ÖÖJoinËã·¨ÒÔ¼°¸÷×ÔµÄÊÊÓó¡¾°¡£

Join±³¾°½éÉÜ

JoinÊÇÊý¾Ý¿â²éѯÓÀÔ¶ÈÆ²»¿ªµÄ»°Ì⣬´«Í³²éѯSQL¼¼Êõ×ÜÌå¿ÉÒÔ·ÖΪ¼òµ¥²Ù×÷£¨¹ýÂ˲Ù×÷-where¡¢ÅÅÐò²Ù×÷-limitµÈ£©£¬¾ÛºÏ²Ù×÷-groupByµÈÒÔ¼°Join²Ù×÷µÈ¡£ÆäÖÐJoin²Ù×÷ÊÇÆäÖÐ×ÔÓ¡¢´ú¼Û×î´óµÄ²Ù×÷ÀàÐÍ£¬Ò²ÊÇOLAP³¡¾°ÖÐʹÓÃÏà¶Ô½Ï¶àµÄ²Ù×÷¡£Òò´ËºÜÓбØÒªÁÄÁÄÕâ¸ö»°Ìâ¡£

ÁíÍ⣬´ÓÒµÎñ²ãÃæÀ´½²£¬Óû§ÔÚÊý²Ö½¨ÉèµÄʱºòÒ²»áÉæ¼°JoinʹÓõÄÎÊÌ⡣ͨ³£Çé¿öÏ£¬Êý¾Ý²Ö¿âÖеıíÒ»°ã»á·ÖΪ¡±µÍ²ã´Î±í¡±ºÍ¡°¸ß²ã´Î±í¡±¡£

Ëùν¡±µÍ²ã´Î±í¡±£¬¾ÍÊÇÊý¾ÝÔ´µ¼ÈëÊý²ÖÖ®ºóÖ±½ÓÉú³ÉµÄ±í£¬µ¥±íÁÐÖµ½ÏÉÙ£¬Ò»°ã¿ÉÒÔÃ÷ÏÔ¹éΪά¶È±í»òÕßÊÂʵ±í£¬±íºÍ±íÖ®¼ä´ó¶à´æÔÚÍ⽡ÒÀÀµ£¬ËùÒÔ²éѯÆðÀ´»áÓöµ½´óÁ¿JoinÔËË㣬²éѯЧÂÊÏà¶Ô±È½Ï²î¡£¶ø¡°¸ß²ã´Î±í¡±ÊÇÔÚ¡±µÍ²ã´Î±í¡±µÄ»ù´¡Éϼӹ¤×ª»»¶øÀ´£¬Í¨³£×ö·¨ÊÇʹÓÃSQLÓï¾ä½«ÐèÒªJoinµÄ±íÔ¤ÏȽøÐкϲ¢Ðγɡ°¿í±í¡±£¬ÔÚ¿í±íÉϵIJéѯÒòΪ²»ÐèÒªÖ´ÐдóÁ¿JoinÒò¶øÐ§ÂÊÏà¶Ô½Ï¸ß£¬ºÜÃ÷ÏÔ£¬¿í±íȱµãÊÇÊý¾Ý»áÓдóÁ¿ÈßÓ࣬¶øÇÒÉú³ÉÏà¶Ô±È½ÏÖͺ󣬲éѯ½á¹û¿ÉÄܲ¢²»¼°Ê±¡£

Òò´Ë£¬ÎªÁË»ñµÃʵЧÐÔ¸ü¸ßµÄ²éѯ½á¹û£¬´ó¶àÊý³¡¾°»¹ÊÇÐèÒª½øÐи´ÔÓµÄJoin²Ù×÷¡£Join²Ù×÷Ö®ËùÒÔ¸´ÔÓ£¬²»½ö½öÒòΪͨ³£Çé¿öÏÂÆäʱ¼ä¿Õ¼ä¸´ÔӶȸߣ¬¸üÖØÒªµÄÊÇËüÓкܶàËã·¨£¬ÔÚ²»Í¬³¡¾°ÏÂÐèҪѡÔñÌØ¶¨Ëã·¨²ÅÄÜ»ñµÃ×îºÃµÄÓÅ»¯Ð§¹û¡£¹ØÏµÐÍÊý¾Ý¿âÒ²ÓйØÓÚJoinµÄ¸÷ÖÖÓ÷¨£¬½ª³ÐÒ¢´óÉñ֮ǰÓÉdzÈëÉîµØ½éÉܹýMySQL JoinµÄ¸÷ÖÖËã·¨ÒÔ¼°µ÷ÓÅ·½°¸£¨¹Ø×¢¹«ÖÚºÅInsideMySQL²¢»Ø¸´join¿ÉÒԲ鿴Ïà¹ØÎÄÕ£©¡£±¾ÎĽÓÏÂÀ´»á½éÉÜSparkSQLËùÖ§³ÖµÄ¼¸ÖÖ³£¼ûµÄJoinËã·¨ÒÔ¼°ÆäÊÊÓó¡¾°¡£

Join³£¼û·ÖÀàÒÔ¼°»ù±¾ÊµÏÖ»úÖÆ

µ±Ç°SparkSQLÖ§³ÖÈýÖÖJoinËã·¨£­shuffle hash join¡¢broadcast hash joinÒÔ¼°sort merge join¡£ÆäÖÐǰÁ½Õß¹é¸ùµ½µ×¶¼ÊôÓÚhash join£¬Ö»²»¹ýÔÚhash join֮ǰÐèÒªÏÈshuffle»¹ÊÇÏÈbroadcast¡£Æäʵ£¬ÕâЩËã·¨²¢²»ÊÇʲôÐÂÏÊÍæÒ⣬¶¼ÊÇÊý¾Ý¿â¼¸Ê®ÄêǰµÄÀϹŶ­ÁË£¨²Î¿¼£©£¬Ö»²»¹ý»»ÉÏÁË·Ö²¼Ê½µÄƤ¶øÒÑ¡£²»¹ý»°Ëµ»ØÀ´£¬SparkSQL/Hive¡­µÈµÈ£¬ËùÓÐÕâЩ´óÊý¾Ý¼¼ÊõÄÄÒ»Ñù²»ÊÇÀ´×ÔÓÚ´«Í³Êý¾Ý¿â¼¼Êõ£¬Ê²Ã´Óï·¨½âÎöAST¡¢»ùÓÚ¹æÔòÓÅ»¯£¨CRO£©¡¢»ùÓÚ´ú¼ÛÓÅ»¯£¨CBO£©¡¢Áд棬¶¼À´×ÔÓÚ´«Í³Êý¾Ý¿â¡£¾ÍÄÃshuffle hash joinºÍbroadcast hash joinÀ´Ëµ£¬hash joinËã·¨¾ÍÀ´×ÔÓÚ´«Í³Êý¾Ý¿â£¬¶øshuffleºÍbroadcastÊÇ´óÊý¾ÝµÄƤ£¬Á½ÕßÒ»½áºÏ¾Í³ÉÁË´óÊý¾ÝµÄËã·¨ÁË¡£Òò´Ë¿ÉÒÔÕâÑù˵£¬´óÊý¾ÝµÄ¸ù¾ÍÊÇ´«Í³Êý¾Ý¿â£¬´«Í³Êý¾Ý¿âÈ˲ſÉÒԺܿìµÄתÐ͵½´óÊý¾Ý¡£ºÃ°É£¬ÕâЩ¶¼ÊÇÏÐÆª¡£

¼ÌÐøÀ´¿´¼¼Êõ£¬¼ÈÈ»hash joinÊÇ¡¯Äںˡ¯£¬ÄǾÍÅÙ³öÀ´¿´¿´£¬¿´Íê°Ñ¡¯Æ¤¡¯ÔÙ·ÖÎöһϡ£

Hash Join

ÏÈÀ´¿´¿´ÕâÑùÒ»ÌõSQLÓï¾ä£ºselect * from order,item where item.id = order.i_id£¬ºÜ¼òµ¥Ò»¸öJoin½Úµã£¬²ÎÓëjoinµÄÁ½ÕűíÊÇitemºÍorder£¬join key·Ö±ðÊÇitem.idÒÔ¼°order.i_id¡£ÏÖÔÚ¼ÙÉèÕâ¸öJoin²ÉÓõÄÊÇhash joinËã·¨£¬Õû¸ö¹ý³Ì»á¾­ÀúÈý²½£º

1. È·¶¨Build TableÒÔ¼°Probe Table£ºÕâ¸ö¸ÅÄî±È½ÏÖØÒª£¬Build TableʹÓÃjoin key¹¹½¨Hash Table£¬¶øProbe TableʹÓÃjoin key½øÐÐ̽²â£¬Ì½²â³É¹¦¾Í¿ÉÒÔjoinÔÚÒ»Æð¡£Í¨³£Çé¿öÏ£¬Ð¡±í»á×÷ΪBuild Table£¬´ó±í×÷ΪProbe Table¡£´ËÊÂÀýÖÐitemΪBuild Table£¬orderΪProbe Table¡£

2. ¹¹½¨Hash Table£ºÒÀ´Î¶ÁÈ¡Build Table£¨item£©µÄÊý¾Ý£¬¶ÔÓÚÿһÐÐÊý¾Ý¸ù¾Ýjoin key£¨item.id£©½øÐÐhash£¬hashµ½¶ÔÓ¦µÄBucket£¬Éú³Éhash tableÖеÄÒ»Ìõ¼Ç¼¡£Êý¾Ý»º´æÔÚÄÚ´æÖУ¬Èç¹ûÄÚ´æ·Å²»ÏÂÐèÒªdumpµ½Íâ´æ¡£

3. ̽²â£ºÔÙÒÀ´ÎɨÃèProbe Table£¨order£©µÄÊý¾Ý£¬Ê¹ÓÃÏàͬµÄhashº¯ÊýÓ³ÉäHash TableÖеļǼ£¬Ó³Éä³É¹¦Ö®ºóÔÙ¼ì²éjoinÌõ¼þ£¨item.id = order.i_id£©£¬Èç¹ûÆ¥Åä³É¹¦¾Í¿ÉÒÔ½«Á½ÕßjoinÔÚÒ»Æð¡£

»ù±¾Á÷³Ì¿ÉÒԲο¼ÉÏͼ£¬ÕâÀïÓÐÁ½¸öСÎÊÌâÐèÒª¹Ø×¢£º

1. hash joinÐÔÄÜÈçºÎ£¿ºÜÏÔÈ»£¬hash join»ù±¾¶¼Ö»É¨ÃèÁ½±íÒ»´Î£¬¿ÉÒÔÈÏΪo(a+b)£¬½ÏÖ®×¶ËµÄµÑ¿¨¶û¼¯ÔËËãa*b£¬²»ÖªË¦Á˶àÉÙÌõ½Ö

2. ΪʲôBuild TableÑ¡ÔñС±í£¿µÀÀíºÜ¼òµ¥£¬ÒòΪ¹¹½¨µÄHash Table×îºÃÄÜÈ«²¿¼ÓÔØÔÚÄڴ棬ЧÂÊ×î¸ß£»ÕâÒ²¾ö¶¨ÁËhash joinËã·¨Ö»ÊʺÏÖÁÉÙÒ»¸öС±íµÄjoin³¡¾°£¬¶ÔÓÚÁ½¸ö´ó±íµÄjoin³¡¾°²¢²»ÊÊÓã»

ÉÏÎÄ˵¹ý£¬hash joinÊÇ´«Í³Êý¾Ý¿âÖеĵ¥»újoinËã·¨£¬ÔÚ·Ö²¼Ê½»·¾³ÏÂÐèÒª¾­¹ýÒ»¶¨µÄ·Ö²¼Ê½¸ÄÔ죬˵µ½µ×¾ÍÊǾ¡¿ÉÄÜÀûÓ÷ֲ¼Ê½¼ÆËã×ÊÔ´½øÐв¢Ðл¯¼ÆË㣬Ìá¸ß×ÜÌåЧÂÊ¡£hash join·Ö²¼Ê½¸ÄÔìÒ»°ãÓÐÁ½ÖÖ¾­µä·½°¸£º

1. broadcast hash join£º½«ÆäÖÐÒ»ÕÅС±í¹ã²¥·Ö·¢µ½ÁíÒ»ÕÅ´ó±íËùÔڵķÖÇø½ÚµãÉÏ£¬·Ö±ð²¢·¢µØÓëÆäÉϵķÖÇø¼Ç¼½øÐÐhash join¡£broadcastÊÊÓÃÓÚС±íºÜС£¬¿ÉÒÔÖ±½Ó¹ã²¥µÄ³¡¾°¡£

2. shuffler hash join£ºÒ»µ©Ð¡±íÊý¾ÝÁ¿½Ï´ó£¬´Ëʱ¾Í²»ÔÙÊʺϽøÐй㲥·Ö·¢¡£ÕâÖÖÇé¿öÏ£¬¿ÉÒÔ¸ù¾Ýjoin keyÏàͬ±ØÈ»·ÖÇøÏàͬµÄÔ­Àí£¬½«Á½Õűí·Ö±ð°´ÕÕjoin key½øÐÐÖØÐÂ×éÖ¯·ÖÇø£¬ÕâÑù¾Í¿ÉÒÔ½«join·Ö¶øÖÎÖ®£¬»®·ÖΪºÜ¶àСjoin£¬³ä·ÖÀûÓü¯Èº×ÊÔ´²¢Ðл¯¡£

Broadcast Hash Join

ÈçÏÂͼËùʾ£¬broadcast hash join¿ÉÒÔ·ÖΪÁ½²½£º

1. broadcast½×¶Î£º½«Ð¡±í¹ã²¥·Ö·¢µ½´ó±íËùÔÚµÄËùÓÐÖ÷»ú¡£¹ã²¥Ëã·¨¿ÉÒÔÓкܶ࣬×î¼òµ¥µÄÊÇÏÈ·¢¸ødriver£¬driverÔÙͳһ·Ö·¢¸øËùÓÐexecutor£»Òª²»¾ÍÊÇ»ùÓÚbittorreteµÄp2p˼·£»

2. hash join½×¶Î£ºÔÚÿ¸öexecutorÉÏÖ´Ðе¥»ú°æhash join£¬Ð¡±íÓ³É䣬´ó±íÊÔ̽£»

SparkSQL¹æ¶¨broadcast hash joinÖ´ÐеĻù±¾Ìõ¼þΪ±»¹ã²¥Ð¡±í±ØÐëСÓÚ²ÎÊýspark.sql.autoBroadcastJoinThreshold£¬Ä¬ÈÏΪ10M¡£

Shuffle Hash Join

ÔÚ´óÊý¾ÝÌõ¼þÏÂÈç¹ûÒ»ÕűíºÜС£¬Ö´ÐÐjoin²Ù×÷×îÓŵÄÑ¡ÔñÎÞÒÉÊÇbroadcast hash join£¬Ð§ÂÊ×î¸ß¡£µ«ÊÇÒ»µ©Ð¡±íÊý¾ÝÁ¿Ôö´ó£¬¹ã²¥ËùÐèÄÚ´æ¡¢´ø¿íµÈ×ÊÔ´±ØÈ»¾Í»áÌ«´ó£¬broadcast hash join¾Í²»ÔÙÊÇ×îÓÅ·½°¸¡£´Ëʱ¿ÉÒÔ°´ÕÕjoin key½øÐзÖÇø£¬¸ù¾ÝkeyÏàͬ±ØÈ»·ÖÇøÏàͬµÄÔ­Àí£¬¾Í¿ÉÒÔ½«´ó±íjoin·Ö¶øÖÎÖ®£¬»®·ÖΪºÜ¶àС±íµÄjoin£¬³ä·ÖÀûÓü¯Èº×ÊÔ´²¢Ðл¯¡£ÈçÏÂͼËùʾ£¬shuffle hash joinÒ²¿ÉÒÔ·ÖΪÁ½²½£º

1. shuffle½×¶Î£º·Ö±ð½«Á½¸ö±í°´ÕÕjoin key½øÐзÖÇø£¬½«Ïàͬjoin keyµÄ¼ÇÂ¼ÖØ·Ö²¼µ½Í¬Ò»½Úµã£¬Á½ÕűíµÄÊý¾Ý»á±»ÖØ·Ö²¼µ½¼¯ÈºÖÐËùÓнڵ㡣Õâ¸ö¹ý³Ì³ÆÎªshuffle

2. hash join½×¶Î£ºÃ¿¸ö·ÖÇø½ÚµãÉϵÄÊý¾Ýµ¥¶ÀÖ´Ðе¥»úhash joinËã·¨¡£

¿´µ½ÕâÀ¿ÉÒÔ³õ²½×ܽá³öÀ´Èç¹ûÁ½ÕÅС±íjoin¿ÉÒÔÖ±½ÓʹÓõ¥»ú°æhash join£»Èç¹ûÒ»ÕÅ´ó±íjoinÒ»Õż«Ð¡±í£¬¿ÉÒÔÑ¡Ôñbroadcast hash joinËã·¨£»¶øÈç¹ûÊÇÒ»ÕÅ´ó±íjoinÒ»ÕÅС±í£¬Ôò¿ÉÒÔÑ¡Ôñshuffle hash joinËã·¨£»ÄÇÈç¹ûÊÇÁ½ÕÅ´ó±í½øÐÐjoinÄØ£¿

Sort-Merge Join

SparkSQL¶ÔÁ½ÕÅ´ó±íjoin²ÉÓÃÁËȫеÄËã·¨£­sort-merge join£¬ÈçÏÂͼËùʾ£¬Õû¸ö¹ý³Ì·ÖΪÈý¸ö²½Ö裺

1. shuffle½×¶Î£º½«Á½ÕÅ´ó±í¸ù¾Ýjoin key½øÐÐÖØÐ·ÖÇø£¬Á½ÕűíÊý¾Ý»á·Ö²¼µ½Õû¸ö¼¯Èº£¬ÒÔ±ã·Ö²¼Ê½²¢Ðд¦Àí

2. sort½×¶Î£º¶Ôµ¥¸ö·ÖÇø½ÚµãµÄÁ½±íÊý¾Ý£¬·Ö±ð½øÐÐÅÅÐò

3. merge½×¶Î£º¶ÔÅźÃÐòµÄÁ½ÕÅ·ÖÇø±íÊý¾ÝÖ´ÐÐjoin²Ù×÷¡£join²Ù×÷ºÜ¼òµ¥£¬·Ö±ð±éÀúÁ½¸öÓÐÐòÐòÁУ¬Åöµ½Ïàͬjoin key¾ÍmergeÊä³ö£¬·ñÔòÈ¡¸üСһ±ß£¬¼ûÏÂͼʾÒ⣺

×Ðϸ·ÖÎöµÄ»°»á·¢ÏÖ£¬sort-merge joinµÄ´ú¼Û²¢²»±Èshuffle hash joinС£¬·´¶øÊǶàÁ˺ܶࡣÄÇΪʲôSparkSQL»¹»áÔÚÁ½ÕÅ´ó±íµÄ³¡¾°ÏÂÑ¡ÔñʹÓÃsort-merge joinËã·¨ÄØ£¿ÕâºÍSparkµÄshuffleʵÏÖÓйأ¬Ä¿Ç°sparkµÄshuffleʵÏÖ¶¼ÊÊÓÃsort-based shuffleËã·¨£¬Òò´ËÔÚ¾­¹ýshuffleÖ®ºópartitionÊý¾Ý¶¼Êǰ´ÕÕkeyÅÅÐòµÄ¡£Òò´ËÀíÂÛÉÏ¿ÉÒÔÈÏΪÊý¾Ý¾­¹ýshuffleÖ®ºóÊDz»ÐèÒªsortµÄ£¬¿ÉÒÔÖ±½Ómerge¡£

¾­¹ýÉÏÎĵķÖÎö£¬¿ÉÒÔÃ÷ȷÿÖÖJoinËã·¨¶¼ÓÐ×Ô¼ºµÄÊÊÓó¡¾°£¬Êý¾Ý²Ö¿âÉè¼ÆÊ±×îºÃ±ÜÃâ´ó±íÓë´ó±íµÄjoin²éѯ£¬SparkSQLÒ²¿ÉÒÔ¸ù¾ÝÄÚ´æ×ÊÔ´¡¢´ø¿í×ÊÔ´ÊÊÁ¿½«²ÎÊýspark.sql.autoBroadcastJoinThresholdµ÷´ó£¬Èøü¶àjoinʵ¼ÊÖ´ÐÐΪbroadcast hash join¡£

×ܽá

Join²Ù×÷ÊÇ´«Í³Êý¾Ý¿âÖеÄÒ»¸ö¸ß¼¶ÌØÐÔ£¬ÓÈÆä¶ÔÓÚµ±Ç°MySQLÊý¾Ý¿â¸üÊÇÈç´Ë£¬Ô­ÒòºÜ¼òµ¥£¬MySQL¶ÔJoinµÄÖ§³ÖĿǰ»¹±È½ÏÓÐÏÞ£¬Ö»Ö§³ÖNested-Loop JoinËã·¨£¬Òò´ËÔÚOLAP³¡¾°ÏÂMySQLÊǺÜÄѳԵÄÏûµÄ£¬²»ÒªÈ¥ÓÃMySQLÈ¥ÅÜÈκÎOLAPÒµÎñ£¬½á¹ûÕæµÄºÜÄÑ¿´¡£²»¹ýºÃÏûÏ¢ÊÇMySQLÔÚа汾Ҫ¿ªÊ¼Ö§³ÖHash JoinÁË£¬ÕâÑùÒ²ÐíÔÚ½«À´Ò²¿ÉÒÔÓÃMySQLÀ´´¦ÀíһЩС¹æÄ£µÄOLAPÒµÎñ¡£

ºÍMySQLÏà±È£¬PostgreSQL¡¢SQLServer¡¢OracleµÈÕâЩÊý¾Ý¿â¶ÔJoinÖ§³Ö¸ü¼ÓÈ«ÃæÒ»Ð©£¬¶¼Ö§³ÖHash JoinËã·¨¡£ÓÉPostgreSQL×÷ΪÄں˹¹½¨µÄ·Ö²¼Ê½ÏµÍ³Greenplum¸üÊÇÔÚÊý¾Ý²Ö¿âÖÐÕ¼ÓÐһϯ֮µØ£¬ÕâºÍPostgreSQL¶ÔJoinËã·¨µÄÖ§³ÖÆäʵÓкܴó¹ØÏµ¡£

×ÜÌå¶øÑÔ£¬´«Í³Êý¾Ý¿âµ¥»úģʽ×öJoinµÄ³¡¾°±Ï¾¹ÓÐÏÞ£¬Ò²½¨Ò龡Á¿¼õÉÙʹÓÃJoin¡£È»¶ø´óÊý¾ÝÁìÓò¾ÍÍêÈ«²»Í¬£¬JoinÊDZêÅ䣬OLAPÒµÎñ¸ù±¾ÎÞ·¨À뿪±íÓë±íÖ®¼äµÄ¹ØÁª£¬¶ÔJoinµÄÖ§³Ö³ÉÊì¶ÈÒ»¶¨³Ì¶ÈÉϾö¶¨ÁËϵͳµÄÐÔÄÜ£¬¿äÕŵã˵£¬¡¯µÃJoinÕßµÃÌìÏ¡¯¡£±¾ÎÄÖ»ÊÇÊÔͼ´ø´ó¼ÒÕæÕý×ß½øJoinµÄÊÀ½ç£¬Á˽ⳣÓõļ¸ÖÖJoinËã·¨ÒÔ¼°¸÷×ÔµÄÊÊÓó¡¾°¡£ºóÃæÁ½ÆªÎÄÕ»¹»áÉæ¼°JoinµÄ·½·½ÃæÃ棬¾´ÇëÆÚ´ý£¡

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

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

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

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