±à¼ÍƼö: |
±¾ÎĽ«¶ÔʱÐòÊý¾Ý¿âµÄ»ù±¾¸ÅÄî¡¢Ó¦Óó¡¾°¼°ÌÚѶʱÐòÊý¾Ý¿âCTSDB×ö¼òÒª½éÉÜ£¬Ï£Íû¶ÔÄúÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ¹«ÖÚºÅÌÚѶ¼¼Êõ¹¤³Ì£¬ÓÉ»ðÁú¹ûÈí¼þÁõ衱à¼ÍƼö |
|
ʲôÊÇʱÐòÊý¾Ý¿â
1. ʱÐòÊý¾Ý
1.1 ʲôÊÇʱÐòÊý¾Ý£¿
ÔÚÒýÈëʱÐòÊý¾Ý¿â֮ǰ£¬ÏÈÒªÁ˽⡰ʱÐòÊý¾Ý¡±µÄ¸ÅÄ°´ÕÕʱ¼ä˳Ðò¼Ç¼ϵͳ¡¢É豸״̬±ä»¯µÄÊý¾Ý±»³ÆÎªÊ±ÐòÊý¾Ý£¨TimeSeries Data£©¡£ËüÆÕ±é´æÔÚÓÚIT»ù´¡ÉèÊ©¡¢ÔËά¼à¿ØÏµÍ³ºÍÎïÁªÍøÖС£
ʱÐòÊý¾Ý´Óʱ¼äά¶ÈÉϽ«¹ÂÁ¢µÄ¹Û²âÖµÁ¬³ÉÒ»ÌõÏߣ¬´Ó¶ø½ÒʾÈíÓ²¼þϵͳµÄ״̬±ä»¯¡£¹ÂÁ¢µÄ¹Û²âÖµ²»ÄܽÐʱÐòÊý¾Ý£¬µ«Èç¹û°Ñ´óÁ¿µÄ¹Û²âÖµÓÃʱ¼äÏß´®ÆðÀ´£¬ÎÒÃǾͿÉÒÔÑо¿ºÍ·ÖÎö¹Û²âÖµµÄÇ÷ÊÆ¼°¹æÂÉ¡£ÆäÒâÒåÌåÏÖÔÚÁ½·½Ã棺
£¨1£©´Óʱ¼äÖáÍùºó¿´£¬Ê±ÐòÊý¾Ý¿É×ö³É±¨±í£¬¹Û²âÊý¾Ý±ä»¯¹æÂÉ¡¢²¶»ñÒì³£¡£ÕâÀï¾ÙÁ½¸öÀý×Ó£º
ÏÂͼΪ¹²Ïíµ¥³µÔھɽðɽijÈÈÃÅÇøÓòµÄÿСʱ³µÁ¾µÄ½è»¹ÊýÁ¿¡£Í¨¹ý·ÖÎö¸ÃÇøÓò³µÁ¾ÊýÄ¿µÄÀúÊ·Êý¾Ý£¬µ¥³µ¹«Ë¾¿ÉµÃÖªÈȵã½è³µÊ±¼ä¶ÎÊÇ·ñÐèÒª³µÁ¾²¹¸ø¡£

ÏÂͼΪij»¥ÁªÍø·þÎñµÄ³öÈëÁ÷Á¿ÀúÊ·¼Ç¼¡£´ÓͼÖпÉÒÔÃ÷ÏÔ¿´µ½ÈëÁ÷Á¿£¨À¶É«Ïߣ©ÔÚijʱ¼ä¶ÎÓÐë´Ì£¬·þÎñÌṩÉ̿ɻùÓڴ˶Îʱ¼äÅŲé·þÎñÓÐÎÞÒì³£¡£Ò²¿ÉÒÔ½øÒ»²½»ùÓÚÁ÷Á¿¼à¿Ø×ö¸æ¾¯£¬Ê¹ÔËάÈËÔ±Äܹ»¼°Ê±´¦ÀíÏßÉÏÎÊÌâ¡£

