如何实现ETL过程

时间:2014-12-16 06:42:34

标签: etl

我想在源SQL基础数据库和目标TripleStore之间实现同步。

然而,为了简单起见,简单地说2个数据库。我想知道在目标数据库中复制源数据库的每个更改的方法。更具体地说,我希望每当源数据库中的某些行发生更改时,可以通过一个进程看到这一点,该进程将读取更改并相应地填充目标数据库,同时在中间应用一些转换。

  

我已经看到了关于通知机制的建议   可以在数据库中使用,也可以构建表以便更改   被跟踪(意味着手动完成)并让进程轮询它   在不同的时间间隔,或使用日志(更改数据捕获,   等...)

我对这一切感到非常困惑。我想知道是否有人可以针对我的目标给出一些指导和解释。含义:方法名称和查找位置。

我的组织主要使用:Postgres和Oracle数据库。

我必须获取关系数据并在RDF中对它们进行转换,以便将它们存储在三元组中,并使该三元组不断与数据同步,即SQL Store。

请,

非常感谢

PS:

对于ETL和复制技术之间的澄清,如变更数据捕获,就我的总体目标而言,我们将不胜感激。

我需要再次理解这个主题,知道什么是方法,所以我可以进一步开始挖掘自己。到目前为止,我已经明白CDC是一种新的方式。

1 个答案:

答案 0 :(得分:2)

假设您无法使用复制,并且您需要使用某种ETL过程来实际提取,转换并加载对目标数据库的所有更改,您可以使用插入,更新和删除触发器来填充(手动)创建)审计表。列GeneratedId,TableName,RowId,Action(插入,更新,删除)和布尔值,以确定您的ETL进程是否已处理此更改。使用该表获取数据库中所有已更改的行并将它们传输到目标数据库。然后从审计表中删除已处理的行,以使其不会变得太大。您必须运行ETL过程的频率取决于源数据库中发生的更改量。