Write to SQL databases
Use sql.to()
to write data to SQL databases with Flux.
Databases
sql.to()
supports the following SQL databases:
Drivers
sql.to()
uses Go SQL drivers
in the Go sql package to connect to SQL databases.
The following drivers are available:
bigquery
hdb
mysql
postgres
snowflake
sqlite3
sqlserver
Data source names
Each 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.
Store sensitive credentials as secrets
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",
)
Data Structure
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.
Column data types
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.
Example
Given the following following stream of tables:
data
_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 |
Flux script
import "sql"
data
|> sql.to(
driverName: "mysql",
dataSourceName: "username:passwOrd@tcp(localhost:3306)/db",
table: "exampleTable"
)
SQL output
_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 |
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Flux and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.