跳到主要内容

功能详情

Doris 中的跨集群复制 (CCR) 功能,主要用于在多个集群之间高效同步数据,从而增强业务连续性和容灾能力。CCR 支持 Doris 中的多种操作,确保数据在不同集群间保持一致性。以下是 CCR 支持的主要 Doris 操作的详细情况。

备注
  1. Doris Version 中的 - 表示 Doris 2.0 及以上版本,CCR 所有版本。建议使用 Doris 使用 2.0.15 或者 2.1.6 或者更新的版本。
  2. CCR Syncer 和 Doris 的版本要求:Syncer Version >= 下游 Doris Version >= 上游 Doris Version。因此升级前先升 Syncer,再升下游 Doris,最后升上游 Doris。
  3. CCR 目前不支持存算分离模式。

库​

库属性​

库级别任务在 Full Sync 时会同步库的属性。

属性是否支持Doris version同步方式说明
replication_allocation支持-Full Sync
data quota不支持
replica quota不支持

修改库属性​

CCR 任务不同步修改库属性操作。

属性是否支持上游是否可以操作下游是否可以操作说明
replication_allocation不支持不可以不可以上下游各自操作会导致 CCR 任务中断
data quota不支持可以可以
replica quota不支持可以可以

重命名库​

不支持对上下游做重命名,如果做了,可能导致视图不能工作。

表​

表属性​

属性是否支持Doris version同步方式说明
表模型(duplicate,unique,aggregate)支持-SQL
分区分桶支持-SQL
replication_num支持-SQL
replication_allocation(resource group)支持-SQL上游必须与下游一致,BE tag 必须一致,否则 CCR 任务会失败
colocate_with不支持
storage_policy不支持
dynamic_partition支持-SQL
storage_medium支持-SQL
auto_bucket支持-SQL
group_commit 系列支持-SQL
enable_unique_key_merge_on_write支持-SQL
enable_single_replica_compaction支持-SQL
disable_auto_compaction支持-SQL
compaction_policy支持-SQL
time_series_compaction 系列支持-SQL
binlog 系列支持-SQL
skip_write_index_on_load支持-SQL
row_strore 系列支持-SQL
seq 列支持-SQL
enable_light_schema_change支持-SQL
compression_type支持-SQL
index支持-SQL
bloom_filter_columns支持-SQL
bloom_filter_fpp支持
storage_cooldown_time不支持
generated column支持-SQL
自增 id不支持有问题

基础表操作​

操作是否支持Doris version同步方式下游是否可以单独操作说明
create table支持-SQL/Partial Sync不支持操作 CCR 任务同步的表。属性参考创建表部分;大部分情况下使用 SQL 同步;部分操作,比如用户建表时设置了打开了某些 session variables,或建表语句中有倒排索引,则使用部分同步
drop table支持-SQL/Full Sync同上2.0.15/2.1.6 前:Full Sync,之后:SQL
rename table表级别任务不支持库级别任务支持2.1.8/3.0.4SQL同上表级别任务 rename 会导致 CCR 任务停止
replace table支持2.1.8/3.0.4SQL/Full Sync同上DB 级别使用 SQL 同步;表级别触发全量同步
truncate table支持-SQL同上
restore table不支持同上

修改表属性​

同步方式为 SQL。

属性是否支持Doris version上游是否可以操作下游是否可以操作说明
colocate不支持可以不可以,触发 full sync 下游操作会丢失
distribution type不支持不可以同上
dynamic partition不支持可以同上
replication_num不支持不可以不可以
replication_allocation不支持不可以
storage policy不支持不可以不可以
enable_light_schema_change不支持CCR 只能同步轻量级 schema change 的表。
row_store支持2.1.8/3.0.4通过 Partial Sync
bloom_filter_columns支持2.1.8/3.0.4通过 Partial Sync
bloom_filter_fpp支持2.1.8/3.0.4通过 Partial Sync
bucket num不支持可以不可以,触发 full sync 下游操作会丢失
isBeingSynced不支持不可以不可以
compaction 系列属性不支持可以不可以,触发 full sync 下游操作会丢失不可以
skip_write_index_on_load不支持可以同上
seq 列支持-可以不可以,触发 full sync 下游操作会丢失不可以
delete sign 列支持-可以同上
comment支持2.1.8/3.0.4可以不可以,触发 full sync 下游操作会丢失不可以

列操作​

表中 Base Index 上的列操作。

