Greenplum Êý¾Ý¿âÊÇ×îÏȽøµÄ·Ö²¼Ê½¿ªÔ´Êý¾Ý¿â¼¼Êõ£¬Ö÷ÒªÓÃÀ´´¦Àí´ó¹æÄ£µÄÊý¾Ý·ÖÎöÈÎÎñ£¬°üÀ¨Êý¾Ý²Ö¿â¡¢ÉÌÎñÖÇÄÜ£¨OLAP£©ºÍÊý¾ÝÍÚ¾òµÈ¡£×Ô2015Äê10ÔÂÕýʽ¿ªÔ´ÒÔÀ´£¬Êܵ½¹úÄÚÍâÒµÄÚÈËÊ¿µÄ¹ã·º¹Ø×¢¡£±¾ÎľÍÉçÇø¹ØÐĵÄGreenplumÊý¾Ý¿â¼¼Êõ¼Ü¹¹½øÐнéÉÜ¡£

Ò». GreenplumÊý¾Ý¿â¼ò½é
´óÊý¾ÝÊǸöÖËÊÖ¿ÉÈȵĴʣ¬¸÷Ðи÷Òµ¶¼ÔÚ̸¡£Ò»Ì¸µ½´óÊý¾Ý£¬ºÃ¶àÈËÈÏΪ¾ÍÊÇHadoop¡£Êµ¼ÊÉÏHadoopÖ»ÊÇ´óÊý¾ÝÈô¸É´¦Àí·½°¸ÖеÄÒ»¸ö¡£ÏÖÔÚµÄSQL¡¢NoSQL¡¢NewSQL¡¢HadoopµÈµÈ£¬¶¼ÄÜÔÚ²»Í¬²ãÃæ»ò²»Í¬Ó¦ÓÃÉÏ´¦Àí´óÊý¾ÝµÄijЩÎÊÌâ¡£¶øGreenplumÊý¾Ý¿â×öΪһ¸ö·Ö²¼Ê½´ó¹æÄ£²¢Ðд¦ÀíÊý¾Ý¿â£¬ÔÚ´ó¶àÊýÇé¿öÏ£¬¸üÊʺÏ×ö´óÊý¾ÝµÄ´æ´¢ÒýÇæ¡¢¼ÆËãÒýÇæºÍ·ÖÎöÒýÇæ¡£
GreenplumÊý¾Ý¿âÒ²¼ò³ÆGPDB¡£ËüÓµÓзḻµÄÌØÐÔ£º
µÚÒ»£¬ÍêÉÆµÄ±ê×¼Ö§³Ö£ºGPDBÍêȫ֧³ÖANSI SQL 2008±ê×¼ºÍSQL OLAP 2003 À©Õ¹£»´ÓÓ¦Óñà³Ì½Ó¿ÚÉϽ²£¬ËüÖ§³ÖODBCºÍJDBC¡£ÍêÉÆµÄ±ê×¼Ö§³ÖʹµÃϵͳ¿ª·¢¡¢Î¬»¤ºÍ¹ÜÀí¶¼´óΪ·½±ã¡£¶øÏÖÔÚµÄ NoSQL£¬NewSQLºÍHadoop ¶Ô SQL µÄÖ§³Ö¶¼²»ÍêÉÆ£¬²»Í¬µÄϵͳÐèÒªµ¥¶À¿ª·¢ºÍ¹ÜÀí£¬ÇÒÒÆÖ²ÐÔ²»ºÃ¡£
µÚ¶þ£¬Ö§³Ö·Ö²¼Ê½ÊÂÎñ£¬Ö§³ÖACID¡£±£Ö¤Êý¾ÝµÄǿһÖÂÐÔ¡£
µÚÈý£¬×öΪ·Ö²¼Ê½Êý¾Ý¿â£¬ÓµÓÐÁ¼ºÃµÄÏßÐÔÀ©Õ¹ÄÜÁ¦¡£ÔÚ¹úÄÚÍâÓû§Éú²ú»·¾³ÖУ¬¾ßÓÐÉϰٸöÎïÀí½ÚµãµÄGPDB¼¯Èº¶¼ÓкܶసÀý¡£
µÚËÄ£¬GPDBÊÇÆóÒµ¼¶Êý¾Ý¿â²úÆ·£¬È«ÇòÓÐÉÏǧ¸ö¼¯ÈºÔÚ²»Í¬¿Í»§µÄÉú²ú»·¾³ÔËÐС£ÕâЩ¼¯ÈºÎªÈ«ÇòºÜ¶à´óµÄ½ðÈÚ¡¢Õþ¸®¡¢ÎïÁ÷¡¢ÁãÊ۵ȹ«Ë¾µÄ¹Ø¼üÒµÎñÌṩ·þÎñ¡£
µÚÎ壬GPDBÊÇGreenplum£¨ÏÖÔÚµÄPivotal£©¹«Ë¾Ê®¶àÄêÑз¢Í¶ÈëµÄ½á¹û¡£GPDB»ùÓÚPostgreSQL 8.2£¬PostgreSQL 8.2ÓдóÔ¼80ÍòÐÐÔ´´úÂ룬¶øGPDBÏÖÔÚÓÐ130ÍòÐÐÔ´Âë¡£Ïà±ÈPostgreSQL 8.2£¬Ôö¼ÓÁËÔ¼50ÍòÐеÄÔ´´úÂë¡£
µÚÁù£¬GreenplumÓкܶàºÏ×÷»ï°é£¬GPDBÓÐÍêÉÆµÄÉú̬ϵͳ£¬¿ÉÒÔÓëºÜ¶àÆóÒµ¼¶²úÆ·¼¯³É£¬Æ©ÈçSAS£¬Cognos£¬Informatic£¬TableauµÈ£»Ò²¿ÉÒԺܶàÖÖ¿ªÔ´Èí¼þ¼¯³É£¬Æ©ÈçPentaho,Talend µÈ¡£
¶þ. Greenplum¼Ü¹¹
2.1 ƽ̨¼Ü¹¹
ͼ£¨1£©ÊÇGreenplumÊý¾Ý¿âƽ̨¸ÅÀ¨Í¼¡£Æ½Ì¨·ÖΪËĸö²ã´Î£¬ÎÒÃÇÒÀ´Î´ÓÏÂÍùÉÏ¿´¡£

