content/flux/v0/write-data/sql/_index.md
Use sql.to() to write data to SQL databases with Flux.
sql.to() supports the following SQL databases:
{{< children type="list" >}}
sql.to() uses Go SQL drivers
in the Go sql package to connect to SQL databases.
The following drivers are available:
bigqueryhdbmysqlpostgressnowflakesqlite3sqlserverEach SQL driver supports unique data source name (DSN) syntaxes (also known as connection strings). See the database guides for information about DSNs for each driver.
If using InfluxDB Cloud or InfluxDB OSS 2.x, we recommend storing DSN
credentials as InfluxDB secrets.
Use secrets.get() to
retrieve a secret from the InfluxDB secrets API.
import "sql"
import "influxdata/influxdb/secrets"
username = secrets.get(key: "POSTGRES_USER")
password = secrets.get(key: "POSTGRES_PASS")
sql.to(
driverName: "postgres",
dataSourceName: "postgresql://${username}:${password}@localhost:5432",
table: "example_table",
)
sql.to() ungroups all rows into a single table and writes all existing columns
as the specified destination table.
If the destination table doesn't exist, sql.to() attempts to create it.
{{% note %}}
Each sql.to() driver converts Flux basic data types
to corresponding data types supported by the target database.
See the database guides for information about data type conversions.
{{% /note %}}
Given the following following stream of tables:
| _time | tag | _value |
|---|---|---|
| 2021-01-01T00:00:00Z | t1 | -2 |
| 2021-01-01T00:00:10Z | t1 | 10 |
| 2021-01-01T00:00:20Z | t1 | 7 |
| _time | tag | _value |
|---|---|---|
| 2021-01-01T00:00:00Z | t2 | 19 |
| 2021-01-01T00:00:10Z | t2 | 4 |
| 2021-01-01T00:00:20Z | t2 | -3 |
import "sql"
data
|> sql.to(
driverName: "mysql",
dataSourceName: "username:passwOrd@tcp(localhost:3306)/db",
table: "exampleTable"
)
| _time | tag | _value |
|---|---|---|
| 2021-01-01 00:00:00 | t1 | -2 |
| 2021-01-01 00:00:10 | t1 | 10 |
| 2021-01-01 00:00:20 | t1 | 7 |
| 2021-01-01 00:00:00 | t2 | 19 |
| 2021-01-01 00:00:10 | t2 | 4 |
| 2021-01-01 00:00:20 | t2 | -3 |