±à¼ÍƼö: |
±¾½ÚÖ÷Òª½éÉÜ
ÎïÁªÍøÐÐÒµµÄ»ù±¾ÏµÍ³¼Ü¹¹£¬¼°Ê¹ÓÃÊý¾Ý¿âÓöµ½µÄÐèÇóÓëÌôÕ½,IoTDB µÄ¹¦ÄÜÌØµã¼°ÏµÍ³¼Ü¹¹.
±¾ÎÄÀ´×Ô¿ªÔ´²©¿Í£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
ÉÏÒ»ÕÂÁĵ½Ê±ÐòÊý¾ÝÊÇʲôÑù£¬ÎïÁªÍøÐÐÒµÖеÄʱÐòÊý¾ÝµÄÌØµã£º´æÁ¿Êý¾Ý´ó¡¢ÐÂÔöÊý¾Ý¶à£¨²É¼¯ÆµÂʸߡ¢É豸Á¿¶à£©¡£ÏêÇéÇë¼û£º
ʱÐòÊý¾Ý¿â
Apache-IoTDB Ô´Âë½âÎö֮ǰÑÔ£¨Ò»£©
³µÁªÍø
ÒòΪ±¾ÈËÊÇÔÚ×ö³µÁªÍøÐÐÒµ£¬ËùÒÔ¶ÔÕâ¸öÐÐÒµµÄÐÅÏ¢Á˽â¸üÉîÈëһЩ£¬Äܹ»Äõ½Ò»Ð©¸ü¾ßÌåµÄÊý×ÖÀ´ËµÃ÷Õâ¸öÐÐÒµµÄ¾ßÌåÇé¿ö¡£ÔÚÉÏһƪÎÄÖеÄÊý¾ÝÊdzöÓÚ×Ô¼ºµÄÀí½â£¬ÎªÁËÈôó¼ÒÈÝÒ×Ã÷°×¶ø±àÔìµÄÊý¾Ý£¬µ«Êµ¼ÊÇé¿öÒª¸´ÔӵĶࡣ
1. ϵͳ¼Ü¹¹
1.1 ϵͳ¼ò½é

