| ±à¼ÍƼö: | 
								   
										
                                    ±¾ÎÄÖ÷Òª½éÉÜËÕÄþÈ«Á´Â·¼à¿ØÆ½Ì¨Éè¼Æ£¬ÈçºÎ½« 
                                      ClickHouse ÄÉÈëÈ«Á´Â·¼à¿ØÆ½Ì¨£¬ClickHouse ¼¯Èº×´Ì¬¼à¿Ø£¬È«Á´Â·¼à¿ØµÄÓÅÊÆºÍÕ¹Íû£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£ 
                                       
                                      ±¾ÎÄÀ´×ÔÓÚËѺüÍø£¬ÓÉAlice±à¼¡¢ÍƼö¡£  | 
								   
							 
						 | 
                           
                         
                        
                          
                          
                         
                           ¼ò½é 
                          ClickHouse ÊÇÒ»¿îÓÅÐãµÄ OLAP ·ÖÎöÒýÇæ£¬ÓÈÆäÊÇÔÚµ¥±í·ÖÎö ¡¢Colocate Join 
                            ·½ÃæÐÔÄܱíÏÖÓÈΪͻ³ö¡£ 
                          ClickHouse Ö®ËùÒÔÔÚÖÚ¶àµÄ OLAP ·ÖÎöÒýÇæÖгÉΪٮٮÕߣ¬Ö÷ÒªÊÇÒòΪËü¾ß±¸ÒÔÏÂÌØµã£ºÁÐʽ´æ´¢¡¢LSM-Tree 
                            ´æ´¢ÒýÇæ¡¢ÏòÁ¿»¯Ö´ÐÐÒýÇæ¡¢Òì²½ Merge ºÍ Mutation »úÖÆ¡¢²¢·¢ MPP+ SMP µÈ¡£ 
                          Ŀǰ£¬ClickHouse ÔÚËÕÄþ´óÊý¾ÝµÄÖ¸±êºÍ±êÇ©µÄÓ¦Óý϶ࣺ 
                          ´Ó¼¼Êõ²ãÃæÀ´¿´£¬Ö÷Òª½â¾öµÄ³¡¾°ÓУº¸ß»ùÊýµÄÊý¾Ý·ÖÎö¡¢¾«È·È¥ÖØ¡¢½»»¥Ê½·ÖÎö¡¢¶à±äģʽ²éѯ¡¢´ó¿í±í·ÖÎö¡¢Ê±Ðò»¯Êý¾Ý´æ´¢¡¢ÊµÊ±¾ÛºÏµÄÎﻯÊÓͼµÈ£» 
                            ´ÓÒµÎñ²ãÃæÀ´¿´£¬Ö÷ÒªÓ¦Óõij¡¾°ÓУºÐÂÂò¼Ò¡¢ÀÏÂò¼Ò¡¢¸´¹º¡¢Áô´æ¡¢ÊµÊ±Óû§»Ïñ¡¢ÈËȺ°üȦѡµÈ¡£¶ø»ùÓÚ ClickHouse 
                            µÄ RoaringBitmap ·½°¸£¬±£Ö¤ÁËÒÔÉϳ¡¾°Êý¾Ý·ÖÎöµÄʵʱºÍ¸ßЧ¡£ 
                            ÔÚ ClickHouse ¼à¿Ø·½Ã棬ĿǰÊÐÃæÉÏÌṩµÄ¿ÉÊÊÅä·½°¸²»¶à£¬³£ÓõÄÓÐ Prometheus 
                            +Grafana+ ClickHouse_Exporter ×éºÏµÄ·½Ê½£¬¿Éͨ¹ýÌṩµÄ Dashboards 
                            À´¼à¿Ø¼¯Èº×´¿ö£¬µ«ÐèÒª°²×° Prometheus ºÍ ClickHouse_Exporter£¬²»±àÒëµÄ»°»¹ÐèÒª°²×° 
                            GO »·¾³ºÍ Docker£¬Õû¸ö¿ò¼Ü¹ýÖØ£¬³É±¾¹ý¸ß£¬¶Ô¸öÐÔ»¯µÄ¼à¿ØÒ²²»Ö§³Ö¡£»¹ÓÐһЩÆäËû¼à¿Ø×é¼þÈç 
                            Graphite + Grafana£¬ÔÚÕâÀï¾Í²»×ö½éÉÜ¡£ 
                          ÎÒÃǽ« ClickHouse ÈÚÈëËÕÄþÈ«Á´Â·¼à¿ØÉú̬Ìåϵ£¬ÔÚÍêÉÆ¼à¿ØÌåϵµÄͬʱ£¬Ò²Ö§³ÅÁ˸öÐÔ»¯µÄ¼à¿Ø£¬½øÒ»²½ÍØÕ¹ÁËÈ«Á´Â·¼à¿ØÆ½Ì¨µÄÉî¶ÈºÍ¹ã¶È¡£ 
                          Ò»¡¢ËÕÄþ´óÊý¾ÝÈ«Á´Â·¼à¿ØÆ½Ì¨ 
                          1¡¢ËÕÄþÈ«Á´Â·¼à¿ØÆ½Ì¨½éÉÜ 
                            
                          
                            ͼ 2-1 È«Á´Â·¼à¿Ø¼Ü¹¹ 
                          ËÕÄþ´óÊý¾ÝÖÐÐÄÊý¾ÝÖÐ̨ÓÐÒ»ÕûÌ×ÍêÉÆµÄÖ¸±ê½¨ÉèÌåϵ£¬°üº¬ÁËÖ¸±êÉúÃüÖÜÆÚ¹ÜÀí¡¢Ö¸±ê·ÖÎöÌåϵÒÔ¼°Êý¾Ý¿ìËÙ¿ÉÊÓ»¯Æ½Ì¨£¬Êý¾Ý·ÖÎöʱ¿çÔ½¿ÉÊÓ»¯Æ½Ì¨¡¢Ö¸±ê·þÎñƽ̨¼° 
                            OLAP ·ÖÎöÒýÇæÈý´óƽ̨£¬²éѯÁ´Â·½Ï³¤¡£Èç¹ûûÓÐÒ»Ì×ÍêÕûµÄÈ«Á´Â·¼à¿Ø·ÖÎöƽ̨£¬¶ÔÓÚ¶¨Î»ÎÊÌâ»á´æÔڽϴóµÄÀ§ÄÑ¡£ 
                          È«Á´Â·¼à¿ØÕûÌåµÄÉè¼ÆË¼ÏëÊǽ«Ò³ÃæµÄÿ´Î http ÇëÇóÉú³ÉΨһµÄÁ÷Ë®ºÅ (serialId)£¬ºóÐøÃ¿·ÃÎÊÒ»´ÎÖ¸±ê¹ÜÀíϵͳ£¬Éú³ÉΨһµÄ 
                            traceId£¬Ã¿´Îµ÷Óà OLAP ½Ó¿ÚÉú³ÉΨһµÄ olapId£¬ÕâÑù 1 ¸öÁ÷Ë®ºÅ¶ÔÓ¦¶à¸ö traceId£¬¹ØÁª¶ÔÓ¦ºóÐø¶à¸ö 
                            olapId£¬ÐγÉÒ»¸öÊ÷×´ÇëÇó£¬ÒԴ˵õ½Ò»¸öÍêÕûµÄÇëÇóÁ´Â·¡£ 
                          ¾ßÌåÉè¼ÆÈçÏ£º 
                          ±¨±íÉè¼ÆÏµÍ³ºó¶ËÕë¶Ô±¨±íǰ¶ËµÄÿ´ÎÇëÇóÉú³ÉΨһ traceId£¬Õë¶ÔÇëÇóµÄÿһ²½Éú³É²ã¼¶¹ØÏµµÄ spanId£¬²¢ÏòÖ¸±ê¹ÜÀíϵͳ͸´« 
                            traceId ºÍ¶ÔÓ¦µÄ spanId£» 
                            Ö¸±ê¹ÜÀíϵͳ½ÓÊÜÇëÇóºó£¬¸ù¾ÝÊáÀíµÄ²éÑ¯È¨ÖØ¼ÆË㷽ʽÉú³É¡°²éÑ¯È¨ÖØ¡±priority£¬ÔÚ±¨±íÉè¼ÆÏµÍ³µÄ 
                            spanId »ù´¡ÉϼÌÐøÉú³Éµ÷Óò㼶¹ØÏµµÄ spanId£¬²¢Ïò OLAP ͸´« traceId ºÍ¶ÔÓ¦µÄ 
                            spanId£» 
                            Spark RDD ʵÏÖ½« Druid¡¢PostGreSQL ºÍ ClickHouse ÖÐµÄ queryId 
                            Óë Spark worker ÖÐµÄ StageID ÒÔ¼° JobID ¹ØÁªÆðÀ´£» 
                            OLAP ½ÓÊÜÇëÇóºó£¬ÔÚÖ¸±ê¹ÜÀíϵͳµÄ spanId »ù´¡ÉϼÌÐøÉú³Éµ÷Óò㼶¹ØÏµµÄ spanId£¬²¢Ïò 
                            OLAP ÒýÇæ²ã͸´« traceId ºÍ¶ÔÓ¦µÄ spanId£» 
                            OLAP ·ÖÎöÒýÇæ²ã£¬Í¨¹ý´òͨ traceId ºÍ¸÷×Ô·ÖÎöÒýÇæÖ´Ðз¾¶µÄ·½Ê½£¬ÊµÏÖ¸ú×Ù¸÷Ö´Ðмƻ®¡¢Ö´Ðз¾¶µÄºÄʱ¡£ÀýÈ磬¿Éͨ¹ý 
                            bigQueryId Óë Druid ¹ØÁª£¬¶ø PostGreSQL ºÍ ClickHouse Ôò¿ÉÒÔͨ¹ý 
                            traceId Ó³Éäµ½ÒýÇæÄÚ²¿µÄ·½Ê½½øÐйØÁª¡£ 
                            2¡¢ ÈçºÎ½« ClickHouse ÄÉÈëÈ«Á´Â·¼à¿ØÆ½Ì¨ 
                          ClickHouse È«Á´Â·¼à¿Ø¸²¸Ç·¶Î§½Ï¹ã£¬°üÀ¨£º²éÑ¯Éæ¼°µ½µÄ½Úµã¡¢·ÖƬ¡¢¸¸²éѯºÍ×Ó²éѯµÄ¹ØÏµ¡¢ÔÚ¸÷¸ö½ÚµãµÄ²éѯºÄʱ¡¢ÇëÇóÄÚ´æÊ¹Óᢸ߷åʹÓÃÄÚ´æ¡¢CPU 
                            ʹÓÃÊý¡¢²éѯÐÐÊý¡¢MergeTree ʹÓÃ×´¿ö¡¢²éѯ·½Ê½£¨TCP/HTTP£©ÒÔ¼°²ÎÓë²éѯÏß³ÌÊýµÈ¡£ 
                          ÔÚµ÷Óà ClickHouse Ìṩ·þÎñ²éѯ£¨spark-jdbc£©µÄʱºò£¬ÈçºÎ½« traceId 
                            ͸´«¸ø ClickHouse µÄ query_id ÄØ? 
                          ʵÏÖÈ«Á´Â·¼à¿Ø£¬Ö÷ÒªÊÇͨ¹ý traceId ¹á´©Õû¸öÁ´Â·¡£±í system.processes ºÍ±í 
                            system.query_log ÖÐµÄ query_id ÊÇËæ»úÉú³ÉµÄ£¬ClickHouse µÄ query_id 
                            Ö§³Ö×Ô¶¨Ò壬¿É½«×Ô¶¨ÒåµÄ query_id Ó³É䵽ϵͳ×ÔÉú³ÉµÄ query_id ÉÏ£¬ÕâÑù ClickHouse 
                            ÄÚ²¿µÄ¼à¿Ø¾ÍÄÜÓëÈ«Á´Â·´òͨ£¬¾ßÌå²Ù×÷ÈçÏ£º 
                          ClickHouse-client --port 1***5 --time --format=Null 
                            --query="select count() from aggr_member" 
                            --query_id="suning20200706¡° echo 'select count() 
                            from aggr***member' | curl 'http://localhost:8**3/?query_id=suning2020&query=' 
                            --data-binary @- 
                          ¶þ¡¢ClickHouse Âý²éѯ¼à¿Ø 
                          1¡¢ÊµÊ±Âý²éѯ¼à¿Ø 
                             
						  
                            ͼ 3-1 ʵʱÂý²éѯ¼à¿Ø 
                          ¸¸½Úµã²éѯ ID(initial_query_id) ÊÇ´ÓÉÏÓÎϵͳ´«ÈëµÄ traceId£¬´Ë´Î²éѯµÄËùÓÐ×Ó²éѯ¾ù¿É¸ù¾Ý 
                            traceId »ñÈ¡£¬¿ÉÒÔʵʱ·ÖÎöij´Î²éѯÔÚ¼¯ÈºÖи÷¸ö½ÚµãµÄ״̬£¬ÆäÖаüÀ¨²éѯ query_id µÄ¸¸×Ó¹ØÏµ¼°¶ÔÓ¦µÄ½ÚµãÐÅÏ¢¡¢¸÷¸ö½ÚµãµÄ²éѯ½Å±¾¡¢²éѯºÄʱ¡¢¶ÁÈ¡µÄÐÐÊý¡¢ÇëÇóʹÓõÄÄÚ´æ¡¢¸ß·åʹÓõÄÄÚ´æ¡¢²ÎÓë²éѯµÄÏß³ÌÊý¡¢user¡¢ProfileEvents¡¢Settings 
                            µÈ¡£ 
                            
						  
                            ͼ 3-2 µ¥´Î²éѯÄÚ´æ /CPU/MergeTree/ ºÄʱ TOPN ¼à¿Ø 
                          ͼ 3-2 չʾ¸÷¼¯ÈºÖеÄÂý²éѯ TOPN¡¢µ¥´Î²éѯÄÚ´æÊ¹Óà TOPN¡¢µ¥´Î²éѯ CPU ʹÓÃÊý 
                            TOPN¡¢MergeTree ºÄʱ TOPN£¬Ö§³Ö¶Ô³¬¹ýÔ¤ÆÚãÐÖµµÄ²éѯ½øÐи澯¡£ 
                          2¡¢ÀúÊ·Âý²éѯ¼à¿Ø 
                            
						  
                            ͼ 3-3 ÀúÊ·Âý²éѯ¼à¿Ø 
                          ClickHouse ĬÈϵÄÇé¿öÏ query_log ±íÊÇ먦ÆôµÄ״̬£¬±ØÐ뽫Æä¿ªÆô£¬ÐÞ¸ÄÅäÖÃÎļþ 
                            users.xml£¬Â·¾¶Îª /etc/clickhouse-server/£¬ÐÂÔöÅäÖÃÏî<log_queries>1</log_queries>£¬µ±²éѯÈÕÖ¾·þÎñÆ÷²ÎÊýlog_queries=1 
                            ʱ£¬ClickHouse ²Å»á´´½¨´Ë±í¡£ 
                          ÿ¸ö²éѯÔÚ query_log ±íÖлᴴ½¨Ò»Ìõ»òÁ½Ìõ¼Ç¼£¬¾ßÌåÈ¡¾öÓÚ²éѯµÄ״̬£º 
                          Èç¹û²éѯִÐгɹ¦£¬Ôò»á·Ö±ð´´½¨Ê¼þÀàÐÍΪ 1 ºÍ 2 µÄÁ½Ìõ¼Ç¼£» 
                            Èç¹ûÔÚ²éѯ´¦ÀíÆÚ¼ä·¢Éú´íÎó£¬Ôò»á·Ö±ð´´½¨Ê¼þÀàÐÍΪ 1 ºÍ 4 µÄÁ½Ìõ¼Ç¼£» 
                            Èç¹ûÔÚ²éѯÆô¶¯Ö®Ç°·¢Éú´íÎó£¬Ôò»á´´½¨Ê¼þÀàÐÍΪ 3 µÄµ¥Ìõ¼Ç¼£» 
                            ±í query_log ÖеļǼ£¬´æ´¢µÄÊÇÀúÊ·²éѯÔÚ¼¯ÈºÖеĸ÷¸ö½ÚµãµÄ״̬£¬ÆäÖаüÀ¨²éѯ query_id 
                            µÄ¸¸×Ó¹ØÏµ¼°¶ÔÓ¦µÄ½ÚµãÐÅÏ¢¡¢¸÷¸ö½ÚµãµÄ²éѯ½Å±¾¡¢²éѯ¿ªÊ¼Ê±¼ä¡¢²éѯÈÕÆÚ¡¢²éѯʱ¼ä¡¢²éѯºÄʱ¡¢²éѯÐÐÊý¡¢²éѯ½á¹ûµÄ×Ö½Ú´óС¡¢ÇëÇóʹÓõÄÄÚ´æ¡¢¸ß·åʹÓõÄÄÚ´æ¡¢²ÎÓë²éѯµÄÏß³ÌÊý¡¢¶ÑÕ»¸ú×ÙÒÔ¼°²éѯÒì³£ÐÅÏ¢µÈ¡£ 
                          3¡¢MergeTree ¼à¿Ø 
                            
						  
                            ͼ 3-4 MergeTree »ù´¡±íÒýÇæ 
                          MergeTree ±íÖÐÊý¾Ý´æ´¢ÔÚ Part ÖУ¬µ±²åÈëÊý¾ÝµÄʱºò£¬»á½«Êý¾Ý´´½¨ÔÚÒ»¸öÐ嵀 Part 
                            ÖУ¬Part µÄÊýÁ¿´ú±í×ÅÌá½»µÄƵÂÊ¡£ºǫ́»á½øÐÐÒì²½µÄ Merge ¹ý³Ì£¬½«Ð¡µÄ Part ½øÐкϲ¢£¬²¢ÇÒ»áÏà¶Ô¾ùºâµÄƽºâºÃºÏ²¢ËÙ¶ÈºÍ 
                            Part ÊýÁ¿µÄ¹ØÏµ¡£ 
                          ¶ÔÓÚÿ¸ö Part ¾ù»áÉú³ÉÒ»¸öË÷ÒýÎļþ£¬Ë÷ÒýÎļþ´æ´¢µÄÊÇÿ¸öË÷Òý¿éÊý¾ÝÖ÷¼üµÄ value Öµ¡£¶ÔÓÚ 
                            MergeTree µÄ¼à¿Ø£¬Ö÷Òª¼à¿Ø MergeTree µÄÒì³£Çé¿ö£¬¸ù¾ÝÒì³£ÐÅÏ¢½øÐи澯¡£ 
                          4¡¢Âý²éѯ¹éÒò·ÖÎö 
                          ͨ¹ýÒÔÉÏµÄ¼à¿Ø£¬¿ÉÒÔ¿ìËÙ¶¨Î»³öÂý²éѯ¡£µ¼ÖÂÂý²éѯµÄÔÒò¿ÉÄÜÓкܶ࣬¿ÉÒÔ´ÓÈçϼ¸¸ö·½Ãæ½øÐзÖÎö£º 
                          ÅжϲéѯµÄÊý¾ÝÊÇ·ñ´æÔÚ page cache ÖУ¬´Ó page cache »ñÈ¡Êý¾ÝËÙ¶ÈÔ¶¸ßÓÚ´ÅÅÌ£» 
                            ¸ß»ùÊýµÄ¾ÛºÏ»òÅÅÐò¶Ô²éѯЧÂÊÓ°Ïì½Ï´ó£¬JOIN ²Ù×÷ʱӦ½«Ð¡±í·ÅÓұߣ¬·ÖÇø×ֶβ»Ò˹ý¶à£¬µ¼ÈëÊý¾Ýʱºò×îºÃ¶ÔÊý¾Ý½øÐÐÊÂÏÈÅÅÐò£» 
                            Ó°ÏìÐÔÄÜ×î¹Ø¼üµÄÖ¸±êÊÇ CPU ºÍÄڴ棬CPU ³¬¹ý 70% Ôò¿ÉÄÜ»á³öÏÖ´ó·¶Î§µÄ²éѯ³¬Ê±¡£ÁíÍâÐèÒª¹Ø±ÕÐéÄâÄڴ棬·ñÔòÎïÀíÄÚ´æºÍÐéÄâÄÚ´æ¿ÉÄÜ»á½øÐÐÊý¾Ý½»»»£¬´Ó¶øµ¼Ö²éѯ±äÂý£»ClickHouse 
                            ¶Ô¸ß²¢·¢Ö§³Ö²»Ì«ÓѺã¬ÐèÒª¶Ôµ¥¸ö²éѯµÄ×ÊÔ´¼ÓÒÔÏÞÖÆ£¬·ñÔò»áÓ°Ï쵱ǰÆäËü²éѯµÄÖ´ÐÐЧÂÊ¡£ 
                            ÒÔÉÏÊdz£¹æµÄÂý²éѯÔÒò·ÖÎö£¬¶øÓÐЩ¸´ÔÓ¡¢¸ß»ùÊýµÄ²éѯ¿Éͨ¹ýÇÉÃîµÄÉè¼Æ·½Ê½£¬´ïµ½¸ßЧ²éѯµÄÄ¿±ê¡£ 
                          ÔÚ»ùÓÚ ClickHouse ¼ÆËã»áÔ±ÐÂÂò¼Ò¡¢ÀÏÂò¼ÒÊý¡¢¸´¹º¡¢Áô´æµÈ³¡¾°µÄʱºò·¢ÏÖ£¬Èç¹ûÓûáÔ± ID 
                            ½øÐÐ HASH ·ÖƬºóÔÙ×ö RoaringBitmap ¼ÆË㣬×îºóÔÙ½«Ã¿¸ö·ÖƬµÄ¼ÆËã½á¹û»ã×Ü£¬ÆäÖ´ÐÐЧÂʽ«Ìá¸ßÊý±¶¡£ 
                          ÁíÍâÔÚ¼ÆËã´¿ÐÂÂò¼ÒºÍ´ÎÐÂÂò¼ÒµÄʱºò£¬Í¨¹ýÔÚ×Ó²éѯÖÐʹÓà ClickHouse-CTE µÄ WITH 
                            ·½Ê½£¬Í¬Ñù¿ÉÒԴﵽʵʱ¡¢¸ßЧµÄ²éѯĿ±ê¡£ 
                          Èý¡¢ClickHouse ¼¯Èº×´Ì¬¼à¿Ø 
                          1¡¢¼¯Èº¡¢½Úµã״̬¼à¿Ø 
                          ¿É¶Ô¼¯Èº¡¢½ÚµãµÄ²éѯ״̬½øÐÐ¼à¿Ø£¬Èç³É¹¦´ÎÊý¡¢Òì³£´ÎÊýºÍʧ°Ü´ÎÊý£¬²¢ÇÒ¸ù¾ÝÉ趨µÄãÐÖµ¶Ôʧ°Ü»ò³¬Ê±µÄ²éѯ½øÐÐÔ¤¾¯¡£ 
                          ͬʱ¿É¶Ô¸÷¸ö½ÚµãµÄÁ¬½ÓÊý¡¢CPU ʹÓÃÂÊ¡¢ÄÚ´æÊ¹ÓÃÂÊ¡¢FileOpen¡¢¸ù·ÖÇøÊ¹ÓÃÂÊÒÔ¼°×î´ó·ÖÇøÊ¹ÓÃÂʽøÐÐ¼à¿Ø¡£ 
                          2¡¢¼¯Èº¡¢½Úµã¡¢·ÖƬ QPS ºÍÁ¬½ÓÊý¼à¿Ø 
                            
						  
                            ͼ 4-1 ¼¯Èº¡¢½Úµã¡¢·ÖƬ QPS ¼à¿Ø 
                           
						  
                            ͼ 4-2 ¼¯Èº¡¢½Úµã¡¢·ÖƬÁ¬½ÓÊý¼à¿Ø 
                          ClickHouse µÄ¼ÆËãºÍ´æ´¢ÊÇÒ»ÌåʽµÄ£¬²¢Î´×ö×ÊÔ´¸ôÀ룬ΪÁËÌá¸ßϵͳµÄ²¢·¢ÄÜÁ¦£¬¿ÉÒÔ½«Êý¾Ý±£´æÎª¶à¸ö¸±±¾£¬Ã¿¸ö¸±±¾²¿Êðµ½²»Í¬µÄ½ÚµãÉÏ£¬ÔÙͨ¹ý 
                            Chproxy ·Óɵ½²»Í¬µÄ½Úµã½øÐвéѯ¡£ 
                          ΪÁ˱£Ö¤¼¯ÈºµÄ³ÖÐøÎȶ¨¡¢¿ÉÓã¬ÐèÒª¶Ôµ¥¸ö²éѯµÄ×ÊÔ´ÒÔ¼°¼¯Èº×î´óÖ§³ÖµÄ²¢·¢½øÐÐÏÞÖÆ£¬¾ßÌ巽ʽÈçÏ£º 
                          ¼¯ÈºÍ¬Ê±Ö§³ÖµÄ×î´ó²¢·¢Á¬½ÓÊý¿Éͨ¹ý Max_Concurrent_queries À´ÉèÖã¬Ä¬ÈÏΪ 
                            100£» 
                            Ò»¸ö²éѯÔÚµ¥Ì¨·þÎñÉÏ×î´óʹÓõÄÄÚ´æ¿Éͨ¹ý Max_memory_usage À´ÉèÖã» 
                            µ¥¸ö½ÚµãÉÏËùÓвéѯµÄ×î´óÄÚ´æÏÞÖÆÊÇ¿Éͨ¹ý Max_memory_usage_for_all_queries 
                            À´ÉèÖã» 
                            µ¥´Î²éѯµÄ×ִÐÐʱ¼ä¿Éͨ¹ý Max_execution_time À´ÉèÖᣠ
                            3¡¢¼¯Èº¡¢½Úµã¡¢·ÖƬ¿ÉÓÃÐÔ¼à¿Ø 
                          ¾ßÌå¿ÉÒÔͨ¹ý HTTP API ¼àÊÓ·þÎñÆ÷µÄ¿ÉÓÃÐÔÀ´ÊµÏÖ¡£Í¨¹ý HTTP GET ÇëÇóºó£¬Èç¹û·þÎñÆ÷¿ÉÓã¬Ôò·µ»Ø 
                            200 OK£¬·ñÔò·µ»ØÒì³£ÏûÏ¢¡£ 
                          ´Ë´¦ÐèÒªÓиö¸æ¾¯ÅäÖÃ¼à¿ØÏһµ©¼à²âµ½½Úµã²»¿ÉÓ㬿ɼ°Ê±Í¨ÖªÏà¹Ø¼¼ÊõÈËÔ±½øÐÐά»¤£¬ÆäÖи澯ÐÅÏ¢¿Éͨ¹ý¶ÌÐÅ¡¢ÓʼþµÈ·½Ê½½øÐÐÍÆËÍ¡£ 
                          4¡¢È«Á´Â· Replicas Delay ¼à¿Ø 
                           
						  
                            ͼ 4-3 Replicas Delay ¼à¿Ø 
                          Random ·Ö²¼Ê½Ëæ»úѡȡ¸±±¾ÓÐËÄÖÖËã·¨£º 
                          Random£ºÑ¡È¡¸±±¾µÄĬÈÏ·½Ê½£¬¸ÃËã·¨Ö÷ÒªÊÇͨ¹ý¼ÆË㸱±¾µÄ´íÎóÊýÁ¿£¬²éѯ·¢Ë͵½³ö´í×îÉٵĸ±±¾£¬µ«ÕâÖÖË㷨ûÓп¼Âǵ½·þÎñ½ÚµãÊÇ·ñÏàÁڵij¡¾°£» 
                            In order£ºÑ¡È¡¸±±¾µÄ·½Ê½ÊǸù¾ÝÅäÖÃÖÐÖ¸¶¨µÄ˳Ðò£» 
                            First or random£ºÑ¡Ôñ¼¯ºÏÖеÚÒ»¸ö¸±±¾£¬Èç¹ûµÚÒ»¸ö¸±±¾²»¿ÉÓã¬ÔòËæ»ú½øÐи±±¾Ñ¡Ôñ£» 
                            Nearest hostname£ºÃ¿¸ô 5 ·ÖÖÓ¼ÆË㸱±¾µÄ´íÎóÊýÁ¿£¬Èç¹û¸±±¾µÄ´íÎóÊýÁ¿×îÉÙ£¬Ôò½«²éѯ·¢Ë͸øËü¡£ 
                            ¸±±¾ÔÊÐíµÄ×ÑÓ³Ùʱ¼ä£¬¿Éͨ¹ý²ÎÊý max_replica_delay_for_distributed_queries 
                            À´ÉèÖ㻸±±¾µÄÑÓ³Ùʱ¼ä£¬¿ÉÒÔʹÓà HTTP resource /replicas-delay À´²éѯ£¬²»ÑÓ³ÙÔò·µ»Ø 
                            200 OK£¬ÑÓ³ÙÔò·µ»ØºÍĬÈÏʱ¼äµÄ²î¾à¡£ 
                          5¡¢È«Á´Â· Chproxy ¼à¿ØÐÅÏ¢ 
                           
						  
                            ͼ 4-4 ClickHouse Manger ¹¤×÷Á÷³Ì 
                          ClickHouse µÄ Http ´úÀíºÍ¸ºÔؾùºâÆ÷ÊÇ Chproxy£¬ËÕÄþͨ¹ý ClickHouse 
                            Manger À´¹ÜÀí Chproxy ×é¼þµÄÆô¶¯¡¢Í£Ö¹¡¢¹ö¶¯Éý¼¶ÒÔ¼°¼à¿Ø£¬²¢Í¨¹ý ZK Ïò Chproxy 
                            ͬ²½ÅäÖÃÊý¾Ý¡£ 
                          ClickHouse ¼¯Èº¿ÉÒÔ²¿Êð¶à¸ö Chproxy ʵÀý£¬¿Í»§¶ËÁ¬½Ó ClickHouse ¼¯ÈºµÄ´úÀí·þÎñºó£¬Í¨¹ý¶Ô²éѯ 
                            SQL ½âÎö£¬ÖÇÄܵĽøÐиºÔؾùºâ¡£Í¬Ê±£¬Chproxy Ò²Ö§³ÖˮƽÀ©Õ¹¡£ 
                          Chproxy ÄÜ¼à¿Øµ½µÄÖØµãÖ¸±êÓУº¼¯ÈºÇëÇó¶ÓÁдóС¡¢Ô¶³Ì¿Í»§¶ËÁ¬½ÓÊý¡¢²éѯ×ÜÇëÇóÊý¡¢È¡ÏûÇëÇóÊý¡¢±»¾Ü¾øÇëÇóÊý¡¢»º´æÃüÖÐÇé¿ö¡¢¼¯ÈººÍ½Úµã½¡¿µ×´Ì¬µÈ£¬ËÕÄþÈ«Á´Â·¼à¿ØÆ½Ì¨¿É¶ÔÉÏÊöÖØµãÖ¸±ê½øÐÐ¼à¿Ø¡£ 
                          ËÄ¡¢È«Á´Â·¼à¿ØµÄÓÅÊÆºÍÕ¹Íû 
                          È«Á´Â·¼à¿ØÆ½Ì¨ÍØÕ¹ÁËÎÒÃÇ¼à¿ØÏµÍ³ÄÜÁ¦µÄÉî¶ÈºÍ¹ã¶È£¬Í¬Ê±Îª ClickHouse µÄ×ÊÔ´¸ôÀëºÍ·þÎñ»¯ÌṩÁ˲ο¼¡£ 
                          È«Á´Â·¼à¿ØÆ½Ì¨Ä¿Ç°ÒѾ½«Êý¾ÝÓ¦Óò㡢SparkSQL ½âÎö²ã¡¢OLAP ·ÓɼÓËÙ²ãÒÔ¼°Êý¾Ý¼ÓËÙ²ãÈ«²¿¹á´©£¬Óû§·¢ÆðµÄÇëÇóÔÚ¸÷¸ö½×¶ÎµÄºÄʱһĿÁËÈ»¡£ 
                          ÎÒÃÇÄܰѸ÷¸ö OLAP ·ÖÎöÒýÇæÄÚ²¿Ö´ÐеĺÄʱ£¬Í¨¹ýͳһµÄ queryId ÄÉÈëµ½ËÕÄþÈ«Á´Â·¼à¿ØÆ½Ì¨£¬ÐγÉÒ»ÌõÍêÕûµÄÖ´ÐкÄʱ¼à¿ØÁ´Â·¡£¸÷½×¶ÎÔ¤ÉèµÄ³¬Ê±Ô¤¾¯£¬»áÔÚµÚһʱ¼ä֪ͨÏà¹ØÔðÈÎÈË£¬ÕâÖÖ·½Ê½¶ÔÎÊÌⶨλ¡¢Ö÷¶¯Ô¤¾¯¶¼Æðµ½ÁËÖØÒªµÄ×÷Óã¬Í¬Ê±¸ø¼à¿ØÔËά´øÀ´Á˼«´óµÄ±ãÀû¡£ 
                          ÔÚ OLAP ·Óɲ㣬ÎÒÃÇÒѾ¶Ô½ÓÁË Druid¡¢Elasticsearch¡¢PostGreSQL 
                            ÒÔ¼° ClickHouse ·ÖÎöÒýÇæ£¬ºóÐøÎÒÃǽ«¶Ô½ÓÆäËü¸ü¶àµÄ OLAP ·ÖÎöÒýÇæ£¬Èç Doris¡¢Dremio 
                            ºÍ RocksDB µÈ£¬Í¬Ê±ÎÒÃÇÒ²½«³ÖÐøÏ¸»¯¡¢·ÖÎö¸÷ÒýÇæÄÚ²¿Ö´Ðн׶εĺÄʱÇé¿ö£¬¶ÔÈ«Á´Â·¼à¿ØÄÜÁ¦½øÐиü½øÒ»²½µÄÓÅ»¯ÌáÉý¡£ 
                           |