我的团队正在考虑开发一个从数据库读取数据的实时应用程序(一堆图表、仪表等)。在后端,我们有一个高容量的Teradata数据库。我们希望其他一些应用程序不断地将数据输入到这个数据库中。现在,我们想知道如何将更改从数据库提供给应用程序。在我们的例子中,从应用程序轮询不是一个可行的选择。
在Teradata中有什么工具可以帮助我们实现这一点吗?
如有任何建议,我们将不胜感激。
发布于 2010-05-06 21:29:39
我们面临着类似的要求。但在我们的示例中,客户要求我们提供对采购订单表的每日更改。这意味着我们必须每天运行一批脚本来捕获表中发生的更改。
因此,我们开始每天收集数据,并将数据以稀疏历史格式存储在另一个表中。所以这里的过程很简单。我们在历史表中收集第一天日期的采购订单详细信息记录。然后第二天,我们将第二天的提要记录与历史记录进行比较,并确定该记录中的任何更改。如果采购订单记录列中有更改,我们将收集该记录并将其保存在最终报告表中,该表将显示给客户。
如果您每天运行一次批处理脚本,并且记录在一天内会有多个更改,则此方法无法提供完整的更改。为此,您可能需要根据您的需求每天运行一次以上的批处理脚本。
如果您找到任何其他解决方案,请让我们知道。希望这能有所帮助。
发布于 2010-07-29 14:45:06
wisdomforce提供了一个变更数据捕获工具。http://www.wisdomforce.com/resources/docs/databasesync/DatabaseSyncBestPracticesforTeradata.pdf
在这种情况下,它可能会起作用
发布于 2015-02-20 20:40:15
带有存储过程的触发器是一个选项吗?
CREATE TRIGGER dbname.triggername
AFTER INSERT ON db_name.tbl_name
REFERENCING stored_procedure从理论上讲,您可以编写外部存储过程,这些存储过程可以调用用Java或C/C++等编写的UDF,从而可以近乎实时地将行数据推送到您的应用程序。
https://stackoverflow.com/questions/2747432
复制相似问题