±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉܰ¢ÀïÔÆÔÆÔÉúÊý¾Ý²Ö¿âAnalyticDB MySQL°æ£¨ÒÔϼò³ÆAnalyticDB£©¹ýÈ¥¼¸ÄêÔÚµ¯ÐÔ·½ÏòÉϵÄ̽Ë÷ºÍ³É¹ûµÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×Ô °¢Àï¼¼Êõ£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
Ò» ±³¾°
Ëæ×ÅÔÆÊ±´úµÄµ½À´£¬Êý¾Ý¿âÒ²¿ªÊ¼Óµ±§ÔÆÊý¾Ý¿âʱ´ú£¬¸÷ÀàÊý¾Ý¿âϵͳ£¨OLTP¡¢OLAP¡¢NoSQLµÈ£©ÔÚ¸÷ÄÚÍâÔÆÆ½Ì¨£¨AWS¡¢Azure¡¢°¢ÀïÔÆ£©°Ù»¨Æë·Å£¬ÓпªÔ´µÄMySQL¡¢PostgreSQL¡¢MongoDB£¬´«Í³Êý¾Ý¿â³§É̵ÄSQLServer¡¢Oracle£¬ÔƳ§ÉÌ×ÔÑеÄAurora¡¢Redshift¡¢PolarDB¡¢AnalyticDB¡¢AzureSQLµÈ¡£ÓÐЩÊý¾Ý¿â»¹´¦ÓÚCloud
Hosting½×¶Î£¬½ö½öÊǽ«ÔÓмܹ¹Ç¨ÒƵ½ÔÆÖ÷»úÉÏ£¬ÀûÓÃÁËÔÆµÄ×ÊÔ´¡£ÓÐЩÊý¾Ý¿âÔòÒѾ½øÈëÁËCloud
Native½×¶Î£¬»ùÓÚÔÆÆ½Ì¨IAAS²ãµÄ»ù´¡ÉèÊ©£¬¹¹½¨µ¯ÐÔ¡¢serverless¡¢Êý¾Ý¹²ÏíµÈÄÜÁ¦¡£
¶þ ΪʲôҪ¼ÆËã´æ´¢·ÖÀë
MPP£¨Massive Parallel Processing£©¼Ü¹¹ÎªOLAPÀàÊý¾Ý¿â×îÆÕ±é²ÉÓõļ¼Êõ¼Ü¹¹¡£ÔÚMPP¼Ü¹¹Ï£¬¼ÆËã´æ´¢¹²ÏíÒ»¸ö½Úµã£¬Ã¿¸ö½ÚµãÓÐ×Ô¼º¶ÀÁ¢µÄCPU¡¢ÄÚ´æ¡¢´ÅÅÌ×ÊÔ´£¬»¥Ï಻¹²Ïí¡£Êý¾Ý¾¹ýÒ»¶¨µÄ·ÖÇø¹æÔò£¨hash¡¢random¡¢range£©£¬´òÉ¢µ½²»Í¬µÄ½ÚµãÉÏ¡£´¦Àí²éѯʱ£¬Ã¿¸ö½Úµã²¢Ðд¦Àí¸÷×ÔµÄÊý¾Ý£¬»¥ÏàÖ®¼äûÓÐ×ÊÔ´ÕùÇÀ£¬¾ß±¸±È½ÏºÃµÄ²¢ÐÐÖ´ÐÐÄÜÁ¦¡£
ÕâÖÖ½«´æ´¢×ÊÔ´¡¢¼ÆËã×ÊÔ´½ôÃÜñîºÏµÄ¼Ü¹¹£¬²»Ì«ÈÝÒ×Âú×ãÔÆÊ±´ú²»Í¬³¡¾°ÏµIJ»Í¬workloadÐèÇó¡£ÀýÈçÊý¾Ýµ¼ÈëÀàµÄÈÎÎñ£¬ÍùÍùÐèÒªÏûºÄ±È½Ï´óµÄIO¡¢ÍøÂç´ø¿í£¬¶øCPU×ÊÔ´ÏûºÄ²»´ó¡£¶ø¸´ÔÓ²éѯÀàÈÎÎñÍùÍù¶ÔCPUµÄ×ÊÔ´ÏûºÄ·Ç³£´ó¡£Òò´ËÃæ¶ÔÕâÁ½ÖÖ²»Í¬µÄworkload£¬ÔÚÑ¡Ôñ×ÊÔ´¹æ¸ñʱ£¬ÐèÒª½áºÏ²»Í¬µÄworkload·Ö±ð×ö²»Í¬µÄÀàÐÍÑ¡Ôñ£¬Ò²ºÜÄÑÓÃÒ»ÖÖ×ÊÔ´¹æ¸ñͬʱÂú×ãÕâÁ½ÖÖÀàÐÍ¡£ÒòΪҵÎñ²»Í£ÔÚ·¢Õ¹£¬workloadÒ²²»Í£Ôڱ仯£¬±È½ÏÄÑÌáǰ×öºÃ¹æ»®¡£
µ±ÒµÎñ·¢Õ¹£¬¶ÔCPU×ÊÔ´Ìá³öÁ˸ü¸ßµÄÐèÇó£¬ÎÒÃÇÀ©Èݼ¯ÈºÀ©³äCPU×ÊԴʱ£¬Ò²»áÒý·¢Êý¾ÝµÄreshuffle£¬Õâ»áÏûºÄ±È½Ï´óµÄÍøÂç´ø¿í¡¢ÒÔ¼°CPU×ÊÔ´¡£¼´±ãÊÇ»ùÓÚÔÆÆ½Ì¨¹¹½¨µÄÊý¾Ý²Ö¿â£¬ÔÚ²éѯµÍ·åÆÚʱ£¬Ò²ÎÞ·¨Í¨¹ýÊͷŲ¿·Ö¼ÆËã×ÊÔ´½µµÍʹÓóɱ¾£¬ÒòΪÕâͬÑù»áÒý·¢Êý¾ÝµÄreshuffle¡£ÕâÖÖñîºÏµÄ¼Ü¹¹£¬ÏÞÖÆÁËÊý¾Ý²Ö¿âµÄµ¯ÐÔÄÜÁ¦¡£
¶øÍ¨¹ý·ÖÀë´æ´¢×ÊÔ´¡¢¼ÆËã×ÊÔ´£¬¿ÉÒÔ¶ÀÁ¢¹æ»®´æ´¢¡¢¼ÆËãµÄ×ÊÔ´¹æ¸ñºÍÈÝÁ¿¡£ÕâÑù¼ÆËã×ÊÔ´µÄÀ©ÈÝ¡¢ËõÈÝ¡¢ÊÍ·Å£¬¾ù¿ÉÒԱȽϿìÍê³É£¬²¢ÇÒ²»»á´øÀ´¶îÍâµÄÊý¾Ý°áǨµÄ´ú¼Û¡£´æ´¢¡¢¼ÆËãÒ²¿ÉÒÔ¸üºÃµÄ½áºÏ¸÷×ÔµÄÌØÕ÷£¬Ñ¡Ôñ¸üÊʺÏ×Ô¼ºµÄ×ÊÔ´¹æ¸ñºÍÉè¼Æ¡£
Èý Òµ½çÇ÷ÊÆ
1 Redshift
×÷ΪAWSÉÏ×îÈÈÃŵÄÊý¾Ý²Ö¿â²úÆ·£¬Redshift²ÉÓõÄÊÇMPP¼Ü¹¹£¬ËüÒ²Ò»Ö±Íùµ¯ÐÔ·½ÏòÑݽø¡£RedshiftÓÚ2018Äê11ÔÂÍÆ³öµÄElastic
resize¹¦ÄÜ£¬Ïà±ÈÓÚclassic resize£¬ÆäÀ©ËõÈÝʱ¼ä´ó·ùϽµ¡£ÔÚ2019Äê11Ô½øÒ»²½ÍƳöÁËelastic
resize schedulingÈÃÓû§ÅäÖÃÀ©ËõÈݼƻ®À´´ïµ½×Ô¶¯µ¯ÐÔ¡£´ËÍ⣬RedshiftÔÚ2019Äê12ÔÂÕýÊ½ÍÆ³öÁËRA3ÐÎ̬£¬Ëü²ÉÓÃÁ˼ÆËã´æ´¢·ÖÀëµÄ¼Ü¹¹£¬Êý¾Ý´æ´¢ÔÚS3ÉÏ£¬¼ÆËã½ÚµãʹÓøßÐÔÄÜSSD×÷Ϊ±¾µØ»º´æ£¬¼ÓËÙ¶ÔÊý¾ÝµÄ·ÃÎÊ¡£ÔÚÕâ¸ö¼Ü¹¹Ï£¬¼ÆËã´æ´¢¿ÉÒÔ¶ÀÁ¢µ¯ÐÔ£¬¾ß±¸½ÏºÃµÄµ¯ÐÔÄÜÁ¦¡£
2 Snowflake
Snowflake´Óµ®ÉúµÄµÚÒ»ÌìÆð¾Í²ÉÓüÆËã´æ´¢·ÖÀë¼Ü¹¹£¬×÷Ϊ¿çÔÆÆ½Ì¨µÄÔÆÊý¾Ý²Ö¿â£¬ËüµÄ´æ´¢²ãÓɶÔÏó´æ´¢¹¹³É£¨¿ÉÒÔÊÇAWS
S3¡¢Azure BlobµÈ£©£¬¼ÆËã²ãÓÉvirtual warehouse£¨¼ò³ÆVW£©¹¹³É£¬Ã¿¸öÓû§¿ÉÒÔ´´½¨Ò»¸ö»ò¶à¸ö¶ÔÓ¦µÄVW£¬Ã¿¸öVWÊÇÓÉÈô¸É¸öEC2£¨AWSÉϵÄÐéÄâÖ÷»ú£©×é³ÉµÄ¼¯Èº¡£ÕâÑù¿ÉÒÔÁé»îµØ¸ù¾Ý²»Í¬workload£¬Îª²»Í¬Óû§´´½¨²»Í¬¹æ¸ñµÄVW£¬ÇÒÓû§Ö®¼ä¾ß±¸·Ç³£ºÃµÄ¸ôÀëÐÔ¡£»ùÓÚVWµÄÁé»îÐÔ£¬SnowflakeÖ§³ÖÁËVW
auto suspend¡¢resumeÒÔ¼°auto scaleÄÜÁ¦£¬Í¨¹ý¼ÆËã´æ´¢·ÖÀë´øÀ´µÄµ¯ÐÔÄÜÁ¦£¬¸øÓû§´øÀ´¡°pay-as-you-go¡±µÄʹÓÃÌåÑé¡£
ËÄ AnalyticDBµ¯ÐÔģʽ
ÓëRedshiftÀàËÆ£¬AnalyticDB×î³õÒ²ÊÇ»ùÓÚ´«Í³µÄMPP¼Ü¹¹À´¹¹½¨µÄ¡£2020Äê5Ô£¬AnalyticDBÍÆ³öÁ˼ÆËã´æ´¢·ÖÀë¼Ü¹¹µÄµ¯ÐÔģʽ¡£AnalyticDBµ¯ÐÔģʽ·ÖΪ½ÓÈë²ã¡¢¼ÆËã²ã¡¢´æ´¢²ã£¬ÆäÖнÓÈë²ã¼æÈÝÁËMySQLÐÒ飬°üº¬ÁËȨÏÞ¿ØÖÆ¡¢ÓÅ»¯Æ÷¡¢ÔªÊý¾Ý¡¢²éѯµ÷¶ÈµÈÄ£¿é£¬¸ºÔðÊý¾ÝʵʱдÈë¡¢²éѯ¡£

