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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ʱÐòÊý¾Ý¿â½éÉܺÍʹÓÃ
 
×÷Õߣº Áõ¿í
  4426  次浏览      30
2019-10-22
 
±à¼­ÍƼö:
ÎÄÕÂÖ÷Òª½éÉÜÁËʱ¼äÐòÁÐÊý¾ÝµÄÌØµã¡¢´æ´¢¡¢·ÖƬ·½·¨ÒÔ¼°¼¸¿îµ±Ï±ȽÏÁ÷ÐеĿªÔ´Ê±ÐòÊý¾Ý¿âµÄ²¿ÊðʹÓúͲúÆ·¶Ô±È¡£
±¾ÎÄÀ´×Ôcsdn£¬ÓÉ»ðÁú¹ûÈí¼þLuca±à¼­¡¢ÍƼö¡£

1.»ù´¡

1.1 ʱÐòÊý¾ÝµÄ¶¨Òå

ʲôÊÇʱ¼äÐòÁÐÊý¾Ý£¨Time Series Data£¬TSD£¬ÒÔϼò³ÆÊ±Ðò£©´Ó¶¨ÒåÉÏÀ´Ëµ£¬¾ÍÊÇÒ»´®°´Ê±¼äά¶ÈË÷ÒýµÄÊý¾Ý¡£ÓÃÃèÊöÐÔµÄÓïÑÔÀ´½âÊÍʲôÊÇʱÐòÊý¾Ý£¬¼òµ¥µÄ˵£¬¾ÍÊÇÕâÀàÊý¾ÝÃèÊöÁËij¸ö±»²âÁ¿µÄÖ÷ÌåÔÚÒ»¸öʱ¼ä·¶Î§ÄÚµÄÿ¸öʱ¼äµãÉϵIJâÁ¿Öµ¡£ËüÆÕ±é´æÔÚÓÚIT»ù´¡ÉèÊ©¡¢ÔËά¼à¿ØÏµÍ³ºÍÎïÁªÍøÖС£

¶ÔʱÐòÊý¾Ý½øÐн¨Ä£µÄ»°£¬»á°üº¬Èý¸öÖØÒª²¿·Ö£¬·Ö±ðÊÇ£ºÖ÷Ì壬ʱ¼äµãºÍ²âÁ¿Öµ¡£Ì×ÓÃÕâÌ×Ä£ÐÍ£¬Äã»á·¢ÏÖÄãÔÚÈÕ³£¹¤×÷Éú»îÖУ¬ÎÞʱÎ޿̲»ÔÚ½Ó´¥×ÅÕâÀàÊý¾Ý¡£

Èç¹ûÄãÊÇÒ»¸ö¹ÉÃñ£¬Ä³Ö»¹ÉƱµÄ¹É¼Û¾ÍÊÇÒ»ÀàʱÐòÊý¾Ý£¬Æä¼Ç¼×Åÿ¸öʱ¼äµã¸Ã¹ÉƱµÄ¹É¼Û¡£

Èç¹ûÄãÊÇÒ»¸öÔËάÈËÔ±£¬¼à¿ØÊý¾ÝÊÇÒ»ÀàʱÐòÊý¾Ý£¬ÀýÈç¶ÔÓÚ»úÆ÷µÄCPUµÄ¼à¿ØÊý¾Ý£¬¾ÍÊǼǼ×Åÿ¸öʱ¼äµã»úÆ÷ÉÏCPUµÄʵ¼ÊÏûºÄÖµ¡£

ʱÐòÊý¾Ý´Óʱ¼äά¶ÈÉϽ«¹ÂÁ¢µÄ¹Û²âÖµÁ¬³ÉÒ»ÌõÏߣ¬´Ó¶ø½ÒʾÈíÓ²¼þϵͳµÄ״̬±ä»¯¡£¹ÂÁ¢µÄ¹Û²âÖµ²»ÄܽÐʱÐòÊý¾Ý£¬µ«Èç¹û°Ñ´óÁ¿µÄ¹Û²âÖµÓÃʱ¼äÏß´®ÆðÀ´£¬ÎÒÃǾͿÉÒÔÑо¿ºÍ·ÖÎö¹Û²âÖµµÄÇ÷ÊÆ¼°¹æÂÉ¡£

1.2 ʱÐòÊý¾ÝµÄÌØµã

1.2.1 ʱÐòÊý¾ÝµÄÊýѧģÐÍ

ÉÏÃæ½éÉÜÁËʱÐòÊý¾ÝµÄ»ù±¾¸ÅÄҲ˵Ã÷ÁË·ÖÎöʱÐòÊý¾ÝµÄÒâÒå¡£ÄÇôʱÐòÊý¾Ý¸ÃÔõÑù´æ´¢ÄØ£¿Êý¾ÝµÄ´æ´¢Òª¿¼ÂÇÆäÊýѧģÐͺÍÌØµã£¬Ê±ÐòÊý¾Ýµ±È»Ò²²»ÀýÍâ¡£ËùÒÔÕâÀïÏȽéÉÜʱÐòÊý¾ÝµÄÊýѧģÐͺÍÌØµã¡£

ÏÂͼΪһ¶ÎʱÐòÊý¾Ý£¬¼Ç¼ÁËÒ»¶Îʱ¼äÄÚµÄij¸ö¼¯ÈºÀï¸÷»úÆ÷Éϸ÷¶Ë¿ÚµÄ³öÈëÁ÷Á¿£¬Ã¿°ëСʱ¼Ç¼һ¸ö¹Û²âÖµ¡£ÕâÀïÒÔͼÖеÄÊý¾ÝΪÀý£¬½éÉÜÏÂʱÐòÊý¾ÝµÄÊýѧģÐÍ£¨²»Í¬µÄʱÐòÊý¾Ý¿âÖУ¬»ù±¾¸ÅÄîµÄ³ÆÎ½ÓпÉÄܲ»Í¬£¬ÕâÀïÒÔÌÚѶCTSDBΪ׼£©£º

measurement£º ¶ÈÁ¿µÄÊý¾Ý¼¯£¬ÀàËÆÓÚ¹ØÏµÐÍÊý¾Ý¿âÖÐµÄ table£»

