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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÐÂÒ»´úÊý¾Ý¿âTiDBÔÚÃÀÍŵÄʵ¼ù
 
×÷ÕߣºÓ¦¸Ö ÀîÀ¤ ²ý¿¡
  1724  次浏览      27
2021-1-18 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËÐÂÒ»´úÊý¾Ý¿âTiDBÔÚÃÀÍŵÄʵ¼ù£¬´Ó±³¾°ºÍÏÖ×´
¡¢ ǰÆÚµ÷ÑвâÊÔ¡¢´æ´¢Éú̬½¨Éè¼°ÏßÉÏʹÓÃÄ¥ºÏ·½ÃæÀ´½øÐÐÕ¹¿ªµÄ¡£
±¾ÎÄÀ´×ÔÃÀÍż¼ÊõÍŶӣ¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼­¡¢ÍƼö¡£

1. ±³¾°ºÍÏÖ×´

½ü¼¸Ä꣬»ùÓÚMySQL¹¹½¨µÄ´«Í³¹ØÏµÐÍÊý¾Ý¿â·þÎñ£¬ÒѾ­ºÜÄÑÖ§³ÅÃÀÍÅÒµÎñµÄ±¬·¢Ê½Ôö³¤£¬Õâ¾Í´ÙʹÎÒÃÇȥ̽Ë÷¸üºÏÀíµÄÊý¾Ý´æ´¢·½°¸ºÍʵ¼ùеÄÔËά·½Ê½¡£¶øËæ×Å·Ö²¼Ê½Êý¾Ý¿â´ó·ÅÒì²Ê£¬ÃÀÍÅDBAÍŶÓÁªºÏ»ù´¡¼Ü¹¹´æ´¢ÍŶӣ¬ÓÚ 2018 Äê³õÆô¶¯ÁË·Ö²¼Ê½Êý¾Ý¿âÏîÄ¿¡£

ͼ 1 ÃÀÍŵãÆÀ²úƷչʾͼ

ÔÚÁ¢ÏîÖ®³õ£¬ÎÒÃǽøÐÐÁË´óÁ¿½â¾ö·½°¸µÄ¶Ô±È£¬ÉîÈëÁ˽âÁËÒµ½çµÄ scale-out£¨ºáÏòÀ©Õ¹£©¡¢scale-up£¨×ÝÏòÀ©Õ¹£©µÈ½â¾ö·½°¸¡£µ«¿¼Âǵ½¼¼Êõ¼Ü¹¹µÄǰհÐÔ¡¢·¢Õ¹Ç±Á¦¡¢ÉçÇø»îÔ¾¶ÈÒÔ¼°·þÎñ±¾ÉíÓë MySQL µÄ¼æÈÝÐÔ£¬ÎÒÃÇ×îÖÕÇö¨ÁË»ùÓÚ TiDB Êý¾Ý¿â½øÐжþ´Î¿ª·¢µÄÕûÌå·½°¸£¬²¢Óë PingCAP ¹Ù·½ºÍ¿ªÔ´ÉçÇø½øÐÐÉîÈëºÏ×÷µÄ¿ª·¢Ä£Ê½¡£

ÃÀÍÅÒµÎñÏßÖڶ࣬ÎÒÃǸù¾ÝÒµÎñÌØµã¼°ÖØÒª³Ì¶ÈÖð²½ÍƽøÉÏÏߣ¬µ½½Ø¸åΪֹ£¬ÒѾ­ÉÏÏßÁË 10 ¸ö¼¯Èº£¬½ü 200 ¸öÎïÀí½Úµã£¬´ó²¿·ÖÊÇ OLTP ÀàÐ͵ÄÓ¦Ó㬳ýÁËÉÏÏß³õÆÚÓöµ½ÁËһЩСÎÊÌ⣬Ŀǰ¾ùÒÑÎȶ¨ÔËÐС£³õÆÚÉÏÏߵļ¯Èº£¬ÒѾ­·Ö±ð·þÎñÓÚÅäËÍ¡¢³öÐС¢ÉÁ¸¶¡¢¾ÆÂõÈÒµÎñ¡£ËäÈ» TiDB µÄ¼Ü¹¹·Ö²ãÏà¶Ô±È½ÏÇåÎú£¬·þÎñÒ²ÊÇ±È½ÏÆ½ÎȺÍÁ÷³©£¬µ«ÔÚÃÀÍŵ±Ç°µÄÊý¾ÝÁ¿¹æÄ£ºÍÒÑÓÐÎȶ¨µÄ´æ´¢ÌåϵµÄ»ù´¡ÉÏ£¬ÍƹãеĴ洢·þÎñÌåϵ£¬ÐèÒª¶ÔÖܱ߹¤¾ßºÍϵͳ½øÐÐһϵÁиÄÔìºÍÊÊÅ䣬´Ó³õÆÚ̽Ë÷µ½ÕûºÏÂ䵨£¬ÈÔÈ»»¹ÐèÒª×ߺÜÔ¶µÄ·¡£ÏÂÃæ½«´ÓÒÔϼ¸¸ö·½Ãæ·Ö±ð½øÐнéÉÜ£º

´Ó 0 µ½ 1 µÄÍ»ÆÆ£¬Öص㿼ÂÇ×öÄÄЩÊÂÇé¡£

ÈçºÎ¹æ»®ÊµÊ©²»Í¬ÒµÎñ³¡¾°µÄ½ÓÈëºÍÒÑÓÐÒµÎñµÄÇ¨ÒÆ¡£

ÉÏÏߺóÓöµ½µÄһЩµäÐÍÎÊÌâ½éÉÜ¡£

ºóÐø¹æ»®ºÍ¶ÔδÀ´µÄÕ¹Íû¡£

2. ǰÆÚµ÷ÑвâÊÔ

2.1 ¶Ô TiDB µÄ¶¨Î»

ÎÒÃǶÔÓÚ TiDB µÄ¶¨Î»£¬Ç°ÆÚÔÚÓÚÖØµã½â¾ö MySQL µÄµ¥»úÐÔÄܺÍÈÝÁ¿ÎÞ·¨ÏßÐÔºÍÁé»îÀ©Õ¹µÄÎÊÌ⣬Óë MySQL Ðγɻ¥²¹¡£Òµ½ç·Ö²¼Ê½·½°¸ºÜ¶à£¬ÎÒÃÇΪºÎÑ¡ÔñÁË TiDB ÄØ£¿¿¼Âǵ½¹«Ë¾ÒµÎñ¹æÄ£µÄ¿ìËÙÔö³¤£¬ÒÔ¼°¹«Ë¾ÄÚ¹ØÏµÊý¾Ý¿âÒÔ MySQL ΪÖ÷µÄÏÖ×´£¬Òò´ËÎÒÃÇÔÚµ÷Ñн׶Σ¬¶ÔÒÔϼ¼ÊõÌØÐÔ½øÐÐÁËÖØµã¿¼ÂÇ£º

