Skip to main content

Feature Details

The Cross-Cluster Replication (CCR) feature in Doris is primarily designed to efficiently synchronize data across multiple clusters, enhancing business continuity and disaster recovery capabilities. CCR supports various operations in Doris, ensuring data consistency across clusters.

Below is a detailed overview of the main Doris operations supported by CCR.

note

- Indicates Doris version 2.0 and above, all versions of CCR. It is recommended to use Doris version 2.0.15 or 2.1.6 or newer.

Database​

Database Properties​

Database-level tasks will synchronize the properties of the database during Full Sync.

PropertySupportedDoris versionCCR versionSync MethodDescription
replication_allocationSupported--FULL SYNC
data quotaNot supported
replica quotaNot supported

Modify Database Properties​

CCR tasks do not synchronize operations that modify database properties.

PropertySupportedCan upstream operateCan downstream operateDescription
replication_allocationNot supportedNoNoOperations by upstream and downstream will cause CCR tasks to be interrupted
data quotaNot supportedYesYes
replica quotaNot supportedYesYes

Rename Database​

Renaming is not supported for upstream and downstream; doing so may cause views to stop working.

Table​

Table Properties​

PropertySupportedDoris versionCCR versionSync MethodDescription
Table Model (duplicate, unique, aggregate)Supported--SQL
Partitioning and BucketingSupported--SQL
replication_numSupported--SQL
replication_allocation (resource group)Supported--SQLUpstream must be consistent with downstream; BE tags must be consistent, otherwise CCR tasks will fail
colocate_withNot supported
storage_policyNot supported
dynamic_partitionSupported--SQL
storage_mediumSupported--SQL
auto_bucketSupported--SQL
group_commit seriesSupported--SQL
enable_unique_key_merge_on_writeSupported--SQL
enable_single_replica_compactionSupported--SQL
disable_auto_compactionSupported--SQL
compaction_policySupported--SQL
time_series_compaction seriesSupported--SQL
binlog seriesSupported--SQLTo be confirmed
variant_enable_flatten_nestedSupported--SQL
skip_write_index_on_loadSupported--SQL
row_store seriesSupported--SQL
seq columnSupported--SQL
enable_light_schema_changeSupported--SQL
compression_typeSupported--SQL
indexSupported--SQL
bloom_filter_columnsSupported--SQL
bloom_filter_fppNot supported
storage_cooldown_timeNot supported
generated columnSupported--SQL
auto-increment idNot supportedIssues exist

Basic Table Operations​

OperationSupportedDoris versionCCR versionSync MethodCan downstream operate separatelyDescription
create tableSupported--SQLNot supported for tables synchronized by CCR tasks.Reference properties for creating tables
drop tableSupported--Before 2.0.15/2.1.6: Full Sync, after: SQLSame as above
rename tableTable-level tasks do not support database-level tasksmaster (2.0/2.1 not supported)SQLSame as aboveTable-level task rename will cause CCR tasks to stop
replace tableNot supportedSame as above
truncate tableSupported-SQLSame as above
restore tableUnknownSame as above

Modify Table Properties​

Sync method is SQL.

PropertySupportedDoris versionCCR versionCan upstream operateCan downstream operateDescription
colocateNot supportedYesNo
distribution typeNot supportedNoSame as above
dynamic partitionNot supportedYesSame as above
replication_numNot supportedNoNo
replication_allocationNot supportedNo
storage policyNot supportedNoNo
enable_light_schema_changeNot supportedCCR can only synchronize lightweight schema changes of tables.
row_storeUnknown
bloom_filter_columnsUnknown
bucket numNot supportedYesNo
isBeingSycedNot supportedNoNo
compaction series propertiesNot supportedYesNo, triggering full sync downstream operations will cause data loss
skip_write_index_on_loadNot supportedYesSame as above
seq columnSupported--YesNo, triggering full sync downstream operations will cause data loss
delete sign columnSupported--YesSame as above
commentNot supportedYesNo, triggering full sync downstream operations will cause data loss

Column Operations​

Column operations on Base Index in the table.