point£º Ò»¸öÊý¾Ýµã£¬ÀàËÆÓÚ¹ØÏµÐÍÊý¾Ý¿âÖÐµÄ row£»

timestamp£º ʱ¼ä´Á£¬±íÕ÷²É¼¯µ½Êý¾ÝµÄʱ¼äµã£»

tag£º ά¶ÈÁУ¬´ú±íÊý¾ÝµÄ¹éÊô¡¢ÊôÐÔ£¬±íÃ÷ÊÇÄĸöÉ豸/Ä£¿é²úÉúµÄ£¬Ò»°ã²»Ëæ×Åʱ¼ä±ä»¯£¬¹©²éѯʹÓã»

field£º Ö¸±êÁУ¬´ú±íÊý¾ÝµÄ²âÁ¿Öµ£¬ËæÊ±¼äƽ»¬²¨¶¯£¬²»ÐèÒª²éѯ¡£

ÈçÉÏͼËùʾ£¬Õâ×éÊý¾ÝµÄmeasurementΪ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.2.2 ʱÐòÊý¾ÝÌØµã

Êý¾Ýģʽ£º ʱÐòÊý¾ÝËæÊ±¼äÔö³¤£¬Ïàͬά¶ÈÖØ¸´È¡Öµ£¬Ö¸±êƽ»¬±ä»¯£ºÕâµã´ÓÉÏÃæµÄNetwork±íµÄÊý¾Ý±ä»¯¿ÉÒÔ¿´³ö¡£

дÈ룺 ³ÖÐø¸ß²¢·¢Ð´È룬ÎÞ¸üвÙ×÷£ºÊ±ÐòÊý¾Ý¿âÃæ¶ÔµÄÍùÍùÊǰÙÍòÉõÖÁǧÍòÊýÁ¿¼¶ÖÕ¶ËÉ豸µÄʵʱÊý¾ÝдÈ루ÈçĦ°Ýµ¥³µ2017ÄêÈ«¹ú³µÁ¾ÊýΪǧÍò¼¶£©£¬µ«Êý¾Ý´ó¶à±íÕ÷É豸״̬£¬Ð´Èëºó²»»á¸üС£

²éѯ£º °´²»Í¬Î¬¶È¶ÔÖ¸±ê½øÐÐͳ¼Æ·ÖÎö£¬ÇÒ´æÔÚÃ÷ÏÔµÄÀäÈÈÊý¾Ý£¬Ò»°ãÖ»»áƵ·±²éѯ½üÆÚÊý¾Ý¡£

1.3 ʱÐòÊý¾ÝµÄ´æ´¢

1.3.1 ´«Í³¹ØÏµÐÍÊý¾Ý¿â´æ´¢Ê±ÐòÊý¾ÝµÄÎÊÌâ

ÓÐÁËʱÐòÊý¾Ýºó£¬¸Ã´æ´¢ÔÚÄÄÀïÄØ£¿Ê×ÏÈÎÒÃÇ¿´Ï´«Í³µÄ¹ØÏµÐÍÊý¾Ý¿â½â¾ö·½°¸Ôڴ洢ʱÐòÊý¾Ýʱ»áÓöµ½Ê²Ã´ÎÊÌâ¡£

ºÜ¶àÈË¿ÉÄÜÈÏΪÔÚ´«Í³¹ØÏµÐÍÊý¾Ý¿âÉϼÓÉÏʱ¼ä´ÁÒ»ÁоÍÄÜ×÷ΪʱÐòÊý¾Ý¿â¡£Êý¾ÝÁ¿ÉÙµÄʱºòȷʵҲûÎÊÌâ¡£µ«Ê±ÐòÊý¾ÝÍùÍùÊÇÓɰÙÍò¼¶ÉõÖÁǧÍò¼¶ÖÕ¶ËÉ豸²úÉúµÄ£¬Ð´Èë²¢·¢Á¿±È½Ï¸ß£¬ÊôÓÚº£Á¿Êý¾Ý³¡¾°¡£

MySQLÔÚº£Á¿µÄʱÐòÊý¾Ý³¡¾°Ï´æÔÚÈçÏÂÎÊÌ⣺

´æ´¢³É±¾´ó£º¶ÔÓÚʱÐòÊý¾ÝѹËõ²»¼Ñ£¬ÐèÕ¼ÓôóÁ¿»úÆ÷×ÊÔ´£»

ά»¤³É±¾¸ß£ºµ¥»úϵͳ£¬ÐèÒªÔÚÉϲãÈ˹¤µÄ·Ö¿â·Ö±í£¬Î¬»¤³É±¾¸ß£»

дÈëÍÌ͵ͣºµ¥»úдÈëÍÌ͵ͣ¬ºÜÄÑÂú×ãʱÐòÊý¾ÝǧÍò¼¶µÄдÈëѹÁ¦£»

²éѯÐÔÄܲÊÊÓÃÓÚ½»Ò×´¦Àí£¬º£Á¿Êý¾ÝµÄ¾ÛºÏ·ÖÎöÐÔÄܲ

ÁíÍ⣬ʹÓÃHadoopÉú̬£¨Hadoop¡¢SparkµÈ£©´æ´¢Ê±ÐòÊý¾Ý»áÓÐÒÔÏÂÎÊÌ⣺

Êý¾ÝÑӳٸߣºÀëÏßÅú´¦Àíϵͳ£¬Êý¾Ý´Ó²úÉúµ½¿É·ÖÎö£¬ºÄʱÊýСʱ¡¢ÉõÖÁÌì¼¶£»

²éѯÐÔÄܲ²»ÄܺܺõÄÀûÓÃË÷Òý£¬ÒÀÀµMapReduceÈÎÎñ£¬²éѯºÄʱһ°ãÔÚ·ÖÖÓ¼¶¡£

¿ÉÒÔ¿´µ½Ê±ÐòÊý¾Ý¿âÐèÒª½â¾öÒÔϼ¸¸öÎÊÌ⣺

ʱÐòÊý¾ÝµÄдÈ룺ÈçºÎÖ§³ÖÿÃëÖÓÉÏǧÍòÉÏÒÚÊý¾ÝµãµÄдÈë¡£