ÒÔÉÏʾÒâͼ¿ÉÄܷdz£¼òµ¥£¬µ«ÎÒ¾õµÃ×ã¹»±íÃ÷Ò»¸öÕûÌå¼Ü¹¹¡£ µ±Ò»Ì¨É豸¡¢Ò»Á¾³µÁ¬½Óµ½ÐÒéÍø¹Øºó£¬±ã¿ªÊ¼ÁËÕæÕýµÄÊÕ·¢Êý¾Ý¡£Ò»°ãͨÐŵķ½Ê½¶¼ÊÇ»ùÓÚ
tcp£¬¸ãÒ»¶Î¶þ½øÖÆÐÒ飬ËùÒÔÐÒéÍø¹Ø»ù±¾Òª×öµÄ¹¤×÷¾ÍÊÇÍê³É¶ÔÁ¬½ÓµÄ¹ÜÀí¡¢Íê³É¶ÔÊý¾ÝµÄÊÕ·¢¼°±à½âÂë¡£
µ±Êý¾ÝÍê³É±à½âÂëÖ®ºóÒ»°ã»á·¢ÍùÏûÏ¢¶ÓÁе±ÖУ¬Ò»°ã¶¼ÊÇ Kafka Ö®ÖС£ÓÃÀ´½âñîÉú²úºÍÏû·ÑÁ½¶Ë£¬Ìṩһ²ã»º³å£¬ÎÞÂÛÏû·Ñ·þÎñÊÇËÀÊǻÊÇËÙ¶ÈÂý£¬°üÖΰٲ¡£¬ÉõÖÁ»¹ÄÜÖÎδ²¡¡£
Êý¾Ý·¢ÍùÏûÏ¢¶ÓÁеĹý³ÌÖУ¬»òÖ®ºó»¨»î¶ù¾Í¶àÆðÀ´ÁË¡£µ«Ö÷ÒªµÄÎÒÈÏΪÎÞ·Ç»¹ÊÇÈýÖÖ´¦Àí·½Ê½£º
ÐèÒª½«ÔʼÊý¾Ý±£´æÈë¿â£¬ÕâÀïµÄÔʼÊý¾Ý°üº¬¶þ½øÖÆÊý¾ÝºÍ½âÂëºóµÄ¶þ½øÖÆÊý¾Ý¡£
Á÷´¦Àí»òÅú´¦ÀíÊý¾Ý£¬ÔÚÊý¾ÝÂäµ½Ó²ÅÌ֮ǰ½«Äܹ»Ìáǰ¼ÆËãµÄÊý¾ÝÈ«²¿Ô¤ÏȼÆËã³öÀ´£¬ÕâÑù×öµÄºÃ´¦Êǽ«À´²éѯµÄʱºòÈç¹ûºÍÔ¤¼ÆËãµÄÄ£ÐÍÆ¥Å䣬ÄǾÍÄܷdz£¿ìµÄµÃµ½½á¹û¡£
ÀëÏß´¦Àí£¬ÕâÀïµÄÓ¦ÓþÍÌ«¹ã·ºÁË£¬Ò»°ãÀ´½²¶¼Êǽ«ºÄʱ±È½Ï´óµÄ·ÅÖÃÀëÏß¼ÆËãÀ´×ö¡£µ«ÊÇÕâÀïÒªÉùÃ÷Ò»µã£¬ÀëÏß¼ÆËãÒÀÈ»ÊÇÔ½¿ìÔ½ºÃ£¬²»ÄÜÒòΪËû½ÐÀëÏß¼ÆËãËùÒÔÔÚÉè¼Æ»ò¿ª·¢½×¶Î¾Í²»¹Ø×¢Ê±Ð§¡£
1.2 Êý¾ÝÖÊÁ¿
ÉÏÒ»ÕÂÌáµ½ÁË»ù±¾µÄÊý¾ÝÖÊÁ¿£¬µ«Êµ¼Ê¹¤×÷ÖУ¬ÍùÍùÖÊÁ¿»á³öÏÖ¸÷ÖÖÒâÏë²»µ½µÄÊý¾Ý£¬ÏÂÃæÊǹ¤³ÌÖÐÓ°ÏìÊý¾ÝÖÊÁ¿µÄ¼¸¸ö±È½Ï´óµÄÎÊÌ⣺
Êý¾Ý¶ªÊ§£¬²»¹ÜÊÇÔڲɼ¯£¬Éϱ¨£¬Êý¾ÝÁ÷ת»·½Ú£¬¶¼¿ÉÄÜ»á´øÀ´Ò»¶¨µÄÊý¾Ý¶ªÊ§±ÈÀý¡£
Êý¾ÝÂÒÐò£¬Êý¾ÝÔÚ´ò°ü¡¢Éϱ¨¡¢Á÷תµÈ»·½Ú¾ù¿ÉÄܳöÏÖÂÒÐò£¬ÓÈÆäÊÇÔÚ²¹´«Êý¾ÝÖС£
Êý¾ÝÖØ¸´£¬Êý¾ÝÖØ¸´·¢ËÍ£¬ÓÈÆäÊÇÔÚÍøÂç²»ºÃʱ¡£
Êý¾Ý±¾Éí²»×¼È·£¬Õâ¸ö×îÍ»³öµÄµØ·½¾ÍÊÇÔÚ GPS Êý¾ÝÖУ¬¾³£³öÏÖÆ®µã¡¢ÔëµãµÈµÈ¡£
2. Êý¾Ý¿âµÄÌôÕ½
2.1 Êý¾ÝÏî¶à
Æû³µÀï¾ßÓзdz£¸´Ôӵĵç·ϵͳºÍ´«¸ÐÆ÷É豸£¬ÎÒÓ¡Ïóµ±ÖеĴÖÂÔ¹ÀËãÓ¦¸ÃÊÇÓÐ 120 Ïî×óÓÒ£¬²¢ÇÒÕâЩÊý¾ÝÏî²¢²»ÊdzµÄÚÊý¾ÝµÄÈ«²¿¡£Ëæ×Å×Ô¶¯¼ÝÊ»µÄµ½À´£¬Æû³µµÄ´«¸ÐÆ÷»áÔ½À´Ô½¶à£¬Êý¾ÝÏî¾Í»á¸ü¶à¡£
Èç¹û°´ÕÕ´«Í³µÄ Mysql ´æ´¢£¬ÄÇôÓÉÓÚÐÐʽ´æ´¢£¬ËùÒÔÔÚÈ¡»ØÊý¾Ýʱºò¾Í»á·Ç³£Ó°ÏìЧÂÊ£¬Ö®ºó½éÉܵ½
IoTDB µÄÎļþ¸ñʽµÄʱºòÔÙÁÄ¡£
2.2 ´æÁ¿Êý¾Ý´ó
ÎÒÃǰ´ÕÕ±¦ÂíÆû³µ 2019 ÏúÊÛÁ¿¹À¼Æ£¬252 ÍòÁ¾£¬ÎÒÃǼٶ¨ 4 Äêǰ¾ÍÒѾ¾ß±¸ÁËÁªÍøÄ£¿éÄǾÍÊÇ
1000 ÍòÁ¾Æû³µ¡£°´ÕÕÿÌõÊý¾Ý 1K£¬Ã¿Ìì²ÉÑùÉÏ´« 1 ´Î£¬Ó¦¸ÃÊÇ Ã¿Ìì 9G Êý¾Ý¡£µ«ÒòΪ³µ²»¿ÉÄÜÒ»Ö±¶¼µã»ð¿ª£¬ËùÒÔÒª¼ÙÉèÒ»¸ö
30% µÄÔÚÏßÂÊ£¬ÄǾÍÊÇ 3G Êý¾Ý¡£
3 Äê´óÔ¼¾Í»á´æ´¢ 3TB Êý¾Ý£¬¿ÉÄÜÄã¾õµÃ 3T Êý¾Ý¶ÔÓÚʱÏÂ×îÈȵĴóÊý¾ÝÀ´½²²¢²»ÊÇÒ»¸ö·Ç³£ÅÓ´óµÄÊý×Ö£¬µ«Èç¹ûÕû¸öÊý¾ÝÀïÃæ²»°üº¬ÈκÎͼƬ¡¢ÒôÊÓÆµÉõÖÁ¶¼Ã»ÓÐÎÄ×Ö£¬È«²¿ÊÇÓÉÕûÊý¡¢¸¡µãÊý¶Ñ»ýÆðÀ´µÄ£¬ÄÇÄã¿ÉÒÔÊÔÏëÒ»ÏÂÕâ¸öÊý¾Ý¿âÀïÃæµ½µ×ÓжàÉÙÊý¾Ý£¬Èç¹ûÄãÒ»¸ö²»Ð¡ÐÄÖ´ÐÐÁË
count(*) Äã¾õµÃ»á¿¨ËÀ²»£¿
2.3 ²É¼¯ÆµÂʸß
Æû³µ²»Í¬ÓÚÆäËû´«¸ÐÆ÷µÄµØ·½ÊÇ£¬ËûÊÇÒ»¸ö´¦ÔÚʱ¿ÌÔ˶¯µ±ÖеÄÎïÌ壬Èç¹ûÐèÒª×öһЩ¸ß½×µÄ¼ÆËãÄ£ÐÍ£¬±ÈÈç˵£ºÅöײ¼ì²â¡¢ÐÐÊ»¹ì¼£¾ÀÆ«µÈ£¬ÄÇôÏàÓ¦µÄÊý¾Ý²É¼¯ÆµÂÊÓпÉÄÜÒª´ïµ½Ãë¼¶¡£
µ±È»ÎÒ˵ÍêÕâ¾ä»°£¬¿ÉÄÜÄã¸Ð´¥²¢²»ÊǺÜÉµ«ÊǽáºÏÇ°ÃæËµµ½µÄÁ½µã£º120ÏîÊý¾Ý¡¢1000ÍòÁ¾³µ£¬½«²É¼¯ÆµÂÊÌá¸ßµ½
1 ÃëÒ»²É¼¯£¬ÄÇôÕâ¸öƵÂÊÏ£¬Ò»Ìì²úÉúµÄÊý¾Ý´óС¾ÍÊÇ 259T¡£ÕâʱºòÄãÕÒ DBA ˵£¬¸çÃÇÎÒÃǵÄÐèÇóÒª
1 ÌìдÈë 259T Êý¾Ý£¬ÎÒ¾õµÃ·´ÕýÎÒÊÇûÁ³ÕÒÈ˼ң¬ÈòúÆ·È¥¸ú DBA Áİɡ£
2.4 ´óÊý¾Ý·ÖÎöÐèÇó
ÏÖÓÐʱÐòÊý¾Ý¿â¶¼ÎÞ·¨Ö§³Ö´óÊý¾Ý·ÖÎö¿ò¼Ü£¬¶¼ÐèҪͨ¹ýÊý¾Ý¿âµÄ Api °ÑÊý¾Ý´ÓÊý¾Ý¿âÍùÊý¾Ý²Ö¿âµ¼³öºóÔÙ´æÒ»·Ý£¬Êý¾ÝÁ¿Ö±½Ó·±¶¡£
¾Ù¸öÀý×Ó£¬ÎÒÈç¹ûÐèÒª¶Ô Mysql ÖеÄÊý¾Ý½øÐÐ MapReduce ¼ÆË㣬ÄÇôֻÄÜÊǽ«Êý¾Ýͨ¹ý JDBC
½Ó¿Úµ¼³öµ½ Hbase »ò Hdfs ÉÏ£¬È»ºóÖ´ÐмÆË㣬¿ÉÄÜÄã¾õµÃÕâºÜÕý³££¬µ«°´ÕÕÉÏÃæÌáµ½µÄÊý¾ÝÁ¿£¬Êý¾Ý¸´ÖÆÖ®ºóÄ㹫˾Àï¿ÉÄܾÍÐèҪÿÌìÖ§³Å
500T Êý¾Ý¡£
2.5 ²»Í¬Êý¾Ý¿âÓöµ½µÄÎÊÌâ
ÎÒÃǹ«Ë¾Ò²²ÉÓÃÁ˶àÖÖ³¢ÊÔ£¬´Ó¿ªÊ¼µÄ MySql µ½ MongoDB ÔÙµ½ Hbase µÈµÈ£¬ËüÃÇ×Ü´æÔÚÕâÒ»µã»ò¶àµãµÄÈÃÄã¾õµÃ¾ÍÊDz»Âú×ãµÄµØ·½£¬ÈçÏÂͼ£º

