influxDB 2.0安装及使用说明

目前influxdb2.0还处于beta阶段,网上的相关资料较少,根据自己的使用过程,特别整理此说明文档。

更多内容分享,欢迎关注公众号:Go开发笔记

一、安装

我们根据官方文档开始:https://v2.docs.influxdata.com/v2.0/get-started/

1.下载

influxDB下载页
打开官方文档选则平台,我这里是mac,点击下载即可。

2.解压

3.设置环境变量(可选)

sudo cp influxdb_2.0.0-beta.5_darwin_amd64/{influx,influxd} /usr/local/bin/

如果之前设置了1.x的路径,由于2.0的可执行文件与1.x一致,此时可以通过替换或重命名文件实现。

Both InfluxDB 1.x and 2.x include influx and influxd binaries. If InfluxDB 1.x binaries are already in your $PATH, run the 2.0 binaries in place or rename them before putting them in your $PATH. If you rename the binaries, all references to influx and influxd in this documentation refer to your renamed binaries.

二、启动

1.启动命令

influxd

注意:macOS Catalina的版本可能需要处理安全问题,运行命令后,系统偏好设置-安全性与隐私-(左下角)允许运行

2.初次使用设置

有以下几种方式:

(1)使用UI界面设置
  • 访问http://localhost:8086

  • 点击Get Started

  • 按要求输入Username、Password、Confirm Password、Organization Name、Bucket Name

  • 点击Continue

(2)使用CLI命令设置
  • influx setup

  • 按要求依次输入primary username、password、Confirm Password、Organization Name、Bucket Name、retention period

(3)使用CLI命令快速设置

此方法在github的readme中提到。

influx setup --username marty --password F1uxKapacit0r85 --org InfluxData --bucket telegraf --retention 168 --token where-were-going-we-dont-need-roads --force

3.默认启动端口

influxDB 2.0测试版默认使用9999端口,注意:正式版仍使用8086端口。通过此端口,我们可以使用其http接口服务。influxDB 1.x默认使用8086端口。

三、使用

官网教程并不完善,需要结合其github项目的readme来使用。

1.influx部分语法说明

特别注意:influxDB 2.0版本相对1.x版本改动较大,尤其是语法方面的改动,2.0版本的语法使用的是JavaScript,1.x使用的是sql

Flux design principles
Flux is designed to be usable, readable, flexible, composable, testable, contributable, and shareable.
Its syntax is largely inspired by 2018’s most popular scripting language, Javascript, and takes a functional approach to data exploration and processing.

示例如下:

from(bucket:"example-bucket")
  |> range(start:-1h)
  |> filter(fn:(r) =>
    r._measurement == "cpu" and
    r.cpu == "cpu-total"
  )
  |> aggregateWindow(every: 1m, fn: mean)
(1)from 指定数据源bucket

from(bucket:“example-bucket”)

(2) |> 管道连接符

将数据从数据源管道传输到指定地方,如range()

(3)range 指定起始时间段

range有两个参数start,stop,stop不设置默认为当前。range可以是相对的(使用负持续时间)或绝对(使用时间段)。

// Relative time range with start only. Stop defaults to now.
from(bucket:"example-bucket")
  |> range(start: -1h)

// Relative time range with start and stop
from(bucket:"example-bucket")
  |> range(start: -1h, stop: -10m)
  
// Absolute time range with start and stop
from(bucket:"example-bucket")
  |> range(start: 2020-03-02T01:00:00Z)
(4)filter 过滤

对range()中的数据进行过滤,filter()有一个参数fn,是基于列和属性过滤数据逻辑的匿名函数。
flux的匿名函数语法与JavaScript的语法类似。记录或行在filter()中作为对象®。多个过滤规则间用and连接。
语法如下:

// Pattern
(r) => (r.objectProperty comparisonOperator comparisonExpression)

示例如下:

// Example with single filter
(r) => (r._measurement == "cpu")

// Example with multiple filters
(r) => (r._measurement == "cpu") and (r._field != "usage_system" )
(5)基于以上常用语法示例

一个完整的查询示例如下:

from(bucket:"example-bucket")
  |> range(start: -15m)
  |> filter(fn: (r) =>
    r._measurement == "cpu" and
    r._field == "usage_system" and
    r.cpu == "cpu-total"
  )