MPPºËÐļܹ¹
- GPDBÊÇ´ó¹æÄ£ÎÞ¹²ÏíµÄ´¦Àí¼Ü¹¹£¬ºóÃæ»áרÃŽéÉÜ£»
- ÏȽøµÄ²¢ÐÐÓÅ»¯Æ÷ÊÇÐÔÄÜÍ»³öµÄ¹Ø¼üÖ®Ò»¡£GPDBÓÐÁ½¸öÓÅ»¯Æ÷£¬Ò»¸öÊÇ»ùÓÚPostgreSQL plannerµÄÓÅ»¯Æ÷£»Ò»¸öÊÇȫпª·¢µÄORCAÓÅ»¯Æ÷¡£ORCAÊÇGreenplum 5ÄêÒÔǰÆô¶¯µÄÈ«ÐÂÏîÄ¿£¬Õâ¸öÓÅ»¯Æ÷¾¹ý¼¸ÄêµÄ¿ª·¢ºÍ²âÊÔÖ®ºó£¬×î½üÒѾ³ÉΪGPDBÆóÒµ°æ±¾µÄĬÈÏÓÅ»¯Æ÷¡£
- GPDBµÄ´æ´¢ÒýÇæÖ§³Ö¶à̬´æ´¢£¬Ò»¸ö±íµÄÊý¾Ý¿ÉÒÔ¸ù¾Ý·ÃÎÊģʽµÄ²»Í¬Ê¹Óò»Í¬µÄ´æ´¢·½Ê½¡£´æ´¢·½Ê½¶ÔÓû§Í¸Ã÷£¬Ö´Ðвéѯʱ£¬²»ÓùØÐÄ´ý·ÃÎʵÄÊý¾ÝʹÓõĴ洢ģʽ£¬ÓÅ»¯Æ÷»á×Ô¶¯Ñ¡Ôñ×î¼Ñ²éѯ¼Æ»®¡£
- ·Ö²¼Ê½Êý¾Ý¿âÖУ¬Ä³Ð©²Ù×÷£¨ÀýÈç¿ç½Úµã¹ØÁª£©ÐèÒª¶à¸ö½Úµã¼ä½øÐÐÊý¾Ý½»»»¡£GPDBµÄ²¢ÐÐÊý¾Ý¿âÁ÷ÒýÇæ£¬¿ÉÒÔ¸ù¾ÝÊý¾ÝµÄÌØµã£¬ÀýÈç·Ö²¼·½Ê½¡¢Êý¾ÝÁ¿µÈÑ¡Ôñ×îºÏÊʵÄÊý¾ÝÁ÷²Ù×÷·û¡£Ä¿Ç°GPDBÖ§³ÖÁ½ÖÖÊý¾ÝÁ÷²Ù×÷·û£ºÖØ·Ö·¢£¨Redistribution£©ºÍ¹ã²¥£¨Broadcast£©¡£ÖØ·Ö·¢¸ù¾ÝÊý¾ÝµÄ¹þÏ£ÖµÖØÐ·ַ¢µ½¸÷¸öÊý¾Ý½ÚµãÉÏ£¬ÊÊÓÃÓÚÊý¾ÝÁ¿´óµÄÇé¿ö£»¹ã²¥Ôò½«Êý¾Ý·¢Ë͸øËùÓÐÊý¾Ý½Úµã£¬ÊÊÓÃÓÚÊý¾ÝÁ¿½ÏСµÄÇé¿ö£¬ÀýÈçά¶È±í¡£
- Èí¼þ½»»»»úÊÇGPDBµÄÒ»¸öÖØÒª×é¼þ£¬Èí¼þ½»»»»ú¿ÉÒÔÔÚ¸÷¸öÊý¾Ý½Úµã¼ä¼°ÓëÖ÷½Úµã¼ä½¨Á¢¿É¿¿µÄUDPÊý¾ÝͨѶ»úÖÆ£¬ÊÇʵÏÖ¸ßЧÊý¾ÝÁ÷µÄºËÐÄ¡£
- Scatter/Gather Á÷ÒýÇæÊÇרΪ²¢ÐÐÊý¾Ý¼ÓÔØºÍµ¼³ö¶øÉè¼Æ£¬ScatterÖ¸Êý¾Ýͨ¹ý²¢ÐмÓÔØ·þÎñÆ÷²¢ÐзÖÉ¢µ½¸÷¸öÊý¾Ý½Úµã£¬GatherÖ¸Êý¾ÝÔÚ GPDBÄÚ²¿¿ÉÒÔ¸ù¾Ý·Ö²¼²ßÂÔ°´Ðè²¢Ðзַ¢¡£
·þÎñ²ã
- GPDBÖ§³Ö¶à¼¶ÈÝ´í»úÖÆºÍ¸ß¿ÉÓãº?
o Ö÷½Úµã£¨Master£©¸ß¿ÉÓãºÎªÁ˱ÜÃâÖ÷½Úµãµ¥µã¹ÊÕÏ£¬¿ÉÒÔÉèÖÃÒ»¸öÖ÷½ÚµãµÄ¸±±¾£¨³ÆÎª Standby Master£©£¬ËûÃÇÖ®¼äͨ¹ýÁ÷¸´ÖƼ¼ÊõʵÏÖͬ²½¸´ÖÆ¡£µ±Ö÷½Úµã·¢Éú¹ÊÕÏʱ£¬´Ó½Úµã³ÉΪÖ÷½Úµã£¬´¦ÀíÓû§ÇëÇó²¢Ðµ÷²éѯִÐС£ËüÃÇÖ®¼äͨ¹ýÐÄÌø¼ì²â¹ÊÕÏ¡£?
o Êý¾Ý½Úµã£¨Segment£©¸ß¿ÉÓãºÃ¿¸öÊý¾Ý½Úµã¶¼¿ÉÒÔÅ䱸һ¸ö¾µÏñ£¬ËüÃÇÖ®¼äͨ¹ýÎļþ²Ù×÷¼¶±ðµÄͬ²½ÊµÏÖÊý¾ÝµÄͬ²½¸´ÖÆ£¨³ÆÎªfilerep¼¼Êõ£©¡£Êý¾Ý½ÚµãÉϽ¨ÒéʹÓÃRAID5´ÅÅÌ£¬ÒÔ½øÒ»²½Ìá¸ßÊý¾ÝµÄ¸ß¿ÉÓ᣹ÊÕϼì²â½ø³Ì£¨ftsprobe£©¶¨ÆÚ·¢ËÍÐÄÌø¸ø¸÷¸öÊý¾Ý½Úµã¡£µ±Ä³¸ö½Úµã·¢Éú¹ÊÕÏʱ£¬GPDB»á×Ô¶¯½øÐйÊÕÏÇл»¡£?
o ÍøÂç¸ß¿ÉÓãºÎªÁ˱ÜÃâÍøÂçµÄµ¥µã¹ÊÕÏ£¬Ã¿¸öÖ÷»úÅäÖöà¸öÍø¿Ú£¬²¢Ê¹Óöà¸ö½»»»»ú±ÜÃâÍøÂç¹ÊÕÏʱÔì³ÉÕû¸ö·þÎñ²»¿ÉÓá£
- ÔÚÏßÀ©Õ¹£ºÊý¾ÝÁ¿Ôö´ó£¬ÏÖÓм¯Èº²»ÄÜÂú×ãÐèÇóʱ£¬¿ÉÒÔ¶ÔGPDBÊý¾Ý¿â½øÐж¯Ì¬À©Õ¹¡£À©Õ¹¹ý³ÌÖУ¬ÒµÎñ¿ÉÒÔ¼ÌÐøÔËÐУ¬²»ÐèҪ崻ú¡£
- ÈÎÎñ¹ÜÀíÊÇÖ¸¶Ô×ÊÔ´µÄ¹ÜÀíºÍʹÓÃÇé¿öµÄ¹ÜÀí¡£
²úÆ·ÌØÐÔ
- Êý¾Ý¼ÓÔØÔÚºóÃæ»áרÃŽéÉÜ¡£
- Êý¾ÝÁª°îÊDZȽÏÓÐÒâ˼µÄ£¬×î½ü¡°Êý¾Ýºþ²´¡±Õâ¸ö´Ê·Ç³£»ðÈÈ£¬Êý¾Ýºþ²´µÄÄ¿µÄÊDz»ÐèÔÙ¶ÔÊý¾ÝÏñÒÔǰÄÇÑù¾¹ý¶¨ÖÆ£¬Éú³ÉÌØ¶¨µÄÒµÎñ±¨±í£»¶øÊDZ£´æÔʼÊý¾Ý£¬Ê²Ã´Ê±ºòÏë·ÖÎö¾Í´ÓÔʼÊý¾ÝÉÏÖ±½Ó´¦Àí¡£GBDB¿ÉÒÔʵÏÖÊý¾Ýºþ²´£¨ÎÒÃdzÆÖ®ÎªÊý¾ÝÁª°î£©£¬ËüÄÜ·ÃÎʺʹ¦ÀíÊý¾ÝÖÐÐÄÀïÃæµÄËùÓÐÊý¾Ý£¬²»¹ÜÄãµÄÊý¾ÝÊÇÔÚHadoop¡¢ÔÚÎļþϵͳÉÏ¡¢»¹ÊÇÔÚÆäËûÊý¾Ý¿âÖУ¬Greenplum¿ÉÒÔʹÓÃÒ»¸öSQLÔÚ±£Ö¤ACIDµÄǰÌáÏ·ÃÎÊËùÓÐÊý¾Ý¡£
- GPDB¼´Ö§³ÖÐд棬Ҳ֧³ÖÁд档»¹Îª²»Ðè¸üеÄÊý¾Ý´æ´¢ºÍ´¦Àí½øÐÐÁËרÃŵÄÓÅ»¯¡£
- Ö§³Ö¶àÖÖѹËõ·½·¨£¬°üÀ¨QuickLZ£¬Zlib£¬RLE µÈ¡£
- Ö§³Ö¶à¼¶·ÖÇø±í£¬·ÖÇøÖ§³Ö¶àÖÖģʽ£¬°üÀ¨·¶Î§£¬ÁбíµÈ¡£
- Ö§³ÖBÊ÷¡¢Î»Í¼ºÍGiST µÈË÷Òý
- GPDBÈÏÖ¤»úÖÆÖ§³Ö¶àÖÖ·½Ê½£¬°üÀ¨LDAPºÍKerberosµÈ¡£Í¨¹ý·ÃÎÊ¿ØÖÆÁÐ±í£¨ACL£©£¬¿ÉÒÔʵÏÖÁé»îµÄ»ùÓÚ½ÇÉ«µÄ°²È«¿ØÖÆ¡£
- À©Õ¹ÓïÑÔÖ§³Ö£ºGPDB Ö§³ÖʹÓöàÖÖÁ÷ÐÐÓïÑÔʵÏÖÓû§×Ô¶¨Ò庯Êý£¨UDF£¬ÀàËÆÓÚOracleµÄ´æ´¢¹ý³Ì£©£¬°üÀ¨ Python£¬R£¬Java£¬Perl£¬C/C++ µÈ¡£
- µØÀíÐÅÏ¢´¦Àí£ºÍ¨¹ý¼¯³ÉPostGIS£¬GPDBÖ§³Ö¶ÔµØÀíÐÅÏ¢½øÐд洢ºÍ·ÖÎö¡£
- ÄÚ½¨Êý¾ÝÍÚ¾òËã·¨¿â£ºÍ¨¹ýMADLib£¨ÏÖÔÚÊÇApache·õ»¯ÏîÄ¿£©Ëã·¨¿â£¬¿ÉÒÔÄÚ½¨¼¸Ê®ÖÖ³£¼ûµÄÊý¾Ý·ÖÎöºÍÍÚ¾òËã·¨µ½GPDBÊý¾Ý¿âÖУ¬°üÀ¨Âß¼»Ø¹é£¬¾ö²ßÊ÷£¬Ëæ»úÉÁֵȡ£²»ÐèҪдÈκÎËã·¨´úÂ룬ͨ¹ýSQL¾Í¿ÉÒÔʹÓÃÆäÖеÄËùÓÐËã·¨¡£
- Îı¾¼ìË÷£ºÍ¨¹ýGPTextÀ©Õ¹£¬GPDB¿ÉÒÔÖ§³Ö¸ßЧÁé»î·á¸»µÄÈ«ÎļìË÷¹¦ÄÜ¡£Óë MADLib ºÏÓ㬿ÉÒÔ½øÐв¢ÐÐÎı¾·ÖÎöºÍÍÚ¾ò¡£
¿Í»§¶Ë·ÃÎʺ͹¤¾ß
ͨ¹ýpsqlÃüÁîÐй¤¾ß¿ÉÒÔ·ÃÎÊGPDBÊý¾Ý¿âµÄËùÓй¦ÄÜ£¬´ËÍ⻹ÌṩÁËODBC¡¢JDBC¡¢OLEDB¡¢libpqµÈÓ¦Óñà³Ì½Ó¿Ú¡£
Êý¾Ý¿â»òÕßÊý¾Ý¼¯ÈºµÄ¹ÜÀí¹¤¾ß·Ç³£ÖØÒª£¬GPDBÌṩÁËͼÐλ¯µÄ¹ÜÀí¹¤¾ßGPCC£¨Greenplum Command Center£©£¬°ïÄã¹ÜÀí״̬£¬¼à¿Ø×ÊԴʹÓÃÇé¿ö¡£
Greenplum Workload ManagerÊǸոշ¢²¼µÄвúÆ·£¬ÓÃÒÔʵÏÖ»ùÓÚ¹æÔòµÄ×ÊÔ´¹ÜÀí¡£ËüÖ§³Ö×Ô¶¨Ò广Ôò£¬µ±Ä³¸öSQLÂú×ã¹æÔòÃèÊöµÄÌõ¼þʱ»áÖ´ÐÐijЩ²Ù×÷¡£±ÈÈçÄã¿ÉÒÔ¶¨Ò广Ôò×Ô¶¯È¡ÏûÏûºÄCPU×ÊÔ´´ï50%ÒÔÉϵIJéѯ¡£
2.2 ´ó¹æÄ£²¢Ðд¦Àí£¨MPP£©ÎÞ¹²Ïí¼Ü¹¹
MPP ÊÇGreenplumÊý¾Ý¿â×îÍ»³öµÄÌØÉ«¡£ÏÖÔÚºÜÁ÷ÐÐMPPÕâ¸ö´Ê£¬ÎÒÃÇ¿ÉÒÔ¿´Ò»ÏÂËüÊÇʲôÒâ˼¡£Ï±ßͼ£¨2£©ÖУ¬Ö÷½ÚµãÓÐÁ½¸ö£¬Ò»¸öÊÇÖ÷½Úµã£¬Ò»¸öÊÇ´ÓÖ÷½Úµã¡£Í¨¹ýÈí½»»»»úÖÆ£¬Ò²¾ÍÊÇͨ¹ý¸ßËÙÍøÂ磬Ö÷½ÚµãÁ¬µ½Êý¾Ý½Úµã¡£Ã¿¸öÊý¾Ý½ÚµãÓÐ×Ô¼ºµÄCPU£¬×Ô¼ºµÄÄڴ棬×Ô¼ºµÄÓ²ÅÌ£¬ËûÃÇΨһ¹²ÏíµÄ¾ÍÊÇÍøÂç¡£ÕâÒ²ÊdzÆÎªÎÞ¹²Ïí¼Ü¹¹µÄÔÒò¡£ÕâÖּܹ¹µÄºÃ´¦ÊǼ¯ÈºÊÇ·Ö²¼Ê½µÄ»·¾³£¬Êý¾Ý¿ÉÒÔ·Ö²¼Ôںܶà½ÚµãÉϽøÐв¢Ðд¦Àí£¬¿ÉÒÔ×öµ½ÏßÐÔÀ©Õ¹¡£