£¨2£©´Óʱ¼äÖáÏòǰ¿´£¬Ê±ÐòÊý¾Ý¿ÉÒÔ½¨Á¢ÊýѧģÐÍ¡¢×öͳ¼Æ·ÖÎö£¬Ô¤²âÊÂÎï·¢Õ¹Ç÷ÊÆ¡£
¾ÙÀý£¬ÏÂͼΪÁªºÏ¹úÔÚ2015Äê·ÖÎö¹ýÍùÈË¿ÚÔö³¤Ç÷ÊÆºó£¬·¢²¼µÄÈË¿ÚÊý×Ö¼°Ô¤²â±¨¸æ¡£´ÓͼÖпÉÒÔ¿´³öδÀ´·ÇÖÞÈ˿ڽ«³ÖÐøÔö³¤£¬ÕâÊÇÈκÎÒ»¸ö¿ç¹úÆóÒµ¶¼²»¸ÃºöÂÔµÄÊг¡£¬Ò²Ô¤Ê¾×ŵ±µØÕþ¸®ÃæÁÙÖØ´óÌôÕ½¡£

1.2 ʱÐòÊý¾ÝµÄÊýѧģÐÍ
ÉÏÃæ½éÉÜÁËʱÐòÊý¾ÝµÄ»ù±¾¸ÅÄҲ˵Ã÷ÁË·ÖÎöʱÐòÊý¾ÝµÄÒâÒå¡£ÄÇôʱÐòÊý¾Ý¸ÃÔõÑù´æ´¢ÄØ£¿Êý¾ÝµÄ´æ´¢Òª¿¼ÂÇÆäÊýѧģÐͺÍÌØµã£¬Ê±ÐòÊý¾Ýµ±È»Ò²²»ÀýÍâ¡£ËùÒÔÕâÀïÏȽéÉÜʱÐòÊý¾ÝµÄÊýѧģÐͺÍÌØµã¡£
ÏÂͼΪһ¶ÎʱÐòÊý¾Ý£¬¼Ç¼ÁËÒ»¶Îʱ¼äÄÚµÄij¸ö¼¯ÈºÀï¸÷»úÆ÷Éϸ÷¶Ë¿ÚµÄ³öÈëÁ÷Á¿£¬Ã¿°ëСʱ¼Ç¼һ¸ö¹Û²âÖµ¡£ÕâÀïÒÔͼÖеÄÊý¾ÝΪÀý£¬½éÉÜÏÂʱÐòÊý¾ÝµÄÊýѧģÐÍ£¨²»Í¬µÄʱÐòÊý¾Ý¿âÖУ¬»ù±¾¸ÅÄîµÄ³ÆÎ½ÓпÉÄܲ»Í¬£¬ÕâÀïÒÔÌÚѶCTSDBΪ׼£©£º
metric£º ¶ÈÁ¿µÄÊý¾Ý¼¯£¬ÀàËÆÓÚ¹ØÏµÐÍÊý¾Ý¿âÖÐµÄ table£»
point£º Ò»¸öÊý¾Ýµã£¬ÀàËÆÓÚ¹ØÏµÐÍÊý¾Ý¿âÖÐµÄ row£»
timestamp£º ʱ¼ä´Á£¬±íÕ÷²É¼¯µ½Êý¾ÝµÄʱ¼äµã£»
tag£º ά¶ÈÁУ¬´ú±íÊý¾ÝµÄ¹éÊô¡¢ÊôÐÔ£¬±íÃ÷ÊÇÄĸöÉ豸/Ä£¿é²úÉúµÄ£¬Ò»°ã²»Ëæ×Åʱ¼ä±ä»¯£¬¹©²éѯʹÓã»
field£º Ö¸±êÁУ¬´ú±íÊý¾ÝµÄ²âÁ¿Öµ£¬ËæÊ±¼äƽ»¬²¨¶¯£¬²»ÐèÒª²éѯ¡£

