| ±à¼ÍƼö: |
±¾ÎÄÖ÷ÒªÕë¶ÔInfluxDBµÄ»ù±¾¸ÅÄî¡¢ÄÚºËʵÏֵȽøÐÐÉîÈëµÄ·ÖÎöµÈµÈ£¬Ï£Íû¶ÔÄúÓÐËù°ïÖú¡£
±¾ÎÄÀ´×Ô Ê±ÐòÊý¾Ý¿â£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
InfluxDB Êý¾ÝÄ£ÐÍ
InfluxDBµÄÊý¾ÝÄ£ÐÍºÍÆäËûʱÐòÊý¾Ý¿âÓÐЩÐí²»Í¬£¬ÏÂͼÊÇInfluxDBÖеÄÒ»ÕÅʾÒâ±í£º

1. Measurement£º´ÓÔÀíÉϽ²¸üÏñSQLÖбíµÄ¸ÅÄî¡£ÕâºÍÆäËûºÜ¶àʱÐòÊý¾Ý¿âÓÐЩ²»Í¬£¬ÆäËûʱÐòÊý¾Ý¿âÖÐMeasurement¿ÉÄÜÓëMetricµÈͬ£¬ÀàËÆÓÚÏÂÎĽ²µ½µÄField£¬ÕâµãÐèҪעÒâ¡£
2. Tags£ºÎ¬¶ÈÁÐ
£¨1£©ÉÏͼÖÐlocationºÍscientist·Ö±ðÊDZíÖеÄÁ½¸öTag Key£¬ÆäÖÐlocation¶ÔÓ¦µÄά¶ÈÖµTag
ValuesΪ£û1, 2£ý£¬scientist¶ÔÓ¦µÄά¶ÈÖµTag ValuesΪ{langstroth,
perpetual}£¬Á½ÕßµÄ×éºÏTagSetÓÐËÄÖÖ£º
location = 1
, scientist = langstroth
location = 1 , scientist = perpetual
location = 2 , scientist = langstroth
location = 2 , scientist = perpetual |
£¨2£©ÔÚInfluxDBÖУ¬±íÖÐTags×éºÏ»á±»×÷Ϊ¼Ç¼µÄÖ÷¼ü£¬Òò´ËÖ÷¼ü²¢²»Î¨Ò»£¬±ÈÈçÉϱíÖеÚÒ»Ðк͵ÚÈýÐмǼµÄÖ÷¼ü¶¼Îª¡¯location=1,scientist=langstroth¡¯¡£ËùÓÐʱÐò²éѯ×îÖÕ¶¼»á»ùÓÚÖ÷¼ü²éѯ֮ºóÔÙ¾¹ýʱ¼ä´Á¹ýÂËÍê³É¡£
3. Fields£ºÊýÖµÁС£ÊýÖµÁдæ·ÅÓû§µÄʱÐòÊý¾Ý¡£
4. Point£ºÀàËÆSQLÖÐÒ»ÐмǼ£¬¶ø²¢²»ÊÇÒ»¸öµã¡£
InfluxDB ºËÐĸÅÄî ¨C Series
ÎÄÕ¡¶Ê±ÐòÊý¾Ý¿âÌåϵ¼¼Êõ ¨C ʱÐòÊý¾Ý´æ´¢Ä£ÐÍÉè¼Æ¡·ÖÐÌᵽʱ¼äÏߵĸÅÄʱÐòÊý¾ÝµÄʱ¼äÏß¾ÍÊÇÒ»¸öÊý¾ÝÔ´²É¼¯µÄÒ»¸öÖ¸±êËæ×Åʱ¼äµÄÁ÷ÊŶøÔ´Ô´²»¶ÏµØÍ³öÊý¾Ý£¬ÕâÑùÐγɵÄÒ»ÌõÊý¾ÝÏß³ÆÖ®ÎªÊ±¼äÏß¡£ÈçÏÂͼËùʾ£º