ÔÚ·Ö²¼Ê½Êý¾Ý¿âÖУ¬ÐÔÄܺûµµÄ×îÖØÒªÒòËØÊÇÊý¾Ý·Ö²¼ÊÇ·ñ¾ùÔÈ¡£Èç¹ûÊý¾Ý·Ö²¼²»¾ùÔÈ£¬ÓеĽڵãÉÏÊý¾Ý·Ç³£¶à£¬ÓеĽڵãÊý¾ÝºÜÉÙ£¬ÕâÑù»á³öḬֶ̈åЧӦ£¬Õû¸öSQLµÄЧÂʲ»»áºÜºÃ¡£GreenplumÖ§³Ö¶àÖÖÊý¾Ý·Ö²¼µÄ²ßÂÔ£¬Ä¬ÈÏʹÓÃÖ÷¼ü»òÕßµÚÒ»¸ö×ֶνøÐйþÏ£·Ö²¼£¬»¹Ö§³ÖËæ»ú·Ö²¼¡£³ýÁ˺áÏòÉÏÊý¾Ý¿ÉÒÔ°´½Úµã·Ö²¼Ö®Í⣬ÔÚij¸ö½ÚµãÉÏ»¹¿ÉÒÔ¶ÔÊý¾Ý½øÐзÖÇø¡£·ÖÇøµÄ¹æÔò±È½ÏÁé»î£¬¿ÉÒÔ°´ÕÕ·¶Î§·ÖÇø£¬Ò²¿ÉÒÔ°´ÕÕÁбíÖµ·ÖÇø£¬Èçͼ£¨3£©¡£

