【问题标题】:Teradata Change data captureTeradata 变更数据捕获
【发布时间】:2011-02-14 09:38:31
【问题描述】:

我的团队正在考虑开发一个从数据库读取数据的实时应用程序(一堆图表、仪表等)。在后端,我们有一个大容量的 Teradata 数据库。我们预计其他一些应用程序会不断地将数据输入到这个数据库中。 现在我们想知道如何将数据库中的更改输入到应用程序中。在我们的案例中,从应用程序轮询不是一个可行的选择。

Teradata 中是否有任何工具可以帮助我们实现这一目标?

任何关于这方面的指示将不胜感激

【问题讨论】:

    标签: teradata capture


    【解决方案1】:

    我们面临类似的要求。但在我们的案例中,客户要求我们提供对采购订单表的每日更改。这意味着我们必须每天运行一批脚本来捕获表中发生的变化。

    所以我们开始每天收集数据,并将数据以稀疏历史格式存储在另一个表中。所以这里的过程很简单。我们在历史表中收集与第一天日期相反的采购订单详细信息记录。然后第二天,我们将第二天的提要记录与历史记录进行比较,并确定该记录中的任何变化。如果采购订单记录列发生变化,我们会收集该记录并将其保存在最终报告表中,该报告表将显示给客户。

    如果您每天运行一次批处理脚本,并且一天内对记录的更改不止一次,那么此方法无法为您提供全部更改。为此,您可能需要根据您的要求每天多次运行批处理脚本。

    如果您找到任何其他解决方案,请告诉我们。希望这会有所帮助。

    【讨论】:

    【解决方案2】:

    wiseforce 有一个变更数据捕获工具。 http://www.wisdomforce.com/resources/docs/databasesync/DatabaseSyncBestPracticesforTeradata.pdf

    在这种情况下它可能会起作用

    【讨论】:

      【解决方案3】:

      可以选择带有存储过程的触发器吗?

      CREATE TRIGGER dbname.triggername
      AFTER INSERT ON db_name.tbl_name
      REFERENCING stored_procedure
      

      从理论上讲,您可以编写外部存储过程,这些过程可以调用用 Java 或 C/C++ 等编写的 UDF,可以近乎实时地将行数据推送到您的应用程序。

      【讨论】:

        猜你喜欢
        • 2020-12-04
        • 2013-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多