ÉÏͼÖÐÓÐÁ½¸öÊý¾ÝÔ´£¬Ã¿¸öÊý¾ÝÔ´»á²É¼¯Á½ÖÖÖ¸±ê£ºbutterflierºÍhoneybees¡£InfluxDBÖÐʹÓÃSeries±íʾÊý¾ÝÔ´£¬SeriesÓÉMeasurementºÍTags×éºÏ¶ø³É£¬Tags×éºÏÓÃÀ´Î¨Ò»±êʶMeasurement¡£SeriesÊÇInfluxDBÖÐ×îÖØÒªµÄ¸ÅÄÔÚ½ÓÏÂÀ´µÄÄں˷ÖÎöÖлᾳ£Óõ½¡£
InfluxDB ϵͳ¼Ü¹¹
InfluxDB¶ÔÊý¾ÝµÄ×éÖ¯ºÍÆäËûÊý¾Ý¿âÏà±ÈÓкܴóµÄ²»Í¬£¬ÎªÁ˸ü¼ÓÇåÎúµÄ˵Ã÷£¬±ÊÕß°´ÕÕ×Ô¼ºµÄÀí½â»ÁËÒ»ÕÅInfluxDBÂß¼¼Ü¹¹Í¼£º

DataBase
InfluxDBÖÐÓÐDatabaseµÄ¸ÅÄÓû§¿ÉÒÔͨ¹ýcreate
database xxxÀ´´´½¨Ò»¸öÊý¾Ý¿â¡£
Retention Policy£¨RP£©
Êý¾Ý±£Áô²ßÂÔ¡£ºÜ³¤Ò»¶Îʱ¼ä±ÊÕß¶ÔRPµÄÀí½â¶¼²»×ã¹»³ä·Ö£¬ÒÔΪRPÖ»¹æ¶¨ÁËÊý¾ÝµÄ¹ýÆÚʱ¼ä¡£Æäʵ²»È»£¬RPÔÚInfluxDBÖÐÊÇÒ»¸ö·Ç³£ÖØÒªµÄ¸ÅÄºËÐÄ×÷ÓÃÓÐ3¸ö£ºÖ¸¶¨Êý¾ÝµÄ¹ýÆÚʱ¼ä£¬Ö¸¶¨Êý¾Ý¸±±¾ÊýÁ¿ÒÔ¼°Ö¸¶¨ShardGroup
Duration¡£RP´´½¨Óï¾äÈçÏ£º
| CREATE RETENTION
POLICY ON <retention_policy_name> ON <database_name>
DURATION <duration> REPLICATION <n>
[SHARD DURATION <duration> ] [DEFAULT] |
ÆäÖÐretention_policy_name±íʾRPµÄÃû³Æ£¬database_name±íʾÊý¾Ý¿âÃû³Æ£¬duration±íʾTTL£¬n±íʾÊý¾Ý¸±±¾Êý¡£SHARD
DURATIONÏÂÎÄÔÙ½²¡£¾Ù¸ö¼òµ¥µÄÀõ×Ó£º
| CREATE RETENTION
POLICY "one_day_only" ON "water_database"
DURATION 1d REPLICATION 1 SHARD DURATION 1h DEFAULT
|
InfluxDBÖÐRetention PolicyÓÐÕâô¼¸¸öÐÔÖʺÍÓ÷¨£º
1. RPÊÇÊý¾Ý¿â¼¶±ð¶ø²»ÊÇ±í¼¶±ðµÄÊôÐÔ¡£ÕâºÍºÜ¶àÊý¾Ý¿â¶¼²»Í¬¡£
2. ÿ¸öÊý¾Ý¿â¿ÉÒÔÓжà¸öÊý¾Ý±£Áô²ßÂÔ£¬µ«Ö»ÄÜÓÐÒ»¸öĬÈϲßÂÔ¡£
3. ²»Í¬±í¿ÉÒÔ¸ù¾Ý±£Áô²ßÂԹ滮ÔÚдÈëÊý¾ÝµÄʱºòÖ¸¶¨RP½øÐÐдÈ룬ÏÂÃæÓï¾ä¾ÍÖ¸¶¨six_mouth_rollupµÄrp½øÐÐдÈ룺
| curl -X POST
'http://localhost:8086/write?db=mydb&rp=six_month_rollup'
--data-binary 'disk_free,hostname=server01 value=442221834240i
1435362189575692182' |
Èç¹ûûÓÐÖ¸¶¨ÈκÎRP£¬ÔòʹÓÃĬÈϵÄRP¡£
Shard Group
Shard GroupÊÇInfluxDBÖÐÒ»¸öÖØÒªµÄÂß¼¸ÅÄ´Ó×ÖÃæÒâ˼À´¿´Shard Group»á°üº¬¶à¸öShard£¬Ã¿¸öShard
GroupÖ»´æ´¢Ö¸¶¨Ê±¼ä¶ÎµÄÊý¾Ý£¬²»Í¬Shard Group¶ÔÓ¦µÄʱ¼ä¶Î²»»áÖØºÏ¡£±ÈÈç2017Äê9Ô·ݵÄÊý¾ÝÂäÔÚShard
Group0ÉÏ£¬2017Äê10Ô·ݵÄÊý¾ÝÂäÔÚShard Group1ÉÏ¡£
ÿ¸öShard Group¶ÔÓ¦¶à³¤Ê±¼äÊÇͨ¹ýRetention PolicyÖÐ×ֶΡ±SHARD DURATION¡±Ö¸¶¨µÄ£¬Èç¹ûûÓÐÖ¸¶¨£¬Ò²¿ÉÒÔͨ¹ýRetention
Duration£¨Êý¾Ý¹ýÆÚʱ¼ä£©¼ÆËã³öÀ´£¬Á½ÕߵĶÔÓ¦¹ØÏµÎª£º

