跳到主要内容

功能详情

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
variant_enable_flatten_nested支持-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支持