Golang InfluxDB 基础操作

我是不会赢的 · · 787 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

InfluxDB基础操作

基础操作

  • 连接

    [root@localhost ~]#  influx -precision rfc3339
    Connected to http://localhost:8086 version 1.8.0
    InfluxDB shell version: 1.8.0
    >
    

    precision参数表明了任何返回的时间戳的格式和精度,在上面的例子里,rfc3339是让InfluxDB返回RFC339格式(YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ)的时间戳。

  • 登录验证

    > auth
    username: icms
    password: icms@576576
    
  • 操作数据库

    # 创建用户
    create user "icms" with password 'icms@576576' with all privileges
    
    # 创建数据库和保留策略RPs
    # WITH DURATION 2d 表示创建保留策略为2天且名称为NAME "cache_policy_2d"
    # 复制片参数(REPLICATION 1)是必须的,但是对于单个节点的InfluxDB实例,复制片只能设为1
    # NAME "cache_policy_2d" 保留策略的名称
    CREATE DATABASE "ICMS_CACHE" WITH DURATION 2d REPLICATION 1
    SHARD DURATION 1h NAME "cache_policy_2d"
    

    WITHDURATIONREPLICATIONSHARD DURATIONNAME子句是可选的用来创建与数据库相关联的单个保留策略。如果您没有在WITH之后指定其中一个子句,将默认为autogen保留策略。创建的保留策略将自动用作数据库的默认保留策略。

    一个成功的CREATE DATABASE查询返回一个空的结果。如果您尝试创建已存在的数据库,InfluxDB什么都不做,也不会返回错误。

    # 显示所有数据库
    > show databases
    name: databases
    name
    ----
    _internal
    NFDAS_CACHE
    ICMS_CACHE
    
    # 显示保留策略
    show retention policies on "db_name"
    
    # 使用指定数据库
    > use ICMS_CACHE
    Using database ICMS_CACHE
    
    # 显示所有的表(类似mysql的table)
    > show measurements
    name: measurements
    name
    ----
    DevPropData
    
    # 显示tags 字段
    > show tag keys on ICMS_CACHE from DevPropData
    name: DevPropData
    tagKey
    ------
    AreaName
    DevName
    
    # 显示field 字段
    >  show field keys on ICMS_CACHE from DevPropData
    name: DevPropData
    fieldKey fieldType
    -------- ---------
    Alarm    integer
    AreaId   integer
    DevId    integer
    FloorNo  integer
    Interval integer
    N1       float
    > 
    

    说明:_internal数据库是用来存储InfluxDB内部的实时监控数据的。

  • 增删改查(CU-rd)

    # 操作数据库
    >  use ICMS_CACHE
    Using database ICMS_CACHE
    
    # 在查询数据之前 建议先设置控制台时间显示格式化
    > precision rfc3339
    # 按时间排序查询top10数据 需要添加时区设置 tz('Asia/Shanghai'),否则查询的数据不准确
    > select * from DevPropData order by time desc limit 10 tz('Asia/Shanghai')
    name: DevPropData
    time                                Alarm   DevId DevName FloorNo Interval
    ----                                -----   ----- ------- ------- --------
    2020-07-22T10:52:00.000359379+08:00 1       1     403A    4       30      
    2020-07-22T10:51:30.000251776+08:00 1       1     403A    4       30      
    2020-07-22T10:51:00.000522171+08:00 1       1     403A    4       30      
    2020-07-22T10:50:30.000343237+08:00 1       1     403A    4       30      
    2020-07-22T10:50:00.000213782+08:00 1       1     403A    4       30      
    2020-07-22T10:49:30.000360242+08:00 1       1     403A    4       30      
    2020-07-22T10:49:00.000293949+08:00 1       1     403A    4       30      
    2020-07-22T10:48:30.000312107+08:00 1       1     403A    4       30      
    2020-07-22T10:48:00.00023421+08:00  1       1     403A    4       30      
    2020-07-22T10:47:30.000334161+08:00 1       1     403A    4       30      
    
    # 按fields字段查询 ,fields 需要添加双引号
    > select * from DevPropData where "DevId"=1 limit 1
    name: DevPropData
    time                         Alarm AreaId AreaName DevId DevName FloorNo Interval 
    ----                         ----- ------ -------- ----- ------- ------- -------- 
    2020-07-21T14:36:30.0008914Z 1     5      B栋       1     403A    4       30       
    > 
    # 按fields 查询指定指标
    > SELECT "DevId" , "AreaId", "AreaName" FROM DevPropData where "DevId"=1 limit 1
    name: DevPropData
    time                         DevId AreaId AreaName
    ----                         ----- ------ --------
    2020-07-21T14:36:30.0008914Z 1     5      B栋
    > 
    
    # 添加数据
    

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:我是不会赢的

查看原文:Golang InfluxDB 基础操作

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

787 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传