Skip to main content

Database Wizard

The graphical object selection module allows for an intuitive definition of the data scope to be replicated by the Debezium connector. Instead of manually typing complex lists of tables and columns in text format, the user can utilize an interactive database structure tree.

This tool automatically generates the appropriate configuration parameters:

  • schema.include.list / schema.exclude.list
  • table.include.list / table.exclude.list
  • column.include.list / column.exclude.list

Why did we introduce a new version?

The previous version of the configurator required deep technical knowledge and great caution from the user. It has been replaced to eliminate the most common configuration errors.

Automatic Conflict Protection (Include vs Exclude)

In Debezium configuration, you cannot simultaneously define include and exclude lists for the same level (e.g., tables). The previous version allowed such errors, causing connector failures. The new interface automatically blocks the creation of conflicting configurations—the interface guards consistency for the user.

No need to understand Debezium internals

Previously, the user had to know that to track a specific column, they also had to manually add its table to the configuration. The new version works intelligently: if you select a column, the system automatically ensures that the necessary entries for the table and schema are added in the background. The user chooses "what", and the system worries about "how".

Support for Experts

Previously, the graphical editor did not support manually entered regular expressions (Regex). The new module can read them, visualize them on the tree (showing which tables match the entered pattern), and block them from accidental editing.

User Interface

Upon launching the Database Wizard module, the user will see the structure of their database presented as a hierarchical tree.

  • Schemas – the highest level of the tree.
  • Tables – an expandable list of tables within a schema.
  • Columns – the lowest level, allowing for precision down to a single field.
Important

To activate the Database Wizard, a saved database connection must be selected in the previous stage of the configurator.

Schemas and tables not supported by Debezium will not be displayed.

The module allows choosing between two filter definition modes. Remember the Debezium rule: you cannot define include and exclude lists for the same object level simultaneously.

Tip

By default, Debezium tracks everything.

Use the Include list if you want to replicate only selected, few tables (so-called Whitelist). Use the Exclude list if you want to replicate the entire database except for a few specific tables (so-called Blacklist).

Step-by-Step Instructions

Step 1: Navigation

Expand the database node by clicking the arrow icon next to the schema name. The module will display a list of available tables. Clicking on a table name will expand its list of columns.

Step 2: Selecting Objects

Select the elements you want to add to the configuration with the appropriate include/exclude filter.

  • Selecting a Schema: Adds the entire schema to the schema.*.list filter.
  • Selecting a Table: Adds the fully qualified table name (e.g., public.users) to the table.*.list filter.
  • Selecting a Column: Adds the column to the column.*.list filter.

Step 3: Preview and Save

After finishing the selection, in the Replication Preview section, you will see what the Debezium connector will realistically replicate. Verify if the list matches your expectations and click Save.

Mechanics (Under the Hood)

Debezium filters data in a cascade, acting like a series of security gates. For data from a specific column to be replicated, it must successfully pass through all three verification stages:

  1. Schema Level: Is the schema on the allowed list? (If not -> Reject all).
  2. Table Level: Is the table on the allowed list? (If not -> Reject, even if the schema was OK).
  3. Column Level: Is the column on the allowed list?
The "Silent Rejection" Problem

In raw Debezium, if you manually enter a column into column.include.list but forget to add its table to table.include.list, Debezium will not report an error but will simply not send any data. This is called "silent rejection" and is difficult to detect.

Database Wizard vs. Raw Debezium

ScenarioRaw DebeziumDatabase Wizard
Dependencies (Hierarchy)No automation. User must manually add entries for the table and schema for the column to work. Risk of "silent rejection".Intelligent completion. Selecting a column automatically includes its table and schema. Consistency guarantee.
Include/Exclude ConflictCritical Error. Allows entering include and exclude lists simultaneously, causing a connector crash.Error Prevention. The interface forces the choice of one mode (only Include or only Exclude) for a given level.
Regex SupportBlind text. You type a pattern (e.g., ^sales.*), but you don't know exactly which tables it covers until you run the process.Visualization and Lock. The module analyzes Regex, highlights matching tables on the tree, and locks them. You see exactly what you select.
NamingProne to typos. Requires typing full names (e.g., inventory.customers). A typo in one letter results in missing data.Point-and-Click. You select objects from a list fetched directly from the database. Zero typos.

Edge Cases

When nothing is selected, the entire database will be replicated.

No selection - full replicationNo selection - full replication

You cannot exclude a higher-level structure if a lower-level structure within it has been included in the configuration.

Hierarchy conflictHierarchy conflict

Interaction with child structures of an excluded element is blocked.

Child elements lockedChild elements locked

Higher-level structures will be automatically added to guarantee the replication of the lower-level structure.

Automatic parent additionAutomatic parent addition