ЭÒ鼿ÈÝ MySQL£ºÕâ¸öÊDZØÒªÏî¡£

¿ÉÔÚÏßÀ©Õ¹£ºÊý¾Ýͨ³£ÒªÓÐ·ÖÆ¬£¬·ÖƬҪ֧³Ö·ÖÁѺÍ×Ô¶¯Ç¨ÒÆ£¬²¢ÇÒÇ¨ÒÆ¹ý³ÌÒª¾¡Á¿¶ÔÒµÎñÎÞ¸ÐÖª¡£

ǿһÖµķֲ¼Ê½ÊÂÎñ£ºÊÂÎñ¿ÉÒÔ¿ç·ÖƬ¡¢¿ç½ÚµãÖ´ÐУ¬²¢ÇÒǿһÖ¡£

Ö§³Ö¶þ¼¶Ë÷Òý£ºÎª¼æÈÝ MySQL µÄÒµÎñ£¬Õâ¸öÊDZØÐëµÄ¡£

ÐÔÄÜ£ºMySQL µÄÒµÎñÌØÐÔ£¬¸ß²¢·¢µÄ OLTP ÐÔÄܱØÐëÂú×ã¡£

¿ç»ú·¿·þÎñ£ºÐèÒª±£Ö¤ÈκÎÒ»¸ö»ú·¿å´»ú£¬·þÎñÄÜ×Ô¶¯Çл»¡£

¿ç»ú·¿Ë«Ð´£ºÖ§³Ö¿ç»ú·¿Ë«Ð´ÊÇÊý¾Ý¿âÁìÓòÒ»´óÄÑÌ⣬ÊÇÎÒÃǶԷֲ¼Ê½Êý¾Ý¿âµÄÒ»¸öÖØÒªÆÚ´ý£¬Ò²ÊÇÃÀÍÅÏÂÒ»½×¶ÎÖØÒªµÄÐèÇó¡£

Òµ½çµÄһЩ´«Í³·½°¸ËäȻ֧³Ö·ÖƬ£¬µ«ÎÞ·¨×Ô¶¯·ÖÁÑ¡¢Ç¨ÒÆ£¬²»Ö§³Ö·Ö²¼Ê½ÊÂÎñ£¬»¹ÓÐһЩÔÚ´«Í³ MySQL ÉÏ¿ª·¢Ò»ÖÂÐÔЭÒéµÄ·½°¸£¬µ«ËüÎÞ·¨ÊµÏÖÏßÐÔÀ©Õ¹£¬×îÖÕÎÒÃÇÑ¡ÔñÁËÓëÎÒÃǵÄÐèÇó×îΪ½Ó½üµÄ TiDB¡£Óë MySQL Óï·¨ºÍÌØÐԸ߶ȼæÈÝ£¬¾ßÓÐÁé»îµÄÔÚÏßÀ©ÈÝËõÈÝÌØÐÔ£¬Ö§³Ö ACID µÄǿһÖÂÐÔÊÂÎñ£¬¿ÉÒÔ¿ç»ú·¿²¿ÊðʵÏÖ¿ç»ú·¿ÈÝÔÖ£¬Ö§³Ö¶à½ÚµãдÈ룬¶ÔÒµÎñÓÖÄÜÏñµ¥»ú MySQL Ò»ÑùʹÓá£

2.2 ²âÊÔ

Õë¶Ô¹Ù·½Éù³ÆµÄÒÔÉÏÓŵ㣬ÎÒÃǽøÐÐÁË´óÁ¿µÄÑо¿¡¢²âÊÔºÍÑéÖ¤¡£

Ê×ÏÈ£¬ÎÒÃÇÐèÒªÖªµÀÀ©ÈÝ¡¢Region ·ÖÁÑ×ªÒÆµÄϸ½Ú¡¢Schema µ½ KV µÄÓ³Éä¡¢·Ö²¼Ê½ÊÂÎñµÄʵÏÖÔ­Àí¡£¶ø TiDB µÄ·½°¸£¬²Î¿¼Á˽϶àµÄ Google ÂÛÎÄ£¬ÎÒÃǽøÐÐÁËÔĶÁ£¬ÕâÓÐÖúÓÚÎÒÃÇÀí½â TiDB µÄ´æ´¢½á¹¹¡¢ÊÂÎñËã·¨¡¢°²È«ÐԵȣ¬°üÀ¨£º

Spanner: Google¡¯s Globally-Distributed Database

Large-scale Incremental Processing Using Distributed Transactions and Notifications

In Search of an Understandable Consensus Algorithm

Online, Asynchronous Schema Change in F1

ÎÒÃÇÒ²½øÐÐÁ˳£¹æµÄÐÔÄܺ͹¦ÄܲâÊÔ£¬ÓÃÀ´Óë MySQL µÄÖ¸±ê½øÐжԱȣ¬ÆäÖÐÒ»¸ö±È½ÏÌØ±ðµÄ²âÊÔ£¬ÊÇÖ¤Ã÷ 3 ¸±±¾¿ç»ú·¿²¿Êð£¬È·ÊµÄܱ£Ö¤Ã¿¸ö»ú·¿·Ö²¼Ò»¸ö¸±±¾£¬´Ó¶ø±£Ö¤ÈκÎÒ»¸ö»ú·¿å´»ú²»»áµ¼Ö¶ªÊ§³¬¹ý°ëÊý¸±±¾¡£ÎÒÃÇ´ÓÒÔϼ¸¸öµã½øÐÐÁ˲âÊÔ£º

Raft À©ÈÝʱÊÇ·ñÖ§³Ö Learner ½Úµã£¬´Ó¶ø±£Ö¤µ¥»ú·¿å´»ú²»»á¶ªÊ§ 2?3 µÄ¸±±¾¡£

TiKV ÉϵıêÇ©ÓÅÏȼ¶ÊÇ·ñ¿É¿¿£¬±£Ö¤µ±»ú·¿µÄ»úÆ÷²»Æ½¾ùʱ£¬ÄÜ·ñ±£Ö¤Ã¿¸ö»ú·¿µÄ¸±±¾ÊýÒÀÈ»ÊǾø¶Ôƽ¾ùµÄ¡£

ʵ¼Ê²âÊÔ£¬µ¥»ú·¿å´»ú£¬TiDB Ôڸ߲¢·¢Ï£¬QPS¡¢ÏìӦʱ¼ä¡¢±¨´íÊýÁ¿£¬ÒÔ¼°×îÖÕÊý¾ÝÊÇ·ñÓжªÊ§¡£

ÊÖ¶¯ Balance Ò»¸ö Region µ½ÆäËû»ú·¿£¬ÊÇ·ñ»á×Ô¶¯»ØÀ´¡£

´Ó²âÊÔ½á¹ûÀ´¿´£¬Ò»Çж¼·ûºÏÎÒÃǵÄÔ¤ÆÚ¡£

3. ´æ´¢Éú̬½¨Éè

