±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁËÐÂÒ»´úÊý¾Ý¿â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 Ô´ÂëÑо¿ºÍ¸Ä½øµÄϵÁÐÎÄÕ£¬¾´ÇëÆÚ´ý¡£ |