ʱÐòÊý¾ÝµÄ¶ÁÈ¡£ºÈçºÎÖ§³ÖÔÚÃë¼¶¶ÔÉÏÒÚÊý¾ÝµÄ·Ö×é¾ÛºÏÔËËã¡£

³É±¾Ãô¸Ð£ºÓɺ£Á¿Êý¾Ý´æ´¢´øÀ´µÄÊdzɱ¾ÎÊÌâ¡£ÈçºÎ¸üµÍ³É±¾µÄ´æ´¢ÕâЩÊý¾Ý£¬½«³ÉΪʱÐòÊý¾Ý¿âÐèÒª½â¾öµÄÖØÖÐÖ®ÖØ¡£

1.3.2 ʱÐòÊý¾Ý¿â

***ʱÐòÊý¾Ý¿â²úÆ·µÄ·¢Ã÷¶¼ÊÇΪÁ˽â¾ö´«Í³¹ØÏµÐÍÊý¾Ý¿âÔÚʱÐòÊý¾Ý´æ´¢ºÍ·ÖÎöÉϵIJ»×ãºÍȱÏÝ£¬ÕâÀà²úÆ·±»Í³Ò»¹éÀàΪʱÐòÊý¾Ý¿â¡£***Õë¶ÔʱÐòÊý¾ÝµÄÌØµã¶ÔдÈë¡¢´æ´¢¡¢²éѯµÈÁ÷³Ì½øÐÐÁËÓÅ»¯£¬ÕâЩÓÅ»¯ÓëʱÐòÊý¾ÝµÄÌØµãϢϢÏà¹Ø£º

´æ´¢³É±¾£º

ÀûÓÃʱ¼äµÝÔö¡¢Î¬¶ÈÖØ¸´¡¢Ö¸±êƽ»¬±ä»¯µÄÌØÐÔ£¬ºÏÀíÑ¡Ôñ±àÂëѹËõËã·¨£¬Ìá¸ßÊý¾ÝѹËõ±È£»

ͨ¹ýÔ¤½µ¾«¶È£¬¶ÔÀúÊ·Êý¾Ý×ö¾ÛºÏ£¬½ÚÊ¡´æ´¢¿Õ¼ä¡£

¸ß²¢·¢Ð´È룺

ÅúÁ¿Ð´ÈëÊý¾Ý£¬½µµÍÍøÂ翪Ïú£»

Êý¾ÝÏÈдÈëÄڴ棬ÔÙÖÜÆÚÐÔµÄdumpΪ²»¿É±äµÄÎļþ´æ´¢¡£

µÍ²éѯÑÓʱ£¬¸ß²éѯ²¢·¢£º

ÓÅ»¯³£¼ûµÄ²éѯģʽ£¬Í¨¹ýË÷ÒýµÈ¼¼Êõ½µµÍ²éѯÑÓʱ£»

ͨ¹ý»º´æ¡¢routingµÈ¼¼ÊõÌá¸ß²éѯ²¢·¢¡£

1.3.3 ʱÐòÊý¾ÝµÄ´æ´¢Ô­Àí

´«Í³Êý¾Ý¿â´æ´¢²ÉÓõͼÊÇ B tree£¬ÕâÊÇÓÉÓÚÆäÔÚ²éѯºÍ˳Ðò²åÈëʱÓÐÀûÓÚ¼õÉÙѰµÀ´ÎÊýµÄ×éÖ¯ÐÎʽ¡£ÎÒÃÇÖªµÀ´ÅÅÌѰµÀʱ¼äÊǷdz£ÂýµÄ£¬Ò»°ãÔÚ 10ms ×óÓÒ¡£´ÅÅ̵ÄËæ»ú¶ÁдÂý¾ÍÂýÔÚѰµÀÉÏÃæ¡£¶ÔÓÚËæ»úдÈë B tree »áÏûºÄ´óÁ¿µÄʱ¼äÔÚ´ÅÅÌѰµÀÉÏ£¬µ¼ÖÂËٶȺÜÂý¡£ÎÒÃÇÖªµÀ SSD ¾ßÓиü¿ìµÄѰµÀʱ¼ä£¬µ«²¢Ã»ÓдӸù±¾ÉϽâ¾öÕâ¸öÎÊÌâ¡£

¶ÔÓÚ 90% ÒÔÉϳ¡¾°¶¼ÊÇдÈëµÄʱÐòÊý¾Ý¿â£¬B tree ºÜÃ÷ÏÔÊDz»ºÏÊʵġ£

Òµ½çÖ÷Á÷¶¼ÊDzÉÓà LSM tree Ìæ»» B tree£¬±ÈÈç Hbase, Cassandra µÈ nosql ¡£ÕâÀïÎÒÃÇÏêϸ½éÉÜһϡ£

LSM tree °üÀ¨ÄÚ´æÀïµÄÊý¾Ý½á¹¹ºÍ´ÅÅÌÉϵÄÎļþÁ½²¿·Ö¡£·Ö±ð¶ÔÓ¦ Hbase ÀïµÄ MemStore ºÍ HLog£»¶ÔÓ¦ Cassandra ÀïµÄ MemTable ºÍ sstable¡£

LSM tree ²Ù×÷Á÷³ÌÈçÏ£º

Êý¾ÝдÈëºÍ¸üÐÂʱÊ×ÏÈдÈëλÓÚÄÚ´æÀïµÄÊý¾Ý½á¹¹¡£ÎªÁ˱ÜÃâÊý¾Ý¶ªÊ§Ò²»áÏÈдµ½ WAL ÎļþÖС£

ÄÚ´æÀïµÄÊý¾Ý½á¹¹»á¶¨Ê±»òÕß´ïµ½¹Ì¶¨´óС»áË¢µ½´ÅÅÌ¡£ÕâЩ´ÅÅÌÉϵÄÎļþ²»»á±»Ð޸ġ£