1 ´æ´¢²ã
ÔÚµ¯ÐԼܹ¹Ï£¬´æ´¢²ã¸ºÔðÊý¾ÝµÄʵʱдÈë¡¢Ë÷Òý¹¹½¨¡¢Êý¾ÝɨÃè¡¢ÏÂÍÆµÄν´Ê¼ÆË㣨¹ýÂË¡¢Áвüô¡¢·ÖÇø²Ã¼ôµÈ£©£¬²»ÔÙ¸ºÔð²éѯµÄ¼ÆËãÈÎÎñ¡£Êý¾ÝÔÚ´æ´¢²ãÒÀÈ»²ÉÓÃMPPµÄ·½Ê½×éÖ¯£¬Êý¾ÝÒÔhash¡¢randomµÄ·½Ê½ÔÚ·ÖÇø£¨shard£©¼ä¾ùÔÈ´òÉ¢£¬ÒÔ·ÖÇø(shard)·½Ê½¿ÉÒԷdz£·½±ãµØÊµÏÖÊý¾ÝµÄʵʱдÈëǿһÖ£¬¶øÔÚÊý¾ÝɨÃèµÄʱºò¿ÉÒÔʵÏÖshard¼¶µÄ²¢·¢¶ÁÒÔ±£Ö¤²¢·¢¡£Í¬Ê±´æ´¢²ãÌṩһÌ廯µÄÀäÈÈ·Ö²ã´æ´¢ÄÜÁ¦£¬Êý¾Ý¿ÉÒÔÈȱíµÄ·½Ê½´æÔÚ±¾µØSSD¡¢Àä±íµÄ·½Ê½´æ´¢ÔڵײãDFS£¬Òà»òÊÇÒÔÀäÈÈ»ìºÏ±íµÄÐÎʽ´æ·Å£¬ÊµÏÖÀäÈÈÊý¾ÝµÄ×Ô¶¯Ç¨ÒÆ£¬¡¶Êý¾Ý²Ö¿â·Ö²ã´æ´¢¼¼Êõ½ÒÃØ¡·Ò»ÎÄÖÐÓÐÏêϸ½éÉÜ¡£
2 ¼ÆËã²ã
ÔÚµ¯ÐÔģʽÏ£¬¼ÆËã²ãÓÉÈô¸É¸ö¼ÆËã½Úµã×é³É£¬¼ÆËã½Úµã¸ºÔð½ÓÊÕ½ÓÈë²ãÏ·¢µÄÎïÀíÖ´Ðмƻ®£¬²¢¸ù¾ÝÎïÀíÖ´Ðмƻ®×ª»»³É¶ÔÓ¦µÄËã×Ó¡£¼ÆËã²ã²ÉÓÃÁËvectorizedµÄÖ´ÐÐÄ£ÐÍ£¬Ëã×ÓÖ®¼äÊý¾ÝÒÔpipelineµÄ·½Ê½½øÐн»»¥£¬Èô¸ÉÐУ¨Ò»°ãΪ¼¸Ç§ÐУ©Êý¾Ý×é³ÉÒ»¸öbatch£¬batchÄÚ²¿Êý¾ÝÒÔÁдæµÄÐÎʽ×éÖ¯¡£´ËÍ⣬¼ÆËã²ãµÄJITÄ£¿é»á¸ù¾Ý²éѯ¼Æ»®£¬¶¯Ì¬Éú³É´úÂ룬¼ÓËÙ¼ÆË㣬°üÀ¨expression¼ÆËã¡¢ÅÅÐò¡¢ÀàÐͱȽϵȡ£JITÄ£¿é»¹ÒԼƻ®µÄpatternΪkey£¬»º´æ¶¯Ì¬Éú³ÉµÄ´úÂ룬ÒԴ˼õÉÙ½»»¥Ê½²éѯ϶¯Ì¬Éú³É´úÂëµÄ´ú¼Û¡£
3 Ö´Ðмƻ®
¼ÆËã´æ´¢·ÖÀë¼Ü¹¹Ï£¬¼ÆËã²ãÐÂÔöÁËReshardingËã×Ó£¬¸ºÔð´Ó´æ´¢²ã¼ÓÔØÊý¾Ý¡£Êý¾ÝÒÔbatch¡¢ÁдæµÄ·½Ê½ÔÚ´æ´¢²ãÓë¼ÆËã²ãÖ®¼ä´«µÝ£¬µ¥´ÎÇëÇ󣬻ᴫÊä¶à¸öbatchµÄÊý¾Ý£¬Ò»°ã²»´óÓÚ32MB¡£ÓÉÓÚ´æ´¢²ãÒÀ¾É±£ÁôÁËMPPÊý¾ÝÔ¤·ÖÇøµÄ·½Ê½£¬ÓÅ»¯Æ÷ÔÚÉú³ÉÖ´Ðмƻ®µÄʱºò»á¸ù¾ÝÕâ¸ö·Ö²¼ÌØÕ÷£¬ÔÚjoin¡¢aggÔËËãʱ£¬¼õÉÙ²»±ØÒªµÄÊý¾Ýrepartition¡£´ËÍ⣬ÓÅ»¯Æ÷Ò²»áÅжϲéѯÖеÄfilterÊÇ·ñ¿ÉÀûÓô洢²ãË÷Òý£¬¾¡Á¿°Ñ¿É±»´æ´¢²ãʶ±ðµÄfilterÏÂÍÆÖÁ´æ´¢²ãÀûÓÃË÷Òý¼ÓËÙ¹ýÂË£¬¼õÉÙÓë¼ÆËã²ãÖ®¼äµÄÊý¾Ý´«Êä¡£¶ø²»¿É±»ÏÂÍÆµÄfilterÒÀÈ»±£ÁôÔÚ¼ÆËã²ã½øÐйýÂË¡£

