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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
·ÖÎöÐÍÊý¾Ý¿âAnalyticDB
 
×÷Õߣº °¢ÀïÔÆ¼¼Êõ
  5616  次浏览      29
2019-11-22
 
±à¼­ÍƼö:
ÎÄÕÂÏêϸ½éÉÜÁËAnalyticDBµÄ¼Ü¹¹Ñݽø£¬ô˺ÍMPPÒýÇæ£¬ÐþÎä´æ´¢ÒýÇæÒÔ¼°·Ö²¼Ê½Meta·þÎñµÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×Ôcsdn£¬ÓÉ»ðÁú¹ûÈí¼þLuca±à¼­¡¢ÍƼö¡£

Ìâ¼Ç

·ÖÎöÐÍÊý¾Ý¿âAnalyticDB(ÏÂÎļò³ÆADB£©£¬Êǰ¢Àï°Í°Í×ÔÖ÷Ñз¢¡¢Î¨Ò»¾­¹ý³¬´ó¹æÄ£ÒÔ¼°ºËÐÄÒµÎñÑéÖ¤µÄPB¼¶ÊµÊ±Êý¾Ý²Ö¿â¡£½ØÖ¹Ä¿Ç°£¬ÏÖÓÐÍⲿ֧³Å¿Í»§¼È°üÀ¨´«Í³µÄ´óÖÐÐÍÆóÒµºÍÕþ¸®»ú¹¹£¬Ò²°üÀ¨ÖÚ¶àµÄ»¥ÁªÍø¹«Ë¾£¬¸²¸ÇÍⲿʮ¼¸¸öÐÐÒµ¡£Í¬Ê±£¬ADBÔÚ°¢ÀïÄÚ²¿³Ð½Ó×Å¹ã¸æÓªÏú¡¢É̼ÒÊý¾Ý·þÎñ¡¢²ËÄñÎïÁ÷¡¢ºÐÂíÐÂÁãÊÛµÈÖÚ¶àºËÐÄÒµÎñµÄ¸ß²¢·¢µÍÑÓʱµÄ·ÖÎö´¦Àí¡£

¼Ü¹¹Ñݽø

Ò».½ÓÈë²ãºÍSQL Parser

1.È«Ãæ²ÉÓÃ×ÔÑÐParser×é¼þ-FastSQL

ÓÉÓÚÀúÊ·Ô­Òò£¬ADBµÄ¸÷Ä£¿éÖÐÔøÓжà¸öParser×é¼þ£¬ÀýÈ統ʱ´æ´¢½ÚµãÓõÄÊÇDruid, ½ÓÈë²ãSQL½âÎöÓõÄÊÇAntlr Parser, µ¼ÖÂSQL¼æÈÝÐÔÄÑÌáÉý¡£¶ÔÓÚÒ»¸öÉÏÏß¶àÄê¡¢·þÎñÓÚÄÚÍâÖÚ¶àÊý¾ÝÒµÎñµÄADBÀ´Ëµ£¬ÊìϤÊý¾Ý¿âµÄͬѧ¶¼ÖªµÀ£¬Ìæ»»ParserÄѶÈÖ®´ó£¬¿°±È·ÉÐÐÖл»ÒýÇæ¡£

¾­¹ý°ëÄê¶àµÄŬÁ¦£¬ADBÍê³ÉÁ˽«ÉÏÊö¼¸´óParser×é¼þͳһÉý¼¶Ì滻ΪFastSQL ( Base on Druid£¬¾­¹ý¿ªÔ´ÉçÇø8ÄêµÄÍêÉÆ£¬Óï·¨Ö§³ÖÒѾ­·Ç³£Í걸)¡£Éý¼¶ÎªFastSQLºó£¬ÔÚSQL¼æÈÝÐÔ´ó·ù¶ÈÌáÉý¡¢¸´ÔÓ³¡¾°½âÎöËÙ¶ÈÌáÉý30-100±¶µÄͬʱ£¬ FastSQL»¹ÄÜÎÞ·ì½áºÏÓÅ»¯Æ÷£¬Ìṩ³£Á¿ÕÛµþ¡¢º¯Êý±ä»»¡¢±í´ïʽת»»¡¢º¯ÊýÀàÐÍÍÆ¶Ï¡¢³£Á¿Íƶϡ¢ÓïÒåÈ¥ÖØµÈ¹¦ÄÜÖ§³Ö£¬·½±ãÓÅ»¯Æ÷Éú³É×îÓŵÄÖ´Ðмƻ®¡£

2.ʵʱдÈëÐÔÄÜÌáÉý10±¶

ÔÚADB v2.7.4°æ±¾¿ªÊ¼£¬ÔÚSQL ParserÉÏ×öÁËÉî¶È¼¼ÊõÓÅ»¯£¬´ó·ù¶ÈÌáÉýÁËINSERT»·½ÚµÄÐÔÄÜ£¬ÔÚʵ¼ÊÉú²ú»·¾³ÖÐÐÔÄÜ10±¶ÐÔÄÜÌáÉý£¬ÒÔÔÆÉÏ4*C4ΪÀý£¬item±í¿ÉÒÔѹ²âµ½15w TPS¡£

3.º£Á¿Êý¾ÝÁ÷ʽ·µ»Ø

ÔÚADB v2.7ÒÔǰµÄ°æ±¾£¬¼ÆËã¿ò¼Ü·µ»ØµÄÊý¾Ý£¬ÐèÒªÔÚÄÚ´æÖжѻý£¬µÈ´ýÈ«²¿Ö´ÐÐÍê²Å·µ»Øµ½¿Í»§¶Ë¡£ÔÚ²¢·¢´ó»òÕß½á¹û´óʱ£¬¿ÉÄÜÓÐÄÚ´æÒç³öµÄ·çÏÕ¡£´Ó2.7°æ±¾¿ªÊ¼£¬Ä¬ÈϲÉÓÃÁ÷ʽ·µ»Ø£¬Êý¾Ýʵʱ·µ»Ø¿Í»§¶Ë£¬ÄܽµµÍÑÓʱ£¬¼«´óµÄÌáÉýÁË´ó½á¹û¼¯·µ»ØµÄµ÷ÓÃÎȶ¨ÐÔ¡£

¶þ. Query Optimizer

2018Ä꣬һ·½ÃæÔÆÉÏÔÆÏÂÒµÎñÈ«Ãæ´ÓADBÉÏÒ»´úµÄLMÒýÇæ£¬Ç¨ÒÆÖÁô˺ÍMPPÒýÇæ£¬ÁíÒ»·½ÃæÔ½À´Ô½¶àµÄ¿Í»§²»Ï£Íû×ßÀëÏß»òÕßÁ÷¼ÆËãÇåÏ´£¬ÊµÊ±Êý²Ö³¡¾°±Å·¢£¬Í¬Ê±Ô½À´Ô½¶à×Ô¶¯Éú³ÉSQLµÄ¿ÉÊÓ»¯¹¤¾ß¿ªÊ¼¶Ô½ÓADB£¬¶ÔÓÅ»¯Æ÷ÍŶÓÌá³öÁ˼«¸ßÌôÕ½¡£

ΪÁËÓ¦¶ÔÕâЩÌôÕ½£¬ÔÚÕâÒ»ÄêÀïÓÅ»¯Æ÷ÍŶӴÓÎÞµ½ÓУ¬Öð½¥×齨ÆðÀ´Ò»Ö§¾«Á·µÄ¹ú¼Ê»¯ÍŶӡ£ÔÚ²»¶Ï´òÔìÄ¥ºÏ¹ý³ÌÖУ¬ADBÓÅ»¯Æ÷ÕâÒ»ÄêµÄÕ¶»ñÈçÏ£º

1.½¨Á¢²¢ÍêÉÆRBO PlusÓÅ»¯Æ÷

²»Í¬ÓÚ´«Í³RBOÓÅ»¯Æ÷£¬ÔÚRBO PlusÉè¼ÆÖÐʵÏÖÁËÏÂÁйؼüÌØÐÔ£º

1). ÒýÈë´ú¼ÛÄ£Ðͺ͹ÀË㣬ÀûÓÃADBµÄ¸ßЧ´æ´¢½Ó¿Ú£¬ÒýÈëdynamic selectivity & cardinality¹ÀËãÓÅ»¯join reorder, ʹµÃADB¿ÉÒÔÓ¦¶Ô¶à´ï10+±íjoinµÄ¸´ÔÓ²éѯ³¡¾°.

