Documentation

处理字符串

A string 类型表示一个字符序列。
字符串是不可变的,一旦创建就无法修改。

类型名称: string

字符串语法

一个 字符串 字面量由一系列用双引号 (") 括起来的字符表示。任何字符都可以出现在字符串字面量中,除了未转义的双引号。字符串字面量支持几种 转义序列使用 \x 作为前缀的十六进制编码

"abc"
"string with double \" quote"
"string with backslash \\"
"日本語"
"\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e"

将数据类型转换为字符串

使用 string() 函数 将其他 基本类型 转换为字符串:

  • 布尔值
  • 字节
  • 持续时间
  • 浮点数
  • 整数
  • uint
  • 时间
string(v: 42)
// Returns "42"

将正则表达式转换为字符串

要将一个 正则表达式 转换为字符串:

  1. 导入 regexp
  2. 使用 regexp.getString() 并提供 用于转换为字符串的正则表达式。
import "regexp"

regexp.getString(r: /[a-zA-Z]/)
// Returns [a-zA-Z] (string)

将数据类型转换为十六进制字符串

基本类型 转换为十六进制字符串:

  1. 导入 contrib/bonitoo-io/hex
  2. 使用 hex.string() 将其他值转换为十六进制字符串。
import "contrib/bonitoo-io/hex"

hex.string(v: 123456)
// Returns 1e240

将列转换为字符串

Flux 让你在 表流 中迭代行并将列转换为字符串。

_value 列转换为字符串,使用 toString() 函数

toString() 仅操作 _value 列。

data
    |> toString()
给定以下输入数据:
_时间_值 (int)
2021-01-01T00:00:00Z1
2021-01-01T02:00:00Z2
2021-01-01T03:00:00Z3
2021-01-01T04:00:00Z4
上面的例子返回:
_时间_值 (字符串)
2021-01-01T00:00:00Z1
2021-01-01T02:00:00Z2
2021-01-01T03:00:00Z3
2021-01-01T04:00:00Z4

将任何列转换为字符串:

  1. 使用 map() 遍历并重写行。
  2. 使用 string() 将列值转换为字符串。
data
    |> map(fn: (r) => ({ r with level: string(v: r.level) }))
给定以下输入数据:
_时间级别 (int)
2021-01-01T00:00:00Z1
2021-01-01T02:00:00Z2
2021-01-01T03:00:00Z3
2021-01-01T04:00:00Z4
上面的例子返回:
_时间级别 (字符串)
2021-01-01T00:00:00Z1
2021-01-01T02:00:00Z2
2021-01-01T03:00:00Z3
2021-01-01T04:00:00Z4

对字符串进行操作

Flux strings package中使用函数执行包括以下内容的操作:

插值字符串

要在另一个Flux字符串中插入字符串,请将嵌入的 expressions 包裹在美元符号和花括号中 ${}。Flux用嵌入表达式的结果替换占位符并返回字符串文字。

name = "John"
"My name is ${name}."
// My name is John.

d = 1m
"the answer is ${d}"
// the answer is 1m

t0 = 2016-06-13T17:43:50Z
"the answer is ${t0}"
// the answer is 2016-06-13T17:43:50.000000000Z

p = {name: "John", age: 42}
"My name is ${p.name} and I'm ${p.age} years old."
// My name is John and I'm 42 years old.

字符串插值表达式必须满足 可字符串化约束.

连接字符串

要连接Flux字符串,使用字符串值或 表达式之间的+运算符,这些表达式解析为字符串。 Flux解析表达式并返回一个单一的连接字符串。

连接的表达式必须解析为字符串。

name = "John"
"My name is " + name + "."
// My name is John.

d = 1m
"the answer is " + string(v: d)
// the answer is 1m

t0 = 2016-06-13T17:43:50Z
"the answer is " + string(v: t0)
// the answer is 2016-06-13T17:43:50.000000000Z

p = {name: "John", age: 42}
"My name is " + p.name + " and I'm " + string(v: p.age) + " years old."
// My name is John and I'm 42 years old.


Flux的未来

Flux 正在进入维护模式。您可以像现在一样继续使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: