Changefeed Log Filters
TiCDC supports filtering data by tables and events. This document introduces how to use the two types of filters.
Table filter
Table filter is a feature that allows you to keep or filter out specific databases and tables by specifying the following configurations:
[filter]
# Filter rules
rules = ['*.*', '!test.*']
Common filter rules:
rules = ['*.*']
- Replicate all tables (not including system tables)
rules = ['test1.*']
- Replicate all tables in the
test1
database
- Replicate all tables in the
rules = ['*.*', '!scm1.tbl2']
- Replicate all tables except for the
scm1.tbl2
table
- Replicate all tables except for the
rules = ['scm1.tbl2', 'scm1.tbl3']
- Only replicate tables
scm1.tbl2
andscm1.tbl3
- Only replicate tables
rules = ['scm1.tidb_*']
- Replicate all tables in the
scm1
database whose names start withtidb_
- Replicate all tables in the
For more information, see Table filter syntax.
Event filter rules
Starting in v6.2.0, TiCDC supports event filter. You can configure event filter rules to filter out the DML and DDL events that meet the specified conditions.
The following is an example of event filter rules:
[filter]
# The event filter rules must be under the `[filter]` configuration. You can configure multiple event filters at the same time.
[[filter.event-filters]]
matcher = ["test.worker"] # matcher is an allow list, which means this rule only applies to the worker table in the test database.
ignore-event = ["insert"] # Ignore insert events.
ignore-sql = ["^drop", "add column"] # Ignore DDLs that start with "drop" or contain "add column".
ignore-delete-value-expr = "name = 'john'" # Ignore delete DMLs that contain the condition "name = 'john'".
ignore-insert-value-expr = "id >= 100" # Ignore insert DMLs that contain the condition "id >= 100".
ignore-update-old-value-expr = "age < 18 or name = 'lili'" # Ignore update DMLs whose old value contains "age < 18" or "name = 'lili'".
ignore-update-new-value-expr = "gender = 'male' and age > 18" # Ignore update DMLs whose new value contains "gender = 'male'" and "age > 18".
Description of configuration parameters:
matcher
: the database and table that this event filter rule applies to. The syntax is the same as table filter.ignore-event
: the event type to be ignored. This parameter accepts an array of strings. You can configure multiple event types. Currently, the following event types are supported:Event Type Alias Description all dml Matches all DML events all ddl Matches all DDL events insert DML Matches insert
DML eventupdate DML Matches update
DML eventdelete DML Matches delete
DML eventcreate schema DDL create database Matches create database
eventdrop schema DDL drop database Matches drop database
eventcreate table DDL Matches create table
eventdrop table DDL Matches drop table
eventrename table DDL Matches rename table
eventtruncate table DDL Matches truncate table
eventalter table DDL Matches alter table
event, including all clauses ofalter table
,create index
anddrop index
add table partition DDL Matches add table partition
eventdrop table partition DDL Matches drop table partition
eventtruncate table partition DDL Matches truncate table partition
eventcreate view DDL Matches create view
eventdrop view DDL Matches drop view
eventmodify schema charset and collate DDL Matches modify schema charset and collate
eventrecover table DDL Matches recover table
eventrebase auto id DDL Matches rebase auto id
eventmodify table comment DDL Matches modify table comment
eventmodify table charset and collate DDL Matches modify table charset and collate
eventexchange table partition DDL Matches exchange table partition
eventreorganize table partition DDL Matches reorganize table partition
eventalter table partitioning DDL Matches alter table partitioning
eventremove table partitioning DDL Matches remove table partitioning
eventadd column DDL Matches add column
eventdrop column DDL Matches drop column
eventmodify column DDL Matches modify column
eventset default value DDL Matches set default value
eventadd primary key DDL Matches add primary key
eventdrop primary key DDL Matches drop primary key
eventrename index DDL Matches rename index
eventalter index visibility DDL Matches alter index visibility
eventalter ttl info DDL Matches alter ttl info
eventalter ttl remove DDL Matches DDL events that remove all TTL attributes of a table multi schema change DDL Matches DDL events that change multiple attributes of a table within the same DDL statement ignore-sql
: the regular expressions of the DDL statements to be filtered out. This parameter accepts an array of strings, in which you can configure multiple regular expressions. This configuration only applies to DDL events.ignore-delete-value-expr
: this parameter accepts a SQL expression that follows the default SQL mode, used to filter out theDELETE
type of DML events with a specified value.ignore-insert-value-expr
: this parameter accepts a SQL expression that follows the default SQL mode, used to filter out theINSERT
type of DML events with a specified value.ignore-update-old-value-expr
: this parameter accepts a SQL expression that follows the default SQL mode, used to filter out theUPDATE
type of DML events with a specified old value.ignore-update-new-value-expr
: this parameter accepts a SQL expression that follows the default SQL mode, used to filter out theUPDATE
DML events with a specified new value.