ÃÀÍŵIJúÆ·Ï߷ḻ£¬ÒµÎñÌåÁ¿Ò²±È½Ï´ó£¬ÒµÎñ¶ÔÔÚÏß´æ´¢µÄ·þÎñÖÊÁ¿ÒªÇóÒ²·Ç³£¸ß¡£Òò´Ë£¬´ÓÔçÆÚ×öºÃ·þÎñÌåϵµÄ¹æ»®·Ç³£ÖØÒª¡£ÏÂÃæ´ÓÒµÎñ½ÓÈë²ã¡¢¼à¿Ø±¨¾¯¡¢·þÎñ²¿ÊðµÈά¶È£¬À´·Ö±ð½éÉÜÒ»ÏÂÎÒÃÇËù×öµÄ¹¤×÷¡£

3.1 ÒµÎñ½ÓÈë²ã

µ±Ç° MySQL µÄÒµÎñ½ÓÈ뷽ʽÖ÷ÒªÓÐÁ½ÖÖ£¬DNS ½ÓÈëºÍ Zebra ¿Í»§¶Ë½ÓÈë¡£ÔÚǰÆÚµ÷Ñн׶Σ¬ÎÒÃÇÑ¡ÔñÁË DNS + ¸ºÔؾùºâ×é¼þµÄ½ÓÈ뷽ʽ£¬TiDB-Server ½Úµãå´»ú£¬15s ¿ÉÒÔ±»¸ºÔؾùºâʶ±ðµ½£¬¼òµ¥ÇÒÓÐЧ¡£ÒµÎñ¼Ü¹¹ÈçÏÂͼËùʾ£º

ͼ 2 ÒµÎñ¼Ü¹¹Í¼

ºóÃæ£¬ÎÒÃÇ»áÖð½¥¹ý¶Éµ½µ±Ç°´óÁ¿Ê¹ÓÃµÄ Zebra ½ÓÈ뷽ʽÀ´·ÃÎÊ TiDB£¬´Ó¶ø±£³ÖÓë·ÃÎÊ MySQL µÄ·½Ê½Ò»Ö£¬Ò»·½Ãæ¼õÉÙÒµÎñ¸ÄÔìµÄ³É±¾£¬ÁíÒ»·½Ã澡Á¿ÊµÏÖ´Ó MySQL µ½ TiDB µÄ͸Ã÷Ç¨ÒÆ¡£

3.2 ¼à¿Ø±¨¾¯

ÃÀÍÅĿǰʹÓà Mt-Falcon ƽ̨¸ºÔð¼à¿Ø±¨¾¯£¬Í¨¹ýÔÚ Mt-Falcon ÉÏÅäÖò»Í¬µÄ²å¼þ£¬¿ÉÒÔʵÏÖ¶Ô¶àÖÖ×é¼þµÄ×Ô¶¨Òå¼à¿Ø¡£ÁíÍâÒ²»á½áºÏ Puppet ʶ±ð²»Í¬Óû§µÄȨÏÞ¡¢ÎļþµÄÏ·¢¡£Ö»ÒªÎÒÃDZàдºÃ²å¼þ½Å±¾¡¢ÐèÒªµÄÎļþ£¬×°»úºÍȨÏÞ¿ØÖƾͿÉÒÔÍê³ÉÁË¡£¼à¿Ø¼Ü¹¹ÈçÏÂͼËùʾ£º

ͼ 3 ¼à¿Ø¼Ü¹¹Í¼

¶ø TiDB ÓзḻµÄ¼à¿ØÖ¸±ê£¬Ê¹ÓÃÁ÷ÐÐµÄ Prometheus + Grafana£¬Ò»Ì×¼¯ÈºÓÐ 700+ µÄ Metric¡£´Ó¹Ù·½µÄ¼Ü¹¹Í¼¿ÉÒÔ¿´³ö£¬Ã¿¸ö×é¼þ»áÍÆËÍ×Ô¼ºµÄ Metric ¸ø PushGateWay£¬Prometheus »áÖ±½Óµ½ PushGateWay È¥×¥Êý¾Ý¡£

ÓÉÓÚÎÒÃÇÐèÒª×é¼þÊÕÁ²£¬Ô­ÉúµÄ TiDB ÿ¸ö¼¯ÈºÒ»Ì× Prometheus µÄ·½Ê½²»ÀûÓÚ¼à¿ØµÄ»ã×Ü¡¢·ÖÎö¡¢ÅäÖ㬶ø±¨¾¯ÒѾ­ÔÚ Mt-Falcon ÉÏʵÏֵıȽϺÃÁË£¬ÔÚ AlertManager ÉÏÔÙÔìÒ»¸öҲûÓбØÒª¡£Òò´ËÎÒÃÇÐèÒªÏë°ì·¨°Ñ¼à¿ØºÍ±¨¾¯»ã×ܵ½ Mt-Falcon ÉÏÃæ£¬°üÀ¨Èçϼ¸ÖÖ·½Ê½£º

·½°¸Ò»£ºÐÞ¸ÄÔ´´úÂ룬½« Metric Ö±½ÓÍÆË͵½ Falcon£¬ÓÉÓÚ Metric É¢ÂäÔÚ´úÂëµÄ²»Í¬Î»Ö㬶øÇÒ TiDB ´úÂëµü´úÌ«¿ì£¬°Ñ¾«Á¦ÏûºÄÔÚ²»Í£µ÷Õû¼à¿ØÂñµãÉϲ»Ì«ºÏÊÊ¡£

·½°¸¶þ£ºÔÚ PushGateWay ÊÇ»ã×ܺóµÄ£¬¿ÉÒÔÖ±½Óץȡ£¬µ« PushGateWay ÊǸöµ¥µã£¬²»ºÃά»¤¡£

·½°¸Èý£ºÍ¨¹ý¸÷¸ö×é¼þ£¨TiDB¡¢PD¡¢TiKV£©µÄ±¾µØ API Ö±½Óץȡ£¬ÓŵãÊÇ×é¼þå´»ú²»»áÓ°ÏìÆäËû×é¼þ£¬ÊµÏÖÒ²±È½Ï¼òµ¥¡£

ÎÒÃÇ×îÖÕÑ¡ÔñÁË·½°¸Èý¡£¸Ã·½°¸µÄÄѵãÊÇÐèÒª°Ñ Prometheus µÄÊý¾Ý¸ñʽת»¯Îª Mt-Falcon ¿Éʶ±ðµÄ¸ñʽ£¬ÒòΪ Prometheus Ö§³Ö Counter¡¢Gauge¡¢Histogram¡¢Summary ËÄÖÖÊý¾ÝÀàÐÍ£¬¶ø Mt-Falcon Ö»Ö§³Ö»ù±¾µÄ Counter ºÍ Gauge£¬Í¬Ê± Mt-Falcon µÄ¼ÆËã±í´ïʽ±È½ÏÉÙ£¬Òò´ËÐèÒªÔÚ¼à¿Ø½Å±¾ÖнøÐÐת»»ºÍ¼ÆËã¡£

3.3 ÅúÁ¿²¿Êð