2). Õë¶ÔMPPÌØ±ðÓÅ»¯data shuffling£¬aggregationµÈÖ´Ðмƻ®£¬Ïà¶ÔÓÚLMÒýÇæÒµÎñ³¡¾°ÐÔÄܽӽüÁã»ØÍË¡£

3). ´Ó¹¦ÄܺÍÐÔÄÜÁ½¸öά¶È£¬¶Ô¸÷ÖÖ³£¼ûÒÔ¼°¸´ÔÓ¹ØÁª×Ó²éѯ³¡¾°½øÐÐÁËÉî¶ÈÓÅ»¯£¬Éè¼ÆÁËһϵÁйØÁª¹æÔòËã·¨£¬ÔÚ¸÷ÖÖ±ê×¼benchmarkÖÐÏàÓ¦µÄ²éѯÖУ¬²¿·Ö³¡¾°up to 20XÌáÉý¡£

4). Õë¶Ô³¬¶ÌʱÑÓ(ms)µã²é£¬Éè¼ÆÁËparameterized plan cache£¬½«ÕâЩ³¡¾°µÄÓÅ»¯Ê±¼ä³É±¾½µµÍ10±¶ÒÔÉÏ¡£

2.´òÔìCBOÓÅ»¯Æ÷

Ãæ¶ÔÔ½À´Ô½¸´ÔÓµÄÒµÎñ²éѯ³¡¾°£¬RBO¼°RBO PlusÓÐÆäÏàÓ¦µÄ¾ÖÏÞºÍÌôÕ½£¬CBO³ÉΪADBÓÅ»¯Æ÷ÂõÏòͨÓÃÉÌÒµÓÅ»¯Æ÷µÄ¹Ø¼ü£¬ÎÒÃÇûÓвÉÓÃËä¹ã·ºÊ¹Óõ«¾ÖÏÞÐÔÒ²ºÜ¶àµÄCalciteÓÅ»¯Æ÷£¬¶øÊÇ×ÅÊÖ´òÔì×ÔÖ÷¿É¿ØµÄCBOÓÅ»¯Æ÷£¬ÌáÉýADBµÄºËÐľºÕùÁ¦£º