ÎÊÌâÀ´ÁË£¬ÎªÊ²Ã´ÐèÒª½«Êý¾Ý°´ÕÕʱ¼ä·Ö³ÉÒ»¸öÒ»¸öShard Group£¿¸öÈËÈÏΪÓÐÁ½¸öÔÒò£º
1. ½«Êý¾Ý°´ÕÕʱ¼ä·Ö¸î³ÉСµÄÁ£¶È»áʹµÃÊý¾Ý¹ýÆÚʵÏַdz£¼òµ¥£¬InfluxDBÖÐÊý¾Ý¹ýÆÚɾ³ýµÄÖ´ÐÐÁ£¶È¾ÍÊÇShard
Group£¬ÏµÍ³»á¶Ôÿһ¸öShard GroupÅжÏÊÇ·ñ¹ýÆÚ£¬¶ø²»ÊÇÒ»ÌõÒ»Ìõ¼Ç¼Åжϡ£
2. ʵÏÖÁ˽«Êý¾Ý°´ÕÕʱ¼ä·ÖÇøµÄÌØÐÔ¡£½«Ê±ÐòÊý¾Ý°´ÕÕʱ¼ä·ÖÇøÊÇʱÐòÊý¾Ý¿âÒ»¸ö·Ç³£ÖØÒªµÄÌØÐÔ£¬»ù±¾ÉÏËùÓÐʱÐòÊý¾Ý²éѯ²Ù×÷¶¼»á´øÓÐʱ¼äµÄ¹ýÂËÌõ¼þ£¬±ÈÈç²éѯ×î½üһСʱ»ò×î½üÒ»Ì죬Êý¾Ý·ÖÇø¿ÉÒÔÓÐЧ¸ù¾Ýʱ¼äά¶ÈÑ¡Ôñ²¿·ÖÄ¿±ê·ÖÇø£¬ÌÔ̲¿·Ö·ÖÇø¡£
Shard
Shard GroupʵÏÖÁËÊý¾Ý·ÖÇø£¬µ«ÊÇShard GroupÖ»ÊÇÒ»¸öÂß¼¸ÅÄÔÚËüÀïÃæ°üº¬ÁË´óÁ¿Shard£¬Shard²ÅÊÇInfluxDBÖÐÕæÕý´æ´¢Êý¾ÝÒÔ¼°Ìṩ¶Áд·þÎñµÄ¸ÅÄÀàËÆÓÚHBaseÖÐRegion£¬KuduÖÐTabletµÄ¸ÅÄî¡£¹ØÓÚShard£¬ÐèҪŪÇå³þÁ½¸ö·½Ã棺
1. ShardÊÇInfluxDBµÄ´æ´¢ÒýÇæÊµÏÖ£¬¾ßÌå³ÆÖ®ÎªTSM(Time Sort Merge
Tree) Engine£¬¸ºÔðÊý¾ÝµÄ±àÂë´æ´¢¡¢¶Áд·þÎñµÈ¡£TSMÀàËÆÓÚLSM£¬Òò´ËShardºÍHBase
RegionÒ»Ñù°üº¬Cache¡¢WALÒÔ¼°Data FileµÈ¸÷¸ö×é¼þ£¬Ò²»áÓÐflush¡¢compactionµÈÕâÀàÊý¾Ý²Ù×÷¡£

