我的团队正在考虑开发一个从数据库读取的实时应用程序(一堆图表、仪表等)。在后端,我们有一个大容量的 Teradata 数据库。我们预计其他一些应用程序会不断地将数据输入到这个数据库中。现在我们想知道如何将数据库中的更改输入到应用程序中。在我们的案例中,从应用程序轮询不是一个可行的选择。
Teradata 中是否有任何可用的工具可以帮助我们实现这一目标?
对此的任何指示将不胜感激
Are triggers with stored procedures an option?
CREATE TRIGGER dbname.triggername
AFTER INSERT ON db_name.tbl_name
REFERENCING stored_procedure
Theoretically speaking, you can write external stored procedures which may call UDFs written in Java or C/C++ etc which can push the row data to your application in near real time.
有一个来自wiseforce 的变更数据捕获工具。 http://www.wisdomforce.com/resources/docs/databasesync/DatabaseSyncBestPracticesforTeradata.pdf
在这种情况下它可能会起作用
我们面临类似的要求。但在我们的案例中,客户要求我们提供对采购订单表的每日更改。这意味着我们必须每天运行一批脚本来捕获表中发生的变化。
所以我们开始每天收集数据,并将数据以稀疏的历史格式存储在另一个表中。所以这里的过程很简单。我们在历史表中收集第一天日期的采购订单详细记录。然后第二天,我们将第二天的提要记录与历史记录进行比较,并确定该记录中的任何更改。如果采购订单记录列发生变化,我们会收集该记录并将其保存在最终报告表中,该报告表将显示给客户。
如果您每天运行一次批处理脚本,并且一天内对记录的更改不止一次,那么此方法无法为您提供全部更改。为此,您可能需要根据您的要求每天多次运行批处理脚本。
如果您找到任何其他解决方案,请告诉我们。希望这可以帮助。