TiDB ʹÓà Ansible ʵÏÖ×Ô¶¯»¯²¿Êð¡£µü´ú¿ì£¬ÊÇ TiDB µÄÒ»¸öÌØµã£¬ÓÐÎÊÌâÄÜ¿ìËÙ½øÐнâ¾ö£¬µ«Ò²Ôì³É Ansible ¹¤³Ì¡¢TiDB °æ±¾¸üйý¿ì£¬ÎÒÃÇ¶Ô Ansible µÄ¸Ä¶¯£¬Ò²Ö»»áÔö¼ÓеĴúÂ룬²»»á¸Ä¶¯ÒÑÓеĴúÂë¡£Òò´ËÏßÉÏ¿ÉÄÜͬʱÐèÒª²¿Êð¡¢Î¬»¤¶à¸ö°æ±¾µÄ¼¯Èº¡£Èç¹ûÿ¸ö¼¯ÈºÒ»¸ö Ansible Ŀ¼£¬Ôì³É¿Õ¼äµÄÀË·Ñ¡£

ÎÒÃDzÉÓõÄά»¤·½Ê½ÊÇ£¬ÔÚÖпػúÖУ¬Ã¿¸ö°æ±¾Ò»¸ö Ansible Ŀ¼£¬Ã¿¸ö°æ±¾ÖÐͨ¹ý²»Í¬ inventory ÎļþÀ´Î¬»¤¡£ÕâÀïÐèÒª¸ú PingCAP Ìá³öµÄÊÇ£¬Ansible Ö»¿¼ÂÇÁ˵¥¼¯Èº²¿Ê𣬴óÁ¿²¿Êð»áÓÐЩÂé·³£¬ÏñһЩÒÀÀµµÄÅäÖÃÎļþ£¬¶¼²»Äܸù¾Ý¼¯Èºµ¥¶ÀÅäÖã¨×Éѯ¹Ù·½µÃÖª£¬PingCAP ĿǰÕýÔÚ»ùÓÚ Cloud TiDB ´òÔìһվʽ HTAP ƽ̨£¬»áÌṩÅúÁ¿²¿Êð¡¢¶à×â»§µÈ¹¦ÄÜ£¬ºóÐø»á±È½ÏºÃµØ½â¾öÕâ¸öÎÊÌ⣩¡£

3.4 ×Ô¶¯»¯ÔËάƽ̨

Ëæ×ÅÏßÉϼ¯ÈºÊýÁ¿µÄÔö¼Ó£¬´òÔìÔËάƽ̨ÌáÉÏÁËÈճ̣¬¶øÃÀÍÅ¶Ô TiDB ºÍ MySQL µÄʹÓ÷½Ê½»ù±¾Ïàͬ£¬Òò´Ë MySQL ƽ̨ÉϾßÓеĴ󲿷Ö×é¼þ£¬TiDB ƽ̨ҲÐèÒª½¨Éè¡£µäÐ͵ĵײã×é¼þºÍ·½°¸£ºSQL ÉóºËÄ£¿é¡¢DTS¡¢Êý¾Ý±¸·Ý·½°¸µÈ¡£×Ô¶¯»¯ÔËάƽ̨չʾÈçÏÂͼËùʾ£º

ͼ 4 ×Ô¶¯»¯ÔËάƽ̨չʾͼ

3.5 ÉÏÏÂÓÎÒì¹¹Êý¾Ýͬ²½

TiDB ÊÇÔÚÏß´æ´¢ÌåϵÖеÄÒ»»·£¬ËüͬʱҲÐèÒªÈÚÈëµ½¹«Ë¾ÏÖÓеÄÊý¾ÝÁ÷ÖУ¬Òò´ËÐèҪһЩ¹¤¾ßÀ´×öÏνӡ£PingCAP ¹Ù·½±êÅäÁËÏà¹ØµÄ×é¼þ¡£

¹«Ë¾Ä¿Ç° MySQL ºÍ Hive ½áºÏµÄ±È½ÏÖØ£¬¶ø TiDB Òª´úÌæ MySQL µÄ²¿·Ö¹¦ÄÜ£¬ÐèÒª½â¾ö 2 ¸öÎÊÌ⣺

MySQL to TiDB

MySQL µ½ TiDB µÄÇ¨ÒÆ£¬ÐèÒª½â¾öÊý¾ÝÇ¨ÒÆÒÔ¼°ÔöÁ¿µÄʵʱͬ²½£¬Ò²¾ÍÊÇ DTS£¬Mydumper + Loader ½â¾ö´æÁ¿Êý¾ÝµÄͬ²½£¬¹Ù·½ÌṩÁË DM ¹¤¾ß¿ÉÒԺܺõĽâ¾öÔöÁ¿Í¬²½ÎÊÌâ¡£

MySQL ´óÁ¿Ê¹ÓÃÁË×ÔÔö ID ×÷ΪÖ÷¼ü¡£·Ö¿â·Ö±í MySQL ºÏ²¢µ½ TiDB ʱ£¬ÐèÒª½â¾ö×ÔÔö ID ³åÍ»µÄÎÊÌâ¡£Õâ¸öͨ¹ýÔÚ TiDB ¶ËÈ¥µô×ÔÔö ID ½¨Á¢×Ô¼ºµÄΨһÖ÷¼üÀ´½â¾ö¡£Ð°æ DM Ò²Ìṩ·Ö±íºÏ²¢¹ý³ÌÖ÷¼ü×Ô¶¯´¦ÀíµÄ¹¦ÄÜ¡£

Hive to TiDB & TiDB to Hive

Hive to TiDB ±È½ÏºÃ½â¾ö£¬ÕâÌåÏÖÁË TiDB ºÍ MySQL ¸ß¶È¼æÈݵĺô¦£¬insert Óï¾ä¿ÉÒÔ²»Óõ÷Õû£¬»ùÓÚ Hive to MySQL ¼òµ¥¸ÄÔì¼´¿É¡£

TiDB to Hive ÔòÐèÒª»ùÓÚ¹Ù·½ Pump + Drainer ×é¼þ£¬Drainer ¿ÉÒÔÏû·Ñµ½ Kafka¡¢MySQL¡¢TiDB£¬ÎÒÃdzõ²½¿¼ÂÇÓÃͼ 5 Öеķ½°¸Í¨¹ýʹÓà Drainer µÄ Kafka Êä³öģʽͬ²½µ½ Hive¡£

ͼ 5 TiDB to Hive ·½°¸Í¼

4. ÏßÉÏʹÓÃÄ¥ºÏ

