* added flux-0.92 and cardinality function

* added flux 0.93 release notes

* removed unsupported types from cardinality params

* updated cardinality function to address PR feedback
pull/1762/head
Scott Anderson 2020-11-04 12:58:48 -07:00 committed by GitHub
parent 2dc0bf1c44
commit 91a0c750c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 193 additions and 8 deletions

View File

@ -0,0 +1,24 @@
---
title: Flux InfluxDB package
list_title: InfluxDB package
description: >
The Flux InfluxDB package provides functions for analyzing InfluxDB metadata.
Import the `influxdata/influxdb` package.
menu:
influxdb_2_0_ref:
name: InfluxDB
identifier: influxdb-pkg
parent: Flux standard library
weight: 202
influxdb/v2.0/tags: [functions, package]
introduced: 0.92.0
---
The Flux InfluxDB package provides functions for analyzing InfluxDB metadata.
Import the `influxdata/influxdb` package:
```js
import "influxdata/influxdb"
```
{{< children type="functions" show="pages" >}}

View File

@ -0,0 +1,137 @@
---
title: influxdb.cardinality() function
description: The `influxdb.cardinality()` function returns the series cardinality of data stored in InfluxDB Cloud.
menu:
influxdb_2_0_ref:
name: influxdb.cardinality
parent: influxdb-pkg
weight: 301
influxdb/v2.0/tags: [cardinality]
related:
- /{{< latest "influxdb" "v1" >}}/query_language/spec/#show-cardinality, SHOW CARDINALITY in InfluxQL
introduced: 0.92.0
---
The `influxdb.cardinality()` function returns the [series cardinality](/{{< latest "influxdb" "v2" >}}/reference/glossary#series-cardinality) of data stored in InfluxDB Cloud.
{{% cloud %}}
**InfluxDB Cloud** supports the `influxdb.cardinality()` function, but **InfluxDB OSS does not**.
{{% /cloud %}}
```js
import "influxdata/influxdb"
influxdb.cardinality(
bucket: "example-bucket",
org: "example-org",
host: "https://cloud2.influxdata.com",
token: "MySuP3rSecr3Tt0k3n",
start: -30d,
stop: now(),
predicate: (r) => true
)
// OR
influxdb.cardinality(
bucketID: "00xXx0x00xXX0000",
orgID: "00xXx0x00xXX0000",
host: "https://cloud2.influxdata.com",
token: "MySuP3rSecr3Tt0k3n",
start: -30d,
stop: now(),
predicate: (r) => true
)
```
## Parameters
### bucket
Bucket to query cardinality from.
_**Data type:** String_
### bucketID
String-encoded bucket ID to query cardinality from.
_**Data type:** String_
### org
Organization name.
_**Data type:** String_
### orgID
String-encoded [organization ID](/influxdb/v2.0/organizations/view-orgs/#view-your-organization-id) to query cardinality from.
_**Data type:** String_
### host
URL of the InfluxDB instance to query.
_See [InfluxDB URLs](/influxdb/v2.0/reference/urls/)._
_**Data type:** String_
### token
InfluxDB [authentication token](/{{< latest "influxdb" "v2" >}}/security/tokens/).
_**Data type:** String_
### start
The earliest time to include when calculating cardinality.
The cardinality calculation **includes** points that match the specified start time.
Use a relative duration or absolute time.
For example, `-1h` or `2019-08-28T22:00:00Z`.
Durations are relative to [`now()`](/influxdb/v2.0/reference/flux/stdlib/built-in/misc/now/).
_**Data type:** Duration | Time_
### stop
The latest time to include when calculating cardinality.
The cardinality calculation **excludes** points that match the specified start time.
Use a relative duration or absolute time.
For example, `-1h` or `2019-08-28T22:00:00Z`.
Durations are relative to [`now()`](/influxdb/v2.0/reference/flux/stdlib/built-in/misc/now/).
Defaults to `now()`.
_**Data type:** Duration | Time_
### predicate
Predicate function that filters records.
_Defaults to `(r) => true`._
_**Data type:** Function_
## Examples
##### Query series cardinality in a bucket
```js
import "influxdata/influxdb"
influxdb.cardinality(
bucket: "example-bucket"
start: -1y,
)
```
##### Query series cardinality in a measurement
```js
import "influxdata/influxdb"
influxdb.cardinality(
bucket: "example-bucket"
start: -1y,
predicate: (r) => r._measurement == "example-measurement"
)
```
##### Query series cardinality for a specific tag
```js
import "influxdata/influxdb"
influxdb.cardinality(
bucket: "example-bucket"
start: -1y,
predicate: (r) => r.exampleTag == "foo"
)
```

View File

@ -825,13 +825,13 @@ Related entries: [field set](#field-set), [measurement](#measurement),<!-- [rete
### series cardinality
The number of unique bucket, measurement, tag set, and field key combinations in an InfluxDB instance.
The number of unique measurement, tag set, and field key combinations in an InfluxDB bucket.
For example, assume that an InfluxDB instance has a single bucket and one measurement.
For example, assume that an InfluxDB bucket has one measurement.
The single measurement has two tag keys: `email` and `status`.
If there are three different `email`s, and each email address is associated with two
different `status`es, the series cardinality for the measurement is 6
(3 * 2 = 6):
(3 × 2 = 6):
| email | status |
| :-------------------- | :----- |
@ -842,11 +842,11 @@ different `status`es, the series cardinality for the measurement is 6
| cliff@influxdata.com | start |
| cliff@influxdata.com | finish |
In some cases, performing this multiplication may overestimate series cardinality because of the presence of dependent tags.
Dependent tags are scoped by another tag and do not increase series
cardinality.
In some cases, performing this multiplication may overestimate series cardinality
because of the presence of dependent tags.
Dependent tags are scoped by another tag and do not increase series cardinality.
If we add the tag `firstname` to the example above, the series cardinality
would not be 18 (3 * 2 * 3 = 18).
would not be 18 (3 × 2 × 3 = 18).
The series cardinality would remain unchanged at 6, as `firstname` is already scoped by the `email` tag:
| email | status | firstname |
@ -858,7 +858,9 @@ The series cardinality would remain unchanged at 6, as `firstname` is already sc
| cliff@influxdata.com | start | clifford |
| cliff@influxdata.com | finish | clifford |
<!--See [SHOW CARDINALITY](/{{< latest "influxdb" "v1" >}}/query_language/spec/#show-cardinality) to learn about the InfluxQL commands for series cardinality. -->
##### Query for cardinality:
- **Flux:** [influxdb.cardinality()](/influxdb/v2.0/reference/flux/stdlib/influxdb/cardinality/)
- **InfluxQL:** [SHOW CARDINALITY](/{{< latest "influxdb" "v1" >}}/query_language/spec/#show-cardinality)
Related entries: [field key](#field-key),[measurement](#measurement), [tag key](#tag-key), [tag set](#tag-set)

View File

@ -8,6 +8,28 @@ menu:
name: Flux
---
## v0.93.0 [2020-11-02]
### Features
- Ensure query plan nodes have unique IDs.
---
## v0.92.0 [2020-10-30]
### Features
- Add `fluxinit` package as an alternative to importing `builtin`.
- Add [series `cardinality()` function](/influxdb/v2.0/reference/flux/stdlib/influxdb/cardinality/) to InfluxDB package.
### Bug fixes
- Do not panic when the value column for `pivot()` does not exist.
- Properly truncate timestamps to beginning of window bounds.
- Updates operator precedence in formatter.
- Do not panic when a string expression evaluates to _null_.
- Add support for multiline conditional logic.
---
## v0.91.0 [2020-10-26]
### Features