±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½²Êö°¢Àï°Í°ÍÁãÊÛͨÊý¾Ýƽ̨ÈçºÎÓÅ»¯HologresʵʱÊý²Ö£¬´ïµ½ÐÔÄÜÌáÉý10±¶+µÄЧ¹û£¬ÍêÃÀÖ§³ÅË«11ÓªÏú»î¶¯¡¢ÊµÊ±Êý¾Ý´óÆÁµÈºËÐij¡¾°¡£Ò²Ï£Íûͨ¹ý´ËÎĶÔHologresÐÂÓû§Æðµ½Ò»¶¨µÄ°ïÖú×÷Óã¬Í¨¹ýºÏÀíµÄÊý²ÖÉè¼ÆÊµÏÖʰ빦±¶µÄÐÔÄÜЧ¹û¡£
±¾ÎÄÀ´×ÔÓÚÖªºõ£¬ÓÉLinda±à¼¡¢ÍƼö¡£ |
|
±³¾°
°¢Àï°Í°ÍÁãÊÛͨÍŶÓÊǰ¢Àï°Í°ÍB2BÊÂҵȺÕë¶ÔÏßÏÂÁãÊÛСµê£¨±ãÀûµê/С³¬ÊУ©ÍƳöµÄÒ»¸öΪ³ÇÊÐÉçÇøÁãÊÛµêÌṩ¶©»õ¡¢ÎïÁ÷¡¢ÓªÏú¡¢ÔöÖµ·þÎñµÈµÄ»¥ÁªÍøÒ»Õ¾Ê½½ø»õƽ̨£¬ÊµÏÖ»¥ÁªÍø¶ÔÏßÏÂÁãÊÛÒµµÄÉý¼¶£¬Í¬Ê±Ò²ÎªÓÐÖ¾ÓÚÏßÉÏÏßÏÂÁãÊÛÒµµÄ´´ÒµÈºÌåÌṩ´´ÒµÆ½Ì¨¡£
Õû¸öƽ̨µÄ¼Ü¹¹Í¼ÈçÏÂËùʾ£¬ÊÇÒ»¸öÁ÷Åú·ÖÀëÇÒÒÔÀëÏßΪÖ÷µÄ¼Ü¹¹¡£ÁãÊÛͨÊý¾ÝÍŶӸºÔð¶ÔÀëÏßMaxComputeÊý²ÖºÍʵʱFlinkÊý²ÖµÄ½¨ÉèºÍά»¤£¬¶ÔÄÚ²¿Ð¡¶þºÍÍⲿÉú̬»ï°éÌṩ¾ö²ßÖ§³Ö£¬Êý¾Ý·þÎñºÍÊý¾Ý²úÆ·½¨Éè¡£