1) ½¨Á¢¸ßЧµÄͳ¼ÆÐÅÏ¢ÊÕ¼¯Ìåϵ£¬Æ½ºâ׼ȷÐÔÓëÊÕ¼¯´ú¼Û£¬ÎªCBOÌṩ¡°»ù´¡ÐÅÏ¢ÉèÊ©¡±£»

2) ¹¹½¨Cascades¼Ü¹¹µÄCBO¿ò¼Ü£¬½«Æä´òÔì³É¿ÉÀ©Õ¹µÄÓÅ»¯Æ½Ì¨¡£

Èý. ô˺ÍMPPÒýÇæ

ÕâÒ»Ä꣬ADB¼Ü¹¹È«Ãæ´ÓÉÏÒ»´úµÄLMÒýÇæÇл»ÖÁô˺ÍMPPÒýÇæ£¬ô˺ÍÒýÇæÒ»·½Ãæ¼ÈÒªÖ§³ÅÍê³ÉÇл»£¬Âú×ã¿Í»§¸üÁé»î×ÔÓɲéѯµÄÖØÈΣ¬ÓÖҪͨ¹ý´ó·ù¶ÈµÄÐÔÄÜÓÅ»¯À´Ïû³ýÒýÇæÇл»´øÀ´µÄijЩ³¡¾°ÏµÄÐÔÄÜ¿ªÏú¡£

1.È«Binary¼ÆËã

»ùÓÚBinary µÄ¼ÆË㣬ʡȥShuffle µÄÐòÁл¯ºÍ·´ÐòÁл¯¿ªÏú£¬²¢ÇÒÓë´æ´¢Éî¶È°ó¶¨£¬×öµ½´æ´¢¼ÆËãÒ»Ì廯£¬Õû¸ö¼ÆËã¹ý³ÌûÓжàÓàµÄÐòÁл¯ºÍ·´ÐòÁл¯¿ªÏú¡£

2.ÄÚ²¿³Ø»¯

ͨ¹ý¶¨³¤µÄÄÚ´æÇÐÆ¬Íê³É³Ø»¯£¬ÔÚ¼ÆËã¹ý³ÌÖмõÉÙÁËÁ¬ÐøÄÚ´æÀ©ÈÝ´øÀ´µÄÏûºÄ£¬Í¬Ê±Í¨¹ý³Ø»¯ÍêÈ«×ÔÖ÷¹Ü¿ØÄڴ棬±ÜÃâÁËÔÚ¸´ÔÓSQL³¡¾°ÏµÄGCÏûºÄ¡£

3.CodeGenÉî¶ÈÓÅ»¯

1). CacheʹÓã¬Í¨¹ý¶ÔËã×Ó£¬±í´ïʽµÄCodeGen³£Á¿³éÈ¡£¬»º´æCodeGenÉú³ÉµÄ´úÂ룬Ôڸ߲¢·¢³¡¾°Ï±ÜÃâÁËÿ´Î¶¼ÐèÒª¶¯Ì¬±àÒë´úÂëµÄ¿ªÏú£¬ÎªÖ§³Ö¸ß²¢·¢ºÍQPSµÄÒµÎñ´òºÃÁË»ù´¡¡£

2). ͨ¹ýËã×ÓÈںϼõÉÙËã×ÓÖ®¼äÎﻯµÄ¿ªÏú¡£

4.ÆäËüÓÅ»¯

1). °´ÁмÆË㣬ͨ¹ýÁÐʽ¼ÆËãÓëJVMÍŶӺÏ×÷ÒýÈëJDK11Ö§³ÖеÄSIMDÖ¸Á½øÐмÆËãÓÅ»¯

2). ×Ô¶¯Ëã·¨ÓÅ»¯£¬¸ù¾ÝÊý¾Ý·Ö²¼£¬Êý¾Ý²ÉÑù×Ô¶¯ÓÅ»¯²¿·ÖÖ´ÐÐËã·¨ºÍÄڴ棻

3). Ëã×Ó×ÔÊÊÓ¦µÄSpill£¬Ö§³Ö¶¯Ì¬µÄÄÚ´æ·ÖÅäºÍÇÀÕ¼£¬Ö§³Öjoin£¬aggµÈËã×ÓÂäÅÌ£»

4). ÒýÈëеÄÐòÁл¯ºÍ·´ÐòÁпò¼ÜÌæ»»Ô­ÓеÄJSONЭÒ飬ÒýÈëеÄNettyÌæ»»Ô­ÓÐJetty