¶ÔÓÚ³õÆÚÉÏÏßµÄÒµÎñ£¬ÎÒÃDZȽϽ÷É÷£¬»ù±¾µÄÔ­ÔòÊÇ£ºÀëÏßÒµÎñ -> ·ÇºËÐÄÒµÎñ -> ºËÐÄÒµÎñ¡£TiDB ÒѾ­·¢²¼Á½Äê¶à£¬ÇÒǰÆÚ¾­ÀúÁË´óÁ¿µÄ²âÊÔ£¬ÎÒÃÇÒ²ÉîÈëÁ˽âÁËÆäËü¹«Ë¾µÄ²âÊÔºÍʹÓÃÇé¿ö£¬¿ÉÒÔÔ¤ÆÚµÄÊÇ TiDB ÉÏÏß»á±È½ÏÎȶ¨£¬µ«ÒÀÈ»Óöµ½ÁËһЩСÎÊÌâ¡£×ÜÌåÀ´¿´£¬ÔÚ°²È«ÐÔ¡¢Êý¾ÝÒ»ÖÂÐԵȹؼüµãÉÏûÓгöÏÖÎÊÌâ¡£ÆäËûһЩÐÔÄܶ¶¶¯ÎÊÌ⣬²ÎÊýµ÷ÓŵÄÎÊÌ⣬Ҳ¶¼µÃµ½ÁË¿ìËÙÍ×ÉÆµÄ½â¾ö¡£ÕâÀï¸ø PingCAP µÄͬѧµã¸ö´ó´óµÄÔÞ£¬ÎÊÌâÏìÓ¦Ëٶȷdz£¿ì£¬ÓëÎÒÃÇÃÀÍÅÄÚ²¿Ñз¢µÄºÏ×÷Ò²·Ç³£ÈÚÇ¢¡£

4.1 дÈëÁ¿´ó¡¢¶Á QPS ¸ßµÄÀëÏßÒµÎñ

ÎÒÃÇÉÏÏßµÄ×î´óµÄÒ»¸öÒµÎñ£¬Ã¿ÌìÓÐÊý°Ù G µÄдÈëÁ¿£¬ÔÚǰÆÚ£¬ÎÒÃÇÒ²Óöµ½Á˽϶àµÄÎÊÌâ¡£

ÒµÎñ³¡¾°£º

Îȶ¨µÄдÈ룬ÿ¸öÊÂÎñ²Ù×÷ 100~200 Ðв»µÈ£¬Ã¿Ãë 6W µÄÊý¾ÝдÈë¡£

ÿÌìµÄдÈëÁ¿³¬¹ý 500G£¬ÒÔºó»áÖð²½ÌáÁ¿µ½Ã¿Ìì 3T¡£

ÿ 15 ·ÖÖӵĶ¨Ê±¶Á Job£¬5000 QPS£¨¸ßƵÁ¿Ð¡£©¡£

²»¶¨Ê±µÄ²éѯ£¨µÍƵÁ¿´ó£©¡£

֮ǰʹÓà MySQL ×÷Ϊ´æ´¢£¬µ« MySQL µ½´ïÁËÈÝÁ¿ºÍÐÔÄÜÆ¿¾±£¬¶øÒµÎñµÄÈÝÁ¿Î´À´»á 10 ±¶µÄÔö³¤¡£³õÆÚµ÷ÑвâÊÔÁË ClickHouse£¬Âú×ãÁËÈÝÁ¿µÄÐèÇ󣬲âÊÔ·¢ÏÖÔËÐÐµÍÆµ SQL ûÓÐÎÊÌ⣬µ«¸ßƵ SQL µÄ´ó²¢·¢²éѯÎÞ·¨Âú×ãÐèÇó£¬Ö»ÔÚ ClickHouse ÅÜÈ«Á¿µÄµÍƵ SQL ÓÖ»á overkill£¬×îÖÕÑ¡ÔñʹÓà TiDB¡£

²âÊÔÆÚ¼äÄ£ÄâдÈëÁËÒ»ÌìµÄÕæÊµÊý¾Ý£¬·Ç³£Îȶ¨£¬¸ßƵµÍƵÁ½ÖÖ²éѯҲ¶¼Âú×ãÐèÇ󣬶¨ÏòÓÅ»¯ºó OLAP µÄ SQL ±È MySQL ÐÔÄÜÌá¸ßËı¶¡£µ«ÉÏÏߺó£¬Â½Ðø·¢ÏÖÁËһЩÎÊÌ⣬µäÐ͵ÄÈçÏ£º

4.1.1 TiKV ·¢Éú Write Stall

TiKV µ×²ãÓÐ 2 ¸ö RocksDB ×÷Ϊ´æ´¢¡£ÐÂдµÄÊý¾ÝдÈë L0 ²ã£¬µ± RocksDB µÄ L0 ²ãÊýÁ¿´ïµ½Ò»¶¨ÊýÁ¿£¬¾Í»á·¢Éú¼õËÙ£¬¸ü¸ßÔò·¢Éú Stall£¬ÓÃÀ´×ÔÎÒ±£»¤¡£TiKV µÄĬÈÏÅäÖãº

level0-slowdown-writes-trigger = 20

level0-stop-writes-trigger = 36

Óöµ½¹ýµÄ£¬·¢Éú L0 Îļþ¹ý¶à¿ÉÄܵÄÔ­ÒòÓÐ 2 ¸ö£º

дÈëÁ¿´ó£¬Compact Íê²»³É¡£

Snapshot Ò»Ö±´´½¨²»Í꣬µ¼Ö¶ѻýµÄ¸±±¾Ò»ÏÂÊÍ·Å£¬RocksDB-Raft ´´½¨´óÁ¿µÄ L0 Îļþ£¬¼à¿ØÕ¹Ê¾ÈçÏÂͼËùʾ£º

ͼ 6 TiKV ·¢Éú Write Stall ¼à¿ØÕ¹Ê¾Í¼

ÎÒÃÇͨ¹ýÒÔÏ´ëÊ©£¬½â¾öÁË Write Stall µÄÎÊÌ⣺

¼õ»º Raft Log Compact ƵÂÊ£¨Ôö´ó raft-log-gc-size-limit¡¢raft-log-gc-count-limit£©

¼Ó¿ì Snapshot ËÙ¶È£¨ÕûÌåÐÔÄÜ¡¢°üÀ¨Ó²¼þÐÔÄÜ£©

max-sub-compactions µ÷ÕûΪ 3

max-background-jobs µ÷ÕûΪ 12

level 0 µÄ 3 ¸ö Trigger µ÷ÕûΪ 16¡¢32¡¢64

4.1.2 Delete ´óÁ¿Êý¾Ý£¬GC ¸ú²»ÉÏ

ÏÖÔÚ TiDB µÄ GC ¶ÔÓÚÿ¸ö kv-instance Êǵ¥Ï̵߳쬵±ÒµÎñɾ³ýÊý¾ÝµÄÁ¿·Ç³£´óʱ£¬»áµ¼Ö GC ËٶȽÏÂý£¬ºÜ¿ÉÄÜ GC µÄËٶȸú²»ÉÏдÈë¡£

Ŀǰ¿ÉÒÔͨ¹ýÔö¶à TiKV ¸öÊýÀ´½â¾ö£¬³¤ÆÚÐèÒª¿¿ GC ¸ÄΪ¶àÏß³ÌÖ´ÐУ¬¹Ù·½¶Ô´ËÒѾ­ÊµÏÖ£¬¼´½«·¢²¼¡£