4 ·ÖÇø¶¯Ì¬ÖØ·Ö²¼
ReshardingËã×ÓÓëScanËã×ÓÖ®¼ä£¬·ÖÇø£¨shard£©×ñÑÒÔÏÂÔÔò½øÐÐÖØ·Ö²¼£º
¡¤À´×Ôͬһ¸ö´æ´¢½ÚµãµÄ¶à¸ö·ÖÇø£¬¾¡Á¿´òÉ¢µ½²»Í¬µÄ¼ÆËã½ÚµãÉÏ¡£
¡¤Í¬Ò»¸ö²éѯÄÚ£¬²»Í¬±íµÄÏàͬ·ÖÇø£¬»á±»Ó³Éäµ½ÏàͬµÄ¼ÆËã½ÚµãÉÏ¡£
¡¤Í¬Ò»¸ö·ÖÇø£¬ÔÚ²»Í¬²éѯ֮¼ä£¬Ëæ»ú·ÖÅäµ½²»Í¬µÄ¼ÆËã½Úµã¡£
ÓëSnowflake¡¢Redshift²»Í¬£¬¼ÆËã½ÚµãÓë·ÖÇøÖ®¼äûÓй̶¨µÄÓ³Éä¹ØÏµ£¬ÒòΪ¼ÆËã½ÚµãûÓб¾µØµÄcache£¬Êý¾Ý·ÃÎʵļÓËÙÍêÈ«ÒÀÀµÓÚ´æ´¢²ãµÄSDD¡¢ÄÚ´æcache¡£ÕâÖÖ¶¯Ì¬ÖØ·Ö²¼µÄ·½Ê½£¬¿ÉÒÔ´ó´ó»º½â·ÖÇø²»¾ùÔÈ¡¢·ÖÇøÄÚÊý¾ÝÇãбµÈÎÊÌ⣬²»»áÔì³É¹Ì¶¨¼ÆËã½ÚµãµÄÈȵ㡣