IoTDB
µ½´ËΪֹ£¬ÕûÌåÐèÇó»ù±¾Ã÷È·£¬×÷Ϊһ¿îÎïÁªÍøµÄʱÐòÊý¾Ý¿âÐèÒª´¦ÀíµÄÎÊÌâ:
¸ßËÙдÈë
¸ßЧѹËõ
¶àά¶È²éѯ£¬½µ²ÉÑù¡¢Ê±Ðò·Ö¸î²éѯµÈ
²éѯµÍÑÓ³Ù¸ßЧ
Ìá¸ßÊý¾ÝÖÊÁ¿£¬ÂÒÐò¡¢¿ÕÖµµÈ
¶Ô½ÓÏÖÓдóÊý¾ÝÉú̬
IoTDB ¹¦ÄÜÌØµã

IoTDB Íê³ÉÁËÉÏÊöÎÊÌâÖеļ¸ºõËùÓй¦ÄÜ£¬¶øÇÒ¿ÉÒÔÁé»î¶Ô½Ó¶àÉú̬£¬¸ßÐÔÄÜÓÅÊÆµÈ¡£ÄÇô IoTDB
ÊÇÈçºÎÍê³ÉÕâЩÓÅÊÆÏÈçºÎ×öµ½£¿
IoTDB ¼Ü¹¹ÃèÊö

