0

我们有少量的 gpdb 和关键的 hadoop。我们正在尝试使用 gpdb 进行 CDC。

我们使用 SQL server 2012 作为外部数据源。我们从客户端的 END 读取了 SQL SERVER 的只读访问权限。因此,SQL 服务器不允许为数据集成工具捕获 CDC 机制。

我们必须在 greenplum 中实施 CDC。这样它每次只带来改变的行而不是满载。这也会给每个批处理作业计划带来 SQL 服务器的负担。

我们尝试了关注 SQL

这是完整的 CDC 查询,它决定每一行的操作

select * from (select *,case when ( a.ID is null) then 'I'
when ( a.ID is not null and  a.SalesOrder = a.SalesOrder and  a.SalesOrderLine = a.SalesOrderLine) then 'N'
when ( a.ID is not null and ( a.SalesOrder != a.SalesOrder or  a.SalesOrderLine != a.SalesOrderLine)) then 'U'
else 'X'
end as increment_action from tablename)

我们还尝试使用 Link 来理解:

同样,我尝试了大约十几个来自 Talend 的链接。但它要求发布/订阅机制,仅在 SQL Server CDC 功能开启时支持。因此无法以talend的方式做到这一点。

https://www.pivotalguru.com/?page_id=35

有什么方法可以使用 SQL 在 gpdb 中实现增量加载而不是完全加载。并且有什么方法可以将 SQL SERVER DDL 语法转换为 Greenplum。?

是否有在 gpdb 中实施 CDC 的分步文档或指南?

任何帮助将不胜感激?

4

1 回答 1

2

外包商做 CDC,它是开源的。您可以使用 Outsourcer 或查看代码以查看它是如何完成的,然后使用您自己的代码重新创建它。

外包商复制

源代码

于 2016-06-06T21:39:45.443 回答