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

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

扫描二维码关注公众号,回复: 14572998 查看本文章
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)

猜你喜欢

转载自blog.csdn.net/weixin_35757704/article/details/129216564