ÒòΪHologresÓëMaxComputeÓÐ׿«ºÃµÄ¼æÈÝÐÔ£¬²¢ÇÒÄܹ»¶ÔMaxComputeºÁÃë¼¶¼ÓËÙ£¬²ÆÄê³õÁãÊÛͨÊý¾ÝÍŶÓ×÷ΪҵÎñÊý¾ÝÖÐ̨»ùÓÚHologresÔÚÒµÎñÉϽøÐÐÁË´óÁ¿µÄ³¢ÊÔ£¬°üÀ¨ÊµÊ±Êý²Ö¹«¹²²ã£¬ÀäÈÈ»ìºÏ¼ÆË㣬²éѯ¼ÓËٵȳ¡¾°£¬ÒòΪHologresµÄ¼ÓÈ룬ÏàͬµÄÐèÇóÁ¿£¬ÒÔǰµÄ¼Ü¹¹ÐèÒª2Ìì²ÅÄÜÍê³É£¬¶øÏÖÔÚÔÚ2СʱÄÚ¾ÍÄÜÍê³É£¬´ó´óÌáÉýÁË¿ª·¢Ð§ÂÊ£¬µÃµ½ÁËÑз¢ÃǵÄÒ»ÖÂºÃÆÀ¡£
Ììè˫11¶ÔÓÚÁãÊÛͨÍŶÓÀ´ËµÒ²ÊÇÈ«Äê×î´óµÄÒ»³¡Õ½ÒÛ£¬Êý¾ÝÏìÓ¦ÐèÒª¸üʵʱ£¬µ«Ò²»áÏàÓ¦Ôö¼Ó¸ü¶àµÄ¸öÐÔ»¯Ö¸±ê£¬ÒµÎñÃæÁÙµÄÌôÕ½Ò²»á¸ü´ó¡£»ùÓÚHologresÈÕ³£ÔÚÒµÎñµÄÓÅÐã±íÏÖ£¬ÍŶÓÒ²¾ö¶¨Ê¹ÓÃHologres×÷Ϊ˫11ºËÐÄ¿ª·¢²úÆ·£¬Ó¦ÓÃÓÚË«11ºËÐij¡¾°°üÀ¨ÓªÏú»î¶¯ÖÐÐÄ£¬ÊµÊ±Êý¾Ý´óÆÁµÈ¡£
ÔÚ10Ô·ݶÔÈ«Á´Â·½øÐÐÁ˼¸´Îѹ²â£¬HologresÔÚ100%ѹ²âѹÁ¦ÏÂCPUºÍÄÚ´æ×ÊÔ´ÔÚ100%ÏßÉÏÅÇ»²£¬ÊôÓÚѹÏßͨ¹ý¡£±¾ÒÔΪÄÜ˳Àûͨ¹ý´ó´Ù¿¼Ñ飬µ«ÔÚ2020-11-01ÕâÌ죬Hologres²¢Ã»Óп¸×¡ÒµÎñ·åÖµ£¬ÔÚ´óÁ¿²éѯQPSºÍ¸ß²¢·¢µÄÊý¾ÝдÈë·åֵϣ¬RTÑÓ³ÙÒ»¶È´ïµ½90Ã룬ûÓдﵽԤÆÚ¡£
ʺóÕë¶ÔHologres½øÐÐÁËÕûÌåµÄ¸´ÅÌ£¬²¢ÔÚHologresÍŶӵÄÖ§³ÖÏ£¬Í¨¹ýÕûÌå½á¹¹µÄµ÷ÕûÒÔ¼°Ïà¹ØÐÔÄܵ÷ÓÅ£¬ÕûÌåÐÔÄÜÌáÉýÁË10±¶+£¬¿¸×¡ÁËÕû¸öË«11ÆÚ¼äµÄÁ÷Á¿ºé·å£¬ÎªË«11»®ÏÂÁËÔ²Âú¾äºÅ¡£
ʺóÎÒÃÇÕë¶ÔÕû¸öʼþ×öÁËÈ«Á´Â·¸´ÅÌ£¬·¢ÏÖÖ÷ÒªÎÊÌ⻹ÊdzöÔÚ¶ÔÓÚHologresµÄÔÀíÁ˽ⲻ¹»ÉîÈ룬°üÀ¨¼¼ÊõÔÀí¡¢Table
Group¡¢±í½á¹¹Éè¼ÆµÈ£¬µ¼ÖÂijЩÓ÷¨»¹²»ÊÇ×îÓÅ£¬ÕâÒ²µ¼ÖÂÔÚʵ¼ÊÒµÎñ³¡¾°ÖУ¬HologresµÄÐÔÄÜûÓз¢»Óµ½×î´ó»¯¡£
ÎÒÃǽ«»áͨ¹ý´ËÎĽ²Ëß°¢Àï°Í°ÍÁãÊÛͨÍŶÓÈçºÎ¸ù¾ÝÒµÎñ³¡¾°ºÏÀíµÄÉè¼ÆHologresʵʱÊý²Ö£¬°üÀ¨±í½á¹¹¡¢Table
GroupÉè¼ÆµÈ£¬ÒÔµ½´ï¸üÓŵÄÐÔÄܱíÏÖ¡£Ò²Ï£Íûͨ¹ý´ËÎĶÔHologresÐÂÓû§Æðµ½Ò»¶¨µÄ°ïÖú×÷Óã¬Í¨¹ýºÏÀíµÄ×ÊÔ´ÀûÓÃʵÏÖʰ빦±¶µÄÐÔÄÜЧ¹û¡£
11ÔÂ1ÈÕÏÖ³¡»¹Ô
Ê×ÏÈÎÒÃÇÏÈÀ´»¹ÔÒ»ÏÂ11ÔÂ1ÈÕµÄÏÖ³¡·´À¡£¬ÒÔ¸üÖ±¹ÛµÄ·½Ê½À´¿´¿´µ±Ê±Hologres³ÐÊܵÄѹÁ¦ºÍÏà¹Ø±íÏÖ£¨×¢£º¼à¿ØÒ³ÃæÎªHologresÔÚ°¢ÀïÄÚ²¿µÄ¼à¿ØÒ³Ã棬Ó빫ÓÐÔÆµÄ¼à¿ØÒ³ÃæºÍÖ¸±êÏîÂÔÓв»Í¬£©£º
²éѯQPS: ÿÃëÍê³ÉQueryµÄÊýÁ¿£¬Ò»°ã´ú±íÊý¾Ý¿âÐÔÄܺÍѹÁ¦£¬23:30ºóµÄÔö³¤´ú±íѹÁ¦¸ººÉÔö³¤£¨ÒµÎñ·½¿ªÊ¼´óÁ¿¹Ø×¢/²éѯ±¨±í£©£¬00:15·ÖµÄÖè½µ´ú±íÐÔÄܽµµÍ£¬1µãÖ®ºóµÄ½µµÍ´ú±íÒµÎñˮλϽµ¡£
²éѯÑÓ³Ù£¨RT£©£º15·Ö×óÓÒ¶¸Éýµ½25s£¬´ó¸Å³ÖÐø15·ÖÖÓ£»Hologres³¬¸ººÉÔË×÷£¬ÐÔÄÜϽµ¡£

CPUʹÓÃÂÊ£º´ú±íÕýÔÚÔËתµÄcoreÊýÁ¿¡£ÎÒÃǵÄʵÀýÓм¸°Ù¸öcoreÓÃÓÚ¼ÆË㣬µ«ÔÚ·åÖµÑÏÖØ³¬¸ºÔØ50%+£»
Woker CPUʹÓÃÂÊ£ºWokerµÄCPU¸ºÔØÇé¿ö£¬ºÍCPUʹÓÃÂÊ»ù±¾Ò»Ö£¬·åÖµ³¬¸ºÔØ50%+¡£
ÕâÁ½¸öÖ¸±ê´ú±í´óÁ¿Query½«»áÎÞ·¨¼°Ê±´¦Àí£¬ÔÚ¶ÓÁÐÖеȴý£¬ÑÓ³Ù½«»á½Ï´óÔö¼Ó£¬ÊµÀýÒ²ÓÐÍ£°ÚµÄ·çÏÕ¡£
[ͼƬÉÏ´«Ê§°Ü...(image-84f10a-1609380824254)]
BlinkдÈëRPS£º´ú±íÿÃëʵʱÊý¾ÝµÄдÈëÁ¿£¬0µãÊÇʵʱ¶©µ¥Ð´ÈëµÄ·åÖµ¡£µ±Ê±Óн϶àÊý¾Ýµ¼È룬¶ÔWorker²úÉú½Ï´óµÄ¸ººÉ£¬Ó°ÏìʵÀýÐÔÄÜ£¨±ÈÈçRT£¬CPUʹÓÃÂʵȣ©£¬ËùÒÔ¶Ô²¿·ÖblinkдÈë½Å±¾²ÉÈ¡½ô¼±½µ¼¶²Ù×÷£¬·åÖµ¹ýºó1:10»Ö¸´½µ¼¶£¬²úÉúµÚ¶þ²¨½Ï´óµÄдÈë¡£

