• 时序数据库InfluxDB


    在系统服务部署过后,线上运行服务的稳定性是系统好坏的重要体现,监控系统状态至关重要,经过调研了解,时序数据库influxDB在此方面表现优异。

    influxDB介绍

    时间序列数据是以时间字段为每行数据的标示,比如股票市场的价格,环境中的温度,主机的CPU使用率等。但是又有什么数据是不包含timestamp的呢?几乎所有的数据都可以打上一个timestamp字段。时间序列数据更重要的一个属性是如何去查询它。在查询的时候,对于时间序列我们总是会带上一个时间范围去过滤数据。同时查询的结果里也总是会包含timestamp字段。
    InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。
    它有三大特性:

    1. Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等)

    2. Metrics(度量):你可以实时对大量数据进行计算

    3. Eevents(事件):它支持任意的事件数据
      特点:

    • schemaless(无结构),可以是任意数量的列

    • min, max, sum, count, mean, median 一系列函数,方便统计

    • Native HTTP API, 内置http支持,使用http读写

    • Powerful Query Language 类似sql

    操作介绍

    远程连接

    1
    influx -host xx.xx.xx.xx -port xxxx(默认8086) -username xx -password xx -database xx


    创建及使用数据库

    1
    2
    3
    create database "test"; --创建数据库
    show databases;  --查看数据库
    use test; --选取数据库


    增删改查

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    SHOW MEASUREMENTS  --查询当前数据库中含有的表
    SHOW FIELD KEYS --查看当前数据库所有表的字段
    SHOW series from pay --查看key数据
    SHOW TAG KEYS FROM "pay" --查看key中tag key值
    SHOW TAG VALUES FROM "pay" WITH KEY = "merId" --查看key中tag 指定key值对应的值
    SHOW TAG VALUES FROM cpu WITH KEY IN ("region", "host") WHERE service = 'redis'
    DROP SERIES FROM <measurement_name[,measurement_name]> WHERE <tag_key>='<tag_value>' --删除key
    SHOW CONTINUOUS QUERIES   --查看连续执行命令
    SHOW QUERIES  --查看最后执行命令
    KILL QUERY <qid> --结束命令
    SHOW RETENTION POLICIES ON mydb  --查看保留数据
    查询数据
    SELECT * FROM /.*/ LIMIT 1  --查询当前数据库下所有表的第一行记录
    select * from pay  order by time desc limit 2
    select * from  db_name."POLICIES name".measurement_name --指定查询数据库下数据保留中的表数据 POLICIES name数据保留
    删除数据
    delete from "query" --删除表所有数据,则表就不存在了
    drop MEASUREMENT "query"   --删除表(注意会把数据保留删除使用delete不会)
    DELETE FROM cpu
    DELETE FROM cpu WHERE time < '2000-01-01T00:00:00Z'
    DELETE WHERE time < '2000-01-01T00:00:00Z'
    DROP DATABASE “testDB” --删除数据库
    DROP RETENTION POLICY "dbbak" ON mydb --删除保留数据为dbbak数据
    DROP SERIES from pay where tag_key='' --删除key中的tag

    SHOW SHARDS  --查看数据存储文件
    DROP SHARD 1
    SHOW SHARD GROUPS
    SHOW SUBSCRIPTIONS


    6、数据保留命令

    查看保留期 SHOW RETENTION POLICIES ON mydb

    修改保留期 ALTER RETENTION POLICY default ON online DEFAULT

    删除保留期 DROP RETENTION POLICY <retentionpolicy> ON <database>

    创建保留期 REATE RETENTION POLICY "rp_name" ON "db_name" DURATION 30d REPLICATION 1 DEFAULT

    rp_name:策略名

    db_name:具体的数据库名

    30d:保存30天,30天之前的数据将被删除

    它具有各种时间参数,比如:h(小时),w(星期)m minutes h hours d days w weeks INF infinite

    REPLICATION 1:副本个数,这里填1就可以了

    DEFAULT设为默认的策略


    目前,我们已经influxdb+grafana应用到数据库监控、Kafka数据流监控、服务页面数据统计监控等,炫酷的页面给你不一样的体验,试试吧!

    关注微信公众号:正版乔,和我一起探索日常的编程乐趣~

    推荐阅读:




    一个学统计的程序员

    喜欢Coding

    喜欢硬件

    喜欢树莓派

    喜欢深度学习

    喜欢你



  • 相关阅读:
    响应式布局
    Fiddler2汉化版使用说明
    nonmember,nonfriend替换member函数
    Java回顾之Spring基础
    dudu,想在cnblogs首页看很久以前的文章不行。
    基于Nios II内核的项目程序为什么越优化越慢?
    学习 easyui:禁用 linkbutton 问题
    Socket编程 (异步通讯,解决Tcp粘包) 3
    .NET:可扩展的单据编号生成器 之 基于缓冲区的顺序号
    淘宝API应用开发
  • 原文地址:https://www.cnblogs.com/qiaohaoforever/p/10252952.html
Copyright © 2020-2023  润新知