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)