2.3 ²¢Ðвéѯ¼Æ»®ºÍÖ´ÐÐ
ÏÂÃæÊǸö¼òµ¥µÄSQL£¬Èçͼ£¨4£©£¬´ÓÁ½ÕűíÖÐÕÒµ½2008ÄêµÄÏúÊÛÊý¾Ý¡£Í¼ÖÐÓÒ±ßÊÇÕâ¸öSQLµÄ²éѯ¼Æ»®¡£´ÓÉú³ÉµÄ²éѯ¼Æ»®Ê÷Öп´µ½ÓÐÈýÖÖ²»Í¬µÄÑÕÉ«£¬ÑÕÉ«Ïàͬ±íʾ×öͬһ¼þÊÂÇ飬ÎÒÃdzÆÖ®Îª·ÖƬ/ÇÐÆ¬£¨Slice£©¡£×îϲãµÄ³ÈÉ«ÇÐÆ¬ÖÐÓÐÒ»¸öÖØ·Ö·¢½Úµã£¬Õâ¸ö½Úµã½«±¾½ÚµãµÄÊý¾ÝÖØÐ·ַ¢µ½ÆäËû½ÚµãÉÏ¡£ÖмäÂÌÉ«ÇÐÆ¬±íʾ·Ö²¼Ê½Êý¾Ý¹ØÁª£¨HashJoin£©¡£×îÉÏÃæÇÐÆ¬¸ºÔ𽫸÷¸öÊý¾Ý½ÚµãÊÕµ½µÄÊý¾Ý½øÐлã×Ü¡£