4.1.3 Insert ÏìӦʱ¼äÔ½À´Ô½Âý

ÒµÎñÉÏÏß³õÆÚ£¬insert µÄÏìӦʱ¼ä 80 Ïߣ¨Duration 80 By Instance£©ÔÚ 20ms ×óÓÒ£¬Ëæ×ÅÔËÐÐʱ¼äÔö¼Ó£¬·¢ÏÖÏìӦʱ¼äÖð²½Ôö¼Óµ½ 200ms+¡£ÆÚ¼äÅŲéÁ˶àÖÖ¿ÉÄÜÔ­Òò£¬¶¨Î»ÔÚÓÉÓÚ Region ÊýÁ¿¿ìËÙÉÏÕÇ£¬Raftstore ÀïÃæÒª×öµÄÊÂÇé±ä¶àÁË£¬¶øËüÓÖÊǵ¥Ï̹߳¤×÷£¬Ã¿¸ö Region ¶¨ÆÚ¶¼Òª heartbeat£¬´øÀ´ÁËÐÔÄÜÏûºÄ¡£tikv-raft propose wait duration Ö¸±ê³ÖÐøÔö³¤¡£

½â¾öÎÊÌâµÄ°ì·¨£º

ÁÙʱ½â¾ö¡£

Ôö¼Ó Heartbeat µÄÖÜÆÚ£¬´Ó 1s ¸ÄΪ 2s£¬Ð§¹û±È½ÏÃ÷ÏÔ£¬¼à¿ØÕ¹Ê¾ÈçÏÂͼËùʾ£º

ͼ 7 insert ÏìӦʱ¼äÓÅ»¯Ç°ºó¶Ô±Èͼ

³¹µ×½â¾ö¡£

ÐèÒª¼õÉÙ Region ¸öÊý£¬Merge µô¿Õ Region£¬¹Ù·½ÔÚ 2.1 °æ±¾ÖÐÒѾ­ÊµÏÖÁË Region Merge ¹¦ÄÜ£¬ÎÒÃÇÔÚÉý¼¶µ½ 2.1 ºó£¬µÃµ½Á˳¹µ×½â¾ö¡£

ÁíÍ⣬µÈ´ý Raftstore ¸ÄΪ¶àỊ̈߳¬ÄܽøÒ»²½ÓÅ»¯¡££¨¹Ù·½»Ø¸´Ïà¹Ø¿ª·¢ÒÑ»ù±¾½Ó½üβÉù£¬½«ÓÚ 2.1 µÄÏÂÒ»¸ö°æ±¾·¢²¼¡££©

4.1.4 Truncate Table ¿Õ¼äÎÞ·¨ÍêÈ«»ØÊÕ

DBA Truncate Ò»ÕÅ´ó±íºó£¬·¢ÏÖ 2 ¸öÏÖÏó£¬Ò»ÊÇ¿Õ¼ä»ØÊÕ½ÏÂý£¬¶þÊÇ×îÖÕҲûÓÐÍêÈ«»ØÊÕ¡£

ÓÉÓڵײã RocksDB µÄ»úÖÆ£¬ºÜ¶àÊý¾ÝÂäÔÚ Level 6 ÉÏ£¬ÓпÉÄÜÇå²»µô¡£Õâ¸öÐèÒª´ò¿ª cdynamic-level-bytes »áÓÅ»¯ Compaction µÄ²ßÂÔ£¬Ìá¸ß Compact »ØÊÕ¿Õ¼äµÄËÙ¶È¡£

ÓÉÓÚ Truncate ʹÓà delete_files_in_range ½Ó¿Ú£¬·¢¸ø TiKV ȥɾ SST Îļþ£¬ÕâÀïֻɾ³ý²»ÏཻµÄ²¿·Ö£¬¶øÖ®Ç°ÅжÏÊÇ·ñÏཻµÄÁ£¶ÈÊÇ Region£¬Òò´Ëµ¼ÖÂÁË´óÁ¿ SST ÎÞ·¨¼°Ê±É¾³ýµô¡£

¿¼ÂÇ Region ¶ÀÁ¢ SST ¿ÉÒÔ½â¾ö½»²æÎÊÌ⣬µ«ÊÇËæÖ®´øÀ´µÄÊÇ´ÅÅÌÕ¼ÓÃÎÊÌâºÍ Split ÑÓʱÎÊÌâ¡£

¿¼ÂÇʹÓà RocksDB µÄ DeleteRange ½Ó¿Ú£¬µ«ÐèÒªµÈ¸Ã½Ó¿ÚÎȶ¨¡£

Ŀǰ×îÐ嵀 2.1 °æ±¾ÓÅ»¯ÎªÖ±½ÓʹÓà DeleteFilesInRange ½Ó¿Úɾ³ýÕû¸ö±íÕ¼ÓõĿռ䣬ȻºóÇåÀíÉÙÁ¿²ÐÁôÊý¾Ý£¬Ä¿Ç°ÒѾ­½â¾ö¡£

4.1.5 ¿ªÆô Region Merge ¹¦ÄÜ

ΪÁ˽â¾ö region ¹ý¶àµÄÎÊÌ⣬ÎÒÃÇÔÚÉý¼¶ 2.1 °æ±¾ºó£¬¿ªÆôÁË region merge ¹¦ÄÜ£¬µ«ÊÇ TiDB µÄÏìӦʱ¼ä 80 Ïߣ¨Duration 80 By Instance£©ÒÀȻûÓлָ´µ½µ±³õ£¬±£³ÖÔÚ 50ms ×óÓÒ£¬ÅŲ鷢ÏÖ KV ²ã·µ»ØµÄÏìӦʱ¼ä»¹ºÜ¿ì£¬ºÍ×î³õ½Ó½ü£¬ÄÇô¾Í¶¨Î»ÁËÎÊÌâ³öÏÖÔÚ TiDB ²ã¡£Ñз¢ÈËÔ±ºÍ PingCAP ¶¨Î»ÔÚ²úÉúÖ´Ðмƻ®Ê±ÐÐΪºÍ 2.0 °æ±¾²»Ò»ÖÂÁË£¬Ä¿Ç°ÒѾ­ÓÅ»¯¡£

4.2 ÔÚÏß OLTP£¬¶ÔÏìӦʱ¼äÃô¸ÐµÄÒµÎñ

³ýÁË·ÖÎö²éѯÁ¿´óµÄÀëÏßÒµÎñ³¡¾°£¬ÃÀÍÅ»¹Óкܶà·Ö¿â·Ö±íµÄ³¡¾°£¬ËäȻҵ½çÓкܶà·Ö¿â·Ö±íµÄ·½°¸£¬½â¾öÁ˵¥»úÐÔÄÜ¡¢´æ´¢Æ¿¾±£¬µ«ÊǶÔÓÚÒµÎñ»¹ÊÇÓÐЩ²»ÓѺõĵط½£º

