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 聚合函数通过某种方式聚合输入表中的值。输出表包含一行,包含聚合值。聚合转换对每个接收到的输入表输出一个表。
聚合函数的每个输出表将
- 包含一个记录。
- 具有与输入表相同的 分组键。
- 包含一个聚合列。列标签将与输入表相同。列数据类型取决于特定的聚合操作。如果输入表为空或输入列仅包含
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选择器函数是 转换,它们返回一个或多个记录。
每个选择器函数的输出表将
- 包含一个或多个未修改的记录。
- 具有与输入表相同的 分组键。
以下选择器函数可用
- 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()
这个页面有帮助吗?
感谢您的反馈!