最近,一家供应商宣布他们正在升级他们的stream程,而我们从他们那里获得的每日自动化数据转储现在将以MySQL数据转储格式进行。 不幸的是,我们只是微软的商店,所以我们不能直接导入这些文件。
所以我的问题是:如何获取数据转储文件并将其导入到SQL Server 2005实例中以创build数据库?
注意事项:
mysqldump命令,而'compatible'选项设置不同。 我会做与第三方不同的事情。 我会使用SSIS将它从MySQL直接导入到SQL Server中,并在SQL Server中调度任务。 将MySQL转储导入到SQL Server中会有问题,因为DDL在数据库引擎之间差别很大。
如果你不能直接访问第三方,你可以在本地获得正在运行的MySQL实例,然后导入mysql dump(在batch file中使用mysqlimport)。
您应该能够使用SQL Server 2005中的任务计划程序和SSIS +作业轻松自动执行此操作。
http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html#option_mysqldump_xml
转储通常包含SQL语句来创build表,填充它或两者。 但是,mysqldump也可以用于生成CSV,其他分隔文本或XML格式的文件。
然后我将使用XML格式,并使用XSLT将其转换为必要的地方。
在stackoverflow中他们指出了这个解决scheme: 从mysql到mssql 。 它需要加载一个mysql实例。
如果你的要求是成立的(我在这里指的是你对“不需要人工干预”的评论),那么对你的组织来说最好的解决scheme就是付钱给你编程这个逻辑。 在数据库之间迁移东西需要干预,在睡觉的时候不会由小花园的侏儒来完成。 有人将不得不编程它的逻辑。
写完所有这些之后,在Windows服务器上运行mysql是非常好的,如果你运行社区版本,那么你将毫无成本。 如果这是一个pipe理要求,你可能总是从Oracle购买它的钱。
如果你不想运行一个MySQL实例和脚本的导入和重新导出(MSSQL友好的格式),那么你将不得不编写一个parsing器来翻译MySQL转储格式为CSV或一些有用和简单。
我认为你更好的运行一个MySQL实例并交换数据。 一旦数据在MySQL中,您甚至可以使用VBA 通过DSN自动执行此操作 。
既然你可能运行一个你的时间是值得的东西的商业,考虑像对称的商业解决scheme