ÈçÉÏͼËùʾ£¬Õâ×éÊý¾ÝµÄmetricΪNetwork£¬Ã¿¸öpointÓÉÒÔϲ¿·Ö×é³É£º
timestamp£ºÊ±¼ä´Á
Á½¸ötag£ºhost¡¢port£¬´ú±íÿ¸öpoint¹éÊôÓÚÄĄ̈»úÆ÷µÄÄĸö¶Ë¿Ú
Á½¸öfield£ºbytes_in¡¢bytes_out£¬´ú±ípiontµÄ²âÁ¿Öµ£¬°ëСʱÄÚ³öÈëÁ÷Á¿µÄƽ¾ùÖµ
ͬһ¸öhost¡¢Í¬Ò»¸öport£¬Ã¿°ëСʱ²úÉúÒ»¸öpoint£¬Ëæ×Åʱ¼äµÄÔö³¤£¬field£¨bytes_in¡¢bytes_out£©²»¶Ï±ä»¯¡£
Èçhost£ºhost4£¬port£º51514£¬timestamp´Ó02:00 µ½02:30µÄʱ¼ä¶ÎÄÚ£¬bytes_in ´Ó 37.937ÉÏÕǵ½38.089£¬bytes_out´Ó2897.26ÉÏÕǵ½3009.86£¬ËµÃ÷ÕâÒ»¶Îʱ¼äÄڸö˿ڷþÎñѹÁ¦Éý¸ß¡£
1.3 ʱÐòÊý¾ÝÌØµã
Êý¾Ýģʽ£º ʱÐòÊý¾ÝËæÊ±¼äÔö³¤£¬Ïàͬά¶ÈÖØ¸´È¡Öµ£¬Ö¸±êƽ»¬±ä»¯£ºÕâµã´ÓÉÏÃæµÄNetwork±íµÄÊý¾Ý±ä»¯¿ÉÒÔ¿´³ö¡£
дÈ룺 ³ÖÐø¸ß²¢·¢Ð´È룬ÎÞ¸üвÙ×÷£ºÊ±ÐòÊý¾Ý¿âÃæ¶ÔµÄÍùÍùÊǰÙÍòÉõÖÁǧÍòÊýÁ¿¼¶ÖÕ¶ËÉ豸µÄʵʱÊý¾ÝдÈ루ÈçĦ°Ýµ¥³µ2017ÄêÈ«¹ú³µÁ¾ÊýΪǧÍò¼¶£©£¬µ«Êý¾Ý´ó¶à±íÕ÷É豸״̬£¬Ð´Èëºó²»»á¸üС£
²éѯ£º °´²»Í¬Î¬¶È¶ÔÖ¸±ê½øÐÐͳ¼Æ·ÖÎö£¬ÇÒ´æÔÚÃ÷ÏÔµÄÀäÈÈÊý¾Ý£¬Ò»°ãÖ»»áƵ·±²éѯ½üÆÚÊý¾Ý¡£
2. ʱÐòÊý¾Ý¿â
ÓÐÁËʱÐòÊý¾Ýºó£¬¸Ã´æ´¢ÔÚÄÄÀïÄØ£¿Ê×ÏÈÎÒÃÇ¿´Ï´«Í³µÄ½â¾ö·½°¸Ôڴ洢ʱÐòÊý¾Ýʱ»áÓöµ½Ê²Ã´ÎÊÌâ¡£
2.1 ´«Í³½â¾ö·½°¸
ʱÐòÊý¾ÝÍùÍùÊÇÓɰÙÍò¼¶ÉõÖÁǧÍò¼¶ÖÕ¶ËÉ豸²úÉúµÄ£¬Ð´Èë²¢·¢Á¿±È½Ï¸ß£¬ÊôÓÚº£Á¿Êý¾Ý³¡¾°¡£´«Í³µÄʱÐòÊý¾Ý½â¾ö·½°¸Ö÷ÒªÓÐÁ½ÖÖ£º¹ØÏµÐÍÊý¾Ý¿â£¨MySQL£©¡¢HadoopÉú̬¡£
¡¤ MySQL£ºÔÚº£Á¿µÄʱÐòÊý¾Ý³¡¾°Ï´æÔÚÈçÏÂÎÊÌâ
´æ´¢³É±¾´ó£º¶ÔÓÚʱÐòÊý¾ÝѹËõ²»¼Ñ£¬ÐèÕ¼ÓôóÁ¿»úÆ÷×ÊÔ´£»
ά»¤³É±¾¸ß£ºµ¥»úϵͳ£¬ÐèÒªÔÚÉϲãÈ˹¤µÄ·Ö¿â·Ö±í£¬Î¬»¤³É±¾¸ß£»
дÈëÍÌ͵ͣºµ¥»úдÈëÍÌ͵ͣ¬ºÜÄÑÂú×ãʱÐòÊý¾ÝǧÍò¼¶µÄдÈëѹÁ¦£»
²éѯÐÔÄܲÊÊÓÃÓÚ½»Ò×´¦Àí£¬º£Á¿Êý¾ÝµÄ¾ÛºÏ·ÖÎöÐÔÄܲ
¡¤ HadoopÉú̬£¨Hadoop¡¢SparkµÈ£©
Êý¾ÝÑӳٸߣºÀëÏßÅú´¦Àíϵͳ£¬Êý¾Ý´Ó²úÉúµ½¿É·ÖÎö£¬ºÄʱÊýСʱ¡¢ÉõÖÁÌì¼¶£»
²éѯÐÔÄܲ²»ÄܺܺõÄÀûÓÃË÷Òý£¬ÒÀÀµMapReduceÈÎÎñ£¬²éѯºÄʱһ°ãÔÚ·ÖÖÓ¼¶¡£
2.2 ʱÐòÊý¾Ý¿â
ʱÐòÊý¾Ý¿âÊǹÜÀíʱÐòÊý¾ÝµÄרҵ»¯Êý¾Ý¿â£¬²¢Õë¶ÔʱÐòÊý¾ÝµÄÌØµã¶ÔдÈë¡¢´æ´¢¡¢²éѯµÈÁ÷³Ì½øÐÐÁËÓÅ»¯£¬ÕâЩÓÅ»¯ÓëʱÐòÊý¾ÝµÄÌØµãϢϢÏà¹Ø£º
1) ´æ´¢³É±¾£º
ÀûÓÃʱ¼äµÝÔö¡¢Î¬¶ÈÖØ¸´¡¢Ö¸±êƽ»¬±ä»¯µÄÌØÐÔ£¬ºÏÀíÑ¡Ôñ±àÂëѹËõËã·¨£¬Ìá¸ßÊý¾ÝѹËõ±È£»
ͨ¹ýÔ¤½µ¾«¶È£¬¶ÔÀúÊ·Êý¾Ý×ö¾ÛºÏ£¬½ÚÊ¡´æ´¢¿Õ¼ä¡£
2) ¸ß²¢·¢Ð´È룺
ÅúÁ¿Ð´ÈëÊý¾Ý£¬½µµÍÍøÂ翪Ïú£»
Êý¾ÝÏÈдÈëÄڴ棬ÔÙÖÜÆÚÐÔµÄdumpΪ²»¿É±äµÄÎļþ´æ´¢¡£
3) µÍ²éѯÑÓʱ£¬¸ß²éѯ²¢·¢£º
ÓÅ»¯³£¼ûµÄ²éѯģʽ£¬Í¨¹ýË÷ÒýµÈ¼¼Êõ½µµÍ²éѯÑÓʱ£»
ͨ¹ý»º´æ¡¢routingµÈ¼¼ÊõÌá¸ß²éѯ²¢·¢¡£
2.3 ¿ªÔ´Ê±ÐòÊý¾Ý¿â¶Ô±È
ĿǰÐÐÒµÄڱȽÏÁ÷ÐеĿªÔ´Ê±ÐòÊý¾Ý¿â²úÆ·ÓÐ InfluxDB¡¢OpenTSDB¡¢Prometheus¡¢GraphiteµÈ£¬Æä²úÆ·ÌØÐÔ¶Ô±ÈÈçÏÂͼËùʾ£º