ÎÊÌⶨλºÍÓÅ»¯ÊÖ¶Î
ÔÚHologresÍŶӵİïÖúÏ£¬¾¹ý·´¸´µÄÅŲ飬·¢ÏÖÎÊÌâÖ÷ÒªÓÐÒÔϼ¸¸öÔÒò£º
1£©Ö÷ÒªÎÊÌâ: Table Group&ShardsÊýÉèÖò»ºÏÀí£¬Ôڸ߲¢·¢¶ÁÈ¡ºÍдÈë·åֵʱ£¬Ôì³É¼¯Èº×ÊÔ´À˷ѺÍÐÔÄÜϽµ
ÁãÊÛͨHologresʵÀý×ܼÆÓм¸°ÙcoreµÄ¼ÆËã×ÊÔ´£¬¼¸TBµÄÄÚ´æ×ÊÔ´£¬ºÍÊ®¼¸TBµÄ´æ´¢×ÊÔ´¡£ÔÚʵÀý´´½¨ºó»á¸ù¾ÝʵÀý¹æ¸ñÉú³ÉĬÈÏÊýÁ¿µÄTable
Group£¬È»ºóÿ¸öTable Group»á×Ô¶¯´´½¨¶ÔÓ¦µÄShardÊý£¨°´ÕÕÏÖÓеĹæ¸ñ£¬ShardÊýÓÐ300¸ö£©£¬ÊµÀýÖд洢µÄ±í¶¼»á±»Ä¬ÈÏ·Ö·¢ÖÁÕâЩShardÖС£
¿ª·¢ÊӽǵÄTable GroupºÍShard
Ê×ÏÈ£¬ÏÈ´Ó¿ª·¢ÕßÊÓ½ÇÀ´Àí½âÒ»ÏÂTable GroupºÍShardµÄÏà¹Ø¸ÅÄîºÍÔÀí£º
ÔÚHologresÖУ¬1¸öDB°üº¬¶à¸öTable Group£¬Ã¿¸öTable Group°üº¬¶à¸öTable£¬Ã¿¸öTableÖ»ÄÜÊôÓÚÒ»¸öTable
Group¡£Ò»¸öTable GroupΨһ¶ÔÓ¦Ò»×éShard£¬ÓÉÕâ×éShardÀ´¸ºÔðÆäÖбíµÄÊý¾Ý´æ´¢ºÍ²éѯ£¬Æä°üº¬µÄShard¸öÊý³ÆÎªShard
Count£¬Table GroupÒ»µ©½¨Á¢£¬ShardÊý²»¿Éµ÷Õû¡£
Ò»¸öTable GroupÓµÓеÄShardÊýÁ¿£¨¼´Shard Count£¬ºóͬ£©ÊÇËüµÄÒ»¸öÖØÒªÊôÐÔ¡£ShardÊý¶àµÄTable
Group£¬ÆäÊý¾ÝдÈëºÍ²éѯ·ÖÎö´¦Àí¿ÉÒԵõ½¸ü´óµÄ²¢Ðжȣ¬Ò»¶¨·¶Î§ÄÚ£¬Ôö´óShardÊý¿ÉÒÔ¼Ó¿ìÊý¾ÝдÈëºÍ²éѯ·ÖÎöµÄËÙ¶È£¬µ«ShardÊýÒ²²¢·ÇÔ½¶àÔ½ºÃ£¬¸ü¶àShardÊýÐèÒª¸ü¶àµÄ½Úµã¼äͨÐÅ×ÊÔ´¡¢¼ÆËã×ÊÔ´ÒÔ¼°ÄÚ´æ×ÊÔ´£¬ÔÚ×ÊÔ´²»Âú×ãµÄʱºò£¬»òÕßQueryºÜСʱ¿ÉÄܻᵼÖÂÊÊµÃÆä·´µÄЧ¹û¡£

ÔÙ½áºÏ¾ßÌåµÄÒµÎñ³¡¾°£¬µ±Ò»¸öË«±íJoinµÄSQLÖ´ÐÐʱ£¬°´ÕÕÏÖÓÐShardÊý£¬Ö´Ðмƻ®»á²úÉúÒ»¸ö300*300
ShardµÄµÑ¿¨¶û»ý£¨Á½ÕÅ±í¶¼±»·ÖÉ¢300·Ý£©£¬ÕâÔÚshuffle½×¶Î¶ÔCPUºÍÄÚ´æ²úÉú¾Þ´óµÄѹÁ¦£¬Ò²¾ÍÒâζ×ÅÐèÒª¸ü¶àµÄ½Úµã¼äͨÐÅ×ÊÔ´¡¢¼ÆËã×ÊÔ´ÒÔ¼°ÄÚ´æ×ÊÔ´¡£³ý´ËÖ®Í⣬µ¥±íµÄÊý¾ÝËæ»ú·ÖÉ¢µ½300¸öShardµÄ¹ý³ÌÖÐÈÝÒ׳öÏÖÊý¾ÝÇãбµÄÎÊÌ⣬ÈçÏÂͼËùʾ