操作是否支持Doris version同步方式下游是否可以操作备注
add key column支持-Partial Sync不可以,会导致 CCR 任务中断
add value column支持-SQL不可以,会导致 CCR 任务中断
drop key column支持-Partial Sync同上
drop value column支持-SQL同上
modify column支持-Partial Sync同上
order by支持-Partial Sync同上
rename支持2.1.8/3.0.4SQL同上
comment支持2.1.8/3.0.4SQL同上
备注

add/drop value column 要求建表时设置 property "light_schema_change" = "true"。

表中 Rollup Index 上的列操作。

操作是否支持Doris Version同步方式备注
add key column支持2.1.8/3.0.4Partial Sync
add value column支持2.1.8/3.0.4SQL需要开启 lightning schema change
drop column支持2.1.8/3.0.4Partial Sync
modify column未知2.1.8/3.0.4Partial SyncDoris 不支持直接修改 rollup column 类型
order by支持2.1.8/3.0.4Partial sync

Rollup​

操作是否支持Doris Version同步方式备注
add rollup支持2.1.8/3.0.4Partial Sync
drop rollup支持2.1.8/3.0.4SQL
rename rollup支持2.1.8/3.0.4SQL

索引​

Inverted Index

操作是否支持Doris Version同步方式备注
create index支持2.1.8/3.0.4Partial Sync
drop index支持2.1.8/3.0.4SQL
build index支持2.1.8/3.0.4SQL

Bloom Filter

操作是否支持Doris Version同步方式备注
add bloom filter支持2.1.8/3.0.4Partial Sync
alter bloom filter支持2.1.8/3.0.4Partial Sync这里指修改 bloom_filter_columns
drop bloom filter支持2.1.8/3.0.4Partial Sync

数据​

导入​

导入方式是否支持Doris version同步方式下游是否可以操作说明
stream load支持(临时分区除外)-TXN不可以,如果下游导入了,后续触发 full 或者 Partial Sync,下游导入的数据会丢失上游事务可见,即数据可见时生成 binlog,下游开始同步。
broker load支持(临时分区除外)-TXN同上同上
routine load支持(临时分区除外)-TXN同上同上
mysql load支持(临时分区除外)-TXN同上同上
group commit支持(临时分区除外)2.1TXN同上同上

数据操作​

操作是否支持Doris version同步方式下游是否可以操作说明
delete支持-TXN不可以,如果下游操作,后续触发 full 或者 Partial Sync,下游操作会丢失上游事务可见,即数据可见时生成 binlog,下游开始同步。
update支持-TXN同上同上
insert支持-TXN同上同上
insert into overwrite支持(临时分区除外)2.1.6Partial Sync同上同上
insert into overwrite支持(临时分区除外)2.0full sync同上同上
显式事务 (3.0)begin commit不支持

分区操作​

操作是否支持Doris version同步方式下游是否可以单独操作说明
add partition支持-SQL不能,后续触发 Full Sync 或者 Partial Sync 会导致下游操作丢失cooldown time 属性及其行为未知
add temp partition不支持同上backup 不支持 tmp partition,从 doris 2.1.8/3.0.4 开始,可以修改上游 FE 配置:ignore_backup_tmp_partitions 绕过该问题
drop partition支持-SQL/Full Sync同上2.0.15/2.1.6 前:Full Sync,之后:SQL
replace partition支持2.1.7/3.0.3Partial Sync同上Partial Sync 只支持 strict range 和 non-tmp partition 的 replace 方式,否则会触发 Full Sync。
modify partition不支持同上指修改 partition 的 property
rename partition支持2.1.8/3.0.4SQL同上

视图​

操作是否支持Doris version同步方式备注
create view支持-SQL上下游同名时可以工作;如果下游已经存在,则会先删除在创建
alter view支持2.1.8/3.0.4SQL
drop view支持2.1.8/3.0.4SQL

::: note

由于 doris 实现的限制,view 中的 column name/view name 不能和 db name 相同。

:::

物化视图​

同步物化视图

操作是否支持Doris Version同步方式备注
create materialized view支持2.1.8/3.0.4Partial Sync上下游同名时可以工作,不同名时需要下游手动重建 view。
drop materialized view支持2.1.8/3.0.4SQL

异步物化视图

操作是否支持
create async materialized view不支持
alter async materialized view不支持
drop async materialized view不支持
refresh不支持
pause不支持
resume不支持

统计信息​

上下游之间不同步,独立工作。

其它​

操作是否支持
external table不支持
recycle bin不支持
catalog不支持
workload group不支持
job不支持
function不支持
policy不支持
user不支持
cancel alter job支持