top of page

What is Talend CDC? - Demonstration of a Standard Replication

  • Fredy Antonio Espitia Castillo
  • Mar 24, 2023
  • 8 min read

Talend CDC (Change Data Capture) is a tool that performs a data integration process that replicates and syncs data from one source to different targets in real-time. In a lot of business scenarios, it is required to keep databases synchronized, and there are many of those use cases that can be solved with Talend CDC, such as:

  • Keeping the DWH aligned with the latest data from transactional sources

  • Hybrid architecture needs to keep the cloud environment aligned with the on-premises data environment

  • A very performance-consuming replication system that needs to perform complex queries on specific columns of our data to find out if it is a new, changed, or deleted record.

  • A transactional database is used as a reporting source, thus affecting its performance.

  • Having an online backup

  • Having a distributed database

CDC diagram showing source DB transferring to target DB via right-pointing arrow on a light blue background with CDC logo.

CDC can be used in different environments: on-premises, hybrid, or cloud, and it has connectors to different cloud providers such as Snowflake, AWS, or Azure, and managed services such as Kafka, AWS kinesis or Azure Eventhub. It also has connectors and support for on-premises servers such as IBM AS400, which is frequently used by financial entities and makes it unique in the market.


How does Talend CDC work?


CDC identifies the different changes that are in the source and replicates them in the target source. The replicated data comes from the different operations carried out such as:

  • INSERT

  • DELETE

  • UPDATE

The data sources that are producing changes can store logs with the transaction events that have been carried out on the data. These logs can be in different formats, varying according to the manufacturer.

The CDC agent works by monitoring and collecting those transactional events once, to store them in its own log files (Journal), in case it’s necessary to reuse them in different replication. However, this process is oblivious to system resources and does not interact with them.

In cases where we already have a database created and populated as a source, we will need to only do one full replication. From that point forward, Talend CDC will capture the changes made. It’s possible to apply scripts to the data in the source to select, transform or perform aggregations as well as apply changes to the target prior to integration.

Its configuration is done in a graphical console in which we select our source and target. It operates with different roles as:

  • Administrator

  • Operator

  • Viewer

The replicas are created in an environment, and there will be called models; a model contains the sources and targets; Once configured, we can add additional options for these, such as scheduling the executions, changing the framework with which we integrate, or supervising the job through logs in the tool or log files.

There are different frameworks with which CDC can do data replications, and each of them has additional capabilities, such as adding columns in the target, providing transformations, adding sequence identifiers, or even working with big data targets.


Demo of a Standard Replication

Initial Settings

In this blog, I will show a standard replica, so we will select the framework as “Free”, which means that no additional columns or data will be added to what is already in the source; I will be using Talend Change Data Capture version V 7.15 .0.

For this example, I have already created the source and target databases in SQL Server, which I named "training_source" and "training_target" respectively; in the source, I have a table called "students" while in the target, I have not created anything yet. Likewise, the configuration of Talend CDC towards the source and the different components necessary for the correct functioning of the tool are already installed, these are:

  • Capture Engine

  • Source Engine

  • Target Engine

  • Talend CDC Manager

  • 32-bit ODBC connector for SQL Server in the DSN (Data Source Administrator)

  • SQL Server

Let's start:

We start by configuring the source in the File -> Source subscribe menu and fill in the data according to our source configuration:

Subscribe source dialog for Talend Change Data Capture, showing fields for TrainingSource, IP 127.0.0.1, and SQL Server with OK/Cancel buttons
  • Name (Alias): The name that you prefer

  • IP address: Is the location of CDC source engine where the DB instance connection has been defined, this setup was done during the CDC installation and configuration

  • Source type: The engine of the source DB

  • Instance or Server name: The one configured on your server

Then we notice that in the source it will show us "Training Source" with a green button that will help us to connect to it:

Talend Change Data Capture window with TrainingSource selected, menu bar visible, and three empty white panes on a pale blue background

When we connect to that source, we will see that the different configured environments where we can create the models are shown, for this example, we will use Training as our environment:

Talend Change Data Capture window with Source dropdown, environment tree, empty panes, and refresh buttons on gray interface.

Now we configure the journal, so we go to Source -> Journal Management

  • Right click on the created DB "training_source" and choose the option “Start DB logging process”

  • Then we can select the directory in which we want to store the journal and press Ok.

File tree with folders DD_TRAINING, DD_USRDATA, TDCDC_TARGET, training_source selected, and a menu for Start DB logging process

