查询 SQL 数据库
使用 sql.from() 通过 Flux 查询 SQL 数据库。
数据库
sql.from() 支持以下 SQL 数据库
驱动程序
sql.from() 使用 Go SQL 驱动程序 在 Go sql 包 中连接到 SQL 数据库。以下驱动程序可用
awsathenabigqueryhdbmysqlpostgressnowflakesqlite3sqlserververtica,vertigo
数据源名称
每个 SQL 驱动程序 都支持唯一的数据源名称 (DSN) 语法(也称为连接字符串)。有关每个驱动程序的 DSN 信息,请参阅数据库指南。
将敏感凭据存储为密钥
如果使用 InfluxDB Cloud 或 InfluxDB OSS 2.x,我们建议将 DSN 凭据存储为 InfluxDB 密钥。使用 secrets.get() 从 InfluxDB 密钥 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",
)
结果结构
sql.from() 返回一个 表流,没有分组(所有行都在单个表中)。有关表分组的更多信息,请参阅Flux 数据模型 - 重构表。
给定 MySQL 数据库中的以下 example_table
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 查询
import "sql"
sql.from(
driverName: "mysql",
dataSourceName: "username:passwOrd@tcp(localhost:3306)/db",
query: "SELECT ID, Name FROM example_table",
)
输出
| ID | Name |
|---|---|
| 1 | Alfreds Futterkiste |
| 2 | Ana Trujillo Emparedados y helados |
| 3 | Antonio Moreno Taquería |
| 4 | Around the Horn |
| 5 | Berglunds snabbköp |
此页是否对您有帮助?
感谢您的反馈!