Updated on 2024-09-25 GMT+08:00

Changing Object Names (Mapping Object Names)

Data synchronization allows you to synchronize objects (including databases, schemas and tables) in a sources database to the corresponding objects in a destination database. Object name mapping can be used only in the following scenarios:

  • Changing an Object Name: If the synchronization objects in source and destination databases have different names, you can map the source object name to the destination one.
  • Many-to-One Synchronization: To synchronize databases, schemas, and tables in many-to-one scenarios, you can use object name mapping.

This section describes how to map objects when configuring a data synchronization task. For details about the mapping relationship, see Viewing Synchronization Mapping Information.

Precautions

  • Objects whose database names or table names contain newline characters cannot be mapped.
  • Object name mapping can be used for the first time you select synchronization objects for a data synchronization task.
  • Object name mapping can be used for the first time you add or delete the synchronization object which is not in a mapping relationship.
  • If the destination DB is a type of PostgreSQL (for example, GaussDB(DWS), GaussDB, or PostgreSQL), the destination schema name cannot start with pg_. Otherwise, the migration fails.
  • The following data flow types do not support schema mapping for tables of the smallserial, serial, and bigserial types:
    • GaussDB primary/standby -> GaussDB distributed
    • GaussDB primary/standby -> GaussDB primary/standby
    • GaussDB distributed -> GaussDB distributed
    • GaussDB distributed -> GaussDB primary/standby
  • The following data flow types support many-to-one object mapping:
    • MySQL -> MySQL
    • MySQL -> GaussDB(for MySQL)
    • MySQL -> GaussDB(DWS)
    • MySQL -> Kafka
    • GaussDB(for MySQL) -> MySQL
    • GaussDB(for MySQL) -> GaussDB(for MySQL)
    • GaussDB(for MySQL) -> GaussDB(DWS)
    • Oracle -> GaussDB
    • Oracle -> GaussDB(DWS)

Changing an Object Name

During real-time synchronization, if the names of source databases, schemas, or tables to be synchronized are different from those in the destination, you can map the source names to the destination ones. For example, when synchronizing database A in the source database to database B in the destination database, you need to map database name first.

  1. On the Set Synchronization Task page, select the database that needs to be mapped from the synchronization objects on the right area and click Edit.

    Figure 1 Mapping databases

  2. Change a name.

    In the displayed dialog box, enter a new object name. The new name is the name of the object saved in the destination database.

    Figure 2 Changing a database name
    Figure 3 Changing a schema name
    Figure 4 Changing a table name

  3. Check the result.

    After the name is changed, the name before modification and the new name are displayed. The object name mapping is complete.
    Figure 5 Checking the result

Many-to-One Synchronization

During real-time synchronization, you can use object name mapping to change the names of databases, schemas, and tables to enable many-to-one synchronization.

The following uses a database-level many-to-one synchronization as an example. For schema- and table-level many-to-one scenarios, perform the following similar steps:

  1. On the Set Synchronization Task page, select the target databases that need to be mapped from the synchronization objects on the right area and click Edit one by one.
  2. In the displayed dialog box, enter a given database name. The new database name is the name of the database saved in the destination DB instance.

    For example, change the databases test_16 and auto_nprocess_001 in the source DB instance to the database test_16_new.

    Figure 6 Checking the result

  3. After the database names are changed, the database names before modification and the new database name are displayed. The many-to-one database mapping is complete.
  4. Wait until the task starts and the synchronization is complete. Then, the databases test_16 and auto_nprocess_001 can be synchronized to the database test_16_new in real time.