表格存储的SDK提供了 CreateTable、ListTable、DeleteTable、UpdateTable 和 DescribeTable 等表级别的操作接口。

创建表(CreateTable)

根据给定的表的结构信息创建相应的表。

创建表格存储的表时必须指定表的主键。主键包含 1~4 个主键列,每一个主键列都有名字和类型。

接口

       说明:根据表信息创建表。

        ``table_meta``是``tablestore.metadata.TableMeta``类的实例,它包含表名和PrimaryKey的schema,
        请参考``TableMeta``类的文档。当创建了一个表之后,通常要等待1分钟时间使partition load完成,才能进行各种操作。
        ``table_options``是``tablestore.metadata.TableOptions``类的示例,它包含time_to_live,max_version和max_time_deviation三个参数。
        ``reserved_throughput``是``tablestore.metadata.ReservedThroughput``类的实例,表示预留读写吞吐量。

        返回:无。
		
		def create_table(self, table_meta, reserved_throughput):
说明 表格存储的表在被创建之后需要几秒钟进行加载,创建成功后需要等待几秒钟后再做其他操作。

示例

创建一个有 2 个主键列,数据保留1年(60 * 60 * 24 * 365=31536000秒),最大版本数3,写入时间戳偏移小于1天(86400秒),预留读写吞吐量为 (0,0) 的表。

	# 创建主键列的schema,包括PK的个数,名称和类型
	# 第一个PK列为整数,名称是pk0,这个同时也是分片列
	# 第二个PK列为整数,名称是pk1。其他可选的类型包括STRING,BINARY,这里使用INTEGER。
	schema_of_primary_key = [('pk0', 'INTEGER'), ('pk1', 'INTEGER')]

	# 通过表名和主键列的schema创建一个tableMeta
	table_meta = TableMeta('SampleTable', schema_of_primary_key)
	
	# 创建TableOptions,数据保留31536000秒,超过后自动删除;最大3个版本;写入时指定的版本值和当前标准时间相差不能超过1天。
	table_options = TableOptions(31536000, 3, 86400)

	# 设定预留读吞吐量为0,预留写吞吐量为0
	reserved_throughput = ReservedThroughput(CapacityUnit(0, 0))

	# 调用client的create_table接口,如果没有抛出异常,则说明成功,否则失败
	try:
		ots_client.create_table(table_meta, table_options, reserved_throughput)
		print "create table succeeded"
	# 处理异常
	except Exception:
		print "create table failed."

详细代码请参见CreateTable@GitHub

列出表名称(ListTable)

获取当前实例下已创建的所有表的表名。

接口

        """
        说明:获取所有表名的列表。
        返回:表名列表。
        ``table_list``表示获取的表名列表,类型为tuple,如:('MyTable1', 'MyTable2')。
		"""
		def list_table(self):

示例

获取实例下的所有表名。

	try:
		list_response = ots_client.list_table()
		print 'table list:'
		for table_name in list_response:
    		print table_name
		print "list table succeeded"
	except Exception:
		print "list table failed."

详细代码请参见ListTable@GitHub

更新表(UpdateTable)

更新指定表的预留读吞吐量或预留写吞吐量设置。

接口

	"""
        说明:更新表属性,目前只支持修改预留读写吞吐量。
        ``table_name``是对应的表名。
		``table_options``是``tablestore.metadata.TableOptions``类的示例,它包含time_to_live,max_version和max_time_deviation三个参数。
        ``reserved_throughput``是``ots2.metadata.ReservedThroughput``类的实例,表示预留读写吞吐量。

        返回:针对该表的预留读写吞吐量的最近上调时间、最近下调时间和当天下调次数。

        ``update_table_response``表示更新的结果,是ots2.metadata.UpdateTableResponse类的实例。
		"""
		def update_table(self, table_name, table_options, reserved_throughput):

示例

更新表的最大版本数为5。

        # 设定新的预留读吞吐量为0,写吞吐量为0。
        reserved_throughput = ReservedThroughput(CapacityUnit(0, 0))
		
		# 创建TableOptions,数据保留31536000秒,超过后自动删除;最大5个版本;写入时指定的版本值和当前标准时间相差不能超过1天。
		table_options = TableOptions(31536000, 5, 86400)

        try:
            # 调用接口更新表的预留读写吞吐量
            ots_client.update_table('SampleTable', reserved_throughput)

            # 没有抛出异常,则说明执行成功
            print "update table succeeded"
        except Exception:
            # 如果抛出异常,则说莫执行失败,打印出错误信息
            print "update table failed"

详细代码请参见UpdateTable@GitHub

查询表描述信息(DescribeTable)

查询指定表的结构信息和预留读/写吞吐量设置信息。

接口

        """
        说明:获取表的描述信息。
        ``table_name``是对应的表名。
        返回:表的描述信息。
        ``describe_table_response``表示表的描述信息,是ots2.metadata.DescribeTableResponse类的实例。
		"""
		def describe_table(self, table_name):

示例

获取表的描述信息。

	try:
		describe_response = ots_client.describe_table('myTable')
		# 如果没有抛出异常,则认为执行成功,下面打印表格信息
		print "describe table succeeded."
		print ('TableName: %s' % describe_response.table_meta.table_name)
		print ('PrimaryKey: %s' % describe_response.table_meta.schema_of_primary_key)
		print ('Reserved read throughput: %s' % describe_response.reserved_throughput_details.capacity_unit.read)
		print ('Reserved write throughput: %s' % describe_response.reserved_throughput_details.capacity_unit.write)
		print ('Last increase throughput time: %s' % describe_response.reserved_throughput_details.last_increase_time)
		print ('Last decrease throughput time: %s' % describe_response.reserved_throughput_details.last_decrease_time)
		print ('table options\'s time to live: %s' % describe_response.table_options.time_to_live)
		print ('table options\'s max version: %s' % describe_response.table_options.max_version)
		print ('table options\'s max_time_deviation: %s' % describe_response.table_options.max_time_deviation) 
	except Exception:
		# 如果抛出异常则执行失败,处理异常
		print "describe table failed."

详细代码请参见DescribeTable@GitHub

删除表(DeleteTable)

删除本实例下指定的表。

接口

        """
        说明:根据表名删除表。
        ``table_name``是对应的表名。
        返回:无。
		"""
		def delete_table(self, table_name):

示例

删除表。

try:
	# 调用接口删除表SampleTable
    ots_client.delete_table('SampleTable')
	# 如果没有抛出异常,则执行成功
	print "delete table succeeded"
	# 如果抛出异常,则执行失败,处理异常
except Exception:
    print "delete table failed"

详细代码请参见DeleteTable@GitHub