我们有一小部分gpdb和关键的hadoop。我们正在尝试使用gpdb做CDC。
我们使用SQL Server 2012作为外部数据源。我们只读取客户端END的SQL SERVER访问权限。因此,SQL Server不允许捕获数据集成工具的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)
我们还尝试了解使用链接:
同样,我已经尝试过来自Talend的十几个链接。但是它要求pub / sub机制,它只支持SQL Server CDC功能启用时。 因此无法从talend的方式做到这一点。
https://www.pivotalguru.com/?page_id=35
有没有办法在gpdb中使用SQL实现增量加载而不是满载。 和 有没有办法将SQL SERVER DDL语法转换为Greenplum。?
是否有在gpdb中实施CDC的分步文档或指导?
对此有任何帮助将不胜感激?
答案 0 :(得分:2)
Outsourcer做CDC,它是开源的。您可以使用Outsourcer或查看代码以查看它是如何完成的,并使用您自己的代码重新创建它。