5). Ö§³ÖÔËÐÐʱͳ¼ÆÐÅÏ¢ÊÕ¼¯£¬°üÀ¨Ëã×Ó¼¶£¬stage¼¶£¬query¼¶µÄÄÚ´æ¡¢cpu costͳ¼Æ£¬Ö§³Ö²¿·Ö×Ô¶¯Ê¶±ðÂýSQL¡£

ËÄ. ÐþÎä´æ´¢ÒýÇæ

ΪÁËÂú×ãÒµÎñ¸ß²¢·¢Ð´Èë¡¢µÍÑÓʱµÄ²éѯ£¬ADB×öÁ˶Áд·ÖÀë¼Ü¹¹Éè¼Æ¡£ÔÚÀúÊ·µÄ°æ±¾ÖУ¬¶Áд·ÖÎö¼Ü¹¹ÏÂÓÐ2¸öÎÊÌ⣺1. дÈëµ½¿É¼ûÊÇÒì²½µÄ, ²¿·Ö³¡¾°ÓжÁдǿһÖÂÐÔµÄËßÇó¡£2.ÔöÁ¿Êý¾ÝдÈë½Ï´óµÄÇé¿öÏ£¬²éѯ±äÂý¡£Í¬Ñù£¬½ñÄê´æ´¢ÒýÇæÔÚÔöÁ¿Êý¾ÝµÄʵʱÐÔºÍÐÔÄÜÉÏÒ²×ö³öÁËÖØ´óÍ»ÆÆ¡£

1.Ö§³Ö¶ÁдǿһÖÂÐÔ

×îеÄADB°æ±¾ÖУ¬Éè¼ÆÁËÒ»Ì×Í걸µÄÒ»ÖÂÐÔ¶Áд·ÖÀë¼Ü¹¹£¬ÈçÏÂͼËùʾ£º

À¶É«Ïß´ú±íдÈëÁ´Â·£¬³ÈÉ«Ïß´ú±í¶ÁÈ¡Á´Â·¡£ÒÔÒ»´ÎдÈëºÍ¶ÁȡΪÀý£¬µ±Óû§ÐÂдÈëij±íµÄÊý¾Ýºó£¬Á¢¼´·¢Æð²éѯ£¬´ËʱFN»áÊÕ¼¯¸Ã±íÔÚËùÓÐBNÉϵÄ×îÐÂдÈë°æ±¾ºÅ(step 3)£¬²¢½«¸Ã°æ±¾ºÅ(±ê¼ÇΪV1)ÐÅÏ¢ËæÍ¬²éѯÇëÇóһͬ·¢Íù¶ÔÓ¦µÄCN½Úµã(step 4)£¬CN±È¶Ô¸Ã±íÔÚ±¾µØµÄÏû·Ñ°æ±¾(¼ÇΪV2)ºÍÇëÇóµÄ°æ±¾ºÅ¡£

ÈôV1>V2£¬CNÏû·Ñµ½¸Ã×îÐÂдÈëÊý¾Ý(step 5)ºóÌṩ²éѯ£»ÈôV1

2.ÌáÉýÔöÁ¿Êý¾ÝÇøµÄ²éѯÐÔÄÜ

ÔÚ ADB µÄ´æ´¢½Úµã¶ÔÓÚÍ»·¢µÄ´óÅúÁ¿ÊµÊ±Ð´È룬ÔÚÔöÁ¿Êý¾ÝÇø¿ÉÄܶÌʱ¼äÄÚ»ýÀ۽϶àÊý¾Ý¡£Èç¹û²éѯ·¢ÉúÔÚÔöÁ¿Êý¾ÝÇø£¬´óÁ¿µÄtable scan¶ÁÈ¡»áÍÏÂýÕû¸öÊý¾Ý·ÖÎöÐÔÄÜ¡£Îª´ËÔöÁ¿Êý¾ÝÇøÒýÈë RocksDB ¹¹½¨ÔöÁ¿Êý¾ÝµÄË÷Òý£¬±£Ö¤ÔöÁ¿Êý¾ÝÇøµÄ·ÃÎÊÐÔÄÜ£¬Í¨¹ýLSM-Tree µÄ·Ö²ã´æ´¢½á¹û£¬ÌṩÁ¼ºÃµÄдÈëÐÔÄÜ£¬¼°½ÏºÃµÄ²éѯÄÜÁ¦¡£

Îå. ·Ö²¼Ê½Meta·þÎñ

ÀúÊ·°æ±¾ÔªÊý¾ÝÎȶ¨ÐÔÌôÕ½´ó£¬¸÷Ä£¿é¸÷×Ô·ÃÎÊÔªÊý¾Ý´æÔÚrace condition£¬metaѹÁ¦´ó£¬DDLÌåÑé²î¡£½ñÄêÎÒÃÇÖØ¹¹ÁËÔªÊý¾ÝÄ£¿é£¬ÉÏÏßGMS·þÎñÌṩԪÊý¾Ýͳһ¹ÜÀí£¬Í¬Ê±Ìṩ·Ö²¼Ê½DDLÄÜÁ¦£¬²¢Í¨¹ý·Ö²¼Ê½»º´æ½µµÍmeta¿âѹÁ¦£¬Ìṩ¸ßЧԪÊý¾Ý·ÃÎÊЧÂÊ¡£