表示:查询example-bucket最近15分钟cpu相关数据。

(6)yield

flux的yield()函数作为查询结果输出过滤的tables。

from(bucket:"example-bucket")
  |> range(start: -15m)
  |> filter(fn: (r) =>
    r._measurement == "cpu" and
    r._field == "usage_system" and
    r.cpu == "cpu-total"
  )
  |> yield()

为了输出和可视化数据,Flux在每个脚本的末尾自动添加一个yield()函数。只有在同一个流量查询中包含多个查询时,才需要显式调用yield()。每一组返回的数据都需要使用yield()函数来命名。

2.influx命令

1.authentication token

InfluxDB使用authentication tokens来确保用户和数据间的安全交互。

(1)生成token

在UI界面设置:

  • 登录UI界面后,点击侧边栏Load Data
  • 点击Tokens,点击Generate,选择token类型
  • 添加描述,点击Save即可

CLI命令设置:

# Syntax
influx auth create -o <org-name> [permission-flags]

# Example
influx auth create -o my-org </br>
  --read-buckets 03a2bbf46309a000 03ace3a87c269000 \
  --read-dashboards \
  --read-tasks \
  --read-telegrafs \
  --read-user

(2)查看token

可以在http://localhost:8086/orgs/{org_id}/load-data/tokens界面查看,如下:
influxDB token
点击root’s token即可看到token。

将token保存至文件 ~/.influxdbv2/credentials中,后续influx的命令默认读取此token。

当然,也可以通过cli设置token。

注意:正式版中发生了调整,token需要存储在~/.influxdbv2/configs文件中,格式如下:

[local]
  url = "http://localhost:8086"
  token = "token_info"
  org = "org_name"
  active = true
2.命令

1.查找organization ID and bucket ID

(1)查找organization ID

influx org find

(2)查找bucket ID
项目readme中为

influx bucket find 此命令其实会报错Error: Must specify org-id, or org name.

查看help:

influx bucket find -h

实际查询bucket id的命令为:

influx bucket find -o org_name

3.write

(1)使用命令

influx write --org InfluxData --bucket telegraf --precision s “m v=2 $(date +%s)”

(2)使用http接口

curl --header “Authorization: Token $(cat ~/.influxdbv2/credentials)” --data-raw “m v=2 $(date +%s)” “http://localhost:9999/api/v2/write?org=InfluxData&bucket=telegraf&precision=s”

(3)使用influxDB的client

根据语言选择对应版本的client

4.read

influx query -o InfluxData ‘from(bucket:“telegraf”) |> range(start:-1h)’

5.使用REPL
连接后不用反复使用influx的命令

(1)连接
influx repl -o InfluxData

(2)read

from(bucket:“telegraf”) |> range(start:-1h)

实际上官网的教程也是从使用REPL开始的,如果没有连接,后续的所有使用都无法进行。

  • 12
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
InfluxDB 2.0是一个由Go语言开发的数据库系统,它有两个版本:InfluxDB 1.x系列和InfluxDB 2.0系列。InfluxDB 2.0引入了全新的查询语言Flux,并支持TICK架构。它提供了一种类似SQL的查询语言InfluxQL,用于数据交互。InfluxDB 2.0还分为InfluxDB Cloud和InfluxDB OSS两个系列。如果你想安装InfluxDB 2.0,你可以通过以下步骤进行操作: 1. 下载InfluxDB 2.0安装包: ``` wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.7-amd64.deb ``` 2. 安装InfluxDB 2.0: ``` sudo dpkg -i influxdb2-2.0.7-amd64.deb ``` 如果你想在Java项目中使用InfluxDB 2.0,你需要在项目的pom.xml文件中添加以下Maven依赖包: ```xml <dependency> <groupId>com.influxdb</groupId> <artifactId>influxdb-client-java</artifactId> <version>2.0.0</version> </dependency> ``` 这样你就可以在Java项目中使用InfluxDB 2.0了。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [InfluxDB 2.0 原理与应用实践](https://blog.csdn.net/hogwarts_ziqi/article/details/126000472)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [InfluxDb2.0使用与集成](https://blog.csdn.net/Calm_D/article/details/120646931)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值