Ëæ×Å´ÅÅÌÉÏ»ýÀÛµÄÎļþÔ½À´Ô½¶à£¬»á¶¨Ê±µÄ½øÐкϲ¢²Ù×÷£¬Ïû³ýÈßÓàÊý¾Ý£¬¼õÉÙÎļþÊýÁ¿¡£

¿ÉÒÔ¿´µ½ LSM tree ºËÐÄ˼Ïë¾ÍÊÇͨ¹ýÄÚ´æÐ´ºÍºóÐø´ÅÅ̵Ä˳ÐòдÈë»ñµÃ¸ü¸ßµÄдÈëÐÔÄÜ£¬±ÜÃâÁËËæ»úдÈë¡£µ«Í¬Ê±Ò²ÎþÉüÁ˶ÁÈ¡ÐÔÄÜ£¬ÒòΪͬһ¸ö key µÄÖµ¿ÉÄÜ´æÔÚÓÚ¶à¸ö HFile ÖС£ÎªÁË»ñÈ¡¸üºÃµÄ¶ÁÈ¡ÐÔÄÜ£¬¿ÉÒÔͨ¹ý bloom filter ºÍ compaction µÃµ½£¬ÕâÀïÏÞÓÚÆª·ù¾Í²»Ïêϸչ¿ª¡£

###1.3.4 ·Ö²¼Ê½´æ´¢

ʱÐòÊý¾Ý¿âÃæÏòµÄÊǺ£Á¿Êý¾ÝµÄдÈë´æ´¢¶ÁÈ¡£¬µ¥»úÊÇÎÞ·¨½â¾öÎÊÌâµÄ¡£ËùÒÔÐèÒª²ÉÓöà»ú´æ´¢£¬Ò²¾ÍÊÇ·Ö²¼Ê½´æ´¢¡£

·Ö²¼Ê½´æ´¢Ê×ÏÈÒª¿¼ÂǵÄÊÇÈçºÎ½«Êý¾Ý·Ö²¼µ½¶ą̀»úÆ÷ÉÏÃæ£¬Ò²¾ÍÊÇ·ÖÆ¬£¨sharding£©ÎÊÌâ¡£ÏÂÃæÎÒÃǾÍʱÐòÊý¾Ý¿â·ÖƬÎÊÌâÕ¹¿ª½éÉÜ¡£·ÖƬÎÊÌâÓÉ·ÖÆ¬·½·¨µÄÑ¡ÔñºÍ·ÖƬµÄÉè¼Æ×é³É¡£

####·ÖƬ·½·¨

ʱÐòÊý¾Ý¿âµÄ·ÖƬ·½·¨ºÍÆäËû·Ö²¼Ê½ÏµÍ³ÊÇÏàͨµÄ¡£

¹þÏ£·ÖƬ£ºÕâÖÖ·½·¨ÊµÏÖ¼òµ¥£¬¾ùºâÐԽϺ㬵«ÊǼ¯Èº²»Ò×À©Õ¹¡£

Ò»ÖÂÐÔ¹þÏ££ºÕâÖÖ·½°¸¾ùºâÐԺ㬼¯ÈºÀ©Õ¹ÈÝÒ×£¬Ö»ÊÇʵÏÖ¸´ÔÓ¡£´ú±íÓÐ Amazon µÄ DynamoDB ºÍ¿ªÔ´µÄ Cassandra¡£

·¶Î§»®·Ö£ºÍ¨³£ÅäºÏÈ«¾ÖÓÐÐò£¬¸´ÔÓ¶ÈÔÚÓںϲ¢ºÍ·ÖÁÑ¡£´ú±íÓÐ Hbase¡£

·ÖƬÉè¼Æ

·ÖƬÉè¼Æ¼òµ¥À´Ëµ¾ÍÊÇÒÔʲô×ö·ÖƬ£¬ÕâÊǷdz£Óм¼Çɵ쬻áÖ±½ÓÓ°ÏìдÈë¶ÁÈ¡µÄÐÔÄÜ¡£

**½áºÏʱÐòÊý¾Ý¿âµÄÌØµã£¬¸ù¾Ý measurement+tags ·ÖƬÊDZȽϺõÄÒ»ÖÖ·½Ê½£¬ÒòΪÍùÍù»á°´ÕÕÒ»¸öʱ¼ä·¶Î§²éѯ£¬ÕâÑùÏàͬ metric ºÍ tags µÄÊý¾Ý»á·ÖÅ䵽һ̨»úÆ÷ÉÏÁ¬Ðø´æ·Å£¬Ë³ÐòµÄ´ÅÅ̶ÁÈ¡ÊǺܿìµÄ¡£**ÔÙ½áºÏÉÏÃæ½²µ½µÄµ¥»ú´æ´¢ÄÚÈÝ£¬¿ÉÒÔ×öµ½¿ìËÙ²éѯ¡£

½øÒ»²½ÎÒÃÇ¿¼ÂÇʱÐòÊý¾Ýʱ¼ä·¶Î§ºÜ³¤µÄÇé¿ö£¬ÐèÒª¸ù¾Ýʱ¼ä·¶Î§Ôٷֳɼ¸¶Î£¬·Ö±ð´æ´¢µ½²»Í¬µÄ»úÆ÷ÉÏ£¬ÕâÑù¶ÔÓÚ´ó·¶Î§Ê±ÐòÊý¾Ý¾Í¿ÉÒÔÖ§³Ö²¢·¢²éѯ£¬ÓÅ»¯²éѯËÙ¶È¡£

ÈçÏÂͼ£¬µÚÒ»Ðк͵ÚÈýÐж¼ÊÇͬÑùµÄ tag£¨sensor=95D8-7913;city= ÉϺ££©£¬ËùÒÔ·ÖÅ䵽ͬÑùµÄ·ÖƬ£¬¶øµÚÎåÐÐËäȻҲÊÇͬÑùµÄ tag£¬µ«ÊǸù¾Ýʱ¼ä·¶Î§ÔٷֶΣ¬±»·Öµ½Á˲»Í¬µÄ·ÖƬ¡£µÚ¶þ¡¢ËÄ¡¢ÁùÐÐÊôÓÚͬÑùµÄ tag£¨sensor=F3CC-20F3;city= ±±¾©£©Ò²ÊÇÒ»ÑùµÄµÀÀí¡£