È«¾ÖÔªÊý¾Ý·þÎñ·¢²¼

1). Global Meta Service (GMS)ÉÏÏßÉú²ú£¬Ìṩ·Ö²¼Ê½DDLºÍÊý¾Ýµ÷¶ÈÄÜÁ¦£¬Í¬²½½¨É¾±íÌáÉýÓû§ÌåÑé¡£

2). ±í·ÖÇø·ÖÅäËã·¨¸Ä½ø£¬Îª¼ÆËãµ÷¶ÈÓÅ»¯£¬Ö§³Ö¶à±í×鳡¾°ÏµÄÊý¾Ý¾ùÔÈ·Ö²¼

3). Êý¾Ý¸üÐÂ(ÉÏÏß)£¬Êý¾ÝÖØ·Ö²¼(Rebalance)Îȶ¨ÐÔ´ó´óÌáÉý

Áù. Ó²¼þ¼ÓËÙ

GPUËäÈ»ÒѾ­¹ã·ºÓÃÓÚͨÓüÆË㣬µ«ÊÇͨ³£ÊÇÓÃÓÚͼÐδ¦Àí¡¢»úÆ÷ѧϰºÍ¸ßÐÔÄܼÆËãµÈÁìÓò¡£ÈçºÎ½«GPUµÄÇ¿´ó¼ÆËãÄÜÁ¦ºÍADB½øÐÐÓлú½áºÏ£¬²¢²»ÊÇÒ»¸öÈÝÒ×½â¾öµÄÎÊÌâ¡£ÒªÏëÓúÃGPU£¬ÔÚGPU×ÊÔ´¹ÜÀí¡¢´úÂëÉú³É¡¢ÏÔ´æ¹ÜÀí¡¢Êý¾Ý¹ÜÀí¡¢Ö´Ðмƻ®ÓÅ»¯µÈ·½±ã£¬¾ùÓÐÖî¶àÌôÕ½¡£

2018Ä꣬ADBÒýÈëÁËGPU×÷Ϊ¼ÆËã¼ÓËÙÒýÇæ£¬Ô­±¾ÒÀÀµÀëÏß·ÖÎöÒýÇæ¡¢¸ôÌì²ÅÄÜÍê³ÉµÄ¼ÆË㣬ÏÖÔÚÖ»ÐèÒªÃë¼¶ÑÓ³Ù¼´¿ÉÍê³É£¬³É¹¦½«Êý¾Ý¼ÛÖµÔÚÏß»¯£¬Îª¿Í»§´øÀ´Á˾޴óµÄ¼ÛÖµ¡£

1.GPU×ÊÔ´¹ÜÀí

ÈçºÎÈÃÈ¥·ÃÎÊGPU×ÊÔ´ÊÇÊ×ÏÈÒª½â¾öµÄÎÊÌâ¡£ ADBͨ¹ýjCUDAµ÷ÓÃCUDA API£¬ÓÃÓÚ¹ÜÀíºÍÅäÖÃGPUÉ豸¡¢GPU kernelµÄÆô¶¯½Ó¿Ú·â×°¡£¸ÃÄ£¿é×÷ΪJavaºÍGPUÖ®¼äµÄÇÅÁº£¬Ê¹µÃJVM¿ÉÒԺܷ½±ãµØµ÷ÓÃGPU×ÊÔ´¡£

2.CodeGen

ADBµÄÖ´Ðмƻ®ÊÇΪCPU×ö×¼±¸µÄ£¬ÎÞ·¨ÔÚGPUÉÏÖ´ÐС£¶øÇÒÓÉÓÚGPU¼Ü¹¹µÄÌØÊâÐÔ£¬GPUµÄ±à³ÌÄ£ÐÍÒ²ºÍCPU²»Í¬¡£ÎªÁ˽â¾öÕâÒ»ÎÊÌ⣬ÒýÈëеÄCodeGenÄ£¿é¡£CodeGenÏÈÊǽèÖúLLVM API½«ÎïÀí¼Æ»®±àÒë³ÉLLVM IR£¬IR¾­¹ýÓÅ»¯ÒÔºóͨ¹ýת»»³ÉPTX´úÂ롣Ȼºóµ÷ÓÃCUDA½«PTX´úÂëת»»³É±¾µØ¿ÉÖ´ÐдúÂ룬²¢Æô¶¯ÆäÖеÄGPU¼ÆË㺯Êý¡£

CodeGen¿ÉÒÔÕë¶Ô²»Í¬µÄ´¦ÀíÆ÷Éú³É²»Í¬µÄ´úÂ룬ÔÚGPU²»¿ÉÓÃʱ£¬Ò²¿ÉÒÔתÖÁCPU½øÐÐÖ´ÐС£Ïà¶Ô´«Í³»ðɽģÐÍ£¬ADBµÄCodeGenÄ£¿éÓÐЧ¼õÉÙº¯Êýµ÷ÓõĿªÏú¡¢³ä·ÖÀûÓÃGPUµÄ²¢·¢ÄÜÁ¦¡£ÁíÍâCode GeneratorÀûÓÃÁËËã×ÓÈںϣ¬Èçgroup-by¾ÛºÏ¡¢joinÔټӾۺϵÄÈںϣ¬´ó´ó¼õÉÙÖмä½á¹û£¨ÌرðÊÇJoinµÄÁ¬½Ó½á¹û£©µÄ¿½±´ºÍÏÔ´æµÄÕ¼Óá£