Still in Journal Management, we have to select the table we want to monitor and right click on it and then, press the option “Start table logging process for”:

File browser with folder tree and a highlighted student label; popup reads Start table logging process for.

Note: A primary key must be configured in the table to start the monitoring process on this.


After starting the monitoring process on the "students" table, we need to verify that the journal is working, for this we are going to make a slight change on one of the records on this table:

SQL results table shown before and after update, changing John Doe’s city from New York to Miami.

Note: We have changed John Doe's city to Miami instead of New York

Now again in the Journal Management right click on “training_source” and “Display Journal”:

Software window with folder list and context menu showing End DB logging process, Restart, Start tables logging process with models, Display journal highlighted

We will see the only receiver available, which is the one written for the change we just made:

Journal DB: training_source window with Receivers tab open, showing a table row for receiver 0000000001 and date columns

We select it and go to the "Posts" tab and from there we will see the changes that were made:

Journal DB training_source window showing a students table with rows for John Doe, including New York and Miami entries.

Note: The change of city is shown, the first record is "New York" and the second is "Miami" which guarantees the correct functioning of the journal.


Creating the Replication:

The first step is to create a configuration space within an environment; each replica within the same environment shares the same parameters and can be managed together.

In the "Environment" tab, click on "Add" and fill in the fields like the following example:

New environment dialog window with tabs, form fields for Environment E1 and Source code SC1, training type, and Add/Cancel buttons
  • Environment: unique code of the environment to be created

  • Source code: Unique code for the source, must be 3 characters exactly

  • Environment type: For this example it’s “Training

  • Description: It’s recommended to add a description

Click on “Add” and we will have the environment created:

Talend Change Data Capture window showing Training environment tree, source models, and Standard replication map with tabs.

Note: The environment contains a tab for the source where the model is created and another tab for the target. Additionally, three tabs where the replication properties will be displayed, and graphic elements of the replica to visualize the process.


Now from the “Source” tab right click on “Models” and then on “Add”:

Talend Change Data Capture window with environment tree, TrainingSource selected, Models folder, Add button, and empty table grid

And configure the model as follows:

New model dialog with Properties tab open, showing Model M01, description, JOURNAL type, database list, Add and Cancel buttons.

Note: Two additional tabs “Table Options” and “Script” are shown, for which we will use the configuration set by default.

  • Model: A unique code for the model

  • Description: Description of the model

  • Type: For this replication, we use JOURNAL, however, there is EXTRACT that allows a full extraction

Click on “Add” and the model will be available in the “Models” folder in the “Source” tab of the “Environment”:

Software interface showing Environment tree with Training selected and a list of model source items, including M01 Model for Standard Replication

The next step is to add Tables to the model, expanding the Model on the [+] button, then right-clicking on “Tables” and finally clicking on “Add

Software UI showing a model tree with Tables selected, an Add button, and tabs for Source, Target, Map, List, and Properties

A window will appear to select the tables that we will add to the model:

Dialog for adding tables to a model, with students selected, Query button, move arrows, and OK/Cancel in a white software window

Note: As you can see, we are using the "Free" framework that doesn’t generate additional changes to our data

  1. With the "Query" button we can list all the available tables

  2. Select the tables, in this case "students"

  3. Move the selected table to the model

  4. Finish

The table will appear created inside our model:

Replication software interface showing Models > M01, Tables selected, Distribute, and a list item labeled students-1.

The next step is to create the target, from the "Target" tab of our environment we right click on "Targets" and then "Add":

Software interface showing Source and Target tabs, Topology > Targets selected, an Add button, and an empty Map/List/Properties table.

The window for the new Target will open:

New target configuration dialog with fields for target, description, type NT, name TCDC, address 127.0.0.1, and Add/Cancel buttons
  • Target: unique code for the target

  • Description: Description of the target

  • Target type: default value

  • Name: Name of the instance of our target database

  • Address: address of the server where the target database is located

  • Exclude: it’s filled automatically as soon as we put the name of the instance

Then click on “Add”, and we will see our created target:

Target tab in software shows a topology tree and a row for T01 Target Standard Replication, TCDC, NT, 127.0.0.1.

The next step is to create a distribution which means associating our model to a target, we can do it from the "Source" or "Target" tab; expand our created target or source, and click on “Distribute”:

Software window showing a topology tree with Target Standard Replication selected and a blank Map/List/Properties pane

And we move the Model from the left panel to the right and click on “Ok”:

Windows dialog titled Distribution for target T01 with two empty lists and M01 in To be distributed, plus OK and Cancel buttons

