Database comparison overview
NineData database comparison checks consistency between two data sources. Compare schemas, compare table data, and generate SQL changes to fix inconsistencies on the target side.
Features
Schema comparison: Compares metadata and object definitions between two databases, such as columns, indexes, primary keys, foreign keys, and constraints.
Data comparison: Compares user data between two databases. Use it to validate data consistency after backup and recovery, migration, synchronization, or replication workflows.
Generate change SQL: When data or schema differences are detected, NineData can generate SQL change statements. Review and execute these statements on the target side to resolve inconsistencies.
Documentation map
| Task | Recommended documentation |
|---|---|
| Compare table data consistency | Data comparison |
| Compare tables, indexes, constraints, views, functions, stored procedures, and other object definitions | Schema comparison |
| Validate replication, migration, backup, or restore results | Start with Schema comparison, then run Data comparison |
| Generate and execute repair SQL based on differences | Data comparison or Schema comparison |
Supported data sources
| Source Database | Target Database | Data Comp. | Schema Comp. | Incre Comp. |
|---|---|---|---|---|
| MySQL | MySQL | ✔️ | ✔️ | ✔️ |
| SQL Server | ✔️ | - | - | |
| PostgreSQL | ✔️ | - | ✔️ | |
| Oracle | ✔️ | - | ✔️ | |
| OceanBase Oracle | ✔️ | - | - | |
| OceanBase MySQL | ✔️ | - | - | |
| TDSQL MySQL | ✔️ | - | - | |
| Db2 | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| SelectDB | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| Elasticsearch | - | - | - | |
| Kafka | - | - | - | |
| DaMeng | ✔️ | - | - | |
| DWS | ✔️ | - | - | |
| Greenplum | ✔️ | - | - | |
| Redshift | - | - | - | |
| StarRocks | ✔️ | - | - | |
| SingleStore | ✔️ | - | - | |
| TiDB | ✔️ | - | ✔️ | |
| Hive | ✔️ | - | - | |
| AnalyticDB PostgreSQL | - | - | - | |
| GaussDB | ✔️ | - | - | |
| openGauss | ✔️ | - | - | |
| Database Group | ✔️ | - | - | |
| DataHub | ✔️ | - | - | |
| KingbaseES | ✔️ | - | ✔️ | |
| KingbaseES for Oracle | ✔️ | - | - | |
| PolarDB for Oracle | ✔️ | - | ✔️ | |
| PolarDB-X | ✔️ | - | - | |
| Vastbase | ✔️ | - | - | |
| SQL Server | MySQL | ✔️ | - | - |
| SQL Server | ✔️ | ✔️ | - | |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| OceanBase Oracle | ✔️ | - | - | |
| OceanBase MySQL | ✔️ | - | - | |
| Db2 | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| SelectDB | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| Kafka | - | - | - | |
| DaMeng | ✔️ | - | - | |
| DWS | ✔️ | - | - | |
| Greenplum | ✔️ | - | - | |
| StarRocks | ✔️ | - | - | |
| TiDB | ✔️ | - | - | |
| AnalyticDB PostgreSQL | ✔️ | - | - | |
| GaussDB | ✔️ | - | - | |
| openGauss | ✔️ | - | - | |
| KingbaseES | ✔️ | - | - | |
| KingbaseES for Oracle | ✔️ | - | - | |
| PolarDB for Oracle | ✔️ | - | - | |
| Azure SQL Database | ✔️ | - | - | |
| Vastbase | ✔️ | - | - | |
| PostgreSQL | MySQL | ✔️ | - | ✔️ |
| SQL Server | ✔️ | - | - | |
| PostgreSQL | ✔️ | ✔️ | ✔️ | |
| Oracle | ✔️ | - | ✔️ | |
| OceanBase Oracle | ✔️ | - | ✔️ | |
| OceanBase MySQL | ✔️ | - | - | |
| TDSQL MySQL | ✔️ | - | - | |
| Db2 | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| SelectDB | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| Kafka | - | - | - | |
| DaMeng | ✔️ | - | - | |
| DWS | ✔️ | - | - | |
| Greenplum | ✔️ | - | - | |
| StarRocks | ✔️ | - | - | |
| SingleStore | ✔️ | - | - | |
| TiDB | ✔️ | - | ✔️ | |
| Hive | ✔️ | - | - | |
| AnalyticDB PostgreSQL | ✔️ | - | - | |
| Sybase | ✔️ | - | - | |
| GaussDB | ✔️ | - | - | |
| openGauss | ✔️ | - | - | |
| KingbaseES | ✔️ | - | - | |
| KingbaseES for Oracle | ✔️ | - | - | |
| PolarDB for Oracle | ✔️ | - | - | |
| Vastbase | ✔️ | - | - | |
| Oracle | MySQL | ✔️ | - | ✔️ |
| SQL Server | ✔️ | - | - | |
| PostgreSQL | ✔️ | - | ✔️ | |
| Oracle | ✔️ | ✔️ | ✔️ | |
| OceanBase Oracle | ✔️ | - | ✔️ | |
| OceanBase MySQL | ✔️ | - | ✔️ | |
| TDSQL MySQL | ✔️ | - | - | |
| Db2 | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| SelectDB | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| Kafka | - | - | - | |
| DaMeng | ✔️ | - | - | |
| DWS | ✔️ | - | - | |
| Greenplum | ✔️ | - | - | |
| StarRocks | ✔️ | - | - | |
| SingleStore | ✔️ | - | - | |
| TiDB | ✔️ | - | ✔️ | |
| Hive | ✔️ | - | - | |
| AnalyticDB PostgreSQL | ✔️ | - | - | |
| GaussDB | ✔️ | - | ✔️ | |
| openGauss | ✔️ | - | - | |
| DataHub | ✔️ | - | - | |
| KingbaseES | ✔️ | - | ✔️ | |
| PolarDB for Oracle | ✔️ | - | - | |
| PolarDB-X | ✔️ | - | - | |
| Vastbase | ✔️ | - | - | |
| GoldenDB | ✔️ | - | - | |
| OceanBase Oracle | MySQL | ✔️ | - | - |
| PostgreSQL | ✔️ | - | ✔️ | |
| Oracle | ✔️ | - | ✔️ | |
| OceanBase Oracle | ✔️ | ✔️ | ✔️ | |
| OceanBase MySQL | ✔️ | - | ✔️ | |
| TDSQL MySQL | ✔️ | - | - | |
| Kafka | - | - | - | |
| StarRocks | ✔️ | - | - | |
| TiDB | ✔️ | - | ✔️ | |
| DataHub | ✔️ | - | - | |
| OceanBase MySQL | MySQL | ✔️ | - | - |
| PostgreSQL | ✔️ | - | ✔️ | |
| OceanBase MySQL | ✔️ | ✔️ | ✔️ | |
| Kafka | - | - | - | |
| StarRocks | ✔️ | - | - | |
| DataHub | ✔️ | - | - | |
| PolarDB-X | ✔️ | - | - | |
| TDSQL MySQL | MySQL | ✔️ | - | - |
| OceanBase MySQL | ✔️ | - | - | |
| TDSQL MySQL | ✔️ | ✔️ | - | |
| Db2 | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| Kafka | - | - | - | |
| TiDB | ✔️ | - | - | |
| GaussDB | ✔️ | - | - | |
| openGauss | ✔️ | - | - | |
| KingbaseES | ✔️ | - | - | |
| KingbaseES for Oracle | ✔️ | - | - | |
| PolarDB-X | ✔️ | - | - | |
| Db2 | MySQL | ✔️ | - | - |
| SQL Server | ✔️ | - | - | |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| OceanBase MySQL | ✔️ | - | - | |
| TDSQL MySQL | ✔️ | - | - | |
| Db2 | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| SelectDB | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| DaMeng | ✔️ | - | - | |
| Greenplum | ✔️ | - | - | |
| Redshift | ✔️ | - | - | |
| StarRocks | ✔️ | - | - | |
| TiDB | ✔️ | - | - | |
| AnalyticDB PostgreSQL | ✔️ | - | - | |
| Sybase | ✔️ | - | - | |
| GaussDB | ✔️ | - | - | |
| openGauss | ✔️ | - | - | |
| KingbaseES | ✔️ | - | - | |
| KingbaseES for Oracle | ✔️ | - | - | |
| PolarDB for Oracle | ✔️ | - | - | |
| GoldenDB | ✔️ | - | - | |
| MongoDB | MongoDB | ✔️ | ✔️ | - |
| Redis | Redis | ✔️ | - | - |
| Doris | MySQL | ✔️ | - | - |
| SQL Server | ✔️ | - | - | |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| TDSQL MySQL | ✔️ | - | - | |
| Db2 | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| DaMeng | ✔️ | - | - | |
| StarRocks | ✔️ | - | - | |
| openGauss | ✔️ | - | - | |
| SelectDB | MySQL | ✔️ | - | - |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| TDSQL MySQL | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| SelectDB | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| Greenplum | ✔️ | - | - | |
| StarRocks | ✔️ | - | - | |
| SingleStore | ✔️ | - | - | |
| ClickHouse | MySQL | ✔️ | - | - |
| SQL Server | ✔️ | - | - | |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| TDSQL MySQL | ✔️ | - | - | |
| Db2 | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| SelectDB | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| DaMeng | ✔️ | - | - | |
| Greenplum | ✔️ | - | - | |
| StarRocks | ✔️ | - | - | |
| openGauss | ✔️ | - | - | |
| Kafka | MySQL | - | - | - |
| ClickHouse | - | - | - | |
| Kafka | - | - | - | |
| DaMeng | MySQL | ✔️ | - | - |
| SQL Server | ✔️ | - | - | |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| Db2 | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| DaMeng | ✔️ | ✔️ | ✔️ | |
| StarRocks | ✔️ | - | - | |
| openGauss | ✔️ | - | - | |
| DWS | DWS | ✔️ | - | - |
| StarRocks | ✔️ | - | - | |
| GaussDB | ✔️ | - | - | |
| DataHub | ✔️ | - | - | |
| Greenplum | MySQL | ✔️ | - | - |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| TDSQL MySQL | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| SelectDB | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| Greenplum | ✔️ | - | - | |
| StarRocks | ✔️ | - | - | |
| SingleStore | ✔️ | - | - | |
| TiDB | ✔️ | - | - | |
| Hive | ✔️ | - | - | |
| StarRocks | MySQL | ✔️ | - | - |
| SQL Server | ✔️ | - | - | |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| TDSQL MySQL | ✔️ | - | - | |
| Db2 | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| SelectDB | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| DaMeng | ✔️ | - | - | |
| Greenplum | ✔️ | - | - | |
| StarRocks | ✔️ | - | - | |
| SingleStore | ✔️ | - | - | |
| openGauss | ✔️ | - | - | |
| SingleStore | MySQL | ✔️ | - | - |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| SelectDB | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| Greenplum | ✔️ | - | - | |
| StarRocks | ✔️ | - | - | |
| SingleStore | ✔️ | - | - | |
| TiDB | MySQL | ✔️ | - | ✔️ |
| PostgreSQL | ✔️ | - | ✔️ | |
| Oracle | ✔️ | - | ✔️ | |
| Doris | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| Greenplum | ✔️ | - | - | |
| TiDB | ✔️ | ✔️ | ✔️ | |
| Hive | ✔️ | - | - | |
| AnalyticDB PostgreSQL | ✔️ | - | - | |
| PolarDB-X | ✔️ | - | - | |
| Hive | MySQL | ✔️ | - | - |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| Greenplum | ✔️ | - | - | |
| TiDB | ✔️ | - | - | |
| Hive | - | - | - | |
| AnalyticDB PostgreSQL | MySQL | ✔️ | - | - |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| TiDB | ✔️ | - | - | |
| AnalyticDB PostgreSQL | ✔️ | - | - | |
| Sybase | PostgreSQL | ✔️ | - | - |
| GaussDB | MySQL | ✔️ | - | - |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | ✔️ | |
| Doris | ✔️ | - | - | |
| SelectDB | ✔️ | - | - | |
| DWS | ✔️ | - | - | |
| StarRocks | ✔️ | - | - | |
| GaussDB | ✔️ | - | ✔️ | |
| openGauss | ✔️ | - | - | |
| DataHub | ✔️ | - | - | |
| openGauss | MySQL | ✔️ | - | - |
| SQL Server | ✔️ | - | - | |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| Db2 | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| ClickHouse | ✔️ | - | - | |
| DaMeng | ✔️ | - | - | |
| StarRocks | ✔️ | - | - | |
| GaussDB | ✔️ | - | - | |
| openGauss | ✔️ | - | - | |
| DataHub | ✔️ | - | - | |
| Database Group | MySQL | ✔️ | - | - |
| Database Group | ✔️ | - | - | |
| KingbaseES | MySQL | ✔️ | - | - |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| Doris | ✔️ | - | - | |
| KingbaseES | ✔️ | ✔️ | - | |
| KingbaseES for Oracle | ✔️ | - | - | |
| KingbaseES for Oracle | MySQL | ✔️ | - | - |
| PostgreSQL | ✔️ | - | - | |
| Oracle | ✔️ | - | - | |
| KingbaseES | ✔️ | - | - | |
| PolarDB for Oracle | PostgreSQL | ✔️ | - | - |
| Oracle | ✔️ | - | - | |
| PolarDB for Oracle | ✔️ | ✔️ | ✔️ | |
| PolarDB-X | PolarDB-X | ✔️ | - | - |
| Azure SQL Database | MySQL | ✔️ | - | - |
| SQL Server | ✔️ | - | - | |
| PostgreSQL | ✔️ | - | - | |
| Azure SQL Database | ✔️ | ✔️ | - | |
| Vastbase | Vastbase | ✔️ | ✔️ | ✔️ |
| GoldenDB | Oracle | ✔️ | - | - |
| Db2 | ✔️ | - | - | |
| GoldenDB | ✔️ | - | - |
Use cases
| Use case | Description |
|---|---|
| Database schema consistency across departments and regions | When teams manage multiple projects or databases of the same type, schema changes may not be synchronized to every data center or project on time. NineData Schema Comparison can compare metadata between source and target instances and provide repair suggestions before inconsistencies affect applications. |
| Cross-region and cross-cloud data verification | Enterprises often replicate or synchronize data across regions or cloud platforms. System architecture limits, network behavior, or operational changes can still cause inconsistencies. NineData Data Comparison and Schema Comparison help verify consistency and generate SQL changes for target-side repair. |
| Data integrity during ELT or ETL workflows | ETL and ELT workflows move data from multiple sources into data warehouses for OLAP or BI analysis. When sources and targets are heterogeneous, data aggregation or schema transformation can introduce inconsistencies. NineData comparison helps validate the result across homogeneous and heterogeneous databases. |