3.ÏÔ´æ¹ÜÀí

ADB¿ª·¢ÁËVRAM ManagerÓÃÓÚ¹ÜÀí¸÷GPUµÄÏÔ´æ¡£ÓбðÓÚÏÖÔÚÊÐÃæÉÏÆäËûGPUÊý¾Ý¿âϵͳʹÓÃGPUµÄ·½Ê½£¬ÎªÁËÌáÉýÏÔ´æµÄÀûÓÃÂÊ¡¢ÌáÉý²¢·¢ÄÜÁ¦£¬½áºÏADB¶à·ÖÇø¡¢¶àÏ̵߳ÄÌØµã£¬ÎÒÃÇÉè¼Æ»ùÓÚSlabµÄVRAM ManagerÀ´Í³Ò»¹ÜÀíËùÓÐÏÔ´æÉêÇë¡£

ÐÔÄܲâÊÔÏÔʾ·ÖÅäʱ¼äƽ¾ùΪ1ms£¬Ã÷ÏÔ¿ìÓÚGPU×Ô´øµÄÏÔ´æ·ÖÅä½Ó¿ÚµÄ700ms£¬ÓÐÀûÓÚÌá¸ßϵͳÕûÌå²¢·¢¶È¡£

4.PlanÓÅ»¯

SQL´ÓFN·¢Ë͵½CN£¬Task ManagerÏȸù¾Ý¼ÆËãµÄÊý¾ÝÁ¿ÒÔ¼°²éÑ¯ÌØÕ÷Ñ¡ÔñÓÉCPU»¹ÊÇGPU´¦Àí£¬È»ºó¸ù¾ÝÂß¼­¼Æ»®Éú³ÉÊʺÏGPUÖ´ÐеÄÎïÀí¼Æ»®¡£GPU EngineÊÕµ½ÎïÀí¼Æ»®ºóÏȶÔÖ´Ðмƻ®½øÐÐÖØÐ´¡£Èç¹û¼Æ»®·ûºÏÈÚºÏÌØÕ÷£¬ÔòÆô¶¯¸´ºÏËã×ÓÈںϣ¬´Ó¶ø´óÁ¿¼õÉÙËã×Ó¼äÁÙʱÊý¾ÝµÄ´«Êä³É±¾¡£

²úÆ·»¯ÄÜÁ¦Éý¼¶

Ò». Ò×ÓÃÐÔÌáÉý

1.È«ÃæÇл»ô˺ÍMPPÒýÇæ

´Ó2.6.2°æ±¾¿ªÊ¼£¬¼¯ÍÅÄں͹«ÓÐÔÆÈ«²¿Ä¬ÈÏMPPÒýÇæ£¬³¹µ×¸æ±ðÉÏÒ»´úLMÒýÇæµÄ¸÷ÖÖ²éѯÏÞÖÆ¡£MPP¶ÔSQLд·¨Ö§³Ö¸ü¼Ó×ÔÓÉÁé»î£¬ADB¿Í»§Ó­À´Full MPPʱ´ú¡£

2.SQL¼æÈÝÐÔ´ó·ù¶ÈÌáÉý

½ÓÈë²ã¡¢´æ´¢²ãParserÄ£¿éÈ«²¿Éý¼¶ÎªFastSQLºó£¬ Íâ¼ÓÇл»MPP³É¹¦£¬ADB v2.7ÒÔºóµÄSQL¼æÈÝÐÔ½ÏÀúÊ·°æ±¾ÓÐÁ˷dz£´óÌáÉý¡£SQLÆäËûÓÅ»¯»¹°üÀ¨Ö§³ÖÁËÁ÷ʽºó²»ÔÙÏÞÖÆ²éѯ½á¹û¼¯·µ»Ø¡¢·ÖÒ³¼æÈÝMySQLµÈµÈ¡£

3.×Ô¶¯À©ËõÈÝ¡¢Éý½µÅä

6Ô·ݷ¢²¼ÁËÖØ°õ¹¦ÄÜ: ×Ô¶¯À©ËõÈÝ+Áé»îÉý½µÅä¡£³ýÁËÀ©Ëõ»ù±¾ÄÜÁ¦Í⣬¿Í»§»¹¿ÉÒÔÔÚ¹æ¸ñÖ®¼äÇл»¡£ÀýÈç´Ó10c4 Çл»ÖÁ4c8, ¿ÉÒÔ´Ó4c8Çл»ÖÁ10c4£¬Í¬Ê±ÊµÊ±±í»¹Ö§³ÖÔÚ¸ßÐÔÄÜSSDʵÀýºÍ´ó´æ´¢SATAʵÀý¼äÀ´»ØÇл»¡£

