什么是InfluxDB 1.x?
InfluxDB是TICK堆栈(Telegraf、InfluxDB、Chronograf、Kapacitor)的一部分的开源时间序列数据库。
为什么使用InfluxDB 1.x?
高性能
InfluxDB 是一种专为时序数据设计的性能高效的数据存储。它支持高吞吐量数据摄取、压缩和实时查询。InfluxDB 完全使用 Go 语言编写,编译成单个二进制文件,无需外部依赖。它提供命令行界面、内置 HTTP API、一系列客户端库(例如 Go、Java 和 JavaScript)以及 Telegraf、Graphite、Collectd 和 OpenTSDB 等常用数据格式的插件。类似 SQL 的查询
InfluxDB 使用 InfluxQL,这是一种类似 SQL 的查询语言,用于与数据交互。它经过精心设计,使其对于来自其他 SQL 或类似 SQL 环境的用户感觉熟悉,同时也提供了专门用于存储和分析时序数据的功能。InfluxQL 支持正则表达式、算术表达式和时序特定函数,以加快数据处理速度。下采样和数据保留
InfluxDB 每秒可处理数百万个数据点。在长时间内处理如此多的数据可能会导致存储问题。InfluxDB 自动压缩数据以最小化存储空间。此外,您可以轻松地进行数据下采样;保留一定时间的原始高精度数据,并将较低精度的汇总数据存储更长的时间或直到数据过期。InfluxDB 有两个功能有助于自动化下采样和数据过期过程——连续查询和保留策略。
TICK 堆栈
TICK 代表 Telegraf、InfluxDB、Chronograf 和 Kapacitor,这些技术集成在一个统一的架构或“堆栈”中。这些技术共同提供了一个平台,可以捕获、监控、存储和可视化时序数据,从而允许实时做出明智的业务决策。
TICK 堆栈的组件
Telegraf
Telegraf 是一个插件驱动的服务器代理,用于收集和报告指标。Telegraf 插件从其运行的系统直接获取各种指标,从第三方 API 拉取指标,甚至通过 StatsD 和 Kafka 消费者服务监听指标。它还包括输出插件,可以将指标发送到各种其他数据存储、服务和消息队列,包括 InfluxDB、Graphite、OpenTSDB、Datadog、Librato、Kafka、MQTT、NSQ 等。InfluxDB
InfluxDB 是一个从零开始构建以处理高写入和查询负载的时序数据库。InfluxDB 是一种定制的性能高效的数据存储,专门用于处理带时间戳的数据,特别适用于 DevOps 监控、物联网监控和实时分析等用例。通过配置 InfluxDB 以保留定义时间段的数据,并自动从系统中过期和删除不需要的数据,您可以节省机器上的空间。InfluxDB 还提供了一种类似 SQL 的查询语言,用于与数据交互。Chronograf
Chronograf 是堆栈的管理员用户界面和可视化引擎。它使得设置和维护您的基础设施监控和警报变得容易。它使用简单,包括模板和库,允许您快速构建包含实时数据可视化的仪表板,并轻松创建警报和自动化规则。Capacitor
Capacitor 是一个本地的数据处理引擎。它可以处理来自 InfluxDB 的流式和批量数据。Capacitor 允许您插入自己的自定义逻辑或用户定义的函数来处理具有动态阈值的警报、匹配指标模式、计算统计异常,并根据这些警报执行特定操作,例如动态负载均衡。Capacitor 集成 HipChat、OpsGenie、Alerta、Sensu、PagerDuty、Slack 等更多。