ÉèÖÃTable GroupºÍShard½¨Òé
ÁãÊÛͨÍŶӵÄÒµÎñ³¡¾°´ó¶¼ÊÇÊý¾ÝÁ¿Æ«ÉÙ¡¢±í´óСҲ·Ç³£²»¾ùÔÈ£¬¶ÔÓÚ±£ÕϵÄÓÅÏȼ¶Ò²²»Ò»Ö£¬ËùÒÔÉÏÃæ½«µÄËùÓÐ±í¶¼·ÅÔÚÒ»¸ö300¸öShardµÄTable
GroupÖжÔʵ¼ÊÒµÎñ²¢²»ÊÊÓã¬Õâ¾Íµ¼Öµ±Á÷Á¿Ôö´óʱ£¬Ã»Óа취ÓÐЧÀûÓÃHologresµÄLocal
JoinÄÜÁ¦£¬µ¼ÖÂCPUµÄ¿ªÏú¾çÔö¡£
ÕýÈ·µÄ×ö·¨Êǰ´ÕÕʹÓó¡¾°¡¢JoinƵ´Î¡¢±í´óС£¬·ÖÁÑÉè¼Æ³É²»Í¬µÄTable GroupÖдæ·ÅÊý¾Ý£»Ò»·½Ãæ¿ÉÒÔÌáÉý¼¯ÈºÐÔÄÜÌá¸ß¼ÆËãËÙ¶È£¬ÁíÒ»·½Ãæ¿ÉÒÔ½ÚÊ¡×ÊԴͬʱһ¶¨³Ì¶ÈÉÏʵÏÖ×ÊÔ´ºÏÀí·ÖÅä¸ôÀë¡£
н¨Table GroupµÄÔÔò£º
Êý¾ÝÁ¿¹ý´ó£¬¿Éн¨¶ÀÁ¢µÄ½Ï´óShardÊýµÄTable Group¡£µ±²ì¾õдÈëÐÔÄܱäÂý or ¶ÁÈ¡200ÍòÐÐÒ»¸öShardʱ½¨Òéн¨Table
Group£»
ÓдóÁ¿Êý¾ÝÁ¿ºÜСµÄ±í£¬¿ÉÊʵ±¶ÀÁ¢³öÒ»¸öСShardÊýµÄTable Group£¬¼õСQueryÆô¶¯¿ªÏú£»
ÐèÒªJoinµÄ±í£¬¾¡Á¿·ÅÔÚͬһ¸öTable Group£»
ΪTable GroupÉèÖúÏÀíµÄShardÊý£ºShardÊý²»ÊÇÔ½´óÔ½ºÃ£¬¹ý´óµÄShardÊý»áÔì³É×ÊÔ´µÄÀË·Ñ&¸ºÔعý¸ß£¬¹ýСµÄShardsÊý»áµ¼Ö´óÊý¾ÝÁ¿Ï¶ÁдÐÔÄܲ»×ãÒÔ¼°²»Äֵܵ²½Ï´óµÄ²¢·¢£¬ÏÂÃæÒ²ÊǾÑé×ܽá³öÀ´µÄShardÊýÉèÖ㨽ö¹©²Î¿¼£¬Êµ¼ÊÐèÒª¸ù¾ÝʵÀý¹æ¸ñºÍÒµÎñÒªÇóÀ´ÉèÖã©
²éѯÐÔÄÜÒªÇó£ºÈôÊÇÒµÎñ¶ÔÓÚ²éѯҪÇó½Ï¸ß£¬ShardÊýµÄÉèÖÃÊDZíÔÚSQLÖÐɨÃèµÄ·ÖÇø·¶Î§ÄÚµÄ×ÜÐÐÊýµÄ¾ùÖµ/200Íò
= 1 Shard
дÈëÐÔÄÜÐèÇó£ºShardÊýºÍÊý¾ÝдÈëÐÔÄܳÊÒ»¶¨µÄÕýÏà¹ØÐÔ£¬µ¥¸öShardµÄдÈëÄÜÁ¦ÊÇÏà¶Ô¹Ì¶¨µÄ£¬ShardÔ½¶à£¬Ð´ÈëµÄ²¢·¢Ô½¶à£¬Ð´ÈëµÄÍÌÍÂÔ½¸ß¡£Òò´Ë£¬Èç¹û±íÓнϸßRPSµÄдÈëÐèÇó£¬ÐèÒªÔö´óShardÊý¡£
¾ßÌåÍêÕûµÄ¼ÆËã·½·¨²Î¿¼ ÈçºÎÑ¡ÔñºÏÊʵÄShardÊý£¬Ò²¿ÉÒÔ×ÉѯHologres¼¼ÊõС¸ç¡£
Table GroupÖØ¹¹Éè¼Æ
Õë¶ÔTable GroupµÄÉè¼Æ£¬ÁãÊÛͨ¶Ôµ±Ç°HologresʵÀýµÄÆÚ´ýÊÇ×÷Ϊ·ÖÎöÐÍOLAPʵʱÊý¾Ý¿â£¬ÔÚ²ÆÄê²»À©³ä×ÊÔ´µÄÇé¿ö϶ÔÏÖÓбíºÍÒµÎñÐèÇóÊáÀíºóÓÐÒÔÏÂËßÇó£º
´æ·ÅÊý²ÖÖй«¹²Ã÷ϸ²ã£¬¹«¹²»ã×ܲ㣬ά±í£»²¢ÄܶԹ«¹²²ã½ÏÃ÷ϸµÄÊý¾Ý½øÐпìËÙ·ÖÎö&¿ª·¢£¨Local
Join£©£»±íµ¥·ÖÇøÒ»°ãÔÚÊýǧÍòÐÐÁ¿¼¶
ÓªÏú»î¶¯·ÖÎöÊý¾Ý²úÆ·µÄ½Ó¿Ú²ã´æ´¢£¬±í¸ñÐÐÊý½ÏÉÙÒ»°ãÔÚµ¥·ÖÇø3000ÐÐÒÔÏ£¬±í¸ñÊýÁ¿½ÏÉÙ£¨10¸öÒÔÏ£©µÄLocal
Join£¬²¢·¢½Ï¸ßµ«²»Ì«»áºÍÍⲿ±í¸ñƵ·±¹ØÁª
¾Óª¹ÜÀíÖÐÐÄÊý¾Ý²úÆ·µÄ½Ó¿Ú²ã´æ´¢£¬±í¸ñÐÐÊý½Ï´ó£¬µ¥·ÖÇø¿ÉÒÔµ½4ÒÚÐУ¬²»ÐèÒªin£¬Ò»°ã×öÁé»î¶àά¶È»ã×Ü£¬²¢·¢½ÏµÍ
ÉÌÆ·ÆÀ¹ÀÖÐÐÄÊý¾Ý²úÆ·µÄ½Ó¿Ú²ã´æ´¢£¬±í¸ñÐÐÊýµ¥·ÖÇøÇ§ÍòÐУ¬Ò»°ã²»ÐèÒªJoin£¬²»ÐèÒª»ã×Ü£¬µ«ÐèÒª¸ù¾ÝÌõ¼þÔÚwhereÖнøÐÐÃ÷ϸɸѡ
×îºó¾ö¶¨ÉèÁ¢4¸öTable Group£º
¹«¹²²ãTG£º ´æ·Åά±í£¬Ã÷ϸ±í£¬¹«¹²»ã×Ü±í£¬Local Join ÒÔ¼°»ã×Ü£¬·ÖÅä½Ï¶à×ÊÔ´
ÓªÏú+´óÆÁTG£º´óÆÁ¼°ÓªÏú»î¶¯Ó¦Óã¬Êý¾ÝÁ¿½ÏÉÙ£¬Ö÷ÒªÓÃÓÚÀúÊ·¶Ô±È£¬ÊµÊ±Ó¦Óò¢·¢¶Áд½Ï´ó£»²ÉÓÃ20¸öShard,
֮ǰ300¸öShardÊǼ«´óµÄ×ÊÔ´ÀË·Ñ
¾Óª¹ÜÀíÖÐÐÄTG£º¾Óª¹ÜÀíÖÐÐĸ÷Ã÷ϸÁ£¶È±í¸ñ£¬ÉèÖÃ50¸öShard
ÉÌÆ·orÐÐÒµTG£º´æ·ÅÉÌÆ·ºÍÀàÄ¿½á¹ûÊý¾Ý£¬ÉèÖÃ40¸öShard