È»ºó¿´¿´Õâ¸ö²éѯ¼Æ»®µÄÖ´ÐУ¬Èçͼ£¨5£©¡£Ö÷½Úµã£¨Master£©Éϵĵ÷¶ÈÆ÷£¨QD£©»áÏ·¢²éѯÈÎÎñµ½Ã¿¸öÊý¾Ý½Úµã£¬Êý¾Ý½ÚµãÊÕµ½ÈÎÎñºó£¨²éѯ¼Æ»®Ê÷£©£¬´´½¨¹¤×÷½ø³Ì£¨QE£©Ö´ÐÐÈÎÎñ¡£Èç¹ûÐèÒª¿ç½ÚµãÊý¾Ý½»»»£¨ÀýÈçÉÏÃæµÄHashJoin£©£¬ÔòÊý¾Ý½ÚµãÉϻᴴ½¨¶à¸ö¹¤×÷½ø³Ìе÷Ö´ÐÐÈÎÎñ¡£²»Í¬½ÚµãÉÏÖ´ÐÐͬһÈÎÎñ£¨²éѯ¼Æ»®ÖеÄÇÐÆ¬£©µÄ½ø³Ì×é³ÉÒ»¸öÍŻGang£©¡£Êý¾Ý´ÓÏÂÍùÉÏÁ÷¶¯£¬×îÖÕMaster·µ»Ø¸ø¿Í»§¶Ë¡£