´ÓÉϱí¿ÉÒÔ¿´³ö£¬¿ªÔ´µÄʱÐòÊý¾Ý¿â´æÔÚÈçÏÂÎÊÌ⣺
ûÓÐfree¡¢Ò×Óõķֲ¼Ê½°æ±¾£¨OpenTSDBÖ§³Ö·Ö²¼Ê½²¿Ê𣬵«ÒÀÀµÏµÍ³¹ý¶à£¬Î¬»¤³É±¾¸ß£©£»
¾ÛºÏÄÜÁ¦ÆÕ±é½ÏÈõ£¬¶øÊ±ÐòÊý¾Ý´ó¶àÐèÒªÀ´×öͳ¼Æ·ÖÎö£»
ûÓÐfreeµÄȨÏÞ¹ÜÀí£»
ûÓÐÕë¶Ôʱ¼äÐòÁеĶàά¶È¶Ô±È·ÖÎö¹¤¾ß¡£
CTSDB
ÌÚѶCTSDB£¨Cloud Time Series Database£©ÊÇÒ»ÖÖ·Ö²¼Ê½¡¢¸ßÐÔÄÜ¡¢¶à·ÖƬ¡¢×Ô¾ùºâµÄʱÐòÊý¾Ý¿â£¬Õë¶ÔʱÐòÊý¾ÝµÄ¸ß²¢·¢Ð´Èë¡¢´æÔÚÃ÷ÏÔµÄÀäÈÈÊý¾Ý¡¢IoTÓû§³¡¾°µÈ×öÁË´óÁ¿ÓÅ»¯£¬Í¬Ê±Ò²Ö§³Ö¸÷ÐÐÒµµÄÈÕÖ¾½âÎöºÍ´æ´¢£¬Æä¼Ü¹¹ÈçÏÂͼËùʾ¡£