A window opens automatically to finish the configuration of the distribution:

Windows database setup dialog for SQL Server replication, with data source highlighted and login box for username, password, server, OK button
  1. Select the type of database

  2. Double-click on the connector

  3. A window will open to enter the data from our target database

  4. Click on “Ok” to add it

If the connection is correct, a notification window will show us "Connection Successful" and will show us the databases available there, and finally click on "Add":

New distribution setup window for SQL Server replication, showing target T01 and source M01, driver details, and a DSN string.

We can now see from the "Map" tab that the target T01 is associated with the model M01:

Software topology screen showing Target tree and a map linking T01 to M01, with buttons like Refresh and Clear Message Queue.

The next step is to create the target table, then from the "Target" tab we click on the "M01" model, then select the table to replicate, right-click on it, and finally "Create Target Table":

Database mapping software with a context menu open on students-1, highlighting Create target table in a white-gray workspace.

After this we will see that a new window appears showing the DDL of the new table using the target database:

SQL script window showing CREATE TABLE training_target..students with fields Id, Name, LastName, City and Execute/Cancel buttons

Click on “Execute” and then we check in the target database to show that the table was created there, but it is empty:

SQL Server Management Studio showing training_target database with dbo.students highlighted and a SELECT * FROM students query results pane


Run Replication:

Now that the target, the model and the distribution are created, we must execute the replication; from the “Map” tab, right click on Model M01 and then click on “Properties”:

Software map view showing nodes T01 and M01 linked by a line, with a right-click menu open on Properties over a pale yellow panel

From the "Recovery" tab we select the "Load" check box

Windows dialog titled Properties of distribution M01 from target T01 with Recovery tab open; Load selected and Display journal button.

Then we go to the "Activity" tab, a confirmation window will ask us if we want to reload all the tables in that distribution, to which we will say "Yes".


Now from the "Activity" tab click on the "Start" button

Software window titled Properties of distribution M01 from target T01, with tabs, status fields, counters, and Start/Test/Modify/Cancel buttons.

After starting the replication, the fields of the "Counters" and "Last operation" section will show us the results and likewise, the distribution will remain active and waiting for any change that occurs in the source to replicate it automatically:

Desktop app window showing distribution properties and status End Jrn, with counters, last operation fields, and Stop/Terminate buttons.

Note: As shown, we had 3 records in the source and those same ones were selected, sent and added to the target.


When the model is active, it will be green, otherwise it will be yellow, or it can be red if errors are encountered during execution:

Map view showing nodes T01 and M01 [ENDJRN] connected by a diagonal line, with Map, List, and Properties tabs.

Now it must be checked in the target table to show that the records were replicated:

SQL editor shows select * from students; results table lists John Doe, Chris Adams, and Fredy Muller with cities Miami, Bogota, Munich

Finally, we stop the replication by right-clicking on the model that appears in green and clicking on “Stop”.


Talend CDC offers many more features for real-time replication. In the previous example, we perform a simple replication with the same source and target fields, as well as a manual execution since they can also be scheduled.

In the next posts, I will show other features or functions that Talend CDC works with, as well as highlighting the differences with other frameworks available there.


FAQ

What is Talend CDC used for?

Keeping a data warehouse aligned with live transactional sources, syncing on-premises and cloud environments in hybrid architectures, offloading reporting queries from a live transactional database, and maintaining an online or distributed backup — all without full re-extracts of the source data.


Is Talend CDC real-time?

Yes. It reads the source database's transaction logs (or triggers, depending on mode) continuously, so changes reach the target within seconds of the source commit rather than on a batch schedule.


Which databases does Talend CDC support?

Oracle, MySQL, DB2, PostgreSQL, Sybase, MS SQL Server, Informix, Ingres, Teradata, and IBM AS/400.


Does Talend CDC affect source database performance?

Minimally. Because it reads from transaction logs rather than querying the live tables, it avoids the load a polling-based comparison approach would create.


How is Talend CDC different from Qlik Replicate or Debezium?

All three do log-based change capture, but they differ in ecosystem fit: Talend CDC integrates natively with Talend/Qlik pipelines, Qlik Replicate is Qlik's broader enterprise replication platform with a wider target-system list, and Debezium is open-source and Kafka-native, better suited to teams already standardized on a Kafka streaming stack. The right choice depends on what's already in the stack, not which tool has more features on paper.


Fredy Antonio Espitia Castillo

Talend Developer Certified

Comments


bottom of page