Documentation

查询 SQL 数据库

使用 sql.from() 来使用Flux查询SQL数据库。

数据库

sql.from() 支持以下 SQL 数据库:

驱动程序

sql.from() 使用 Go SQL driversGo sql package 中连接到 SQL 数据库。 以下驱动程序可用:

  • awsathena
  • bigquery
  • hdb
  • mysql
  • postgres
  • snowflake
  • sqlite3
  • sqlserver
  • vertica, vertigo

数据源名称

每个 SQL driver 支持独特的数据源名称 (DSN) 语法 (也称为 连接字符串)。 有关每个驱动程序的 DSN 信息,请参见 数据库指南

将敏感凭据存储为秘密

如果使用 InfluxDB CloudInfluxDB OSS 2.x,我们建议将 DSN 凭据存储为 InfluxDB secrets。使用 secrets.get() 从 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",
)

结果结构

sql.from() 返回一个 表的流 没有分组(所有行在一个表中)。 有关表分组的更多信息,请参见 Flux 数据模型 - 重新结构化表

列数据类型

每个 sql.from() driver 将源数据库中的列数据类型转换为 Flux data types有关数据类型转换的信息,请参见 database guides

给定以下example_table在MySQL数据库中:

示例表
身份证名称地址国家
1阿尔弗雷德食品箱上街 57 号德国
2Ana Trujillo 三明治和冰淇淋宪法大道 2222墨西哥
3安东尼奥·莫雷诺餐厅马塔德罗斯 2312墨西哥
4在角落附近汉诺威广场120号英国
5贝尔格伦的快速超市贝尔古夫斯韦根 8瑞典
Flux 查询
import "sql"

sql.from(
    driverName: "mysql",
    dataSourceName: "username:passwOrd@tcp(localhost:3306)/db",
    query: "SELECT ID, Name FROM example_table",
)
输出
编号名称
1阿尔弗雷德的食品商店
2Ana Trujillo 三明治和冰淇淋
3安东尼奥·莫雷诺餐厅
4环绕角
5伯格伦兹超市


Flux的未来

Flux 正在进入维护模式。您可以像现在一样继续使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: