如何将 SQL 服务器的 table 与 MySQL 服务器的 table 进行比较
How to compare a table of SQL Server to a table of MySQL
最近我们有从 MySQL 到 SQL 服务器的所有 ETL。显然数据类型已经改变。
有什么方法可以在 MySQL 和 SQL 服务器 table 之间进行 详细 快速数据比较(不考虑数据类型)。
我知道除校验和外,hashbytes 也会考虑数据类型。
我只想比较 "abc" 和 "abc"
感谢您的帮助。
我认为您可以在 SQL 服务器中使用 openrowset()
从 table 获取数据或在您的 MySQL 数据库中查看,然后根据您的 table 或在您当前的 SQL 服务器数据库中查看。
像这样:
select *
from openrowset(N'MSDASQL',N'Driver={MySQL ODBC 5.1 Driver};Server=192.xxx.xx.xxx;Database=xxx_view;User=xxx_user27;Password=xxxx;Option=3;',
N'SELECT * FROM xxx_view.abc LIMIT 1000') mysqlAbcTable
full outer join sqlserverAbcTable
on mysqlAbcTable.fieldAbc = sqlserverAbcTable.fieldAbc;
据我所知,有两种方法可以实现这一点-:
手动比较 -: 您可以检查 mysql 和 sql 服务器表中的记录数以及某些数据子集 您可以比较 MySQL 和 [=] 之间的数据20=] 服务器数据库。或者您可以从 Excel 中的源和目标下载数据样本,并使用宏进行数据比较和验证。
使用数据库比较工具-: 有一些数据库比较工具如Query Surge、BI Validator、DB Solo 等可用于数据比较。使用这些工具,您可以比较两个不同数据库之间的数据,例如 Mysql 和 sql 服务器。这些工具可以提供高达 100% 的数据覆盖率。
最近我们有从 MySQL 到 SQL 服务器的所有 ETL。显然数据类型已经改变。
有什么方法可以在 MySQL 和 SQL 服务器 table 之间进行 详细 快速数据比较(不考虑数据类型)。
我知道除校验和外,hashbytes 也会考虑数据类型。
我只想比较 "abc" 和 "abc"
感谢您的帮助。
我认为您可以在 SQL 服务器中使用 openrowset()
从 table 获取数据或在您的 MySQL 数据库中查看,然后根据您的 table 或在您当前的 SQL 服务器数据库中查看。
像这样:
select *
from openrowset(N'MSDASQL',N'Driver={MySQL ODBC 5.1 Driver};Server=192.xxx.xx.xxx;Database=xxx_view;User=xxx_user27;Password=xxxx;Option=3;',
N'SELECT * FROM xxx_view.abc LIMIT 1000') mysqlAbcTable
full outer join sqlserverAbcTable
on mysqlAbcTable.fieldAbc = sqlserverAbcTable.fieldAbc;
据我所知,有两种方法可以实现这一点-:
手动比较 -: 您可以检查 mysql 和 sql 服务器表中的记录数以及某些数据子集 您可以比较 MySQL 和 [=] 之间的数据20=] 服务器数据库。或者您可以从 Excel 中的源和目标下载数据样本,并使用宏进行数据比较和验证。
使用数据库比较工具-: 有一些数据库比较工具如Query Surge、BI Validator、DB Solo 等可用于数据比较。使用这些工具,您可以比较两个不同数据库之间的数据,例如 Mysql 和 sql 服务器。这些工具可以提供高达 100% 的数据覆盖率。