2£©´ÎÒªÎÊÌâ1£º±í½á¹¹Éè¼Æ
Êý²Ö½¨ÉèÖУ¬×îÖØÒªµÄÒ»¸ö»·½Ú¾ÍÊǺÏÀíµÄÉè¼Æ±í½á¹¹£¬°üÀ¨±íµÄÊý¾ÝÀàÐÍ¡¢±íµÄË÷ÒýµÈ¡£ÓÈÆäÊÇË÷Òý£¬ºÏÀíµÄË÷ÒýÉè¼Æ½«»áÌá¸ß¼¸±¶ÉõÖÁ¼¸Ê®±¶µÄÐÔÄÜ¡£Í¨¹ýÖØÐÂÊáÀí±í½á¹¹£¬·¢ÏÖÒµÎñ²¢Ã»ÓкÏÀíµÄÉèÖñíË÷Òý£¬ÕâÊǵ¼ÖÂÐÔÄܲ»·ûºÏÔ¤ÆÚµÄÔÒòÖ®Ò»£¬ÓÚÊÇÎÒÃÇÒ²¶ÔË÷Òý½øÐÐÁ˸ÄÔì¡£ÖµµÃ×¢ÒâµÄÊÇ£¬µ±Ç°ºÍÊý¾Ý²¼¾ÖÓйصÄË÷ÒýµÄ½¨Á¢±ØÐëÒªÔÚ½¨±í³õÆÚÍê³É£¬ºóÃæ²»¿ÉÒÔ¸ü¸Ä/ÐÂÔö£¬¶ÀÁ¢ÓÚÊý¾Ý²¼¾ÖµÄË÷Òý£¬±ÈÈçbitmap£¬¿ÉÒÔºóÃæÔÙ°´ÐèÐ޸ġ£ËùÒÔÐèÒªÌáǰ¸ù¾Ý³¡¾°Éè¼ÆºÃ±í½á¹¹£¬ÒÔÃâ×öÖØ¸´¹¤×÷¡£
distribution_key
Èç¹û´´½¨ÁËPrimary KeyË÷Òý£¨Ò²ÊÇΨһÐÔÔ¼Êø£¬ÓÃÓÚÊý¾Ý¸üУ©£¬Ä¬ÈÏΪdistribution_key¡£Distribution_keyÈç¹ûΪ¿Õ£¬Ä¬ÈÏÊÇËæ»ú·Ö·¢¡£
Èç¹ûdistribution_keyÉèÖò»ºÏÀí£¬Êý¾Ý»á²»¾ùÔÈ·Ö²¼ÓÚShardÖС£¼ÆËã¹ý³ÌÖлá²úÉúRedistribute
MotionËã×ÓÊý¾ÝÖØÐ·ֲ¼´òÉ¢£¬´øÀ´ÈßÓàµÄÍøÂ翪Ïú¡£ ÈçÉèÖúÏÀí£¬Ôò¿ÉÒÔ±ÜÃâÕâÖÖÇé¿ö¡£
ͨ³£ÉèÖùØÁª£¨Join£©µÄÁлòGroup byµÄÁлò·ÖÉ¢¸üËæ»úµÄÁÐ×÷Ϊdistribution_key£¬À´¾¡Á¿´òÉ¢Êý¾Ýµ½²»Í¬µÄShard¡£Çë×¢ÒâÕâÀïÑ¡Ôñµ¥ÁÐ×÷Ϊdistribution_key¼´¿É¡£
Segment_key
·Ö¶Î¼ü£¬ÓÃÓÚÎļþ¿éµÄ±ß½ç»®·Ö£¬²éѯʱ»ùÓÚSegment_key¿ÉÒÔ¿ìËÙ¶¨Î»Êý¾ÝËùÔÚÎļþ¿é£¬Ñ¡ÔñÓëдÈëʱ¼ä´ÁÏà¹ØµÄ×Ö¶ÎÔÚ²éѯʱÓмÓËÙµÄЧ¹û¡£Ò»°ãÓÃÓÚʱ¼ä´ÁÕâÑùµÄʱÐòÊý¾Ý£¬Segment_keyͨ³£Ö»ÓÃÒ»ÁУ¬×ñÑ×ó¶ÔÆëÔÔò¡£Segment_keyʹÓõÄÏÞÖÆ±È½Ï¶à£¬ÒªÇóÎļþÔÚÏòHologresдÈëʱÊǰ´ÕÕSegment_keyµÄ˳ÐòÅÅÐòÍê³ÉºóÔÙдÈ룬¼´selectºó°´ÕÕSegment_key½øÐÐorder_byÔÙдÈ룬²Å»áÉúЧ£»Ò»°ãÊÊÓÃÓÚ´¿ÊµÊ±Ð´ÈëµÄ×ÔÔö/Àà×ÔÔö×ֶΣ¨e.g.ϵ¥Ê±¼ä£©¡£
Clustering_key
¾Û´ØË÷Òý£¬ÊÇÎļþÄÚµÄÅÅÐòÁУ¬ÓÃÓÚ·¶Î§²éѯ£¨RangeQuery£©µÄ¿ìËÙ¹ýÂË¡£ÓëMySQLµÄ¾Û´ØË÷Òý²»Í¬£¬HologresÓÃÀ´²¼¾ÖÊý¾Ý£¬²»ÊDz¼¾ÖË÷Òý£¬Òò´ËÐÞ¸ÄClustering_key£¬ÐèÒªÖØÐÂÊý¾Ýµ¼È룬ÇÒÖ»ÓÐÒ»×éClustering_key£¬Ò»°ãClustering_key²»³¬¹ý2ÁС£Í¨³£½¨Ò齫whereÌõ¼þÀïÃæµÄɸѡÁÐÉèÖÃΪClustering_key
Bitmap
λͼË÷Òý£¬¶ÔÓÚµÈÖµ¹ýÂ˳¡¾°ÓÐÃ÷ÏÔµÄÓÅ»¯Ð§¹û£¬¶à¸öµÈÖµ¹ýÂËÌõ¼þ£¬Í¨¹ýÏòÁ¿¸ßЧ¼ÆËã; ÊÊÓÃÓÚÑÆ±äÁ¿£¨»ùÊýµÍ£©µÄÁУ¬Ï൱ÓÚÑÆ±äÁ¿Ò»Áбä¶àÁеÄʵÏÖ¡£
Dictionary_encoding
×Öµä±àÂëÁÐË÷Òý£¬¿ÉÒÔ½«×Ö·û´®µÄ±È½ÏתΪÊý×ֵıȽϣ¬¶ÔÓÚ×Ö·û´®ÀàÐÍ¿ÉÒÔÓÐЧѹËõ£¬ÌرðÊÇ»ùÊýµÍµÄÁУ¬´ïµ½¼ÓËÙGroup
by£¬FilterµÄЧ¹û¡£HologresÔÚ½¨±íʱ»á×Ô¶¯¸øtextÀàÐͼÓÉÏBitmapË÷ÒýºÍ×Öµä±àÂëÁÐË÷Òý£¬ÒÔʵÏÖ¸üÓŵÄÐÔÄÜ£¬µ«ÊÇÐèҪעÒâµÄÊÇ£¬ÔÚ²»Âú×ãÐèÒªµÄ³¡¾°ÏÂÐèÒª¸ù¾ÝÒµÎñ³¡¾°Ìí¼Ó»òɾ³ýÏàÓ¦µÄË÷Òý£¬ÒòΪdictionary_encoding»áÏûºÄ±àÂë½âÂëµÄ×ÊÔ´¡£
ÏÂͼÊÇHologresË÷ÒýÆ¥ÅäÔÔò£¬¿ÉÒÔͨ¹ý¸ÃͼÁ˽âÒ»ÏÂË÷ÒýµÄÖ´ÐÐÔÀí£º

