• 【InfluxDB】InfluxDB学习实践笔记


    InfluxDB是用Go编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。它与Elasticsearch、Graphite等类似。比较适用于与事件紧密相关的数据,例如实时日志数据、实时监控数据等,详细信息可以自行网上搜索。

    0x00 环境信息

    基本信息:

    • 系统:CentOS7.2
    • IP地址:xx.xx.xx.xx
    • 端口号:30040
    • 运行环境:K8S测试集群中
    • InfluxDB版本:1.5.1(该版本不再提供web界面)
    • InfluxDB用户名:admin
    • InfluxDB密码:admin

    0x01 基本操作

    InfluxDB支持三种方式的通信方式:

    • InfluxDB客户端命令行
    • HTTP API
    • 各编程语言库

    下面演示采用InfluxDB客户端命令行方式。

    1、连接、认证

    在windows系统中使用InfluxDB客户端命令行连接数据库,并进行认证:

    注意,本地必须存在influxdb的一套指令程序,包括下面几个:

    2、数据库操作

    • show databases 查看数据库
    • create database db_name 创建数据库
    • drop database db_name 删除数据库
    • use db_name 选择数据库

    其中db_name表示具体的数据库名。
    实际操作如下:

    3、measurement操作

    InfluxDB中的measurement类似于关系数据库中的数据表,后文中全部称其为数据表。

    • show measurements 查看表
    • insert measurement_name,tags fields timestamp 因为没有显示的创建表语句,所以通过向表中插入数据来创建表
    • drop measurement measurement_name 删除表

    其中,measurement_name代表具体的表名。在插入数据时有特定的格式要求,例如:

    insert server_info,server_name=server1 cpu=intel,ram_capacity=64 timestamp

    其中,从左到右依次为表名、逗号、tags<key-value,可多个>、空格、fields<key-value,可多个>、空格、timestamp,其中多个tags之间使用逗号分隔,多个fields之间使用逗号分隔。

    4、数据操作(增删改查)

    (1)新增数据

    假设数据表格式如下面语句所示:

    insert server_info,server_name=server1 cpu=intel,ram_capacity=64 timestamp

    由上图结果可知,在插入数据时,可以不指定timestamp,此时数据库会自动添加。

    (2)查询数据

    查询数据使用SQL语句实现,同关系型数据库的查询方式几乎相同。如上图中所示。

    (3)修改和删除数据

    由于InfluxDB是时序数据库,所以未提供修改和删除数据的操作。不过,数据删除可以通过数据保存策略(Retention Policies)来自动实现。

    5、series操作

    series表示数据表中特定tags对应的数据,比如上面的表server_info,该表中保存了多个服务器的数据,不同服务器通过tags中的server_name不同值来表示,假如现在表中数据如下:

    则此时series则表示不同服务器的cpu、ram_capacity随时间变化的一系列值。

    6、账号管理

    • 查看账号:show users
    • 创建普通账号:create user “username”/username with password ‘password’,貌似创建的普通账号并没有什么数据库操作权限
    • 创建管理和账号:create user “username”/username with password ‘password’ with all privileges
    • 删除账号:drop user “username”/username
    • 设置账号密码:set password for username=’password’

    其中,账号支持两种书写方式:英文双引号括起来、直接账号字符串,而密码则必须以英文单引号括起来,否则会出错。

    0x02 参考链接

  • 相关阅读:
    网络嗅探与协议分析之验收题
    20199121《网络攻防实践》第四周作业
    如何设计一个卡方检验
    20199121《网络攻防实践》第三周作业
    openssl制作证书全过程及https实现
    Padding Oracle攻击解密AES
    virt-sysprep命令清理缓存文件时失败的解决方法
    OpenStack的centos镜像制作
    KVM--Host does not support any virtualization...
    Centos7 安装VNC实现远程桌面
  • 原文地址:https://www.cnblogs.com/leejack/p/9572814.html
Copyright © 2020-2023  润新知