1. CTSDBÖ÷ÒªÌØµã
1) ¸ßÐÔÄÜ£º£¨¾ßÌåÐÔÄÜÊý¾Ý½«ÔÚºóÎĸø³ö£©
Ö§³ÖÅúÁ¿Ð´Èë¡¢¸ß²¢·¢²éѯ£»
ͨ¹ý¼¯ÈºÀ©Õ¹£¬ËæÊ±ÏßÐÔÌáÉýϵͳÐÔÄÜ£»
Ö§³Ösharding¡¢routing£¬¼ÓËÙ²éѯ¡£
2) ¸ß¿É¿¿£º
Ö§³Ö¶à¸±±¾£»
»ú¼Ü¸ÐÖª£¬×Ô¶¯´í¿ª»ú¼Ü·ÖÅäÖ÷´Ó¸±±¾¡£
3) Ò×ʹÓãº
·á¸»µÄÊý¾ÝÀàÐÍ£¬REST½Ó¿Ú£¬Êý¾ÝдÈë²éѯ¾ùʹÓÃjson¸ñʽ£»
ÔÉú·Ö²¼Ê½£¬µ¯ÐÔ¿ÉÉìËõ£¬Êý¾Ý×Ô¶¯¾ùºâ£»
4) µÍ³É±¾£º
Ö§³ÖÁд洢£¬¸ßѹËõ±È£¨0.1×óÓÒ£©£¬½µµÍ´æ´¢³É±¾£»
Ö§³ÖÊý¾ÝÔ¤½µ¾«¶È£º½µµÍ´æ´¢³É±¾µÄͬʱ£¬Ìá¸ß²éѯÐÔÄÜ¡£
¸±±¾Êý¿É°´Ðèµ÷Õû¡£
5) Ç¿´óµÄ¾ÛºÏÄÜÁ¦£º
max,min,avg,percentile,sum,count,group byµÈ³£Óþۺϣ»
¸´ÔӵĽű¾¾ÛºÏ£¨ÀýÈç¿É¶Ô¶à×ֶμäµÄ¼ÆËã½á¹û×ö¾ÛºÏ£©£»
ʱ¼äÇø¼ä¾ÛºÏ¡¢GEO¾ÛºÏ¡¢Ç¶Ì׾ۺϡ£
6) ÁÁµãÄÜÁ¦:
Êý¾Ý¼à¿Ø¸æ¾¯£º¶Ô´æÈëÊý¾Ý½øÐÐÊý¾ÝÁ¿¡¢×Ö¶Îͳ¼Æ¡¢»ùÏß¶Ô±ÈµÈ¼à¿Ø£¬Í¨¹ý΢ÐÅ¡¢¶ÌÐÅ¡¢Óʼþ¸æ¾¯£»
ȨÏÞϵͳ£ºÖ§³ÖÓû§ÃûÃÜÂë¡¢»úÆ÷°×Ãûµ¥µÄȨÏÞϵͳ£»
Êý¾ÝʱЧÐÔ£ºÖ§³ÖÊý¾Ý¹ýÆÚɾ³ý£»
Êý¾Ýµ¼³ö¡£
2. ¾ºÆ·ÐÔÄܶԱȲâÊÔ
ÕâÀïÑ¡ÓÃÒµ½ç½ÏΪÁ÷ÐеÄInfluxDBÀ´ÓëCTSDB×öÐÔÄܶԱȲâÊÔ¡£
2.1 ²âÊÔ³¡¾°
CTSDBÓëInfluxDB¶Ô±È²âÊÔ£ºCTSDBÓëInfluxDB¾ùµ¥½Úµã²¿Ê𣬵¥½ÚµãÕ¼ÓÃ24¸öcpuºËÐÄ£¬128gÄڴ棬ÍòÕ×Íø¿¨,£¬´ÅÅÌSSD RAID0¡£
CTSDBµ¥½Úµã¼¯ÈºÓëË«½Úµã¼¯Èº¶Ô±È²âÊÔ£ºÓÃÒÔÑéÖ¤CTSDBµÄÏßÐÔÀ©Õ¹ÄÜÁ¦¡£
2.2 дÈëÐÔÄܲâÊÔ
Êý¾ÝÑùÀý£º
µ¼ÈëµÄÊý¾ÝÓÉInfluxDBµÄ¹Ù·½²âÊÔ¹¤¾ß²úÉú£¬https://github.com/influxdata/influxdb-comparisons¡£
Êý¾ÝΪÈô¸ÉhostµÄʱÐòÊý¾Ý£¬Ã¿¸öpoint°üº¬10¸ötag£¨¾ùΪstringÀàÐÍ£©£¬10¸öfiled£¨¾ùΪfloatÀàÐÍ£©£¬timestampΪʱ¼ä´Á£¨Ò»¸öhostÿ10ÃëÒ»¸öµã£©¡£
ÑùÀýÈçÏÂËùʾ£º

