本文介绍表格存储Python SDK。
注意事项
表格存储Python SDK从6.0.0版本开始仅支持Python 3(推荐Python 3.8及以上版本),不再支持Python 2。
重要如果您需要使用Python 2,请选择5.4.4版本之前的Python SDK。
如果使用HTTPS协议访问表格存储资源,推荐使用最新版本的Python SDK,并确保OpenSSL版本至少为0.9.8j(推荐1.0.2d)。
Python SDK已包含certifi包,可直接使用。如需更新根证书,请从根证书下载最新版本。
准备工作
安装Python并搭建Python开发环境。
安装表格存储Python SDK。
初始化Tablestore Client。
功能列表
表格存储Python SDK支持宽表模型和时序模型的操作,具体功能请参见下表。
宽表模型
功能类型 | 功能操作 | 描述信息 |
数据表操作 | 创建数据表 | 创建一个数据表。 |
更新表配置 | 更新数据表的配置信息。 | |
列出表名称 | 查看实例中所有数据表的名称。 | |
查询表描述信息 | 查询数据表的配置信息。 | |
删除数据表 | 删除指定的数据表。 | |
主键列自增 | 将数据表中非分区键的主键列设置为自增列后,在写入数据时无需为自增列设置具体值,表格存储将自动生成自增列的值。 | |
条件更新 | 只有在数据满足更新条件的情况下,才能对表中数据进行更新,否则数据更新失败并给用户报错。 | |
局部事务 | 为数据表开启局部事务后,创建数据范围在一个分区键值内的局部事务用于数据读写操作。 | |
原子计数器 | 将列当成一个原子计数器使用,对该列进行原子计数操作。 | |
过滤器 | 在服务端对读取结果再进行一次过滤,根据过滤器(Filter)中的条件决定返回的数据。 | |
基础数据操作 | 写入数据 | 向数据表中写入数据。 |
读取数据 | 从数据表中读取数据。 | |
删除数据 | 删除数据表中的数据。 | |
多元索引 | 创建多元索引 | 为数据表创建一个多元索引。 |
列出多元索引列表 | 列出指定表下的多元索引。 | |
更新多元索引配置 | 更新多元索引的数据生命周期。 | |
查询多元索引描述信息 | 查询多元索引的描述信息,包括多元索引的字段信息和索引配置等。 | |
删除多元索引 | 删除指定的多元索引。 | |
生命周期管理 | 按需清理多元索引中的历史数据或者延长数据保存时间。 | |
基础查询 | 基础查询类型包括全匹配查询、精确查询、多词精确查询、前缀查询、范围查询、通配符查询、列存在性查询、折叠(去重)、地理位置查询和嵌套类型查询。 | |
多条件组合查询 | 查询条件支持包含一个或者多个子查询条件,根据子查询条件来判断数据是否满足查询条件。 | |
排序和翻页 | 使用多元索引查询数据时,您可以按照指定排列方式获取到返回数据;当返回结果行数较多时,通过使用跳转翻页或者连续翻页可以快速定位到所需数据。 | |
统计聚合 | 可以实现求最小值、求最大值、求和、求平均值、统计行数、去重统计行数、按字段值分组、按范围分组、按地理位置分组、按过滤条件分组等操作;同时多个统计聚合功能可以组合使用,满足复杂的查询需求。 | |
全文检索 | 全文检索功能包括匹配查询、短语匹配查询、摘要与高亮。 | |
向量检索 | 向量检索(KnnVectorQuery)使用数值向量进行近似最近邻查询,可以在大规模数据集中找到最相似的数据项。 | |
并发导出数据 | 当不关心整个结果集的顺序时,可以使用并发导出数据功能以更快的速度将命中的数据全部返回。 | |
二级索引 | 创建二级索引 | 为数据表创建一个二级索引。 |
使用二级索引读取数据 | 使用单行读取和范围读取的方式查询索引表中数据。如果所需属性列已包含在索引表中,可以直接从索引表读取,否则需要查找数据表以获取相关数据。 | |
删除二级索引 | 删除数据表中指定的二级索引。 | |
SQL查询 | 创建映射关系 | 为已存在的表或者索引创建映射关系。 |
更新映射表属性列 | 为已存在的映射表添加或删除属性列。 | |
删除映射关系 | 删除映射关系。 | |
列出表名称列表 | 列出当前数据库中的映射表列表。 | |
查询表的描述信息 | 查询表的描述信息,例如字段名称、字段类型等。 | |
查询索引描述信息 | 查询表的索引描述信息。 | |
查询数据 | 查询表中的数据。 |
时序模型
功能类型 | 具体功能 | 描述信息 |
时序表操作 | 创建时序表 | 创建一个时序表。 |
更新时序表 | 更新时序表或时间线元数据配置。 | |
列出时序表 | 查看实例中所有时序表的名称及其配置信息。 | |
查询时序表描述信息 | 查询时序表描述信息,例如数据生命周期TTL配置等。 | |
删除时序表 | 删除指定的时序表。 | |
时序数据操作 | 写入时序数据 | 写入时序数据到时序表,支持批量写入。 |
查询时序数据 | 查询指定时间线中符合条件的时序数据。 | |
时间线操作 | 检索时间线 | 指定多种条件检索时间线信息,例如度量名称、数据源信息等。 |
更新时间线 | 更新时间线元数据,支持批量更新。 | |
删除时间线 | 删除时间线元数据,支持批量删除。 | |
SQL查询 | 创建映射关系 | 为已存在的表或者索引创建映射关系。 |
更新映射表属性列 | 为已存在的映射表添加或删除属性列。 | |
删除映射关系 | 删除映射关系。 | |
列出表名称列表 | 列出当前数据库中的映射表列表。 | |
查询表的描述信息 | 查询表的描述信息,例如字段名称、字段类型等。 | |
查询索引描述信息 | 查询表的索引描述信息。 | |
查询数据 | 查询表中的数据。 |
兼容性说明
当前最新版本为6.x.x版本,新版本对历史版本的兼容性如下:
对5.x.x系列的SDK兼容。
5.4.x版本、5.3.x版本和5.2.x版本兼容。5.2.1和5.1.0在如下情况不兼容:
Search接口返回结果的类型。
5.1.0及以前版本的返回结果默认为Tuple类型。从5.2.0开始默认返回结果为SearchResponse对象,SearchResponse已实现
__iter__方法,支持遍历;如果需要返回Tuple类型的结果,请使用SearchResponse.v1_response()方法实现。新增ParallelScan接口。
默认返回结果为ParallelScanResponse对象。如果需要返回Tuple类型的结果,请使用
ParallelScanResponse.v1_response()方法实现。
对4.x.x系列的SDK兼容。
对2.x.x系列的SDK不兼容,原因是2.0系列版本中支持主键乱序,而4.0.0版本开始不允许主键乱序,涉及的不兼容点包括:
包名称由ots2变更为tablestore。
Client.create_table接口新增TableOptions参数。
put_row、get_row、update_row等接口的primary_key参数由dict类型变更为list类型,目的是保证主键的顺序性。
put_row、update_row等接口的attribute_columns参数由dict类型变更为list类型。
put_row、update_row等接口的attribute_columns参数新增timestamp。
get_row、get_range等接口新增max_version、time_range参数,这两个参数必须至少存在一个。
put_row、update_row、delete_row等接口新增return_type参数,目前仅支持RT_PK,表示返回值中包含当前行PK值。
put_row、update_row、delete_row等接口返回值中新增return_row,如果在请求中指定了return_type为RT_PK,则return_row中包含此行的PK值。
关于SDK版本迭代的更多信息,请参见Python SDK历史迭代版本。
相关文档
如果要查看Python SDK源码,请访问GitHub。
如果要了解Python SDK错误处理方式,请参见错误处理。
如果要查看API信息,请参见API概览。