OperationSupportedDoris versionCCR versionSync MethodCan downstream operateRemarks
add key columnSupported--Database-level task Partial Sync, Table-level task Partial SyncNo
add value columnSupported--SQLNo
drop key columnSupported--Database-level task Partial Sync, Table-level task Partial SyncSame as above
drop value columnSupported--SQLSame as above
modify columnSupported--Full Sync / Partial SyncSame as aboveWill attempt to delete the downstream table before starting
order bySupported--Full Sync / Partial SyncSame as aboveWill attempt to delete the downstream table before starting
renameSame as above
commentNot supportedSame as above

Column operations on Rollup Index in the table.

OperationSupportedRemarks
add columnUnknownCauses CCR task interruption
drop columnUnknownSame as above
modify columnUnknownSame as above
order byUnknownSame as above

Rollup​

OperationSupportedRemarks
add rollupNot supported
drop rollupNot supported
rename rollupNot supportedCCR task interruption

Index​

Inverted Index

OperationSupportedRemarks
create indexNot supportedUnknown impact
drop indexUnknownUnknown impact

Bloom Filter

OperationSupportedRemarks
add bloom filterNot supportedUnknown impact
alter bloom filterNot supportedUnknown impact
drop bloom filterNot supportedUnknown impact

Data​

Import​

Import MethodSupportedDoris versionCCR versionSync MethodCan downstream operateDescription
stream loadSupported (except for temporary partitions)--TXNNo, if downstream imports, subsequent triggers of full or Partial Sync will cause data lossUpstream transactions are visible, i.e., data is visible when generating binlog, downstream starts syncing.
broker loadSupported (except for temporary partitions)--TXNSame as aboveSame as above
routine loadSupported (except for temporary partitions)--TXNSame as aboveSame as above
mysql loadSupported (except for temporary partitions)--TXNSame as aboveSame as above
group commitSupported (except for temporary partitions)2.12.1TXNSame as aboveSame as above

Data Operations​

OperationSupportedDoris versionCCR versionSync MethodCan downstream operateDescription
deleteSupported--TXNNo, if downstream operates, subsequent triggers of full or Partial Sync will cause data lossUpstream transactions are visible, i.e., data is visible when generating binlog, downstream starts syncing.
updateSupported--TXNSame as aboveSame as above
insertSupported--TXNSame as aboveSame as above
insert into overwriteSupported (except for temporary partitions)2.1.6Partial SyncSame as aboveSame as above
insert into overwriteSupported (except for temporary partitions)2.0full syncSame as aboveSame as above
Explicit transaction (3.0) begin commitNot supported

Partition Operations​

OperationSupportedDoris versionCCR versionSync MethodCan downstream operate separatelyDescription
add partitionSupported--SQLNo, subsequent triggers of Full Sync or Partial Sync will cause downstream operations to be lostcooldown time property and its behavior unknown
add temp partitionNot supportedSame as above
drop partitionSupported--Before 2.0.15/2.1.6: Full Sync, after: SQLSame as above
replace partitionSupportedPartial SyncSame as abovePartial Sync only supports strict range and non-temp partition replace method, otherwise it will trigger Full Sync.
modify partitionNot supportedNot releasedNot releasedSQLSame as above
rename partitionTable-level tasks do not support database-level tasksNot releasedNot releasedSQLSame as aboveTable-level task rename will cause CCR tasks to stop

View​

OperationSupportedDoris versionCCR versionSync MethodRemarks
create viewSupported--SQLCan work when upstream and downstream have the same name.
alter viewNot supportedNo binlog
drop viewNot supported

Materialized View​

Synchronous Materialized View

OperationSupportedRemarks
create materialized viewUnknownCan work when upstream and downstream have the same name; if different names, downstream needs to manually recreate the view.
drop materialized viewUnknown

Asynchronous Materialized View

OperationSupported
create async materialized viewNot supported
alter async materialized viewNot supported
drop async materialized viewNot supported
refreshNot supported
pauseNot supported
resumeNot supported

Statistics​

Not synchronized between upstream and downstream, work independently.

Others​

OperationSupported
external tableNot supported
recycle binNot supported
catalogNot supported
workload groupNot supported
jobNot supported
functionNot supported
policyNot supported
userNot supported
cancel alter jobSupported