You need to enable JavaScript to run this app.
导航
参数列表
最近更新时间:2025.05.13 17:27:44首次发布时间:2025.05.13 17:27:44
我的收藏
有用
有用
无用
无用

本文将介绍 ByteHouse 支持设置的查询参数和表参数。

背景信息

如下表格介绍了本文中使用的术语。

名称

介绍

worker

用户计算组的节点。

Dedup

删除重复数据(Deduplication),是唯一键引擎为保证数据唯一性,通过去重来实现目标结果。

Dedup task

去重任务,由 dedup worker 选出去重任务,被选中的数据块(data parts)会由 dedup 任务执行完成后可见

Dedup worker

去重计算节点,用于选择和执行 dedup 任务的运行实例,默认选择账户级别的写计算组。

Staging area

数据暂存区,位于默认缓存或智能缓存中;可来实现去重数据的攒批和批处理。

Staged part

暂存区的数据块,位于默认缓存或智能缓存中;存储在暂存区的 part 数据,对查询不可见。

查询参数

参数名

参数类型

可选值

无配置默认值

参数说明

enable_point_lookup_profile

Bool

true/false

false

是否使用点查 profile,用于优化点查效率。

enable_unique_partial_update

Bool

true/false

true

是否使用部分列更新模式。需要配合表级同名参数来使用,当且仅当该参数和表级都开启时部分列更新模式生效

partial_update_enable_row_level_defaults

Bool

true/false

true

当部分列更新时,未更新的列用行级默认值填充。

staging_area_wait_mode

StagingAreaWaitMode

no_wait/wait_txn_visible

no_wait

开启暂存区后,数据写入模式。no_wait 表示异步写入模式,wait_txn_visible 表示同步写入模式

enable_staging_area_for_write

Bool

true/false

false

是否开启暂存区,可支持异步写入或者并发写入优化场景。

optimize_unique_table_write

Bool

true/false

false

唯一键表 insert select 导入优化,仅当未开启暂存区dedup_impl_version='dedup_in_txn_commit' 时建议开启。

max_insert_threads

UInt64

正整数

0

worker 执行 insert select 请求的写入线程池大小。

min_insert_block_size_bytes

UInt64

正整数

1073710080

Insert select 攒批 block 块的最小大小。

min_insert_block_size_rows

UInt64

正整数

1048545

Insert select 攒批 block 块的最小行数。

表参数

参数名

参数类型

可选值

无配置默认值

参数说明

唯一键表去重相关

unique_table_dedup_threads

MaxThreads

不超过 core 数的整数值

8

每个 dedup 任务执行时会拆成不同去重粒度的子任务,该参数可配置执行这些子任务的线程池大小。

cloud_enable_staging_area

Bool

true/false

false

是否开启暂存区,可支持异步写入或者并发写入优化场景。

cloud_staging_area_wait_mode

StagingAreaWaitMode

no_wait/wait_txn_visible

no_wait

开启暂存区后,数据写入模式。no_wait 表示异步写入模式,wait_txn_visible 表示同步写入模式

min_check_txn_staging_area_visible_interval

UInt64

整数

50

开启暂存区,且写入模式为 wait_txn_visible 时,轮询数据是否已经可见的最小检查间隔,单位为毫秒(ms)。

max_check_txn_staging_area_visible_interval

UInt64

整数

1000

开启暂存区,且写入模式为 wait_txn_visible 时,轮询数据是否已经可见的最大检查间隔,单位为毫秒(ms)。

max_dedup_worker_number

UInt64

整数

1

Dedup worker 的数量,建议和 cnch_vw_write 设置的计算组 pod 数对齐。

pick_dedup_worker_by_mod

Bool

true/false

false

Dedup worker 的分布模式,配置为 true 时按计算组的节点总数取模可以保证分布均匀;默认为 false 时按照 hash 值分布,不一定均匀。

max_staged_part_number_per_task

UInt64

整数

100

每个选出的 dedup task 最大的 staged part 数量。

max_staged_part_rows_per_task

UInt64

整数

15000000

每个选出的 dedup task 最大的 staged part 总行数。

dedup_impl_version

DedupImplVersion

dedup_in_write_suffix/
dedup_in_txn_commit

dedup_in_write_suffix

去重实现,dedup_in_write_suffix 在写入阶段结束时执行去重逻辑;dedup_in_txn_commit 在事务预提交阶段执行去重逻辑,为优化版本。

后台任务相关

enable_addition_bg_task

Bool

true/false

false

是否允许更多的 merge 任务同时运行。

max_partition_for_multi_select

UInt64

整数

10

merge 任务会先选分区( partitions),再从分区中选范围(range),如果是分区很多通常需要将这个值调大。

max_addition_bg_task_num

UInt64

整数

32

限制最大并发的后台任务数量。

cnch_merge_enable_batch_select

Bool

true/false

true

batch_select 会每轮(round)选一大批范围,之后的轮次会直接提交(submit)这些范围,缩短 merge 操作的触发周期,从而让总任务量真正达到并发上限。

cnch_merge_max_total_rows_to_merge

UInt64

整数

50000000

单个 merged part 的最大行数。

部分列更新功能相关

enable_unique_partial_update

Bool

true/false

false

表是否开启部分列更新能力。

partial_update_max_process_parts

UInt64

整数

100

部分列更新执行任务时会按照该参数切分子任务。

partial_update_query_parts_thread_size

MaxThreads

不超过 core 数的整数值

8

部分列更新任务执行时读历史数据的线程池大小。

partial_update_replace_columns_thread_size

MaxThreads

不超过 core 数的整数值

8

部分列更新模式下,替换列阶段的线程池大小。

partial_update_replace_if_not_null

Bool

true/false

false

部分列更新模式下,只有当非 null 值时执行更新操作。