¿ÉÒÔͨ¹ýÖ´ÐÐanalyze²ÎÊý£¬À´»ñÈ¡±íµÄͳ¼ÆÐÅÏ¢£¬°ïÖúHologresÔÚ¶ÁÈ¡¼ÆËãʱ½«Ö´Ðмƻ®ÓÅ»¯¡£
ÏÂÃæ½áºÏ¾ßÌåµÄʾÀýչʾÔõÑùÓÅ»¯±í½á¹¹£º

table1ÊÇÒ»¸öÊýǧÍòµ½ÒÚÐеÄÃ÷ϸ±í£¬¶ÔÆäËû±í£¨Î¬±í£©ÓÐÆµ·±Local JoinµÄÐèÇ󣬺ͽϴóµÄ²¢·¢Ð´È룻
1£©¸ù¾ÝÒµÎñ²éѯºÍдÈëÐèÇ󣬽«±í·ÅÔÚ¹«¹²²ãµÄTable GroupÖв¢·ÖÅä60¸öShardÀ´Âú×ã¶ÁдÐèÇó¡£
2£©ÒòΪÊÇÃ÷ϸ±í£¬ÓдóÁ¿µÄ¹ØÁªºÍµÈÖµ/ɸѡ³¡¾°£¬Ìí¼ÓÁ˽ÏÎªÈ«ÃæË÷ÒýÅäÖãº
·ÖÎö³¡¾°Ó¦Óý϶࣬ÓдóÁ¿¾ÛºÏ£¬Group by²Ù×÷£¬Ñ¡ÔñÁд档
distribution_key£ºÕý³£À´½²Ó¦¸ÃÂú×ã³£ÓÃJoinµÄÁÐ+Äܾ¡Á¿·ÖÉ¢µÄÁÐ×÷Ϊdistribution_key£»ÕâÕűí×÷ΪÃ÷ϸ±í£¬ºÜ¶àÁж¼»áÓÃÓÚ¹ØÁª£¬ËùÒÔ²»Ì«ºÃѡһ¸ökey³öÀ´£¬Ñ¡¶à¸ökeyµÄ»°·´¶ø»áÔì³ÉÐÔÄÜϽµ£¨ÒªÈ«²¿key¶¼±»Ê¹ÓòÅÓÐЧ£©£¬×îºó¾ö¶¨Ñ¡Ôñ½Ï·ûºÏÌõ¼þµÄid3×÷Ϊdistribution_key£»
ÕâÀïÏñid1ºÍid2ÊÇÑÆ±äÁ¿×ֶΣ¬ÊʺÏͬʱÅäÖÃBitmapË÷ÒýºÍ×Öµä±àÂëÁÐË÷Òý£¬·½±ãGroup by
ºÍµÈÖµ²éѯ£»
¶ÔÓÚÈÕÆÚ£¨ds£©ÉèÖÃΪ·ÖÇø×ֶΡ£Ã÷ϸ±íÔÚ²éѯºÍʹÓÃʱÈÕÆÚ¶¼ÊDZز»¿ÉÃâµÄ×ֶΣ¬Í¨¹ýÉèÖ÷ÖÇø£¬¿ÉÒÔÓÐЧËõСÿ´Î²éѯµÄɨÃ跶Χ£»ÁíÒ»·½ÃæÒ²¿ÉÒԽϰ²È«µÄ½øÐÐÔËάºÍÅŲéÎÊÌâ¡£
µ±Ç°±í²»ÊÊÓÃSegment_key£¬ÒòÊý¾ÝÀëÏß/ʵʱÁ½ÖÖ²åÈëģʽ£¬ÅÅÐò³É±¾½Ï¸ß£¬Ôݲ»ÉèÖá£
¶ÔÓÚClustering_key£¬°´ÕÕʹÓÃÆµ´Î£¬Ä¿Ç°µÄÑ¡ÔñÊÇid1+id2¡£
×îÖÕDDLÈçÏ£¨ÒòÉæ¼°ÒµÎñÃô¸ÐÊý¾Ý£¬Ö»Õ¹Ê¾²¿·ÖDDL£©£º
BEGIN;
CREATE TABLE public.table1
(
"stat_date" text,
"id0" text,
.....,
"id3" text,
"id2" text,
"name2" text,
...,
"id1" text,
....,
"ds" text NOT NULL
)
PARTITION BY LIST (ds);
--Èç¹ûÊÇÓÃÀ´Ð½¨TableGroup,ÔòÐèÒªÏÂÃæµÚÒ»¾ä£¬ÒÑÓÐTableGroupÔò²»ÐèÒª
call set_table_property('table1',
'shard_count', '60');
CALL set_table_property('table1',
'distribution_key', 'id3');
CALL SET_TABLE_PROPERTY('public.table1',
'orientation', 'column');
CALL SET_TABLE_PROPERTY('public.table1',
'clustering_key', 'id1,id2');
CALL SET_TABLE_PROPERTY('public.table1',
'bitmap_columns', '...,id1,id2,...');
CALL SET_TABLE_PROPERTY('public.table1',
'dictionary_encoding_columns', '...,id1,id2,...');
CALL SET_TABLE_PROPERTY('public.table1',
'time_to_live_in_seconds', '7776000');
COMMIT; |
3£©´ÎÒªÎÊÌâ2£ºÓ¦Óûº´æ
¶ÔÓÚÖØÒª¸ßƵ±¨±íÌí¼ÓºÏÊʵĻº´æÀ´»º½âÊý¾Ý¿âѹÁ¦£¬ÀëÏß±¨±í¿ÉÒÔÉèÖÃʱ¼ä½Ï³¤µÄ»º´æ£¬ÊµÊ±±¨±í¿ÉÒÔ¿¼ÂÇÔÚÓ¦ÓöËÔö¼Ó
5s, 10s, 30s£¬1minµÈ¶à¸öµµÎ»µÄ»º´æ¡£
4£©´ÎÒªÎÊÌâ3£º²»ºÏÀíѹ²â¼Æ»®
ÔÚ֮ǰ¼¸´ÎÈ«Á´Â·Ñ¹²âÖУ¬¶ÔÓÚHologresʵÀý½øÐжÁºÍ²éµÄ¶à·½ÃæÑ¹²â£¬ËäȻѹ²â¶ÁµÄÁ¿µ½Î»ÁË£¬µ«ÊÇûÓÐͬ²½Ñ¹²âÊý¾Ý¿âдÈë·åÖµ£¬ÔÚʵ¼Ê³¡¾°ÖжÁµÄÐÔÄÜ»áÊܵ½Ð´ÈëÊý¾ÝºéÁ÷µÄѹÁ¦ºÍÓ°Ï죻ÓÈÆäHologres´æÔÚÁ½ÖÖÖ÷ÒªµÄдÈ뷽ʽ£¨Íâ±íͬ²½ÄÚ±í£¬ÊµÊ±Ð´ÈëÄÚ±í£©£»ÔÚѹ²âºÍʵ¼ÊʹÓõĹý³ÌÖÐÐèÒªÌØ±ð×¢Òâ¶Áд·åÖµÒ»Æðѹ²â¡£
ÓÅ»¯ºóÒµÎñЧ¹û
ͨ¹ýÓÅ»¯ºó£¬ÔÚË«11ÕâÌì0µãµÄÁ÷Á¿¸ß·åÆÚ£¬ÔÚ0µãдÈëºÍQuery¶Áȡͬʱ´ïµ½ÒµÎñ·åÖµµÄÇé¿öÏ£¬HologresÖ§³ÖµÄÊý¾Ý²úÆ·µÄRTƽ¾ùÏìӦʱ¼äÎȶ¨ÔÚ100ms×óÓÒ£¬ÎªÊ¹ÓÃÊý¾Ý²úÆ·µÄÒµÎñͬѧ/·ÖÎöͬѧ£¬ÔÚË«11ÌṩÎȶ¨ºÁÃë¼¶µÄʵʱOLAP¾ö²ßÊý¾ÝÖ§³Ö¡£Í¬Ê±Ò²·Ç³£Æ½ÎȵÄÖ§³ÖÁËÓªÏú»î¶¯ÖÐÐÄ&ʵʱ´óÆÁµÈºËÐĵĸ߲¢·¢ÒµÎñ²úÆ·£¬ÒÔ¼°BIͬѧʵʱȡÊý·ÖÎöµÈ³¡¾°£¬CPUˮλÎȶ¨ÔÚ30%ÒÔÏ£¬ÄÚ´æË®Î»Ò²Îȶ¨ÔÚ50%ÒÔÏ¡£