2.4 ¶à̬´æ´¢
ÉÏÃæ½éÉÜÁËGPDBµÄÌØµãºÍSQLÖ´Ðмƻ®ÒÔ¼°Ö´Ðйý³Ì£¬ÄÇÊý¾ÝÔÚÿ¸ö½ÚµãÉϵ½µ×ÔõôÑù´æ´¢£¿
GreenplumÌṩ³ÆÎª¡°¶à̬´æ´¢¡±µÄÁé»î´æ´¢·½Ê½¡£¶à̬´æ´¢¿ÉÒÔ¸ù¾ÝÊý¾ÝÈȶȻòÕß·ÃÎÊģʽµÄ²»Í¬¶øÊ¹Óò»Í¬µÄ´æ´¢·½Ê½¡£Ò»ÕűíµÄ²»Í¬Êý¾Ý¿ÉÒÔʹÓò»Í¬µÄÎïÀí´æ´¢·½Ê½£¬Èçͼ£¨6£©¡£Ö§³ÖµÄ´æ´¢·½Ê½°üº¬£º
- Ðд洢£ºÐд洢ÊÇ´«Í³Êý¾Ý¿â³£ÓõĴ洢·½Ê½£¬ÌصãÊÇ·ÃÎʱȽϿ죬¶àÁиüбȽÏÈÝÒס£
- Áд洢£ºÁд洢°´Áб£´æ£¬²»Í¬ÁеÄÊý¾Ý´æ´¢ÔÚ²»Í¬µÄµØ·½£¨Í¨³£ÊDz»Í¬ÎļþÖУ©¡£ÊʺÏÒ»´ÎÖ»·ÃÎÊ¿í±íÖÐij¼¸¸ö×ֶεÄÇé¿ö¡£Áд洢µÄÁíÍâÒ»¸öÓÅÊÆÊÇѹËõ±È¸ß¡£
- Íⲿ±í£ºÊý¾Ý±£´æÔÚÆäËûϵͳÖÐÀýÈçHDFS£¬Êý¾Ý¿âÖ»±£ÁôÔªÊý¾ÝÐÅÏ¢¡£