5 Êý¾Ý¼ÓÔØÓÅ»¯
Ïà±È½ÏÓÚÔÓмܹ¹£¬¼ÆËã´æ´¢·ÖÀë¶àÁËÒ»´ÎÔ¶³ÌµÄÊý¾Ý·ÃÎÊ£¬Õâ¶Ô²éѯµÄÑÓ³Ù¡¢ÍÌÍ»áÓбȽϴóµÄÓ°Ïì¡£ÎÒÃÇ×öÁËÈçϼ¸¸ö·½ÃæµÄÓÅ»¯£º
¡¤ºÏ²¢ÍøÂçÁ¬½Ó¡£ÈçͼÈýËùʾ£¬Í¨¹ýºÏ²¢Á¬½Ó£¬¼õÉÙСÊý¾ÝÁ¿²éѯµÄÍøÂç½»»¥´ÎÊý£¬½µµÍ²éѯÑÓ³Ù¡£
¡¤Êý¾ÝѹËõ¡£batchÄÚ»ùÓÚÁдæ¸ñʽ½øÐÐѹËõ£¬¼õÉÙÍøÂç´ø¿íµÄÏûºÄ£¬ÓÐЧÌáÉýReshardingËã×Ó¼ÓÔØÍÌÍ¡£
¡¤Òì²½¶ÁÈ¡¡£ÍøÂçÄ£¿éÒì²½¼ÓÔØ£¬½«Êý¾Ý·ÅÈëbufferÖУ¬ReshardingËã×Ó´ÓbufferÖлñÈ¡Êý¾Ý£¬ÈÃCPU¡¢ÍøÂçIO³ä·Ö²¢ÐС£
6 ÐÔÄܲâÊÔ
±¾½Ú½«Ì½¾¿¼ÆËã´æ´¢·ÖÀë¼Ü¹¹¶ÔAnalyticDB´óÊý¾ÝÁ¿·ÖÎö³¡¾°µÄ²éѯÍÌÍÂÓ°Ïì¡£
²âÊÔ»·¾³
¡¤ÊµÀý1£º²»·ÖÀëģʽ£¬4×é´æ´¢½Úµã£¬´æ´¢½Úµã¸ºÔðÊý¾ÝɨÃè¡¢²éѯ¼ÆËã¡£
¡¤ÊµÀý2£ºµ¯ÐÔģʽ£¬4×é´æ´¢½Úµã + 6¸ö¼ÆËã½Úµã¡£´æ´¢½Úµã¸ºÔðÊý¾ÝɨÃ裬¼ÆËã½Úµã¸ºÔð²éѯ¼ÆËã¡£Á½¸öʵÀý·Ö±ðµ¼Èëtpch
1TBÊý¾Ý×÷Ϊ²âÊÔÊý¾Ý¼¯¡£

