管理接口
更新时间:2021-04-08
TSDB数据库的管理操作通过管理接口进行调用,包括创建数据库、删除数据库和获取数据库信息。在Python SDK中使用TsdbAdminClient类实现对管理接口的封装。
新建TsdbAdminClient
import baidubce.protocol
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.services.tsdb.tsdb_admin_client import TsdbAdminClient
# when use https as the protocol, you may find certificate expire problem, this can be resovled by adding the following lines
# import ssl
# ssl._create_default_https_context = ssl._create_unverified_context
HOST = 'tsdb.<region>.baidubce.com'
AK = '<your ak>'
SK = '<your sk>'
###########optional config#############
protocol=baidubce.protocol.HTTP
# protocol= baidubce.protocol.HTTPS
connection_timeout_in_mills=None
send_buf_size=None
recv_buf_size=None
retry_policy=None
#######################################
config = BceClientConfiguration(
credentials=BceCredentials(AK, SK),
endpoint=HOST,
protocol=protocol,
connection_timeout_in_mills=connection_timeout_in_mills,
send_buf_size=send_buf_size,
recv_buf_size=recv_buf_size,
retry_policy=retry_policy)
tsdb_admin_client = TsdbAdminClient(config)
创建时序数据库
使用如下代码创建数据库:
# 创建数据库
database_name = 'pythonsdksample' # 数据库名称
description = 'description' # 数据库描述。可选
ingest_datapoints_monthly = 1 # 月写入数据点数额度,单位,点/百万
store_bytes_quota = 0 # 字节存储空间额度,单位,byte。 可选,默认为0
purchase_length = 1 # 购买时长,单位,月
coupon_name = '' # 代金券编号。可选,如填写,则默认优先使用代金券付款
client_token = 'testtttt' # 任意指定字符串,用于保证创建的幂等性。即,不会因网络重试等问题导致重复创建
try:
# use str.encode("UTF-8") in python 3.0+, since str.decode is not supported in unicode,
# you need to make changes in description, database_name and coupon_name.
result = tsdb_admin_client.create_database(
client_token=client_token,
description=description,
database_name=database_name,
ingest_datapoints_monthly=ingest_datapoints_monthly,
purchase_length=purchase_length,
store_bytes_quota=store_bytes_quota,
coupon_name=coupon_name)
print result # 创建成功会返回订单号、数据库id、花费金额、到期时间的信息
except BaseException as e:
print e # 如果创建失败,会抛出异常,异常中含有错误的详细信息
删除时序数据库
使用如下代码删除数据库:
# 删除指定数据库
database_id = 'tsdb-xxxxxx' # database_id 可以官网控制台数据库的详细页查看
try:
response = tsdb_admin_client.delete_database(database_id)
print response
except BaseException as e:
print e # 删除失败会在异常中包含详细的错误信息
获取时序数据库实例
使用如下代码获取时序数据库实例:
# 获取数据库实例
database_id = 'tsdb-xxxxxx'
print tsdb_admin_client.get_database(database_id)
返回结果:
{'status': u'Active', 'autoExport': False, 'databaseId': u'tsdb-xxxxx', 'endpoint': u'pythonsdksample.tsdb-xxxxx.tsdb.iot.bj.baidubce.com', 'createTime': u'2018-07-20T08:57:53Z', 'description': u'', 'databaseName': u'pythonsdksample', 'quota': {ingestDataPointsMonthly:1,storeBytesQuota:0}, 'expiredTime': u'2018-08-20T08:57:54Z'}
获取时序数据库实例列表
使用如下代码获取时序数据库实例列表:
# 获取数据库实例列表
result = tsdb_admin_client.get_all_databases()
print result
返回结果:
[{'status': u'Active', 'autoExport': False, 'databaseId': u'tsdb-xxxxx', 'endpoint': u'pythonsdksample.tsdb-xxxxx.tsdb.iot.bj.baidubce.com', 'createTime': u'2018-07-20T08:57:53Z', 'description': u'', 'databaseName': u'pythonsdksample', 'quota': {ingestDataPointsMonthly:1,storeBytesQuota:0}, 'expiredTime': u'2018-08-20T08:57:54Z'},{...},..