Go SDK 可按指定大小将全表数据逻辑划分为多个分片,并返回各分片的主键范围和位置提示。
前提条件
安装Tablestore Go SDK并初始化客户端。
功能说明
调用 ComputeSplitPointsBySize 按指定大小将数据表逻辑划分为多个分片。每个分片包含主键范围和位置提示,可将主键范围传入 RangeRowQueryCriteria 并行读取数据,常用于计算引擎规划并发任务。
func (client TableStoreClient) ComputeSplitPointsBySize(req *ComputeSplitPointsBySizeRequest) (*ComputeSplitPointsBySizeResponse, error)
以下示例按约 200 MB 将 example_table 的全表数据划分为多个逻辑分片,并输出每个分片的信息。
request := &tablestore.ComputeSplitPointsBySizeRequest{
TableName: "example_table",
SplitSize: 2,
}
response, err := client.ComputeSplitPointsBySize(request)
if err != nil {
log.Fatal(err)
}
for _, split := range response.Splits {
fmt.Println("Location:", split.Location)
fmt.Println("Lower bound:", split.LowerBound)
fmt.Println("Upper bound:", split.UpperBound)
}
说明
SplitSize 的单位为 100 MB,取值 N 表示每个分片的近似大小为 N × 100 MB。划分结果是逻辑分片,实际大小可能存在偏差。Location 仅为位置提示,部分场景下可能为空字符串。
参数说明
ComputeSplitPointsBySizeRequest 包含以下参数。
|
名称 |
类型 |
说明 |
|
TableName(必选) |
|
数据表名称。 |
|
SplitSize(必选) |
|
每个逻辑分片的近似大小,单位为 100 MB。例如设置为 |
返回值
ComputeSplitPointsBySizeResponse 包含以下业务信息。
|
字段 |
类型 |
说明 |
|
|
|
逻辑分片列表。 |
逻辑分片
Splits[] 的类型为 Split,包含以下字段。
|
字段 |
类型 |
说明 |
|
|
|
分片主键范围的下界,可作为范围读取的起始主键。 |
|
|
|
分片主键范围的上界,可作为范围读取的结束主键。 |
|
|
|
分片所在机器的位置提示,部分场景下可能为空字符串。 |
该文章对您有帮助吗?