统计信息
更新时间:2024-12-13
统计信息管理
UpdateStatistics
接口说明
更新表字段/分区统计信息
请求原型
Plain Text
1POST /v1/database/${databaseName}/table/${tableName}?setStatistics
请求参数
名称 | 类型 | 位置 | 是否必填 | 描述 |
---|---|---|---|---|
databaseName | String | URL | 是 | 数据库名 |
tableName | String | URL | 是 | 表名 |
numFiles | Long | Body | 否 | 文件个数 |
numRows | Long | Body | 否 | 行数 |
rawDataSize | Long | Body | 否 | 原始数据大小 |
totalSize | Long | Body | 否 | 存储数据大小 |
statisticsDesc | StatisticsDesc | Body | 是 | 统计信息描述信息 |
columnStatisticsData | List<ColumnStatisticsData> | Body | 否 | 统计信息 |
StatisticsDesc
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
tableLevel | boolean | 是 | 是否是表级别的统计信息 |
partitionName | String | 否 | 分区名 |
lastAnalyzedTime | Long | 是 | 上次分析时间 |
ColumnStatisticsData
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
columnName | String | 是 | 列名 |
columnType | String | 是 | 列类型 |
statisticsData | statisticsData | 是 | 统计信息 |
StatisticsData
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
booleanStats | BooleanStats | 否 | 布尔型统计信息 |
longStats | LongStats | 否 | long型统计信息 |
doubleStats | DoubleStats | 否 | double类型统计信息 |
stringStats | StringStats | 否 | string类型统计信息 |
binaryStats | BinaryStats | 否 | binary类型统计信息 |
decimalStats | DecimalStats | 否 | decimal类型统计信息 |
dateStats | DateStats | 否 | date类型统计信息 |
BooleanStats
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
numTrues | long | 是 | 真值数量 |
numFalses | long | 是 | 假值数量 |
numNulls | long | 是 | 空值数量 |
LongStats
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
longLowValue | long | 是 | 最小值 |
longHighValue | long | 是 | 最大值 |
numNulls | long | 是 | 空值数量 |
DoubleStats
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
decimalHighValue | Decimal | 是 | 最大值 |
decimalLowValue | Decimal | 是 | 最小值 |
numNulls | long | 是 | 空值数量 |
Decimal
名称 | 类型 | 是否必填 |
---|---|---|
scale | short | 是 |
unscaled | byte[] | 是 |
StringStats
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
maxColLen | long | 是 | 最大长度 |
avgColLen | double | 是 | 最小长度 |
numNulls | long | 是 | 空值数量 |
BinaryStats
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
maxColLen | long | 是 | 最大长度 |
avgColLen | double | 是 | 最小长度 |
numNulls | long | 是 | 空值数量 |
DecimalStats
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
decimalLowValue | double | 是 | 最小值 |
decimalHighValue | double | 是 | 最大值 |
numNulls | double | 是 | 空值数量 |
DateStats
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
dateLowValue | long | 是 | 最小值 |
dateHighValue | long | 是 | 最大值 |
numNulls | long | 是 | 空值数量 |
响应参数
除公共响应参数外,无特殊响应。
错误码
公有云标准错误返回码
Code | message | HTTP状态码 | 描述 |
---|---|---|---|
BadRequest | Bad request, please check your request | 400 | 请求体规则校验错误 |
DatabaseNotFound | Database not found. | 404 | 数据库不存在 |
TableNotFound | Table not found. | 404 | 表不存在 |
PartitionNotFound | Partitionnot found. | 404 | 分区不存在 |
InternalError | We encountered an internal error. Please try again. | 500 | 服务器内不错误 |
请求示例
Plain Text
1POST /v1/database/db1/table/tbl1?setStatistics HTTP/1.1
2
3Host: edap.bj.baidubce.com
4
5Content-Length: xxxx
6
7Content-Type: application/json
8{
9 "numFiles": 12,
10 "numRows": 10000,
11 "rawDataSize": 76546659248,
12 "totalSize": 8594679398,
13 "statisticsDesc": {
14 "tableLevel": true,
15 "lastAnalyzedTime": 123
16 },
17 "columnStatisticsData": [
18 {
19 "columnName": "n_nationkey",
20 "columnType": "long",
21 "statisticsData": {
22 "longStats": {
23 "longLowValue": 1,
24 "longHighValue": 3,
25 "numNulls": 2
26 }
27 }
28 },
29 {
30 "columnName": "n_name",
31 "columnType": "boolean",
32 "statisticsData": {
33 "booleanStats": {
34 "numNulls": 2,
35 "numTrues": 0,
36 "numFalses": 0
37 }
38 }
39 }
40 ]
41}
响应示例
Plain Text
1HTTP/1.1 204 No Content
2
3Content-Length: 0
GetStatistics
接口说明
获取列/分区统计信息
请求原型
Plain Text
1POST /v1/database/${databaseName}/table/${tableName}?getStatistics
请求参数
名称 | 类型 | 位置 | 是否必填 | 描述 |
---|---|---|---|---|
databaseName | String | URL | 是 | 数据库名 |
tableName | String | URL | 是 | 表名 |
columns | List<String> | Body | 否 | 需要获取统计信息的column列表 |
partitionNames | List<String> | Body | 否 | 需要获取统计信息的partition列表 |
响应参数
名称 | 类型 | 描述 |
---|---|---|
statistics | List<Statistics> | 统计信息 |
Statistics
名称 | 类型 | 描述 |
---|---|---|
partitionName | String | 分区名 |
columnStatisticsData | List<ColumnStatisticsData> | 统计信息 |
错误码
公有云标准错误返回码
Code | message | HTTP状态码 | 描述 |
---|---|---|---|
BadRequest | Bad request, please check your request | 400 | 请求体规则校验错误 |
DatabaseNotFound | Database not found. | 404 | 数据库不存在 |
TableNotFound | Table not found. | 404 | 表不存在 |
PartitionNotFound | Partitionnot found. | 404 | 分区不存在 |
InternalError | We encountered an internal error. Please try again. | 500 | 服务器内不错误 |
请求示例
Plain Text
1POST /v1/database/db1/table/tbl1?getStatistics HTTP/1.1
2
3Host: edap.bj.baidubce.com
4
5Content-Length: xxxx
6{
7 "columns": ["n_nationkey", "n_name"]
8}
响应示例
Plain Text
1HTTP/1.1 200 OK
2
3Content-Length: xxxx
4
5Content-Type: application/json
6{
7 "statistics": [
8 {
9 "columnStatisticsData": [
10 {
11 "columnName": "n_nationkey",
12 "columnType": "long",
13 "statisticsData": {
14 "longStats": {
15 "longLowValue": 1,
16 "longHighValue": 3,
17 "numNulls": 2
18 }
19 }
20 },
21 {
22 "columnName": "n_nation",
23 "columnType": "long",
24 "statisticsData": {
25 "longStats": {
26 "longLowValue": 1,
27 "longHighValue": 3,
28 "numNulls": 2
29 }
30 }
31 }
32 ]
33 }
34 ]
35}
请求示例
Plain Text
1{
2
3 "columns": ["n_nationkey", "n_name"]
4
5 "partitionNames":["n_nationkey=100"]
6
7}
响应示例
Plain Text
1HTTP/1.1 200 OK
2
3Content-Length: xxxx
4
5Content-Type: application/json
6{
7 "statistics": [
8 {
9 "partitionName": "n_nationkey=100",
10 "columnStatisticsData": [
11 {
12 "columnName": "n_nationkey",
13 "columnType": "long",
14 "statisticsData": {
15 "longStats": {
16 "longLowValue": 1,
17 "longHighValue": 3,
18 "numNulls": 2
19 }
20 }
21 },
22 {
23 "columnName": "n_nation",
24 "columnType": "long",
25 "statisticsData": {
26 "longStats": {
27 "longLowValue": 1,
28 "longHighValue": 3,
29 "numNulls": 2
30 }
31 }
32 }
33 ]
34 }
35 ]
36}
DeleteStatistics
接口说明
删除列统计信息
请求原型
Plain Text
1POST /v1/database/${databaseName}/table/${tableName}?deleteStatistics
请求参数
名称 | 类型 | 位置 | 是否必填 | 描述 |
---|---|---|---|---|
databaseName | String | URL | 是 | 数据库名 |
tableName | String | URL | 是 | 表名 |
column | String | Body | 否 | 需要删除统计信息的列名 |
partitionName | String | Body | 否 | 需要删除统计信息的分区名 |
响应参数
除公共响应参数外,无特殊响应。
错误码
公有云标准错误返回码
Code | message | HTTP状态码 | 描述 |
---|---|---|---|
BadRequest | Bad request, please check your request | 400 | 请求体规则校验错误 |
DatabaseNotFound | Database not found. | 404 | 数据库不存在 |
TableNotFound | Table not found. | 404 | 表不存在 |
PartitionNotFound | Partitionnot found. | 404 | 分区不存在 |
InternalError | We encountered an internal error. Please try again. | 500 | 服务器内不错误 |
请求示例
Plain Text
1POST /v1/database/db_01/table/tb_01?deleteStatistics HTTP/1.1
2
3Host: edap.bj.baidubce.com
4
5Content-Length: xxx
6
7{
8
9 "column": "col_01",
10
11 "partitionName": "n_regionkey=100"
12
13}
响应示例
Plain Text
1HTTP/1.1 204 No Content
2
3Content-Length: 0