²âÊÔ³¡¾°
ÎÒÃÇѡȡTPCH Q1×÷Ϊ²âÊÔSQL£¬Q1Ϊµ¥±í¾ÛºÏ²éѯ£¬¾ß±¸·Ç³£¸ßµÄÊÕÁ²¶È£¬´æ´¢²ãÓë¼ÆËã²ãÖ®¼ä´«ÊäµÄÊý¾ÝÁ¿Ô¼Îª260GB¡£ÎÒÃÇÒÔµ¥²¢·¢Ë³ÐòÖ´Ðеķ½Ê½£¬Ö´ÐÐTPCH
Q1£¬È¡²éѯµÄƽ¾ùÖ´ÐÐʱ¼ä¡£
select
l_returnflag,
l_linestatus,
sum(l_quantity) as sum_qty,
sum(l_extendedprice) as sum_base_price,
sum(l_extendedprice * (1 - l_discount)) as sum_disc_price,
sum(l_extendedprice * (1 - l_discount) * (1 +
l_tax)) as sum_charge,
avg(l_quantity) as avg_qty,
avg(l_extendedprice) as avg_price,
avg(l_discount) as avg_disc,
count(*) as count_order
from
lineitem
where
l_shipdate <= date '1998-12-01' - interval
'120' day
group by
l_returnflag,
l_linestatus
order by
l_returnflag,
l_linestatus; |
²âÊÔÊý¾Ý

