WAN 上 MySQL 到 SQL Server 的 ETL 机制
Posted
技术标签:
【中文标题】WAN 上 MySQL 到 SQL Server 的 ETL 机制【英文标题】:ETL mechanisms for MySQL to SQL Server over WAN 【发布时间】:2011-02-01 21:37:08 【问题描述】:我正在寻找有关通过 *** 将外部主机从 mysql Community Server 5.1.32 批处理数据到内部 SQL Server 05 Enterprise 计算机的机制的反馈。外部盒子在整个工作时间内积累数据(每天约 100Mb),然后需要通过 WAN 连接(质量尚未确定,但不会超快)在国际上传输到内部公司环境,然后才能进行一些 BI 工作执行。这应该只是每天晚上进行的更改集。
我对人们之前在类似场景中成功使用的 ETL 机制的想法很感兴趣。 SSIS 似乎是一个潜在的候选人。任何人都可以评论这种情况的适用性吗?或者,将非常感谢有关如何以成本意识的方式做到这一点的其他想法。谢谢!
【问题讨论】:
【参考方案1】:这取决于您对从外部机器接收到的数据的用途。
如果您必须拥有第二天早上的计算数据或对您的网络没有信心,您更愿意将两个系统松散耦合并在它们之间启用一些消息队列,以便在出现故障时晚上像数据库,网络链接,任何对你来说很难恢复的东西,你可以每天早上从一些数据开始。
如果数据检索的关键程度不高,任何解决方案都是好的:)
关于 SSIS,它只是一个很棒的 ETL 框架(是的,有一个微妙之处 :))。但我不认为它是数据传输的一部分,而是当您的数据已被接收或仍在消息队列系统中等待时的 ETL 部分。
【讨论】:
【参考方案2】:就实际将数据从 MySQL 导入 SQL Server 而言,您可以使用 SSIS 通过多种方法导入数据。一种是直接连接到您的 MySQL 源(通过 OLEDB 连接或类似方式),或者您可以每天从 MySQL 导出到一个平面文件并使用 FTP 任务来获取它。获得数据后,SSIS 可以在将处理后的数据加载到 SQL Server 之前执行所需的转换。
【讨论】:
【参考方案3】:首先,如果您要这样做,有一个好方法可以轻松查看自上次以来发生的变化。每个字段都应该有一个 last updatedate 或一个在记录更新时更改的时间戳(不确定 mysql 是否有这个)。这比比较每个字段要好得多。
如果您在两个位置都有 SQL Server,我建议您进行复制,是否可以使用 SQL Server 代替 mySQL?如果没有,那么 SSIS 是您最好的选择。
【讨论】:
以上是关于WAN 上 MySQL 到 SQL Server 的 ETL 机制的主要内容,如果未能解决你的问题,请参考以下文章
mysql 数据库如何转换到 sql sever的数据库格式
将 MS SQL Server 图像数据移动到 MySQL longblob
如何将 Hibernate 从 MySQL 迁移到 SQL Server?