python使用influxdb-client管理InfluxDB的bucket

bucket的概念类似数据库的“库”,同时每个库中的数据都因为存在“时间戳”,每个数据都会有一个对应的时间点

influxdb-client-python官方github页面:https://github.com/influxdata/influxdb-client-python

管理bucket的官方示例:https://github.com/influxdata/influxdb-client-python/blob/master/examples/buckets_management.py

基本用法

首先使用influxdb-client管理InfluxDB数据库都需要使用:

from influxdb_client import InfluxDBClient

influxdb_token = "SkeHprHCgmvtX3LXluMUlgyl5nzwM4zdMtsCuT7BQXsaJlhFPMJizKj0nX3ugr9vRfY7Ak4rIhu-wx-aIqNFig==" # TODO 改为自己的token
influxdb_org = "manager" # TODO 填写自己的组织名称
client = InfluxDBClient(url="http://localhost:8086", token=influxdb_token, org=influxdb_org) # 创建客户端

buckets_api = client.buckets_api() # 创建链接bucket的客户端

创建bucket

一行代码即可创建成功:

created_bucket = buckets_api.create_bucket(bucket_name="new_create_bucket", org=influxdb_org)

如果需要设置数据的保留时间

from influxdb_client import BucketRetentionRules

retention_rules = BucketRetentionRules(type="expire", every_seconds=36000)  # 保留近10天数据的bucket
created_bucket = buckets_api.create_bucket(bucket_name="new_create_bucket",retention_rules=retention_rules,org=influxdb_org)

查询bucket

查询全部的bucket使用:

all_buckets = buckets_api.find_buckets(org=influxdb_org).buckets  # 查找全部的bucket
for _record_bucket in all_buckets:
    bucket_info = {
        "id": _record_bucket.id,
        "name": _record_bucket.name,
        "retention": _record_bucket.retention_rules,
    }
    print(bucket_info)

多数情况下,我们会已知一个bucket的名称,然后获得这个bucket的对象,使用如下代码实现:

my_bucket = buckets_api.find_bucket_by_name("new_create_bucket")

修改bucket

在查询的时候每一个属性都可以使用如下代码修改:

my_bucket.description = "修改后的describe"  # 先修改
my_bucket = buckets_api.update_bucket(bucket=my_bucket)  # 再保存
print(my_bucket.description)

得到的结果是:

修改后的describe

删除bucket

一行代码即可删除:

buckets_api.delete_bucket(my_bucket)

完整示例

from influxdb_client import InfluxDBClient

influxdb_token = "SkeHprHCgmvtX3LXluMUlgyl5nzwM4zdMtsCuT7BQXsaJlhFPMJizKj0nX3ugr9vRfY7Ak4rIhu-wx-aIqNFig=="
influxdb_org = "manager"
client = InfluxDBClient(url="http://localhost:8086", token=influxdb_token, org=influxdb_org)
buckets_api = client.buckets_api()

# 增
print("===================== 创建bucket =====================")
created_bucket = buckets_api.create_bucket(bucket_name="new_create_bucket", org=influxdb_org)

# 查
print("===================== 查询全部的bucket =====================")
all_buckets = buckets_api.find_buckets(org=influxdb_org).buckets
for _record_bucket in all_buckets:
    bucket_info = {
        "id": _record_bucket.id,
        "name": _record_bucket.name,
        "retention": _record_bucket.retention_rules,
    }
    print(bucket_info)

print("===================== 查询某个已知name的bucket =====================")
my_bucket = buckets_api.find_bucket_by_name("new_create_bucket")

# 修改
print("===================== 修改bucket =====================")
my_bucket.description = "修改后的describe"  # 先修改
my_bucket = buckets_api.update_bucket(bucket=my_bucket)  # 再保存
print(my_bucket.description)

# 删除
print("===================== 删除bucket =====================")
buckets_api.delete_bucket(my_bucket)
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆萌的代Ma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值