管理接口

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

HOST = 'tsdb.<region>.baidubce.com'
AK = '<your ak>'
SK = '<your sk>'

###########optional config#############
protocol=baidubce.protocol.HTTP
# protcol= 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:
    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'},{...},..