2. Shard Group¶ÔÊý¾Ý°´Ê±¼ä½øÐÐÁË·ÖÇø£¬ÄÇÂäÔÚÒ»¸öShard GroupÖеÄÊý¾ÝÓÖÊÇÈçºÎÓ³Éäµ½ÄĸöShardÉÏÄØ£¿
InfluxDB²ÉÓÃÁËHash·ÖÇøµÄ·½·¨½«Â䵽ͬһ¸öShard GroupÖеÄÊý¾ÝÔٴνøÐÐÁËÒ»´Î·ÖÇø¡£ÕâÀïÌØ±ðÐèҪעÒâµÄÊÇ£¬InfluxDBÊǸù¾Ýhash(Series)½«Ê±ÐòÊý¾ÝÓ³Éäµ½²»Í¬µÄShard£¬¶ø²»ÊǸù¾ÝMeasurement½øÐÐhashÓ³É䣬ÕâÑù»áʹµÃÏàͬSeriesµÄÊý¾Ý¿Ï¶¨»á´æÔÚͬһ¸öShardÖУ¬µ«ÕâÑùµÄÓ³Éä²ßÂÔ»áʹµÃÒ»¸öShardÖаüº¬¶à¸öMeasurementµÄÊý¾Ý£¬²»ÏñHBaseÖÐÒ»¸öRegionµÄÊý¾Ý¿Ï¶¨¶¼ÊôÓÚͬһÕÅ±í¡£
InfluxDB Sharding²ßÂÔ
ÉÏÎÄÒѾ¶ÔInfluxDBµÄSharding²ßÂÔ½øÐÐÁ˽éÉÜ£¬ÕâÀï¼òµ¥µØ×öÏÂ×ܽᡣÎÒÃÇÖªµÀͨ³£·Ö²¼Ê½Êý¾Ý¿âÒ»°ãÓÐÁ½ÖÖSharding²ßÂÔ£ºRange
ShardingºÍHash Sharding£¬Ç°Õß¶ÔÓÚ»ùÓÚÖ÷¼üµÄ·¶Î§É¨Ãè±È½Ï¸ßЧ£¬HBaseÒÔ¼°TiDB¶¼²ÉÓõÄÕâÖÖSharding²ßÂÔ£»ºóÕß¶ÔÓÚÀëÉ¢´ó¹æÄ£Ð´ÈëÒÔ¼°Ëæ¼´¶ÁÈ¡Ïà¶Ô±È½ÏÓѺã¬Í¨³£×î¼òµ¥µÄHash²ßÂÔÊDzÉÓÃȡģ·¨£¬µ«È¡Ä£·¨ÓиöºÜ´óµÄ±×²¡¾ÍÊÇȡģ»ù´¡ÐèÒª¹Ì¶¨£¬Ò»µ©±ä»¯¾ÍÐèÒªÊý¾ÝÖØ·Ö²¼£¬µ±È»¿ÉÒÔ²ÉÓøü¼Ó¸´ÔÓµÄÒ»ÖÂÐÔHash²ßÂÔÀ´»º½âÊý¾ÝÖØ·Ö²¼Ó°Ïì¡£
InfluxDBµÄSharding²ßÂÔÊǵäÐ͵ÄÁ½²ãSharding£¬ÉϲãʹÓÃRange Sharding£¬Ï²ãʹÓÃHash
Sharding¡£¶ÔÓÚʱÐòÊý¾Ý¿âÀ´Ëµ£¬»ùÓÚʱ¼äµÄRange ShardingÊÇ×îºÏÀíµÄ¿¼ÂÇ£¬µ«Èç¹û½ö½öʹÓÃTime
Range Sharding£¬»á´æÔÚÒ»¸öºÜÑÏÖØµÄÎÊÌ⣬¼´Ð´Èë»á´æÔÚÈȵ㣬»ùÓÚTime Range ShardingµÄʱÐòÊý¾Ý¿âдÈë±ØÈ»»áÂäµ½×îеÄShardÉÏ£¬ÆäËûÀÏShard²»»á½ÓÊÕдÈëÇëÇó¡£¶ÔдÈëÐÔÄÜÒªÇóºÜ¸ßµÄʱÐòÊý¾Ý¿âÀ´Ëµ£¬ÈȵãдÈë¿Ï¶¨²»ÊÇ×îÓŵķ½°¸¡£½â¾öÕâ¸öÎÊÌâ×î×ÔÈ»µÄ˼·¾ÍÊÇÔÙʹÓÃHash½øÐÐÒ»´Î·ÖÇø£¬ÎÒÃÇÖªµÀ»ùÓÚKeyµÄHash·ÖÇø·½°¸¿ÉÒÔͨ¹ýÉ¢Áкܺõؽâ¾öÈȵãдÈëµÄÎÊÌ⣬µ«Í¬Ê±»áÒýÈëÁ½¸öÐÂÎÊÌ⣺
1. µ¼ÖÂKey Range ScanÐÔÄܱȽϲInfluxDBºÜÓÅÑŵĽâ¾öÁËÕâ¸öÎÊÌ⣬ÉÏÎıÊÕßÌᵽʱÐòÊý¾Ý¿â»ù±¾ÉÏËùÓвéѯ¶¼ÊÇ»ùÓÚSeries£¨Êý¾ÝÔ´£©À´Íê³ÉµÄ£¬Òò´ËÖ»ÒªHash·ÖÇøÊǰ´ÕÕSeries½øÐÐHash¾Í¿ÉÒÔ½«ÏàͬSeriesµÄʱÐòÊý¾Ý·ÅÔÚÒ»Æð£¬ÕâÑùRange
ScanÐÔÄܾͿÉÒԵõ½±£Ö¤¡£ÊÂʵÉÏInfluxDBÕýÊÇÕâÑùʵÏֵġ£
2. Hash·ÖÇøµÄ¸öÊý±ØÐë¹Ì¶¨£¬Èç¹ûÒª¸Ä±äHash·ÖÇøÊý»áµ¼Ö´óÁ¿Êý¾ÝÖØ·Ö²¼¡£³ý·ÇʹÓÃÒ»ÖÂÐÔHashËã·¨¡£±ÊÕß¿´µ½InfluxDBÔ´ÂëÖÐHash·ÖÇøµÄ¸öÊý¹Ì¶¨ÊÇ1£¬¶Ô´Ë»¹²»ÊǺÜÀí½â£¬Èç¹ûÄÄλ¿´¹Ù¶Ô´Ë±È½ÏÊìϤ¿ÉÒÔÖ¸µ¼Ò»¶þ¡£
×ܽá
±¾ÆªÎÄÕÂÖØµã½éÉÜInfluxDBÖÐһЩ»ù±¾¸ÅÄΪºóÃæ·ÖÎöInfluxDBÄÚºËʵÏֵ춨һ¸ö»ù´¡¡£ÎÄÕÂÖ÷Òª½éÉÜÁËÈý¸öÖØÒªÄ£¿é£º
1. Ê×ÏȽéÉÜÁËInfluxDBÖÐһЩ»ù±¾¸ÅÄ°üÀ¨Measurement¡¢Tags¡¢FieldsÒÔ¼°Point¡£
2. ½Ó׎éÉÜÁËSeriesÕâ¸ö·Ç³£·Ç³£ÖØÒªµÄ¸ÅÄî¡£
3. ×îºóÖØµã½éÉÜÁËInfluxDBÖÐÊý¾ÝµÄ×éÖ¯ÐÎʽ£¬×ܽáÆðÀ´¾ÍÊÇ£ºÏȰ´ÕÕRP»®·Ö£¬²»Í¬¹ýÆÚʱ¼äµÄÊý¾Ý»®·Öµ½²»Í¬µÄRP£¬Í¬Ò»¸öRPϵÄÊý¾ÝÔÙ°´ÕÕʱ¼äRange·ÖÇøÐγÉShardGroup£¬Í¬Ò»¸öShardGroupÖеÄÊý¾ÝÔÙ°´ÕÕSeries½øÐÐHash·ÖÇø£¬½«Êý¾Ý»®·Ö³É¸üСÁ£¶ÈµÄ¹ÜÀíµ¥Ôª¡£ShardÊÇInfluxDBÖÐʵ¼Ê¹¤×÷Õߣ¬ÊÇInfluxDBµÄ´æ´¢ÒýÇæ¡£
|