Flux 函数类型和类别
Flux 函数具有一组行为或特征,定义了函数的工作方式。下面的类型和类别列表并不详尽,但涵盖了独特和重要的函数行为。
该 图标表示该功能是实验性的。
函数类型
输入
Flux 输入函数从数据源返回数据。
以下输入函数可用:
- array.from()
- bigtable.from()
- clickhouse.query()
- csv.from()
- from()
- from()
- generate.from()
- http.get() – (已弃用)
- influxdb.select()
- iox.from()
- iox.sql()
- logql.query_range()
- monitor.logs()
- prometheus.scrape()
- query.inBucket()
- requests.do()
- requests.do() – (已弃用)
- requests.get()
- requests.get() – (已弃用)
- requests.post()
- requests.post() – (已弃用)
- socket.from()
- usage.from()
- v1.json()
输出
Flux 输出函数生成结果或将数据发送到指定的输出目标。
以下输出函数可用:
变换
Flux 变换将表流作为输入,以某种方式转换数据,并输出表流。变换涵盖了广泛的函数,但以下分类突出显示了与特定变换函数相关的重要行为。
aggregateWindow 辅助函数
aggregateWindow() 函数 按照时间窗口或分组数据,并对输入表应用聚合或选择函数。所有聚合和选择函数 都适用于 aggregateWindow()。
聚合
Flux 聚合函数是 转换 输入表中以某种方式聚合值。 输出表包含一行聚合值。 聚合转换为它们接收到的每个输入表输出一个表。
每个聚合函数的输出表将会:
- 包含单个记录。
- 具有与输入表相同的 group key。
- 包含一个聚合列。
该列标签将与输入表相同。
列的数据类型取决于具体的聚合操作。
如果输入表为空或输入列仅包含
null值,则该列的值将为null。 - 删除所有满足以下条件的列:
- 不在分组键中
- 不是聚合列
以下聚合函数可用:
- aggregate.rate()
- aggregateWindow()
- count()
- cov()
- covariance()
- experimental.count()
- experimental.histogramQuantile()
- experimental.integral()
- experimental.mean()
- experimental.mode()
- experimental.quantile()
- experimental.skew()
- experimental.spread()
- experimental.stddev()
- experimental.sum()
- geo.ST_LineString()
- geo.totalDistance()
- integral()
- mean()
- median()
- mode()
- pearsonr()
- prometheus.histogramQuantile()
- quantile()
- reduce()
- skew()
- spread()
- stddev()
- sum()
- timeWeightedAvg()
聚合选择器
以下函数既是聚合函数,也是选择器函数。
每个函数在执行聚合操作后返回 n 个值。
在本文档中,它们被归类为 选择器函数:
选择器
Flux 选择器函数是 转换 ,每个输入表格返回一个或多个记录。
每个选择器函数的输出表将:
- 包含一个或多个未修改的记录。
- 具有与输入表相同的 group key。
以下选择器函数可用:
- aggregateWindow()
- bottom()
- distinct()
- experimental.distinct()
- experimental.first()
- experimental.last()
- experimental.max()
- experimental.min()
- experimental.quantile()
- experimental.unique()
- first()
- highestAverage()
- highestCurrent()
- highestMax()
- last()
- limit()
- lowestAverage()
- lowestCurrent()
- lowestMin()
- max()
- median()
- min()
- quantile()
- sample()
- top()
- unique()
选择器和聚合
以下函数可以用作选择器或聚合,但在本 документации 中被分类为 聚合函数:
动态查询
Flux 动态查询函数从一系列表中提取一个表,并访问其列和记录。
有关推荐的使用方法,请参见 提取标量值。
函数类别
以下类别代表高级功能行为。
筛选器
筛选函数遍历并评估每个输入行,以查看它是否匹配指定的条件。 不匹配指定条件的行将从输出中删除。 以下筛选函数可用:
- filter()
- geo.filterRows()
- geo.gridFilter()
- geo.strictFilter()
- hourSelection()
- query.filterFields()
- query.filterMeasurement()
- query.fromRange()
- range()
类型转换
Flux 类型转换函数将标量值或列转换为特定的数据类型。可用的类型转换函数如下:
- array.toBool()
- array.toDuration()
- array.toFloat()
- array.toInt()
- array.toString()
- array.toTime()
- array.toUInt()
- bool()
- bytes()
- duration()
- dynamic.asArray()
- dynamic.dynamic()
- dynamic.jsonEncode()
- dynamic.jsonParse()
- float()
- int()
- iox.sqlInterval()
- json.encode()
- json.parse()
- regexp.compile()
- string()
- time()
- toBool()
- toFloat()
- toInt()
- toString()
- toTime()
- toUInt()
- uint()
测试
Flux 测试函数测试数据的各个方面。
测试返回 true 或 false,一个转换后的表流,或者在失败时返回一个错误。
以下测试函数可用:
- dynamic.isType()
- testing.assertEmpty()
- testing.assertEquals()
- testing.assertEqualValues()
- testing.assertMatches()
- testing.diff()
- testing.shouldError()
- testing.shouldErrorWithCode()
- types.isNumeric()
- types.isType()
日期/时间
Flux 日期/时间函数返回或操作 时间 或 持续时间 值。
以下日期/时间函数可用:
- boundaries.friday() – (已弃用)
- boundaries.friday()
- boundaries.monday() – (已弃用)
- boundaries.monday()
- boundaries.month() – (已弃用)
- boundaries.month()
- boundaries.saturday() – (已弃用)
- boundaries.saturday()
- boundaries.sunday() – (已弃用)
- boundaries.sunday()
- boundaries.thursday() – (已弃用)
- boundaries.thursday()
- boundaries.tuesday() – (已弃用)
- boundaries.tuesday()
- boundaries.wednesday() – (已弃用)
- boundaries.wednesday()
- boundaries.week() – (已弃用)
- boundaries.week()
- boundaries.yesterday() – (已弃用)
- boundaries.yesterday()
- date.add()
- date.hour()
- date.microsecond()
- date.millisecond()
- date.minute()
- date.month()
- date.monthDay()
- date.nanosecond()
- date.quarter()
- date.scale()
- date.second()
- date.sub()
- date.time()
- date.truncate()
- date.week()
- date.weekDay()
- date.year()
- date.yearDay()
- experimental.addDuration() – (已弃用)
- experimental.alignTime()
- experimental.subDuration() – (已弃用)
- experimental.window()
- hourSelection()
- now()
- system.time()
- timeShift()
- timezone.fixed()
- timezone.location()
- today()
- truncateTimeColumn()
元数据
Flux 元数据函数从输入流或底层数据源返回元数据。
以下元数据函数可用:
- buckets()
- influxdb.cardinality()
- schema.fieldKeys()
- schema.measurementFieldKeys()
- schema.measurements()
- schema.measurementTagKeys()
- schema.measurementTagValues()
- schema.tagKeys()
- schema.tagValues()
- v1.databases()
- v1.fieldKeys() – (不推荐使用)
- v1.measurementFieldKeys() – (不推荐使用)
- v1.measurements() – (已弃用)
- v1.measurementTagKeys() –(已弃用)
- v1.measurementTagValues() – (已弃用)
- v1.tagKeys() – (已弃用)
- v1.tagValues() – (已弃用)
通知端点
Flux 通知接口函数将通知发送到外部接口或服务。以下通知接口函数可用:
- alerta.endpoint()
- bigpanda.endpoint()
- discord.endpoint()
- http.endpoint()
- opsgenie.endpoint()
- pagerduty.endpoint()
- pushbullet.endpoint()
- sensu.endpoint()
- servicenow.endpoint()
- slack.endpoint()
- teams.endpoint()
- telegram.endpoint()
- victorops.endpoint()
- webexteams.endpoint()
- zenoss.endpoint()
地时间
Flux地理时间函数旨在处理地理时间数据(随时间变化的地理位置)。
以下是可用的地理时间函数:
- geo.asTracks()
- geo.filterRows()
- geo.getGrid()
- geo.getLevel()
- geo.gridFilter()
- geo.groupByArea()
- geo.s2CellIDToken()
- geo.s2CellLatLon()
- geo.shapeData()
- geo.ST_Contains()
- geo.ST_Distance()
- geo.ST_DWithin()
- geo.ST_Intersects()
- geo.ST_Length()
- geo.ST_LineString()
- geo.stContains()
- geo.stDistance()
- geo.stLength()
- geo.strictFilter()
- geo.toRows()
- geo.totalDistance()