gpt4 book ai didi

mysql - Sybase 到 MySQL 自动导出

转载 作者:行者123 更新时间:2023-11-29 22:29:14 30 4
gpt4 key购买 nike

我有两个数据库:Sybase 和 MySQL。当这些记录插入 Sybase 或在某些计划事件中导出时,我需要将记录导出到 MySql。我尝试过使用输出语句,但这不能在触发器或过程中使用。有什么建议可以解决这个问题吗?

最佳答案

(免责声明,我以前做过类似的事情,但我绝不会考虑低于最先进水平的答案 - 只是一种可能的方法

谷歌搜索“跨数据库复制”或“跨 RDBMS 复制”等内容,看看谁以前做过这件事。

)。

我首先会看看您是否无法让 ETL 工具在不需要太多工作的情况下完成这项工作。有免费的开源数据库,甚至像 Microsoft SSIS 这样的东西可能也可以在非 MS 数据库上运行。

如果没有,我会将其分为不同的步骤。

  1. 查找合适的 Sybase 输出命令,用于从一个或多个表中导出行的子集。我所说的子集是指您需要能够添加 WHERE 子句,而不仅仅是执行全表转储。

  2. 使用适当的 MySQL 导入脚本/命令加载从第 1 步获取的数据。您可能需要在两者之间来回循环,直到找到可以手动工作的东西。

  3. 编写 Sybase 触发器以将查找键插入到要导出的表中。您希望至少存储每个插入行的表名和源 Sybase 表的键。使用 key1_char、key2_char 等列名称,而不是实际的列名称,这样可以更轻松地根据需要扩展到其他源表。 使触发处理尽可能简单。顺便说一句,更新怎么样?

  4. 在 Sybase 端编写一个计划批处理,为 #3 中标记的行运行步骤 #1。

  5. 在 Mysql 上编写一个计划批处理,通过 #2 导入 #4 的结果。或者从#4开始。

另一种方法是根据需要执行 #3 标记位,但用于驱动一个计划批处理,该批处理从 Sybase 中选择数据并将其直接插入到 mysql 中。

您必须从 Sybase 的 SELECT 中获取数据并将其手动绑定(bind)到 mysql 的 INSERT。但您可能可以更好地控制正在发生的事情,并且不必同时处理两个批处理。我认为聪明的 ETL 已经在为您做这件事了。任何半聪明的脚本语言,如 php、python 或 ruby​​ 都应该可以轻松处理它。如果您有代理/自动生成的 key 之类的东西,这一点尤其重要。

请记住,在这两种情况下,您都必须删除已成功插入的要导出的行,或者将它们标记为已完成。

关于mysql - Sybase 到 MySQL 自动导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29957045/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com