2.5 ´ó¹æÄ£²¢ÐÐÊý¾Ý¼ÓÔØ
×÷Ϊһ¸öÊý¾Ý¿â£¬Ò»¶¨»á±£´æºÍ´¦ÀíÊý¾Ý¡£ÄÇÊý¾ÝÀ´Ô´ÓÚʲôµØ·½£¿OracleÕâÑùµÄÊý¾Ý¿âÀïÃæµÄÊý¾Ý¶àÊǿͻ§Éú³ÉµÄ£¬Æ©ÈçÄãÒøÐÐתÕË¡¢ÌÔ±¦¶©µ¥µÈ¡£¶ÔÓÚÊý¾Ý·ÖÎöÐ͵ÄÊý¾Ý¿â£¬ÆäÔ´Êý¾Ýͨ³£ÊÇÔÚÆäËûϵͳÖУ¬¶øÇÒÊý¾ÝÁ¿ºÜ´ó¡£ÕâÑùÊý¾Ý¼ÓÔØµÄÄÜÁ¦¾Í±äµÃ·Ç³£ÖØÒª¡£GreenplumÌṩÁ˷dz£ºÃµÄÊý¾Ý¼ÓÔØ·½°¸£¬Ö§³Ö¸ßËٵļÓÔØ¸÷ÖÖÊý¾ÝÔ´µÄ²»Í¬Êý¾Ý¸ñʽµÄÊý¾Ý£¬Èçͼ£¨7£©¡£
- ²¢ÐÐÊý¾Ý¼ÓÔØ£ºÒòΪÊDz¢ÐÐÊý¾Ý¼ÓÔØ£¬ËùÒÔÐÔÄܷdz£ºÃ¡£GreenplumÓнÐDCAµÄÒ»Ìå»ú²úÆ·£¬µÚÒ»´úDCA¿ÉÒÔ×öµ½10TB/Сʱ£»µÚ¶þ´úΪ16TB/Сʱ¡£µÚÈý´úºÜ¿ì¾ÍÒª·¢²¼ÁË£¬ËÙ¶È»á¸ü¿ì¡£
- Êý¾ÝÔ´ºÍÊý¾Ý¸ñʽ£ºÊý¾ÝÔ´Ö§³ÖHadoop£¬Îļþϵͳ£¬Êý¾Ý¿â£¬»¹ÓÐ ETL¹ÜÀíµÄÊý¾Ý¡£Êý¾Ý¸ñʽ֧³ÖÎı¾£¬CSV£¬Parquet£¬AvroµÈ¡£

