docs-v2/content/flux/v0/get-started/_index.md

89 lines
2.7 KiB
Markdown

---
title: Get started with Flux
description: >
Get started with Flux by learning important concepts of the Flux language.
menu:
flux_v0:
name: Get started
weight: 1
related:
- /resources/videos/purpose-of-flux/
---
Flux is a **functional data scripting** language designed to unify querying,
processing, analyzing, and acting on data into a single syntax.
## Flux overview
To understand how Flux works conceptually, consider the process of treating water.
Water is pulled from a source, limited by demand, piped through a series of stations
to modify (remove sediment, purify, and so on), and delivered in a consumable state.
<div class="flux-water-diagram"></div>
## Basic Flux query
Like treating water, a Flux query does the following:
1. Retrieves a specified amount of data from a source.
2. Filters data based on time or column values.
3. Processes and shapes data into expected results.
4. Returns the result.
To see how to retrieve data from a source, select the data source: InfluxDB, CSV, or PostgreSQL.
{{< code-tabs-wrapper >}}
{{% code-tabs %}}
[InfluxDB](#)
[CSV](#)
[PostgreSQL](#)
{{% /code-tabs %}}
{{% code-tab-content %}}
```js
from(bucket: "example-bucket")
|> range(start: -1d)
|> filter(fn: (r) => r._measurement == "example-measurement")
|> mean()
|> yield(name: "_results")
```
{{% /code-tab-content %}}
{{% code-tab-content %}}
```js
import "csv"
csv.from(file: "path/to/example/data.csv")
|> range(start: -1d)
|> filter(fn: (r) => r._measurement == "example-measurement")
|> mean()
|> yield(name: "_results")
```
{{% /code-tab-content %}}
{{% code-tab-content %}}
```js
import "sql"
sql.from(
driverName: "postgres",
dataSourceName: "postgresql://user:password@localhost",
query: "SELECT * FROM TestTable",
)
|> filter(fn: (r) => r.UserID == "123ABC456DEF")
|> mean(column: "purchase_total")
|> yield(name: "_results")
```
{{% /code-tab-content %}}
{{< /code-tabs-wrapper >}}
Each example includes the following functions (in the order listed):
- [`from()`](/flux/v0/stdlib/influxdata/influxdb/from/) to retrieve data from the data source.
- [Pipe-forward operator (`|>`)](/flux/v0/get-started/syntax-basics/#pipe-forward-operator)
to send the output of each function to the next function as input.
- [`range()`](/flux/v0/stdlib/universe/range/), [`filter()`](/flux/v0/stdlib/universe/filter/),
or both to filter data based on column values.
- [`mean()`](/flux/v0/stdlib/universe/mean/) to calculate the average of values
returned from the data source.
- [`yield()`](/flux/v0/stdlib/universe/yield/) to yield results to the user.
_For detailed information about basic Flux queries,
see [Flux query basics](/flux/v0/get-started/query-basics/)._
{{< page-nav next="/flux/v0/get-started/data-model/" >}}