ÒµÎñÎÞ·¨ÓѺõÄÖ´Ðзֲ¼Ê½ÊÂÎñ¡£

¿ç¿âµÄ²éѯ£¬ÐèÒªÔÚÖмä²ãÉÏ×éºÏ£¬ÊDZȽÏÖØµÄ·½°¸¡£

µ¥¿âÈç¹ûÈÝÁ¿²»×㣬ÐèÒªÔٴβð·Ö£¬ÎÞÂÛÔõÑù×ö£¬¶¼ºÜÍ´¿à¡£

ÒµÎñÐèÒª¹Ø×¢Êý¾Ý·Ö²¼µÄ¹æÔò£¬¼´Ê¹ÓÃÁËÖмä²ã£¬ÒµÎñÐÄÀﻹÊÇûµ×¡£

Òò´ËºÜ¶à·Ö¿â·Ö±íµÄÒµÎñ£¬ÒÔ¼°¼´½«ÎÞ·¨ÔÚµ¥»ú³ÐÔØ¶øÕýÔÚÉè¼Æ·Ö¿â·Ö±í·½°¸µÄÒµÎñ£¬Ö÷¶¯ÕÒµ½ÁËÎÒÃÇ£¬ÕâºÍÎÒÃǶÔÓÚ TiDB µÄ¶¨Î»ÊÇÏà·ûµÄ¡£ÕâЩҵÎñµÄÌØµãÊÇ SQL Óï¾äС¶øÆµ·±£¬¶ÔÒ»ÖÂÐÔÒªÇó¸ß£¬Í¨³£²¿·ÖÊý¾ÝÓÐʱ¼äÊôÐÔ¡£ÔÚ²âÊÔ¼°ÉÏÏߺóÒ²Óöµ½ÁËһЩÎÊÌ⣬²»¹ýĿǰ»ù±¾¶¼ÓÐÁ˽â¾ö°ì·¨¡£

4.2.1 SQL Ö´Ðг¬Ê±ºó£¬JDBC ±¨´í

ÒµÎñż¶û±¨³ö privilege check fail¡£

ÊÇÓÉÓÚÒµÎñÔÚ JDBC ÉèÖÃÁË QueryTimeout£¬SQL ÔËÐг¬¹ýÕâ¸öʱ¼ä£¬»á·¢ÐÐÒ»¸ö kill query ÃüÁ¶ø TiDB Ö´ÐÐÕâ¸öÃüÁîÐèÒª Super ȨÏÞ£¬ÒµÎñÊÇûÓÐȨÏ޵ġ£Æäʵ kill ×Ô¼ºµÄ²éѯ£¬²¢²»ÐèÒª¶îÍâµÄȨÏÞ£¬Ä¿Ç°ÒѾ­½â¾öÁËÕâ¸öÎÊÌ⣺

https://github.com/pingcap/tidb/pull/7003£¬²»ÔÙÐèÒª Super ȨÏÞ£¬ÒÑÔÚ 2.0.5 ÉÏÏß¡£

4.2.2 Ö´Ðмƻ®Å¼¶û²»×¼

TiDB µÄÎïÀíÓÅ»¯½×¶ÎÐèÒªÒÀ¿¿Í³¼ÆÐÅÏ¢¡£ÔÚ 2.0 °æ±¾Í³¼ÆÐÅÏ¢µÄÊÕ¼¯´ÓÊÖ¶¯Ö´ÐУ¬ÓÅ»¯ÎªÔÚ´ïµ½Ò»¶¨Ìõ¼þʱ¿ÉÒÔ×Ô¶¯´¥·¢£º

Êý¾ÝÐ޸ıÈÀý´ïµ½ tidb_auto_analyze_ratio¡£

±íÒ»·ÖÖÓûÓбä¸ü£¨Ä¿Ç°°æ±¾ÒѾ­È¥µôÕâ¸öÌõ¼þ£©¡£

µ«ÊÇÔÚûÓдﵽÕâЩÌõ¼þ֮ǰͳ¼ÆÐÅÏ¢ÊDz»×¼µÄ£¬ÕâÑù¾Í»áµ¼ÖÂÎïÀíÓÅ»¯³öÏÖÆ«²î£¬ÔÚ²âÊԽ׶Σ¨2.0 °æ±¾£©¾Í³öÏÖÁËÕâÑùÒ»¸ö°¸Àý£ºÒµÎñÊý¾ÝÊÇÓÐʱ¼äÊôÐԵģ¬ÒµÎñµÄ²éѯÓÐ 2 ¸öÌõ¼þ£¬±ÈÈ磺ʱ¼ä+ÉÌ¼Ò ID£¬µ«Ã¿ÌìÉÏÎçͳ¼ÆÐÅÏ¢¿ÉÄܲ»×¼£¬µ±ÌìµÄÊý¾ÝÒѾ­ÓÐÁË£¬µ«Í³¼ÆÐÅÏ¢ÈÏΪûÓС£ÕâʱÓÅ»¯Æ÷¾Í»á½¨ÒéʹÓÃʱ¼äÁеÄË÷Òý£¬µ«Êµ¼ÊÉÏÉÌ¼Ò ID ÁеÄË÷Òý¸üÓÅ»¯¡£Õâ¸öÎÊÌâ¿ÉÒÔͨ¹ýÔö¼Ó Hint ½â¾ö¡£

ÔÚ 2.1 °æ±¾¶Ôͳ¼ÆÐÅÏ¢ºÍÖ´Ðмƻ®µÄ¼ÆËã×öÁË´óÁ¿µÄÓÅ»¯£¬Ò²Îȶ¨ÁË»ùÓÚ Query Feedback ¸üÐÂͳ¼ÆÐÅÏ¢£¬Ò²ÓÃÓÚ¸üÐÂÖ±·½Í¼ºÍ Count-Min Sketch£¬·Ç³£ÆÚ´ý 2.1 µÄ GA¡£

5. ×ܽáÕ¹Íû

¾­¹ýǰÆÚµÄ²âÊÔ¡¢¸÷·½µÄ¹µÍ¨Ð­µ÷£¬ÒÔ¼°½ü°ëÄê¶Ô TiDB µÄʹÓã¬ÎÒÃÇ¿´ºÃ TiDB µÄ·¢Õ¹£¬Ò²¶ÔδÀ´»ùÓÚ TiDB µÄºÏ×÷³äÂúÐÅÐÄ¡£

½ÓÏÂÀ´£¬ÎÒÃÇ»á¼ÓËÙÍÆ½ø TiDB ÔÚ¸ü¶àÒµÎñϵͳÖеÄʹÓã¬Í¬Ê±Ò²½« TiDB ÄÉÈëÁËÃÀÍÅÐÂÒ»´úÊý¾Ý¿âµÄÕ½ÂÔÑ¡ÐÍÖС£µ±Ç°£¬ÎÒÃÇÒѾ­È«Ö°Í¶ÈëÁË 3 λ DBA ͬѧºÍ¶àλ´æ´¢¼ÆËãר¼Ò£¬´Óµ×²ãµÄ´æ´¢£¬Öмä²ãµÄ¼ÆË㣬ҵÎñ²ãµÄ½ÓÈ룬ÔÙµ½´æ´¢·½°¸µÄÑ¡ÐͺͲ¼µÀ£¬½øÐÐÈ«·½Î»ºÍ¸üÉîÈëµÄºÏ×÷¡£