ÉÏÏßЧ¹û£ºÅäÖÃÇл»×öµ½¶Á²»Öжϣ¬Ð´ÈëÖжÏÔ¼1-2·ÖÖÓ£¬ºóÐøÍ¨¹ý¶¯Ì¬Æ¯ÒÆ·ÖÇø£¬Ð´ÈëÒ²ÄÜ×öµ½ÍêÈ«²»Í£·þ¡£

4.ÐÂ°æ¿ØÖÆÌ¨ºÍDMSÉÏÏß

¹«ÓÐÔÆÐ°æµÄ¿ØÖÆÌ¨Õ¹Ê¾µÄÄÚÈݸü¼Ó·á¸»£¬Ö§³Ö¿ØÖÆÌ¨´òµã£¬²é¿´Óû§»­Ïñ£»Ôö¼ÓÁ˸ü¶àºÍÓû§½»»¥µÄµØ·½¡£Óû§¹ÜÀí£¬aclºÍ×ÓÕ˺ÅÊÚȨ¸ü¼Ó±ã½ÝµÈ¡£DMSȫиİ棬ÌåÑé´ó·ù¶ÈÌáÉý£¬·½±ãµ¼Èëµ¼³ö£¬Ö§³ÖSQLÌáʾºÍSQL¼ÇÒ书ÄÜ¡£

5.·¢²¼ÃæÏòÓû§²àµÄ¼à¿Ø¸æ¾¯ÏµÍ³

ΪÌáÉý¿Í»§µÄ×ÔÖú»¯·þÎñÄÜÁ¦£¬Óû§²àµÄ¼à¿ØÖ§³ÖµÄÖ¸±êÓÐCPUʹÓÃÁ¿¡¢²éѯºÍдÈëÁ¿¡¢Êý¾ÝÇãб¡¢Top Slow SQLµÈ¡£

6.È«ÍøÊý¾Ý¿â¼à¿Ø´óÅÌÉÏÏß

ÕâÊÇÈ«ÍøÊý¾Ý¿âµÄÑÛ¾¦£¬µ¯ÄÚÔÆÉÏÊý¾Ý¿âÔËÐÐ×´¿öÒ»ÀÀÎÞÒÅ¡£Í¨¹ý¶ÔÊý¾Ý¿âºÍϵͳ²ã¸÷ÖÖÖ¸±êµÄÂñµã·ÖÎö£¬Ê±¿Ì¼à¿Ø×ÅÊý¾Ý¿âµÄÔËÐÐ×´¿ö£¬ÈçÏÂͼËùʾ(demoÊý¾Ý)£¬Í¬Ê±Ö§³Ö½«Òì³£Ö¸±êÍÆËͿͻ§¶¤¶¤Èº£¬´ó·ù¶ÈÌáÉýÁËÔËÓªÖµ°àЧÂÊ¡£

7.·¢²¼¿ÉÓÃÇø

ÕâÒ»Ä깫¹²ÔÆ·¢²¼¶à¿ÉÓÃÇøÖ§³Ö£¬³¹µ×½â¾öµ¥¸öregionÂô¿ÕµÄÎÊÌ⣬ÆóÒµ¿Í»§»¹¿ÉÒÔÓÐÑ¡ÔñµÄÀûÓÿÉÓÃÇø×ö·þÎñÈÝÔÖ¡£

¶þ. ·¢²¼ÐµĺËÐŦÄÜ

1.ÏòÁ¿·ÖÎö

½ñÄê9ÔÂÕýʽ·¢²¼ÏòÁ¿·ÖÎöÄÜÁ¦£¬Ê¹µÃ½á¹¹»¯Óë·Ç½á¹¹»¯Êý¾Ý¾ß±¸ÈںϷÖÎöµÄÄÜÁ¦¡£»ùÓÚÏòÁ¿¾ÛÀà¹æÂɵÄÏòÁ¿·ÖÇø¹æÔò£¬°´ÕÕ¾ÛÀà½á¹û·ÖÇø£¬ÈþàÀëÏà½üµÄÏòÁ¿¾Í½ü´æ´¢¡£ÔÚijרÓÐÔÆÏîÄ¿À֧³Ö1:10ÒÚµÄÈËÁ³Ê¶±ð£¬QPS¹ýÍò£¬ÑÓ³ÙÔÚ100ºÁÃëÄÚ£¬Êý¾ÝÁ¿´ïµ½ÊýTB¼¶±ð¡£

ͬʱÊ×´ÎÖ§³ÅÒøÌ©¡¢ºÐÂíµÈÐÂÁãÊÛ³¡¾°µÄÈËÁ³Ê¶±ð¡¢Ëã·¨ÍÆ¼ö¡¢Óë½á¹¹»¯Êý¾ÝʵʱÈںϷÖÎö£¬ºÁÃë¼¶´òͨÏßÉÏÏßÏ»áÔ±Ìåϵ£¬Ö§³ÅʵʱÊý¾Ý»¯ÏßÏ»¥¶¯¡¢ÓªÏú¡£

2.È«ÎļìË÷