ͬʱͨ¹ý±¾´ÎÌìè˫11£¬ÎÒÃÇÒ²·¢ÏÖHologres×÷ΪʵʱÊý¾Ý´æ´¢£¬ÔÚ·ÖÎö·½ÃæÓо޴óµÄDZÁ¦£¬ÔÚÂú×ãдÈëÐÔÄܵÄͬʱ£¬Ò»·½Ãæ¿ÉÒÔºÍÏÖÓÐÀëÏßÊý¾Ý¹ØÁª·ÖÎö£¬ÁíÒ»·½ÃæÊÇÄÜÖ§³Ö¸ßÐÔÄܵÄOLAP·ÖÎöÊý¾Ý¡£ÕâÒ²ÍŶӺóÐøÊ¹ÓÃHologres×÷ΪÊý¾ÝÍŶÓÐÂʵʱÊý²Ö¼Ü¹¹µÄºËÐÄ×é¼þµì¶¨ÁË»ù´¡¡£
ºóÐø¹æ»®
¾¹ýË«11Ö®ºó£¬Ñз¢ÍŶÓϸö½×¶Î½«ÀûÓÃHologres½øÐиü´ó·¶Î§µÄʵʱÊý²Ö¸ÄÔ죺
Hologres×÷ΪÐдæÊµÊ±¹«¹²²ã£¨Ìæ´ú֮ǰtimetunnel×÷ΪÐÂÖмä¼þ£©¿ª·ÅÏÂÓÎÊý¾Ý¿â¶©ÔÄ,
±£³Ö¶ÔÄÚÕû¸ö¼Ü¹¹ºÍ¶ÔÍâ¶à¸ö¼Ü¹¹µÄÊý¾ÝÒ»ÖÂÐÔ£¬ÒÔ¼°½â¾öʵʱ½á¹ûÊý¾ÝÔÚtimetunnelÖв»¿É¼û£¬¶þ´Î²Ù×÷³É±¾¸ßµÄÍ´µã¡£
ÏÂÓÎÓ¦Óò㶩ÔĹ«¹²²ãʵʱÊý¾Ý£¬Ó¦ÓòãÊý¾Ý°´ÕÕ±£Õϼ¶±ðºÍlocal_JoinµÄÐèÒª½øÐÐʵÀý¼¶±ð·Ö¸î£¬×ÊÔ´¸ôÀë¡£
¾ÙÀý£ºÒÔÇþµÀÊý¾Ý»¯ÊµÀýΪÀý£¬Õⲿ·ÖÊý¾Ý´ó²¿·Ö¶ÔÍ⿪·Å¸øCRMϵͳºÍÉú̬Èý·½ºÏ×÷»ï°é£¬¶ÔÒ»ÖÂÐÔ£¬¼°Ê±ÐԺͲ¢·¢¶¼ÓнϸߵÄÒªÇó£¬ÈÝÒ׳öÏÖÊý¾Ý¹ÊÕÏ£»ÔÚÊý¾Ý²ãÃæÉÏÒ²»áÓÐ½ÏÆµ·±µÄLocal
JoinËßÇó£»×ÛºÏÀ´¿´×÷Ϊµ¥¶ÀʵÀý·Ö¸î£¬°ü¸øÓè³ä×ãµÄ×ÊÔ´±£ÕÏ¡£

|