²âÊÔ½áÂÛ
´ÓÉÏÃæµÄ²âÊÔÊý¾Ý¿ÉÒÔ¿´µ½£¬TPCH Q1ÔÚµ¯ÐÔģʽµÄÖ´ÐÐʱ¼äÂԺᣴֿ´Õâ¸ö½á¹û±È½Ï¾ªÑÈ£¬¼ÆËã´æ´¢·ÖÀëºó£¬ÐÔÄܸüºÃÁË¡£ÎÒÃÇ¿ÉÒÔ×Ðϸ·ÖÎöÏ£¬µ¯ÐÔģʽÓë²»·ÖÀëģʽ¾ßÓÐÏàͬµÄ´æ´¢½ÚµãÊý£¬È·±£·ÖÀëģʽ´æ´¢½Úµã²»»á³ÉΪƿ¾±¡£´ÓÖ´ÐÐʱµÄ×ÊÔ´ÏûºÄÀ´¿´£¬·ÖÀëģʽµÄ×Ü×ÊÔ´ÏûºÄ£¨19.5%
+ 97%£©ÊDz»·ÖÀëģʽ£¨98%£©µÄ1.19±¶£¬Õâ¶àÏûºÄµÄCPUÀ´×ÔÓÚÍøÂç´«Êä¡¢ÐòÁл¯¡¢·´ÐòÁл¯µÈ¡£¶ÔÓÚ¼ÆËã²ãÀ´Ëµ£¬Ö»Òª´æ´¢²ãÄܹ»Ìṩ×ã¹»µÄÊý¾ÝÍÌÍ£¬È·±£¼ÆËã²ãµÄCPUÄܹ»´òÂú£¬ÄÇô¼ÆËã´æ´¢·ÖÀë²»»á½µµÍ²éѯµÄ´¦ÀíÍÌÍ£¬µ±È»Ïà±ÈÓÚ²»·ÖÀëģʽ£¬»á¶àÏûºÄ×ÊÔ´¡£
Îå ×ܽá
ÔÚAnalyticDBµ¯ÐÔģʽµÄ»ù´¡Ö®ÉÏ£¬Î´À´ÎÒÃÇ»á½øÒ»²½È¥Éî¸ûÎÒÃǵĵ¯ÐÔÄÜÁ¦£¬°üÀ¨¼ÆËã×ÊÔ´³Ø»¯¡¢°´Ð赯ÐÔÄÜÁ¦¡¢´æ´¢²ã»ùÓÚ¹²Ïí´æ´¢µÄ¿ìËÙÀ©ËõÈÝÄÜÁ¦¡£Í¨¹ýÕâЩµ¯ÐÔÄÜÁ¦£¬¸üºÃÂú×ã¿Í»§¶ÔÓÚÔÆÊý¾Ý²Ö¿âµÄËßÇó£¬Ò²½øÒ»²½½µµÍ¿Í»§µÄʹÓóɱ¾¡£ |