1.4 ¿ªÔ´Ê±ÐòÊý¾Ý¿â½éÉÜ

1.4.1¿ªÔ´Ê±ÐòÊý¾Ý¿â¶Ô±È

ĿǰÐÐÒµÄڱȽÏÁ÷ÐеĿªÔ´Ê±ÐòÊý¾Ý¿â²úÆ·ÓÐ InfluxDB¡¢OpenTSDB¡¢Prometheus¡¢GraphiteµÈ£¬Æä²úÆ·ÌØÐÔ¶Ô±ÈÈçÏÂͼËùʾ£º

1.4.2 InfluxDB½éÉÜ

InfluxDBÊÇÒ»¸ö¿ªÔ´µÄʱÐòÊý¾Ý¿â£¬Ê¹ÓÃGOÓïÑÔ¿ª·¢£¬ÌرðÊʺÏÓÃÓÚ´¦ÀíºÍ·ÖÎö×ÊÔ´¼à¿ØÊý¾ÝÕâÖÖʱÐòÏà¹ØÊý¾Ý¡£¶øInfluxDB×Ô´øµÄ¸÷ÖÖÌØÊ⺯ÊýÈçÇó±ê×¼²î£¬Ëæ»úÈ¡ÑùÊý¾Ý£¬Í³¼ÆÊý¾Ý±ä»¯±ÈµÈ£¬Ê¹Êý¾Ýͳ¼ÆºÍʵʱ·ÖÎö±äµÃÊ®·Ö·½±ã¡£

ÖØÒª¸ÅÄî

influxdbÀïÃæÓÐÒ»Ð©ÖØÒª¸ÅÄdatabase£¬timestamp£¬field key£¬ field value£¬ field set£¬tag key£¬tag value£¬tag set£¬measurement£¬ retention policy £¬series£¬point¡£½áºÏÏÂÃæµÄÀý×ÓÊý¾ÝÀ´ËµÃ÷Õ⼸¸ö¸ÅÄ

name: census
-¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª
time butterflies honeybees location scientist
2015-08-18T00:00:00Z 12 23 1 langstroth
2015-08-18T00:00:00Z 1 30 1 perpetua
2015-08-18T00:06:00Z 11 28 1 langstroth
2015-08-18T00:06:00Z 3 28 1 perpetua
2015-08-18T05:54:00Z 2 11 2 langstroth
2015-08-18T06:00:00Z 1 10 2 langstroth
2015-08-18T06:06:00Z 8 23 2 perpetua
2015-08-18T06:12:00Z 7 22 2 perpetua
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª

timestamp

¼ÈÈ»ÊÇʱ¼äÐòÁÐÊý¾Ý¿â£¬influxdbµÄÊý¾Ý¶¼ÓÐÒ»ÁÐÃûΪtimeµÄÁУ¬ÀïÃæ´æ´¢UTCʱ¼ä´Á¡£

field key£¬field value£¬field set

butterfliesºÍhoneybeesÁ½ÁÐÊý¾Ý³ÆÎª×Ö¶Î(fields)£¬influxdbµÄ×Ö¶ÎÓÉfield keyºÍfield value×é³É¡£ÆäÖÐbutterfliesºÍhoneybeesΪfield key£¬ËüÃÇΪstringÀàÐÍ£¬ÓÃÓÚ´æ´¢ÔªÊý¾Ý¡£

¶øbutterfliesÕâÒ»ÁеÄÊý¾Ý12-7ΪbutterfliesµÄfield value£¬Í¬Àí£¬honeybeesÕâÒ»ÁеÄ23-22ΪhoneybeesµÄfield value¡£field value¿ÉÒÔΪstring£¬float£¬integer»òbooleanÀàÐÍ¡£field valueͨ³£¶¼ÊÇÓëʱ¼ä¹ØÁªµÄ¡£

field keyºÍfield value¶Ô×é³ÉµÄ¼¯ºÏ³ÆÖ®Îªfield set¡£ÈçÏ£º

butterflies = 12 honeybees = 23
butterflies = 1 honeybees = 30
butterflies = 11 honeybees = 28
butterflies = 3 honeybees = 28
butterflies = 2 honeybees = 11
butterflies = 1 honeybees = 10
butterflies = 8 honeybees = 23
butterflies = 7 honeybees = 22

ÔÚinfluxdbÖУ¬×ֶαØÐë´æÔÚ¡£×¢Ò⣬×Ö¶ÎÊÇûÓÐË÷ÒýµÄ¡£Èç¹ûʹÓÃ×Ö¶Î×÷Ϊ²éѯÌõ¼þ£¬»áɨÃè·ûºÏ²éѯÌõ¼þµÄËùÓÐ×Ö¶ÎÖµ£¬ÐÔÄܲ»¼°tag¡£Àà±Èһϣ¬fieldsÏ൱ÓÚSQLµÄûÓÐË÷ÒýµÄÁС£

tag key£¬tag value£¬tag set

locationºÍscientistÕâÁ½ÁгÆÎª±êÇ©(tags)£¬±êÇ©ÓÉtag keyºÍtag value×é³É¡£locationÕâ¸ötag keyÓÐÁ½¸ötag value£º1ºÍ2£¬scientistÓÐÁ½¸ötag value£ºlangstrothºÍperpetua¡£tag keyºÍtag value¶Ô×é³ÉÁËtag set£¬Ê¾ÀýÖеÄtag setÈçÏ£º

location = 1, scientist = langstroth
location = 2, scientist = langstroth
location = 1, scientist = perpetua
location = 2, scientist = perpetua

tagsÊÇ¿ÉÑ¡µÄ£¬µ«ÊÇÇ¿ÁÒ½¨ÒéÄãÓÃÉÏËü£¬ÒòΪtagÊÇÓÐË÷ÒýµÄ£¬tagsÏ൱ÓÚSQLÖеÄÓÐË÷ÒýµÄÁС£tag valueÖ»ÄÜÊÇstringÀàÐÍ Èç¹ûÄãµÄ³£Óó¡¾°ÊǸù¾ÝbutterfliesºÍhoneybeesÀ´²éѯ£¬ÄÇôÄã¿ÉÒÔ½«ÕâÁ½¸öÁÐÉèÖÃΪtag£¬¶øÆäËûÁ½ÁÐÉèÖÃΪfield£¬tagºÍfieldÒÀ¾Ý¾ßÌå²éѯÐèÇóÀ´¶¨¡£