¶ÔÕÕÉÏÃæµÄͼ£¬´óÖÂÁ˽âһϠIoTDB µÄ½á¹¹£¬Âß¼Éϱ»·ÖΪ 3 ¸ö´ó²¿·Ö£¬ÆäÖУº
Engine ÊÇÍêÕûµÄÊý¾Ý¿â½ø³Ì£¬¸ºÔð sql Óï¾äµÄ½âÎö£¬Êý¾ÝдÈë¡¢²éѯ¡¢ÔªÊý¾Ý¹ÜÀíµÈ¹¦ÄÜ¡£
Storage ÊÇµ×²ã´æ´¢½á¹¹£¬ÀàËÆÓÚMysql µÄ idb Îļþ
Analyzing Layer ÊǸ÷ÖÖÁ¬½ÓÆ÷£¬Ôݲ»É漰ϸ½Ú¡£
Engine ºÍ Storage ÖÐÖ÷Òª°üº¬£º
IoTDB Engine£¬Ò²¾ÍÊÇ´úÂëÖÐµÄ Server Ä£¿é.
Native API£¬ËûÊǸßЧдÈëµÄ»ùʯ£¬´úÂëÖÐµÄ Session Ä£¿é
JDBC£¬´«Í³µÄ JDBC Á¬½Óµ÷Ó÷½Ê½£¬´úÂëÖÐµÄ JDBC Ä£¿é
TsFile£¬ÕâÊÇÕû¸öÊý¾Ý¿âµÄÒ»¸öÌØÉ«ËùÔÚ£¬´«Í³µÄÊý¾Ý¿âÈç¹ûʹÓà Spark ×öÀëÏß·ÖÎö£¬»òÕß ETL
¶¼ÐèҪͨ¹ýÊý¾Ý¿â½ø³Ì¶ÔÍâ¶ÁÈ¡£¬¶ø IoTDB ¿ÉÒÔÖ±½ÓÇ¨ÒÆÎļþ£¬Ê¡È¥ÁËÀ´»Ø×ª»»ÀàÐ͵ĿªÏú¡£TsFile
ÌṩÁËÁ½ÖÖ¶Áдģʽ£¬Ò»ÖÖ»ùÓÚ HDFS£¬Ò»ÖÖ»ùÓÚ±¾µØÎļþ¡£
Áĵ½ÕâÀÎÒÃÇ»ù±¾½éÉÜÁËÐÐÒµÄÚµÄÌØµã£¬×÷ΪÊý¾Ý¿âÐèÒª½â¾öµÄÍ´µã£¬ÒÔ¼° IoTDB ÔÚÍê³É¹¦ÄܵÄͬʱËù¾ßÓеÄ×ÔÉíµÄÓÅÊÆ¡£Í¬Ê±»¹¼òµ¥½éÉÜÁË
IoTDB µÄ»ù´¡¼Ü¹¹£¬ÆÓʵÎÞ»ªÇÒ¿ÝÔï¡£ÄÇô TsFile ¾¿¾¹ÊÇʲôÑùµÄ½á¹¹²ÅÄÜÍê³ÉÒÔÉÏËù½éÉܵĸßËÙдÈë¡¢¸ßѹËõ±È¡¢¸ßËÙ²éÑ¯ÄØ£¿Native
API ÓÖÊÇʲô£¿»¶Ó¼ÌÐø¹Ø×¢¡£¡£¡£
|