²âÊÔ½á¹û£º
(1) CTSDBµ¥½Úµã¼¯ÈºÓëInfluxDBµ¥»ú°æÐ´ÈëÐÔÄܶԱÈ

½áÂÛ:CTSDBµ¥½ÚµãдÈëÐÔÄÜ×î¸ßÔÚ19w£¬InfluxDBÔÚ15w¡£
(2) CTSDBµ¥½Úµã¼¯ÈºÓëCTSDBË«½Úµã¼¯ÈºÐ´ÈëÐÔÄܶԱÈ

½áÂÛ:CTSDBµ¥½Úµã¼¯ÈºÐ´Èë×î¸ß¿É´ï20w£¬Ë«½Úµã¼¯ÈºÐ´ÈëÐÔÄÜ34w¡£
2.3 ²éѯÐÔÄܲâÊÔ
²éѯÑùÀý£º
ÕâÀïÒÔCTSDBµÄ²éѯÓï¾äΪÀý£º

²éѯÓï¾ä½â¶Á£º
È¡³ö1¸öhostµÄÈ«Á¿Êý¾Ý£¬È»ºóÈÎȡһ¸öСʱ×ö¹ýÂ˺󣬰´·ÖÖÓÁ£¶È·ÖͰ£¨groupby£¬×îÖÕ½á¹ûÓÐ60¸öͰ£©£¬×îºóÊä³öËùÓеÄͰ£¬²¢¼ÆËãͰÄÚËùÓÐÊý¾ÝµÄusage_user×Ö¶Î×î´óÖµ ¡£
×¢ÒâÕâÀïµÄ²éѯʹÓÃÁËCTSDBµÄrouting¹¦ÄÜ£¬ÓÃÒÔ¼ÓËÙ²éѯ¡£
²éѯ½á¹ûÑùÀý£º

²âÊÔ½á¹û£º
(1) CTSDBµ¥½Úµã¼¯ÈºÓëInfluxDBµ¥»ú°æ²éѯÐÔÄܶԱÈ

½áÂÛ£ºCTSDB²éѯÐÔÄÜÕûÌå±ÈInfluxDBºÃºÜ¶à£¬µ±²¢·¢Êý½Ï¸ßʱ£¨40£©£¬CTSDB²éѯÐÔÄܱÈInfluxDB¸ß³ö½ü4±¶£¬ÔÚ2w×óÓÒ¡£ÔÚ²¢·¢Ïß³ÌÊý´ïµ½50ʱ£¬InfluxDB³öÏÖÁ´½Ó´íÎ󣬾ܾø²éѯÇëÇó£»´Ëʱ£¬CTSDB¿ÉÕý³£²éѯ¡£
(2) CTSDBµ¥½Úµã¼¯ÈºÓëË«½Úµã¼¯Èº²éѯÐÔÄܶԱÈ

½áÂÛ£ºÔÚ²¢·¢Êý½Ï¸ßµÄÇé¿öÏ£¬Ë«½Úµã¼¯Èº²éѯÐÔÄܽϵ¥½Úµã¼¯ÈºÓÐÁË´ó·ù¶ÈÌáÉý£¬³ÊÏÖÁ˲éѯÐÔÄÜÏßÐÔÀ©Õ¹µÄÇ÷ÊÆ¡£
|