Èý. GreenplumºËÐÄ×é¼þ
Greenplum Êý¾Ý¿â°üÀ¨ÒÔϺËÐÄ×é¼þ£º
- ½âÎöÆ÷£ºÖ÷½ÚµãÊÕµ½¿Í»§¶ËÇëÇóºó£¬Ö´ÐÐÈÏÖ¤²Ù×÷¡£ÈÏÖ¤³É¹¦½¨Á¢Á¬½Óºó£¬¿Í»§¶Ë¿ÉÒÔ·¢ËͲéѯ¸øÊý¾Ý¿â¡£½âÎöÆ÷¸ºÔð¶ÔÊÕµ½µÄ²éѯSQL×Ö·û´®½øÐдʷ¨½âÎö¡¢Óï·¨½âÎö£¬²¢Éú³ÉÓï·¨Ê÷¡£
- ÓÅ»¯Æ÷£ºÓÅ»¯Æ÷¶Ô½âÎöÆ÷µÄ½á¹û½øÐд¦Àí£¬´ÓËùÓпÉÄܵIJéѯ¼Æ»®ÖÐÑ¡ÔñÒ»¸ö×îÓÅ»òÕß½Ó½ü×îÓŵļƻ®£¬Éú³É²éѯ¼Æ»®¡£²éѯ¼Æ»®ÃèÊöÁËÈçºÎÖ´ÐÐÒ»¸ö²éѯ£¬Í¨³£ÒÔÊ÷ÐνṹÃèÊö¡£Greenplum×îеÄÓÅ»¯Æ÷½Ð ORCA£¬¹ØÓÚ ORCA£¬¿ÉÒÔ´Ó ACM ÂÛÎÄÖлñµÃÏêϸÐÅÏ¢¡££¨http://dl.acm.org/citation.cfm?id=2595637&dl=ACM&coll=DL&CFID=569750122&CFTOKEN=89888184£©
- µ÷¶ÈÆ÷£¨QD£©£ºµ÷¶ÈÆ÷·¢ËÍÓÅ»¯ºóµÄ²éѯ¼Æ»®¸øËùÓÐÊý¾Ý½Úµã£¨Segments£©ÉϵÄÖ´ÐÐÆ÷£¨QE£©¡£µ÷¶ÈÆ÷¸ºÔðÈÎÎñµÄÖ´ÐУ¬°üÀ¨Ö´ÐÐÆ÷µÄ´´½¨¡¢Ïú»Ù¡¢´íÎó´¦Àí¡¢ÈÎÎñÈ¡Ïû¡¢×´Ì¬¸üеȡ£
- Ö´ÐÐÆ÷£¨QE£©£ºÖ´ÐÐÆ÷ÊÕµ½µ÷¶ÈÆ÷·¢Ë͵IJéѯ¼Æ»®ºó£¬¿ªÊ¼Ö´ÐÐ×Ô¼º¸ºÔðµÄÄDz¿·Ö¼Æ»®¡£µäÐ͵IJÙ×÷°üÀ¨Êý¾ÝɨÃè¡¢¹þÏ£¹ØÁª¡¢ÅÅÐò¡¢¾Û¼¯µÈ¡£
- Interconnect£º¸ºÔð¼¯ÈºÖи÷¸ö½Úµã¼äµÄÊý¾Ý´«Êä¡£
- ϵͳ±í£ºÏµÍ³±í´æ´¢ºÍ¹ÜÀíÊý¾Ý¿â¡¢±í¡¢×ֶεÄÔªÊý¾Ý¡£Ã¿¸ö½ÚµãÉ϶¼ÓÐÏàÓ¦µÄ¿½±´¡£
- ·Ö²¼Ê½ÊÂÎñ£ºÖ÷½ÚµãÉϵķֲ¼Ê½ÊÂÎñ¹ÜÀíÆ÷е÷Êý¾Ý½ÚµãÉÏÊÂÎñµÄÌá½»ºÍ»Ø¹ö²Ù×÷£¬ÓÉÁ½½×¶ÎÌá½»£¨2PC£©ÊµÏÖ¡£Ã¿¸öÊý¾Ý½Úµã¶¼ÓÐ×Ô¼ºµÄÊÂÎñÈÕÖ¾£¬¸ºÔð×Ô¼º½ÚµãÉϵÄÊÂÎñ´¦Àí¡£
ËÄ¡¢Greenplum¿ªÔ´
2015Äê3Ô·ݣ¬PivotalÐû²¼ÁËGreenplumµÄ¿ªÔ´¼Æ»®£¬¾¹ý6¸öÔ½ôÂàÃܹĵŤ×÷£¬ÓÚ10ÔÂ27ºÅÕýʽ¿ªÔ´¡£¹Ù·½ÍøÕ¾Îªhttp://greenplum.org¡£Ðí¿ÉÖ¤ÊéʹÓÃApache 2Ðí¿ÉÖ¤¡£
Greenplum ¿ªÔ´ÉçÇøÌṩÁËÔËÐл·¾³É³ºÐÒÔ¼°Ê¹Óý̳̣¬ÀïÃæ°üº¬ÁËGreenplumÊý¾Ý¿âµÄһЩÖ÷ÒªÌØÐÔ¡£´Óhttps://github.com/greenplum-db/gpdb-sandbox-tutorials¿ÉÒÔÏÂÔØÉ³ºÐºÍ½Ì³Ì¡£
ÓйØGreenplumÊý¾Ý¿âʹÓúͿª·¢µÄÈκÎÎÊÌâ¶¼¿ÉÒÔÈ¥ÓʼþÁбíÌÖÂÛ£ºÓʼþÁбíÓÐÁ½¸ö£ºgpdb-dev@greenplum.org ºÍgpdb-user@greenplum.org¡£
Ô´´úÂëλÓÚhttps://github.com/greenplum-db/gpdb£¬¿ªÔ´²»µ½Á½¸öÔ¾ÍÓÐ1187¸öÊղأ¬256¸öfork£¬³¬¹ý150¸öpull request£¬ÆäÖÐ136¸öpull request ÒѾ¹Ø±Õ¡£¹±Ï×ÕßÖгýÁ˰üº¬PivotalµÄÔ±¹¤Í⣬»¹ÓÐÀ´×ÔÈ«Çò£¨°üÀ¨Öйú¡¢ÃÀ¹ú¡¢ÈÕ±¾ºÍÅ·ÖÞ£©µÄÉçÇø¿ª·¢ÈËÔ±¡£¹ØÓÚ´ÓÔ´´úÂë±àÒëºÍ°²×°GreenplumÊý¾Ý¿â£¬¿ÉÒԲο¼£ºhttp://gpdb.rocks/gpdb/2015/10/29/how-to-build-gpdb.html
×÷Õß¼ò½é£ºÒ¦ÑÓ¶° PivotalÑз¢×ܼ࣬2005Äê±ÏÒµÓÚÖпÆÔºÈí¼þËù¡£ÔøÔÚSun Microsystems¡¢Symantec¹¤×÷¶àÄ꣬2010Äê¼ÓÈëGreenplum£¨ÏÖÔÚµÄPivotal£©£¬¸ºÔðÖйúÑз¢ÍŶӡ£
|