measurement

measurementÊÇfields£¬tagsÒÔ¼°timeÁеÄÈÝÆ÷£¬measurementµÄÃû×ÖÓÃÓÚÃèÊö´æ´¢ÔÚÆäÖеÄ×Ö¶ÎÊý¾Ý£¬ÀàËÆmysqlµÄ±íÃû¡£ÈçÉÏÃæÀý×ÓÖеÄmeasurementΪcensus¡£measurementÏ൱ÓÚSQLÖÐµÄ±í£¬±¾ÎÄÖÐÎÒÔÚ²¿·ÖµØ·½»áÓñíÀ´Ö¸´úmeasurement¡£

retention policy

retention policyÖ¸Êý¾Ý±£Áô²ßÂÔ£¬Ê¾ÀýÊý¾ÝÖеÄretention policyΪĬÈϵÄautogen¡£Ëü±íʾÊý¾ÝÒ»Ö±±£ÁôÓÀ²»¹ýÆÚ£¬¸±±¾ÊýÁ¿Îª1¡£ÄãÒ²¿ÉÒÔÖ¸¶¨Êý¾ÝµÄ±£Áôʱ¼ä£¬Èç30Ìì¡£

series

seriesÊǹ²Ïíͬһ¸öretention policy£¬measurementÒÔ¼°tag setµÄÊý¾Ý¼¯ºÏ¡£Ê¾ÀýÖÐÊý¾ÝÓÐ4¸öseries£¬ÈçÏÂ:

Arbitrary series number Retention policy Measurement Tag set
series 1 autogen census location = 1,scientist = langstroth
series 2 autogen census location = 2,scientist = langstroth
series 3 autogen census location = 1,scientist = perpetua
series 4 autogen census location = 2,scientist = perpetua

point

pointÔòÊÇͬһ¸öseriesÖоßÓÐÏàͬʱ¼äµÄfield set£¬pointsÏ൱ÓÚSQLÖеÄÊý¾ÝÐС£ÈçÏÂÃæ¾ÍÊÇÒ»¸öpoint£º

name: census
-----------------
time butterflies honeybees location scientist
2015-08-18T00:00:00Z 1 30 1 perpetua

database

ÉÏÃæÌáµ½µÄ½á¹¹¶¼´æ´¢ÔÚÊý¾Ý¿âÖУ¬Ê¾ÀýµÄÊý¾Ý¿âΪmy_database¡£Ò»¸öÊý¾Ý¿â¿ÉÒÔÓжà¸ömeasurement£¬retention policy£¬ continuous queriesÒÔ¼°user¡£influxdbÊÇÒ»¸öÎÞģʽµÄÊý¾Ý¿â£¬¿ÉÒÔºÜÈÝÒ×µÄÌí¼ÓеÄmeasurement£¬tags£¬fieldsµÈ¡£¶øËüµÄ²Ù×÷È´ºÍ´«Í³µÄÊý¾Ý¿âÒ»Ñù£¬¿ÉÒÔʹÓÃÀàSQLÓïÑÔ²éѯºÍÐÞ¸ÄÊý¾Ý¡£

influxdb²»ÊÇÒ»¸öÍêÕûµÄCRUDÊý¾Ý¿â£¬Ëü¸üÏñÊÇÒ»¸öCR-udÊý¾Ý¿â¡£ËüÓÅÏÈ¿¼ÂǵÄÊÇÔö¼ÓºÍ¶ÁÈ¡Êý¾Ý¶ø²»ÊǸüкÍɾ³ýÊý¾ÝµÄÐÔÄÜ£¬¶øÇÒËü×èÖ¹ÁËijЩ¸üкÍɾ³ýÐÐΪʹµÃ´´½¨ºÍ¶ÁÈ¡Êý¾Ý¸ü¼Ó¸ßЧ¡£

2.²¿Êð

2.1 influxdb²¿Êð

yum²¿Êð£º

<1> ÅäÖÃYUMÔ´

cat <<EOF| sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository- RHEL\$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/ \$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF

<2> yum°²×°

yum install influxdb -y
systemctl start influxdb
systemctl enable influxdb

rpm²¿Êð£º

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.5.2.x86_64.rpm
yum -y localinstall influxdb-1.5.2.x86_64.rpm

docker²¿Êð£º

docker run --name=influxdb -d -p 8086:8086 -v /etc/localtime:/etc/localtime daocloud.io/liukuan73/influxdb:1.4

±¸×¢£º¼ÙÈçÊÇÊÕ¼¯collectdµÄÄÚÈÝ£¬»¹ÐèÒªÓ³Éä25826¶Ë¿Ú-p 25826:25826

##2.2 grafana²¿Êð

rpm²¿Êð£º

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.0.4-1.x86_64.rpm
yum -y localinstall grafana-5.0.4-1.x86_64.rpm
systemctl enable grafana-server
systemctl start grafana-server

docker²¿Êð£º

docker run -d -p 3000:3000 --name=grafana -e "GF_SERVER_HTTP_PORT=3000" -e "GF_AUTH_BASIC_ENABLED=false" -e "GF_AUTH_ANONYMOUS_ENABLED=true" -e "GF_AUTH_ANONYMOUS_ORG_ROLE=Admin" -e "GF_SERVER_ROOT_URL=/" daocloud.io/liukuan73/grafana:5.0.0

3.ʹÓÃ

ÓÐÈýÖÖ·½·¨¿ÉÒÔ½«Êý¾ÝдÈëInfluxDB£¬°üÀ¨£º

¿Í»§¶Ë¿â

µ÷ÓÃrestapi

ÃüÁîÐУ¨ÀàsqlÓï¾ä£©

##3.1 µ÷Óÿͻ§¶Ë¿â²Ù×÷influxdb

