我想在源SQL基础数据库和目标TripleStore之间实现同步。
然而,为了简单起见,简单地说2个数据库。我想知道在目标数据库中复制源数据库的每个更改的方法。更具体地说,我希望每当源数据库中的某些行发生更改时,可以通过一个进程看到这一点,该进程将读取更改并相应地填充目标数据库,同时在中间应用一些转换。
我已经看到了关于通知机制的建议 可以在数据库中使用,也可以构建表以便更改 被跟踪(意味着手动完成)并让进程轮询它 在不同的时间间隔,或使用日志(更改数据捕获, 等...)
我对这一切感到非常困惑。我想知道是否有人可以针对我的目标给出一些指导和解释。含义:方法名称和查找位置。
我的组织主要使用:Postgres和Oracle数据库。
我必须获取关系数据并在RDF中对它们进行转换,以便将它们存储在三元组中,并使该三元组不断与数据同步,即SQL Store。
请,
非常感谢
PS:
对于ETL和复制技术之间的澄清,如变更数据捕获,就我的总体目标而言,我们将不胜感激。
我需要再次理解这个主题,知道什么是方法,所以我可以进一步开始挖掘自己。到目前为止,我已经明白CDC是一种新的方式。
答案 0 :(得分:2)
假设您无法使用复制,并且您需要使用某种ETL过程来实际提取,转换并加载对目标数据库的所有更改,您可以使用插入,更新和删除触发器来填充(手动)创建)审计表。列GeneratedId,TableName,RowId,Action(插入,更新,删除)和布尔值,以确定您的ETL进程是否已处理此更改。使用该表获取数据库中所有已更改的行并将它们传输到目标数据库。然后从审计表中删除已处理的行,以使其不会变得太大。您必须运行ETL过程的频率取决于源数据库中发生的更改量。