³¤ÆÚÀ´¿´£¬½áºÏÃÀÍŲ»¶ÏÔö³¤µÄÒµÎñ¹æÄ££¬ÎÒÃǽ«Óë PingCAP ¹Ù·½ºÏ×÷´òÔì¸üÇ¿´óµÄÉú̬Ìåϵ£º

Titan£ºTitan ÊÇ TiDB ÏÂÒ»²½±È½Ï´óµÄ¶¯×÷£¬Ò²ÊÇÎÒÃǷdz£ÆÚ´ýµÄÏÂÒ»´ú´æ´¢ÒýÇæ£¬Ëü¶Ô´ó Value Ö§³Ö»á¸üÓѺ㬽«½â¾öÎÒÃǵ¥ÐдóСÊÜÏÞ£¬µ¥»ú TiKV ×î´óÖ§³Ö´æ´¢ÈÝÁ¿µÄÎÊÌ⣬´ó´óÌáÉý´ó¹æÄ£²¿ÊðµÄÐԼ۱ȡ£

Cloud TiDB £¨Based on Docker & K8s£©£ºÔƼÆËã´óÊÆËùÇ÷£¬PingCAP ÔÚÕâ¿éÒ²²¼¾Ö±È½ÏÔ磬½ñÄê 8 Ô·ݿªÔ´ÁË TiDB Operator£¬Cloud TiDB ²»½öʵÏÖÁËÊý¾Ý¿âµÄ¸ß¶È×Ô¶¯»¯ÔËά£¬¶øÇÒ»ùÓÚ Docker Ó²¼þ¸ôÀ룬ʵÏÖÁËÊý¾Ý¿â±È½ÏÍêÃÀµÄ¶à×â»§¼Ü¹¹¡£ÎÒÃǺ͹ٷ½Í¬Ñ§¹µÍ¨£¬Ä¿Ç°ËûÃǵÄ˽ÓÐÔÆ·½°¸ÔÚ¹úÄÚÒ²ÓÐÖØÒªÌåÁ¿µÄ POC£¬ÕâÒ²ÊÇÃÀÍÅ¿´ÖصÄÒ»¸ö·½Ïò¡£

TiDB HTAP Platform£ºPingCAP ÔÚÔ­ÓÐ TiDB Server ¼ÆËãÒýÇæµÄ»ù´¡ÉÏ£¬»¹¹¹½¨ TiSpark ¼ÆËãÒýÇæ£¬ºÍËûÃǹٷ½¹µÍ¨£¬ËûÃÇÔÚÑз¢ÁËÒ»¸ö»ùÓÚÁеĴ洢ÒýÇæ£¬ÕâÑù¾ÍÐγÉÁËϲãÐС¢ÁÐÁ½¸ö´æ´¢ÒýÇæ¡¢ÉϲãÁ½¸ö¼ÆËãÒýÇæµÄÍêÕû»ìºÏÊý¾Ý¿â£¨HTAP£©£¬Õâ¸ö¼Ü¹¹²»½ö´ó´óµÄ½ÚÊ¡Á˺ËÐÄÒµÎñÊý¾ÝÔÚÕû¸ö¹«Ë¾ÒµÎñÖÜÆÚÀïµÄ¸±±¾ÊýÁ¿£¬»¹Í¨¹ýÊÕÁ²¼¼ÊõÕ»£¬½ÚÊ¡ÁË´óÁ¿µÄÈËÁ¦³É±¾¡¢¼¼Êõ³É±¾¡¢»úÆ÷³É±¾£¬Í¬Ê±»¹½â¾öÁËÀ§ÈŶàÄêµÄ OLAP µÄʵЧÐÔ¡£ºóÃæÎÒÃÇÒ²»á¿¼Âǽ«Ò»Ð©ÓÐʵʱ¡¢×¼ÊµÊ±µÄ·ÖÎö²éѯϵͳ½ÓÈë TiDB¡£

ͼ 8 TiDB HTAP Platform ÕûÌå¼Ü¹¹Í¼

ºóÐøµÄÎïÀí±¸·Ý·½°¸£¬¿ç»ú·¿¶àдµÈÒ²ÊÇÎÒÃǽÓÏÂÀ´Öð²½ÍƽøµÄ³¡¾°£¬×ÜÖ®£¬ÎÒÃǼáÐÅδÀ´ TiDB ÔÚÃÀÍŵÄʹÓó¡¾°»áÔ½À´Ô½¶à£¬·¢Õ¹Ò²»áÔ½À´Ô½ºÃ¡£

Ŀǰ£¬TiDB ÔÚÒµÎñ²ãÃæ¡¢¼¼ÊõºÏ×÷²ãÃæ¶¼ÒѾ­ÔÚÃÀÍÅÑï·«Æðº½£¬ÃÀÍŵãÆÀ½«Ð¯ÊÖ PingCAP ¿ªÆôÐÂÒ»´úÊý¾Ý¿âÉî¶Èʵ¼ù¡¢Ì½Ë÷Ö®Â᣺óÐø£¬»¹ÓÐÃÀÍŵãÆÀ¼Ü¹¹´æ´¢ÍŶÓÕë¶Ô TiDB Ô´ÂëÑо¿ºÍ¸Ä½øµÄϵÁÐÎÄÕ£¬¾´ÇëÆÚ´ý¡£

   
1724 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
InfluxDB¸ÅÄîºÍ»ù±¾²Ù×÷
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾ÝдÈë
Éî¶ÈÂþ̸Êý¾Ýϵͳ¼Ü¹¹¡ª¡ªLambda architecture
Lambda¼Ü¹¹Êµ¼ù
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾Ý¶ÁÈ¡
×îпγÌ
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯¡¢¼Ü¹¹Éè¼ÆºÍÔËÐÐά»¤
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
NoSQLÊý¾Ý¿â£¨Ô­Àí¡¢Ó¦Óá¢×î¼Ñʵ¼ù£©
ÆóÒµ¼¶Hadoop´óÊý¾Ý´¦Àí×î¼Ñʵ¼ù
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯×î¼Ñʵ¼ù
³É¹¦°¸Àý
ij½ðÈÚ¹«Ë¾ Mysql¼¯ÈºÓëÐÔÄÜÓÅ»¯
±±¾© ²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
ÖªÃûijÐÅϢͨÐŹ«Ë¾ NoSQL»º´æÊý¾Ý¿â¼¼Êõ
±±¾© oracleÊý¾Ý¿âSQLÓÅ»¯
ÖйúÒÆ¶¯ IaaSÔÆÆ½Ì¨-Ö÷Á÷Êý¾Ý¿â¼°´æ´¢¼¼Êõ