ÒÔcollectd+influxdb+grafanaΪÀý½éÉÜͨ¹ýcollectd²É¼¯Ö÷»úÐÔÄÜÖ¸±ê£¬È»ºóͨ¹ýinfluxdbµÄ¿Í»§¶Ë¿âдÈëinfluxdb£¬×îºóÔÚgrafanaչʾµÄÍêÕû¹ý³Ì¡£

3.1.1 collectd²¿Êð

1¡¢yum°²×°

sudo yum -y install epel-release
sudo yum -y install collectd

2¡¢Êý¾ÝдÈë influxdb ,ÐÞ¸ÄÅäÖÃ

vi /etc/collectd.conf
LoadPlugin network
<Plugin network>
# # client setup:
Server "10.142.232.155" "25826"
# <Server "239.192.74.66" "25826">
</Plugin>
systemctl enable collectd
systemctl start collectd
systemctl status collectd

3.1.2 influxdbÅäÖÃ

1¡¢´´½¨collectdÊý¾Ý¿â

influx -host '10.142.232.155' -port '8086'
Connected to http://127.0.0.1:8086 version 1.5.2
InfluxDB shell version: 1.5.2
> create database collectd
> use collectd
> create user "collectd" with password '123456' with all privileges

2¡¢ÅäÖÃinfluxdb£¬¿ªÆô¶ÔcollectdÊý¾ÝµÄ½ÓÊÕ

vim /etc/influxdb/influxdb.conf
[[collectd]]
enabled = true
port = 25826
database = "collectd" #¸Õ´´½¨µÄcollectdÊý¾Ý¿â£¬À´×ÔcollectdµÄÊý¾ÝдÈëÕâ¸öÊý¾Ý¿â¡£Ã»ÊÂÏÈ´´½¨ºÃµÄ»°»áÆô¶¯Ê§°Ü

3.1.3 grafanaÅäÖÃ

1¡¢ÅäÖÃinfluxdbÊý¾ÝÔ´

µã»÷¡°Add data source¡±ÅäÖÃÊý¾ÝÔ´£º

2.ÅäÖÃdashboard

ÍøÂçÁ÷Á¿Í³¼Æ

´´½¨graph£¬Çл»±à¼­Ä£Ê½¡°Toggle Edit Mode¡±, È»ºóÊäÈë×Ô¶¨ÒåSQL²éѯ

ÊäÈë²éѯÓï¾ä£º

SELECT derivative("value") AS "value" FROM "interface_rx" WHERE "host" = 'k8sslave04' AND "type" = 'if_octets' AND "instance" = 'eno16777984'

±¸×¢£º

º¯Êý derivative ÒâΪµ¼Êý, ΢»ý·ÖÖеĸÅÄî. value Ϊ´«Êä×ÜÁ¿(×Ö½Ú), derivative(¡°value¡±) Ϊ value ÔÚʱ¼äÉϵÄÔöÁ¿.ÆäÖУº

host = k8sslave04
type = if_octets
instance = eno16777984

ϵͳ¸ºÔØ

ÊäÈë²éѯÓï¾ä£º

SELECT mean("value") FROM "load_longterm" WHERE "host" = 'k8sslave04' AND $timeFilter GROUP BY time($interval) fill(null)
SELECT mean("value") FROM "load_midterm" WHERE "host" = 'k8sslave04' AND $timeFilter GROUP BY time($interval) fill(null)
SELECT mean("value") FROM "load_shortterm" WHERE "host" = 'k8sslave04' AND $timeFilter GROUP BY time($interval) fill(null)

ÄÚ´æÓÃÁ¿

ÊäÈë²éѯÓï¾ä£º

SELECT mean("value") FROM "memory_value" WHERE "type_instance" = 'used' AND $timeFilter GROUP BY time($interval) fill(null)

Ч¹û

3.2 RestAPI²Ù×÷

3.2.1 ʵÀý

´´½¨Êý¾Ý¿â£º

Òª´´½¨Êý¾Ý¿â£¬Ç뽫POSTÇëÇó·¢Ë͵½/queryÖÕ½áµã£¬²¢½«URL²ÎÊýqÉèÖÃΪCREATE DATABASE¡£ ÏÂÃæµÄʾÀýÖ÷»úÉÏÔËÐеÄInfluxDB·¢ËÍÇëÇ󣬲¢´´½¨Êý¾Ý¿âtest£º

curl -i -XPOST http://influxdb-ip:8086/query --data-urlencode "q=CREATE DATABASE test"

дÈëµ¥ÌõÊý¾Ý:

ͨ¹ýÏò/write¶Ëµã·¢ËÍPOSTÇëÇó£¬HTTP-APIÊǽ«Êý¾ÝдÈëInfluxDBµÄÖ÷Òª·½Ê½¡£ÏÂÃæµÄÀý×ÓÏòtestÊý¾Ý¿âдÁËÒ»¸öµã¡£ Êý¾ÝÓɶÈÁ¿cpu_load_short£¬±êÇ©¼ühostºÍregionºÍ¶ÔÓ¦µÄ±êǩֵserver01ºÍus-west£¬×Ö¶ÎֵΪ0.64µÄ×ֶμüvalueºÍʱ¼ä´Á1434055562000000000×é³É¡£

curl -i -XPOST 'http://influxdb-ip:8086/write?db=test' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'

дÈëµãʱ£¬±ØÐëÔÚdb²éѯ²ÎÊýÖÐÖ¸¶¨Ò»¸öÏÖÓеÄÊý¾Ý¿â¡£ Èç¹ûÄúûÓÐʹÓÃrp²éѯ²ÎÊýÌṩ±£Áô²ßÂÔ£¬Ôò»á½«µãдÈëÊý¾Ý¿âµÄĬÈϱ£Áô²ßÂÔ¡£ Çë²ÎÔÄAPI²Î¿¼ÎĵµÒÔ»ñÈ¡¿ÉÓòéѯ²ÎÊýµÄÍêÕûÁÐ±í¡£

дÈë¶àÌõÊý¾Ý£º