ADB v2.7.4°æ±¾ºó£¬Í¨¹ýSQLÓïÑÔÌṩȫÎļìË÷¹¦ÄÜ£¬½«³£ÓõĽṹ»¯Êý¾Ý·ÖÎö²Ù×÷£¬ÓëÁé»îµÄ·Ç½á¹¹»¯Êý¾Ý·ÖÎö²Ù×÷ͳһ£¬Ê¹ÓÃͬһÌ×SQLÓïÑÔ²Ù×÷¶àÖÖÀàÐÍÊý¾Ý£¬½µµÍÁËѧϰºÍ¿ª·¢³É±¾¡£Ò»·½ÃæÌṩ½á¹¹»¯Êý¾Ý¡¢·Ç½á¹¹»¯Îı¾µÄÈںϼìË÷¡¢¶àÄ£·ÖÎöÄÜÁ¦£¬ÁíÒ»·½Ãæ»ùÓÚMPP+DAG¼¼ÊõÌṩÁËÍêÉÆµÄ·Ö²¼Ê½¼ÆËãÄÜÁ¦£¬Í¬Ê±ÄÚÖÃÁËÀ´×ÔÌÔ±¦¡¢ÌìèËÑË÷µÄÖÇÄÜ·Ö´Ê×é¼þ£¬·Ö´ÊЧ¹û¸üºÃ£¬Ëٶȸü¿ì¡£

3.ÐÂÊý¾ÝÀàÐÍ JSON & Decimal

ÔÚ2.7°æ±¾£¬Õýʽ·¢²¼JSONÊý¾ÝÀàÐÍ£¬ÍêÕûµÄÖ§³ÖÁ˰üÀ¨Object¡¢NULL¡¢ArrayÔÚÄÚµÄËùÓÐJSONÀàÐ͵ļìË÷·ÖÎö£¬ÎªÒµÎñÌṩÁË Schema lessµÄ¼«´óÁé»îÐÔ£¬Í¬Ê±Ò²ÌṩÁË¿ìËٵļìË÷ÐÔÄÜ¡£ÎªÁ˸üºÃ·½±ã½ðÈÚ¿Í»§£¬Í¬ÑùÔÚ2.7°æ±¾ÀADBÕýʽ·¢²¼DecimalÊý¾ÝÀàÐÍ£¬Ïò´«Í³Êý¾Ý¿âµÄÊý¾ÝÀàÐͼæÈÝÐÔÉÏÓÖÂõ³öÁËÖØÒªµÄÒ»²½¡£

Èý. Éú̬½¨Éè

1.Êý¾Ý½ÓÈë

¿Í»§Êý¾ÝÍùÍùÓжàÖÖ¶àÑù£¬´æ´¢ÔÚ¸÷Öֵط½¡£ÎªÁË×·Çó¸üµÍ³É±¾¡¢¸ü¸ßЧÂʵÄÊý¾Ý½ÓÈëÄÜÁ¦£¬´òÔìʵʱÊý²ÖµÄÄÜÁ¦£¬ADB½ñÄêÔÚÊý¾Ý½ÓÈëÉÏ×öÁËÖî¶àµÄÍêÉÆ¡£

1). Copy From OSS & MaxCompute ¿ª·¢Íê³É£¬Ôªµ©ºóÉÏÏß¡£

2). ADB Uploader·¢²¼£¬·½±ã±¾µØÎļþ¿ìËÙµ¼Èë¡£

3). ADB·¢²¼Logstash²å¼þ£¬·½±ãÈÕÖ¾Êý¾ÝformatºóÖ±½ÓдÈëADB£¬ÖмäÎÞÐè¾­¹ýMQ»òÕßHUB¡£

4). ADB Client SDK·¢²¼²¢¿ªÔ´£¬¿Í»§¶ËдÈë±à³ÌÂß¼­¼ò»¯£¬¾ÛºÏдÈëÐÔÄÜ´ó·ù¶ÈÌáÉý¡£

5). Batch±íµ¼ÈëÎȶ¨ÐÔ´ó´óÌáÉý£¬Í¬Ê±Íê³ÉMaxCompute SDKÉý¼¶ºÍOpenMRÇл»¡£

6). Connector ServiceÉÏÏߣ¬ÌṩͳһÊý¾ÝÔ´½ÓÈë²ã

½ÓÏÂÀ´ADB¼Æ»®»ùÓÚÏÖÓпò¼Ü½ÓÈë¸ü¶àÊý¾ÝÔ´£¨Í¼ÖлÒÉ«²¿·Ö£©

2.ÐÐÒµÔÆ½ÓÈë

Íê³É½ðÈÚÔÆ¡¢ÎïÁ÷ÔÆ¡¢¾ÛʯËþÈý´óÐÐÒµÔÆ½ÓÈ룬ʹµÃ½ðÈÚ¡¢ÎïÁ÷¡¢µçÉÌÖÐСÆóÒµÒ²ÄÜÏíÊܵ½µÍ³É±¾µÄʵʱÊý¾Ý·ÖÎöÄÜÁ¦£¬ÌáÉýÆóÒµ¾«Ï¸»¯Êý¾ÝÔËÓªµÄˮƽ¡£

   
5616 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

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

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

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