我的团队正在考虑从数据库中开发一个实时应用程序(一堆图表,仪表等)。在后端,我们有一个高容量的Teradata数据库。我们希望其他一些应用程序能够不断地将数据输入该数据库。 现在我们想知道如何将数据库中的更改提供给应用程序。在我们的案例中,从申请中进行轮询不是一个可行的选择。
Teradata中是否有可以帮助我们实现这一目标的工具?
对此的任何指示都将非常感激
答案 0 :(得分:0)
我们面临类似的要求。但在我们的案例中,客户要求我们提供采购订单表的每日更改。这意味着我们每天必须运行一批脚本来捕获表中发生的更改。
因此,我们开始每天收集数据,并将数据以稀疏历史记录格式存储在另一个表中。所以这个过程很简单。我们在历史表中的第一天的日期收集采购订单详细记录。然后第二天我们将第二天的饲料记录与历史记录进行比较,并确定该记录的任何变化。如果采购订单记录列中有更改,我们会收集该记录并将其保存在最终报告表中,该表将显示给客户。
如果您每天运行批处理脚本一次,并且一天内对记录进行多次更改,则此方法无法为您提供完整更改。为此,您可能需要根据您的要求每天多次运行批处理脚本。
如果您找到其他解决方案,请告知我们。希望这会有所帮助。
答案 1 :(得分:0)
来自wisdomforce的变更数据捕获工具。 http://www.wisdomforce.com/resources/docs/databasesync/DatabaseSyncBestPracticesforTeradata.pdf
它可能在这种情况下起作用
答案 2 :(得分:0)
存储过程的触发器是一个选项吗?
CREATE TRIGGER dbname.triggername
AFTER INSERT ON db_name.tbl_name
REFERENCING stored_procedure
从理论上讲,您可以编写外部存储过程,这些过程可以调用用Java或C / C ++等编写的UDF,这些UDF可以近乎实时地将行数据推送到您的应用程序。