为InfluxDB 3.0的社区Python客户端(CLI)
项目描述
influxdb3-python-cli
关于
此存储库包含InfluxDB 3.0 Python客户端库的CLI扩展(请参阅influxdb 3.0 python客户端库)。虽然此代码基于官方支持的API构建,但此库和CLI并非由InfluxData官方支持。
安装
要安装CLI,请在您的终端中输入以下命令
python3 -m pip install influxdb3-python-cli
作用域和权限
Python提供了以下方法来在特定范围内安装包
- 要将CLI(及其依赖项)隔离到您的项目目录中,请使用虚拟环境安装CLI。请参阅如何创建和使用
venv
或conda
Python虚拟环境。 - 要安装客户端到用户特定的目录(无需管理员权限),请在
pip
命令中传递--user
标志。 - 要使用管理员权限安装客户端到系统范围内的路径,请使用带有管理员权限的
sudo
。
添加配置
要配置CLI,请执行以下操作之一
-
使用
influx3 create config
命令创建或修改配置--例如influx3 create config \ --name="my-config" \ --database="<database or bucket name>" \ --host="us-east-1-1.aws.cloud2.influxdata.com" \ --token="<your token>" \ --org="<your org ID>"
输出是保存于您的
Documents
文件夹中名为config
的目录中的config.json
文件中的配置。
如果您正在针对InfluxDB Cloud Serverless运行CLI,请在示例中将your-database
替换为您的Cloud Serverless bucket name。
作为命令运行
influx3 sql "select * from anomalies"
influx3 write testmes f=7
交互式查询和写入
在您的终端中,输入以下命令
influx3
influx3
显示 (>)
交互式提示符并等待输入。
Welcome to my IOx CLI.
(>)
要查询,在提示符下输入 sql
。
(>) sql
在 (sql >)
提示符下,输入您的查询语句
(sql >) select * from home
influx3
CLI 以 Markdown 表格格式显示查询结果--例如
| | co | hum | room | temp | time |
|----:|-----:|------:|:------------|-------:|:------------------------------|
| 0 | 0 | 35.9 | Kitchen | 21 | 2023-03-09 08:00:00 |
| 1 | 0 | 35.9 | Kitchen | 21 | 2023-03-09 08:00:50 |
要写入,在 (>)
提示符下输入 write
。
(>) write
在 (write >)
提示符下,输入行协议数据。
(>) write
home,room=kitchen temp=70.5,hum=80
要退出提示符,输入 exit
。
从文件写入
InfluxDB CLI 和客户端库可以从 CSV、JSON、ORC、Parquet 和 Feather 文件写入数据。CSV 文件必须包含以下内容
- 包含列名的标题行
- 包含每行时间戳的列
以下 CLI 选项指定如何解析数据
--file
- 文件的路径。--time
- 包含时间戳的列的名称。--measurement
- 存储数据的测量名称。 (可选,如果数据中没有测量列,则默认寻找)--tags
- (可选) 指定用作标签的列名数组。 (目前仅支持用户指定的字符串) 例如:--tags=host,region
以下示例展示了如何将 ./Examples/example.csv
文件 中的 CSV 数据写入 InfluxDB (作为行协议)
influx3 write_file --file ./Examples/example.csv --measurement table2 --time Date --tags host,region
配置命令
config
命令允许您管理应用程序的配置。它有以下子命令: create
、update
、use
、delete
和 list
。
创建
create
子命令创建一个新的配置。它需要 --name
、--host
、--token
、--database
和 --org
参数。--active
参数是可选的,可以用来设置新的配置为活动配置。
示例用法
influx3.py config create --name="my-config" --host="us-east-1-1.aws.cloud2.influxdata.com" --token="<your token>" --database="<database or bucket name>" --org="<your org ID>" --active
更新
update
子命令更新现有的配置。需要 --name
参数来指定要更新的配置。所有其他参数 (--host
、--token
、--database
、--org
、--active
) 都是可选的。
示例用法
influx3.py config update --name="my-config" --host="new-host.com"
使用
use
子命令将特定的配置设置为活动配置。需要 --name
参数来指定要使用的配置。
示例用法
influx3.py config use --name="my-config"
删除
delete
子命令删除配置。需要 --name
参数来指定要删除的配置。
示例用法
influx3.py config delete --name="my-config"
列表
list
子命令列出所有配置。
示例用法
influx3.py config list
请将 "my-config"
、"us-east-1-1.aws.cloud2.influxdata.com"
、"<your token>"
、"<database or bucket name>"
和 "<your org ID>"
替换为您的实际值。
(Beta) OpenAI (ChatGPT) 支持
CLI 还包含一个 beta 功能,允许您使用 OpenAI 的 ChatGPT 查询数据。要使用此功能,您必须拥有一个 OpenAI API 密钥。您可以通过注册 OpenAI 等待列表 来获取一个。一旦您有了 API 密钥,您就可以将其设置为名为 OPENAI_API_KEY
的环境变量。
要使用此功能,您可以使用 ChatGPT
命令
export OPENAI_API_KEY=sk-o2Sbq3aVBp
influx3 chatgpt get average vibration grouped by machineID from machine_data
Run InfluxQL query: SELECT MEAN(vibration) AS avg_vibration FROM machine_data GROUP BY machineID
| | iox::measurement | time | machineID | avg_vibration |
|---:|:-------------------|:--------------------|:------------|----------------:|
| 0 | machine_data | 1970-01-01 00:00:00 | machine1 | 85.2356 |
| 1 | machine_data | 1970-01-01 00:00:00 | machine2 | 190.273 |
| 2 | machine_data | 1970-01-01 00:00:00 | machine3 | 85.4789 |
Press TAB to fetch next chunk of data
客户端库
底层客户端库也适用于在您的代码中使用: https://github.com/InfluxCommunity/influxdb3-python
贡献
在为 CLI 或客户端库开发新功能时,请确保在两个地方测试您的功能以避免破坏性更改。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。