Influxdb - 简单介绍

1. 时序数据库TSDB

1.1. 时序数据

  • 通常按时间顺序到达(可以按规则或不规则的时间间隔到达)
  • 数据量大
  • 具有时效性,越新的数据越有价值
image.png

1.2. 时序数据库

  • 发展史


    发展史
  • DB-Engine-Rank

image.png

image.png

2. Influxdb介绍

2.1. 优势

  • 易用性:类SQL语句
  • 功能齐全
  • TICK生态
  • 数据压缩率高
  • 读写性能高

2.2. 哪些公司在使用

image.png

2.3. Evolution and Thinks

Evolution

  • 版本0.9.0之前,基于LevelDB的LSMTree方案
  • 版本0.9.0~0.9.4,基于BoltDB的B+tree方案
  • 版本0.9.5~1.2,基于自研的WAL + TSMFile方案
  • 版本1.3~至今,基于自研的WAL + TSMFile + TSIFile方案

Some Thinks

  • 时序数据在降采样后会存在大批量的数据删除,LevelDB的LSMTree删除代价过高
  • 单机环境存放大量数据时不能占用过多文件句柄,LevelDB会随着时间增长产生大量小文件
  • 数据存储需要热备份,LevelDB只能冷备
  • 大数据场景下写吞吐量要跟得上,BoltDB的B+tree写操作吞吐量成瓶颈
  • 存储需具备良好的压缩性能,BoltDB不支持压缩

2.4. Goal:高效写入,高压缩比

  • 采用无模式设计,便于管理不连续数据。也意味着不支持某些数据库功能,例如没有交叉表连接
  • 不能存储重复数据,可能会在极少数情况下覆盖数据
  • 限制数据删除和更新,从而增加查询和写入性能

删除功能,不能只根据tag删除,须携带timestamp筛选删除
更新功能,不支持update,可以通过insert相同timestamp的数据点

  • 存储压缩比例高达10%

2.5. Terms

image.png
  • database: 数据库,measurement集合
  • measurement:指标对象,也即一个数据源对象。每个measurement可以拥有一个或多个指标值
  • tag:概念等同于大多数时序数据库中的tags, 通常通过tags可以唯一标示数据源。每个tag的key和value必须都是字符串
  • field:数据源记录的具体指标值。每一种指标被称作一个“field”,指标值就是 “field”对应的“value”
  • timestamp:数据的时间戳。在InfluxDB中,理论上时间戳可以精确到 纳秒(ns)级别
  • series:retention policy、measurement和tag set的集合
image.png

2.6. Functions

image.png

2.7. Continuous Queries and Retention Policies

  • Continuous Query (CQ),是在数据库内部自动周期性运行的一个查询
  • Retention Policy (RP),是InfluxDB数据架构的一部分,它描述了InfluxDB保存数据的时间。单个数据库中可以有多个RPs,但是每个Measurement的RPs是唯一的

2.8. Test Case

数据

以10秒的间隔,来追踪餐厅通过电话和网站订购食品的订单数量。我们会把这些数据存在food_data数据库里,其measurement为orders,fields分别为phone和website,如图所示。


image.png

问题

假定在长时间的运行中,我们只关心每三十分钟通过手机和网站订购的平均数量,我们希望用RPs和CQs实现下面的需求:

  • 自动将十秒间隔数据聚合到30分钟的间隔数据
  • 自动删除两个小时以上的原始10秒间隔数据
  • 自动删除超过52周的30分钟间隔数据

Answer

    1. 准备数据库,以及Retention Policy
CREATE DATABASE "food_data"
CREATE RETENTION POLICY "two_hours" ON "food_data" DURATION 2h REPLICATION 1 DEFAULT
CREATE RETENTION POLICY "a_year" ON "food_data" DURATION 52w REPLICATION 1
    1. 创建Continuous Query
CREATE CONTINUOUS QUERY "cq_30m" ON "food_data" BEGIN
SELECT mean("website") AS "mean_website",mean("phone") AS "mean_phone"
INTO "a_year"."downsampled_orders"
FROM "orders"
GROUP BY time(30m)
END
    1. 写入数据
INSERT orders phone=10,website=30   ...
    1. 结果数据

在orders里面是10秒钟间隔的裸数据,保存时间为2小时
在downsampled_orders里面是30分钟的聚合数据,保存时间为52周

2.9. Hardware sizing guidelines

  • Low load recommendations,CPU: 2-4 cores,RAM: 2-4 GB,IOPS: 500
  • Moderate load recommendations,CPU: 4-6 cores,RAM: 8-32 GB,IOPS: 500-1000
  • High load recommendations,CPU: 8+ cores,RAM: 32+ GB,IOPS: 1000+
image.png

3. The eco-system for InfluxDB

  • Telegraf, Time-Series Data Collector
  • InfluxDB, Time-Series Data Storage
  • Chronograf, Time-Series Data Visualization
  • Kapacitor, Time-Series Data Processing
TICK

3.1. Telegraf

Telegraf is the open source server agent to help you collect metrics from your stacks, sensors and systems.

  • monitoring the host filesystem
  • monitoring docker containers
  • supporting 200+ inputs, such as mysql, redis, mongodb, nginx, kubernetes.

3.2. StatsD

A network daemon that runs on the Node.js platform and listens for statistics, like counters and timers, sent over UDP or TCP and sends aggregates to one or more pluggable backend services (e.g., Graphite).

  • 计数器counter,例如user.logins:10|c // user.logins+10
  • 计时器timer,例如foo:100|ms // foo 100ms
  • 标量gauge,例如age:+1|g // age+1
  • 集合set,例如user:1|s user:2|s user:1|s // 2个user

3.3. Chronograf

Chronograf is the user interface and administrative component of the InfluxDB 1.x platform.

image.png
image.png

3.4. Grafana

The open platform for beautiful analytics and monitoring.

4. Refers

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容

  • 为什么选择InfluxDB 安装 查询、插入、删除数据 命令行形式 HTTP APIs /ping /query ...
    YouzuDevOps阅读 6,764评论 0 5
  • 转载自:https://www.cnblogs.com/jackyroc/p/7677508.html influ...
    SkTj阅读 2,122评论 0 2
  • 什么是InfluxDB? InfluxDB介绍 InfluxDB是一款用Go语言编写的开源分布式时序、事件和指标数...
    BilyLuo阅读 3,303评论 0 18
  • InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而I...
    __七把刀__阅读 164,586评论 19 91
  • 无论是数学教学工作,还是班主任工作经常会有很多困惑,没办法,我只能利用业余时间不断学习,今天听了钟杰老师的讲座《如...
    张松利阅读 444评论 0 9