代码之家  ›  专栏  ›  技术社区  ›  UnDiUdin

有没有一个免费的图形用户界面工具可以在数据库之间进行数据同步,以便编写规则脚本?

  •  2
  • UnDiUdin  · 技术社区  · 14 年前

    我需要做的是两个数据库之间的一些数据。源可以是任何内容(逗号分隔的文件、XLS文件、任何数据库等),目标是MS SQL Server。

    我不需要同步所有数据,只需要同步特定的表。

    例子:

    我需要将会计软件(在PostgreSQL上运行)客户表与CRM(在SQL Server上运行)同步。

    此工具应该能够面对的一些问题:

    1)会计软件客户表有1个字段未映射到CRM客户表中。(这样,我想将这个额外字段映射到字段customers\u data.extra\u字段)

    2)有一些规则(比如只同步代码在10000到99999之间的客户)

    3)允许执行一些插入后任务(例如,我使用手动管理的seuqences来处理tanble id,因此在插入10个记录之后,我需要在序列中添加10个记录)

    4)具有异常处理机制,因此如果有问题,它可以调用SQL Server存储过程(我已经有了,它将向我发送电子邮件),或者简单地发送一条消息,通知夜间同步中有问题。

    5)易于安排何时执行数据同步(每小时、每天,包括手动)

    6)执行数据转换:如果源表中的姓氏字段是varchar(20),而目标表中的姓氏字段是varchar(15),我想显式地说“执行截断”。

    7)有不同的插入或更新规则。例如,在源电子邮件字段中不存在,但我想将其填充到目标中,我决定仅在插入时执行此操作,而不在更新时执行此操作。(例如,当我插入一个新客户时,我想填充连接名称和姓氏的电子邮件字段,但随后我想让用户修改它,第一次插入只是为了简化数据输入,然后手动处理这个特殊情况。所以我想说(在插入填充电子邮件字段时,在更新时,不要对电子邮件字段做任何操作)

    8)在源数据库中删除时,不要在目标数据库上删除,只需将varchar(10)状态更改为已删除。

    注意:我知道集成服务非常适合这样做,但我必须支持Express版本,因此不能选择SSIS。

    我创建了一系列脚本和预定的存储过程,这些脚本和存储过程目前可以满足我的需要,但是维护起来非常困难,而且完全没有GUI会使工作慢得多。我记得看到过 TALEND 以前,也许这个工具也是我需要的ANSWR,不管怎样,我需要向管理层提供一个快速的答案,所以我现在没有时间去调查市场上的所有工具,我更愿意从专家那里得到建议。

    2 回复  |  直到 13 年前
        1
  •  1
  •   Brett Rossier    13 年前

    我相信SQL Server集成服务可以做到这一切,我相信SQL Server Management Studio允许您创建和打包SSIS作业,以便将它们部署到其他地方。

        2
  •  1
  •   UnDiUdin    13 年前

    最后我选择了Talend,我从来没有真正使用过SSIS,我只是在一个SQL Server会议上看到了它的实时演示。不管怎样,Talend是一个免费的SSIS替代品(而且非常丰富),因此它将满足所有客户的需求,包括那些拥有SQL Server Express的客户(95%)。