Skip to content

Commit

Permalink
update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Kikyou1997 committed Aug 8, 2023
1 parent 91b1518 commit 32802b4
Showing 1 changed file with 21 additions and 9 deletions.
30 changes: 21 additions & 9 deletions docs/zh-CN/docs/query-acceleration/statistics.md
Original file line number Diff line number Diff line change
Expand Up @@ -936,15 +936,27 @@ DROP ANALYZE JOB [JOB_ID]

## Full auto analyze

用户可以使用选项 `enable_full_auto_analyze` 来决定是否启用Full auto analyze。如果启用,Doris会自动分析除了一些内部数据库(如`information_db`等)之外的所有数据库,并忽略AUTO/PERIOD作业。默认情况下,该选项为true。
用户可以使用选项 `enable_full_auto_analyze` 来决定是否启用Full auto analyze。如果启用,Doris会自动分析除了一些内部数据库(如`information_db`等)之外的所有数据库,并忽略AUTO作业。默认情况下,该选项为true。

## Other ANALYZE configuration item

| conf | comment | default value |
|---------------------------------------------------------|---------------------------------------------------------|--------------------------------|
| statistics_sql_parallel_exec_instance_num | 控制每个统计信息收集SQL在BE侧的并发实例数/pipeline task num | 1 |
| statistics_sql_mem_limit_in_bytes | 控制每个统计信息SQL可占用的BE内存 | 2L * 1024 * 1024 * 1024 (2GiB) |
| statistics_simultaneously_running_task_num | 可并发执行的AnalyzeTask数量 | 10 |
| analyze_task_timeout_in_minutes | AnalyzeTask执行超时时间 | 2hours |
| full_auto_analyze_start_time/full_auto_analyze_end_time | Full auto analyze 执行时间范围,该时间段之外的时间不会触发full auto analyze | 00:00:00-23:59:59| |
|stats_cache_size| 统计信息缓存的实际内存占用大小高度依赖于数据的特性,因为在不同的数据集和场景中,最大/最小值的平均大小和直方图的桶数量会有很大的差异。此外,JVM版本等因素也会对其产生影响。在这里,我将给出统计信息缓存在包含10_0000个项目时所占用的内存大小。每个项目的最大/最小值的平均长度为32,列名的平均长度为16,并且每个列都有一个具有128个桶的直方图。在这种情况下,统计信息缓存总共占用了911.954833984MiB的内存。如果没有直方图,统计信息缓存总共占用了61.2777404785MiB的内存。强烈不建议分析具有非常大字符串值的列,因为这可能导致FE内存溢出(OOM)。 | 10_0000 |
| conf | comment | default value |
|---------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
| statistics_sql_parallel_exec_instance_num | 控制每个统计信息收集SQL在BE侧的并发实例数/pipeline task num | 1 |
| statistics_sql_mem_limit_in_bytes | 控制每个统计信息SQL可占用的BE内存 | 2L * 1024 * 1024 * 1024 (2GiB) |
| statistics_simultaneously_running_task_num | 手动提交的任务时,可并发执行的AnalyzeTask数量,即同时analyze的列的数量。 | 5 |
| analyze_task_timeout_in_minutes | AnalyzeTask执行超时时间 | 12 hours |
| full_auto_analyze_start_time/full_auto_analyze_end_time | Full auto analyze 执行时间范围,该时间段之外的时间不会触发full auto analyze | 00:00:00-02:00:00 | |
|stats_cache_size| 统计信息缓存的实际内存占用大小高度依赖于数据的特性,因为在不同的数据集和场景中,最大/最小值的平均大小和直方图的桶数量会有很大的差异。此外,JVM版本等因素也会对其产生影响。在这里,我将给出统计信息缓存在包含10_0000个项目时所占用的内存大小。每个项目的最大/最小值的平均长度为32,列名的平均长度为16,并且每个列都有一个具有128个桶的直方图。在这种情况下,统计信息缓存总共占用了911.954833984MiB的内存。如果没有直方图,统计信息缓存总共占用了61.2777404785MiB的内存。强烈不建议分析具有非常大字符串值的列,因为这可能导致FE内存溢出(OOM)。 | 10_0000 |
|full_auto_analyze_simultaneously_running_task_num| 控制并发执行的full auto analyze | 5 |
|parallel_sync_analyze_task_num| `ANALYZE...WITH SYNC`时,可同时analyze的列的数量 | 2 |

## 常见问题

### ANALYZE WITH SYNC 执行失败:Failed to analyze following columns...

SQL执行时间受`query_timeout`会话变量控制,该变量默认值为300秒,`ANALYZE DATABASE/TABLE`等语句通常耗时较大,很容易超过该时间限制而被cancel,建议根据ANALYZE对象的数据量适当增大`query_timeout`的值。

### ANALYZE提交报错:Stats table not available...

执行ANALYZE时统计数据会被写入到内部表`__internal_schema.column_statistics`中,FE会在执行ANALYZE前检查该表tablet状态,如果存在不可用的tablet则拒绝执行任务。出现该报错请检查BE集群状态。

0 comments on commit 32802b4

Please sign in to comment.