Ò»´Î½«¶à¸öµãPostµ½²»Í¬ÐòÁУ¬Ö»ÐèÒªÓÃÐн«¶à¸öµã·Ö¸ô¼´¿É¡£ÕâÖÖÅúÁ¿·½Ê½¾ßÓиßÐÔÄÜ¡£ÒÔÏÂʾÀý½«Èý¸öµãдÈëÊý¾Ý¿âmydb¡£ µÚÒ»µãÊôÓÚÓµÓжÈÁ¿cpu_load_short¼°±êÇ©¼¯host = server02ÇÒÓ÷þÎñÆ÷±¾µØÊ±¼ä´ÁµÄÐòÁС£µÚ¶þµãÊôÓÚÓµÓжÈÁ¿cpu_load_short¼°±êÇ©¼¯host = server02£¬region =us-westÇÒ¾ßÓÐÖ¸¶¨Ê±¼ä´Á1422568543702900257µÄÐòÁС£µÚÈý¸öµãÓëµÚ¶þ¸öµã¾ßÓÐÏàͬµÄÖ¸¶¨Ê±¼ä´Á£¬µ«Êǽ«ÆäдÈëÓµÓжÈÁ¿cpu_load_shortºÍ±êÇ©¼¯direction=in,host=server01,region=us-westµÄÐòÁС£

curl -i -XPOST 'http://influxdb-ip:8086/write?db=test' --data-binary 'cpu_load_short,host=server02 value=0.67
cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257
cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257'

дÈëÀ´×ÔÎļþµÄÊý¾Ý£º

ͨ¹ý½«@filename´«¸øcurlÀ´´ÓÎļþÖÐдÈëµã¡£ÎļþÖеÄÊý¾ÝÓ¦¸Ã×ñÑ­InfluxDBµÄÐÐЭÒéÓï·¨¡£¸ñʽÕýÈ·µÄÎļþʾÀý£¨cpu_data.txt£©£º

cpu_load_short,host=server02 value=0.67
cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257
cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257

½«cpu_data.txtÖÐÊý¾ÝдÈëmydbÊý¾Ý¿â£º

curl -i -XPOST 'http://influxdb-ip:8086/write?db=test' --data-binary @cpu_data.txt

×¢Ò⣺Èç¹ûÊý¾ÝÎļþÖг¬¹ý5,000¸öµã£¬¿ÉÄÜÐèÒª½«¸ÃÎļþ·Ö³É¼¸¸öÎļþ£¬ÒԱ㽫Êý¾ÝÅúÁ¿Ð´ÈëInfluxDB¡£ ĬÈÏÇé¿öÏ£¬HTTPÇëÇóÔÚÎåÃëÖÓºó³¬Ê±¡£ InfluxDBÔÚ³¬Ê±Ö®ºóÈÔÈ»»á³¢ÊÔд³öÕâЩµã£¬µ«ÊDz»ÄÜÈ·ÈÏËüÃÇÊÇ·ñ³É¹¦Ð´Èë¡£

###3.2.2 HTTPÏìÓ¦×ܽá

2xx£ºÈç¹ûÄãµÄдÇëÇóÊÕµ½HTTP 204 No Content£¬ÄǾͳɹ¦ÁË£¡

4xx£ºInfluxDBÎÞ·¨Àí½âÇëÇó¡£

5xx£ºÏµÍ³¹ýÔØ»òÑÏÖØÊÜËð¡£

Î޼ܹ¹Éè¼Æ

InfluxDBÊÇÒ»¸öÎ޼ܹ¹µÄÊý¾Ý¿â¡£ Äú¿ÉÒÔËæÊ±Ìí¼ÓеĶÈÁ¿£¬±êÇ©ºÍ×ֶΡ£Çë×¢Ò⣬Èç¹ûÄú³¢ÊÔдÈëÓëÒÑдÈëÊý¾ÝÀàÐͲ»ÏàͬµÄÊý¾Ý£¨ÀýÈ磬½«×Ö·û´®Ð´Èë֮ǰ½ÓÊÜÕûÊýµÄ×ֶΣ©£¬InfluxDB½«¾Ü¾øÕâЩÊý¾Ý¡£

´íÎóÏìÓ¦µÄÀý×Ó£º

½«¸¡µãÊýдÈëÏÈǰ½ÓÊܲ¼¶ûÖµµÄ×Ö¶ÎÖУº

curl -i -XPOST 'https://influxdb-ip:8086/writedb=hamlet' --data-binary 'tobeornottobe booleanonly=true'
curl -i -XPOST 'https://influxdb-ip:8086/writedb=hamlet' --data-binary 'tobeornottobe booleanonly=5'

·µ»Ø£º

HTTP/1.1 400 Bad Request
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.4.x
Date: Wed, 01 Mar 2017 19:38:01 GMT
Content-Length: 150
{"error":"field type conflict: input field \"booleanonly\" on measurement \"tobeornottobe\" is type float, already exists as type boolean dropped=1"}
Writing a point to a database that doesn¡¯t exist:
curl -i -XPOST 'https://localhost:8086/writedb=atlantis' --data-binary 'liters value=10'
returns:
HTTP/1.1 404 Not Found
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.4.x
Date: Wed, 01 Mar 2017 19:38:35 GMT
Content-Length: 45
{"error":"database not found: \"atlantis\""}
Next steps
Now that you know how to write data with the built-in HTTP API discover how to query them with the Querying Data guide! For more information about writing data with the HTTP API, please see the API reference documentation.

½«µãдÈë²»´æÔÚµÄÊý¾Ý¿â

curl -i -XPOST 'https://localhost:8086/writedb=atlantis' --data-binary 'liters value=10'

·µ»Ø£º

HTTP/1.1 404 Not Found
Content-Type: application/json
Request-Id: [...]
X-Influxdb-Version: 1.4.x
Date: Wed, 01 Mar 2017 19:38:35 GMT
Content-Length: 45
{"error":"database not found: \"atlantis\""}

3.3ÃüÁîÐвÙ×÷

InfluxDBÌṩÀàSQLÓï·¨£¬Èç¹ûÊìϤSQLµÄ»°»á·Ç³£ÈÝÒ×ÉÏÊÖ¡£

   
4426 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

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

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

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