Query SQL databases
Use sql.from()
to query SQL databases with Flux.
Databases
sql.from()
supports the following SQL databases:
Drivers
sql.from()
uses Go SQL drivers
in the Go sql package to connect to SQL databases.
The following drivers are available:
awsathena
bigquery
hdb
mysql
postgres
snowflake
sqlite3
sqlserver
vertica
,vertigo
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.from(
driverName: "postgres",
dataSourceName: "postgresql://${username}:${password}@localhost:5432",
query: "SELECT * FROM example_table",
)
Results structure
sql.from()
returns a stream of tables
with no grouping (all rows in a single table).
For more information about table grouping, see
Flux data model - Restructure tables.
Column data types
Each sql.from()
driver converts column data types from the source
database into Flux data types.
See the database guides for information about data type conversions.
Given the following example_table in a MySQL database:
example_table
ID | Name | Address | Country |
---|---|---|---|
1 | Alfreds Futterkiste | Obere Str. 57 | Germany |
2 | Ana Trujillo Emparedados y helados | Avda. de la Constitución 2222 | Mexico |
3 | Antonio Moreno Taquería | Mataderos 2312 | Mexico |
4 | Around the Horn | 120 Hanover Sq. | UK |
5 | Berglunds snabbköp | Berguvsvägen 8 | Sweden |
Flux query
import "sql"
sql.from(
driverName: "mysql",
dataSourceName: "username:passwOrd@tcp(localhost:3306)/db",
query: "SELECT ID, Name FROM example_table",
)
Output
ID | Name |
---|---|
1 | Alfreds Futterkiste |
2 | Ana Trujillo Emparedados y helados |
3 | Antonio Moreno Taquería |
4 | Around the Horn |
5 | Berglunds snabbköp |
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.