如何在greenplum中实施CDC?
Posted
技术标签:
【中文标题】如何在greenplum中实施CDC?【英文标题】:How do implement CDC in greenplum? 【发布时间】:2016-06-05 07:59:19 【问题描述】:我们有少量的 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)
我们也尝试使用 Link 来理解:
同样,我尝试了大约十几个 Talend 的链接。但它要求发布/订阅机制,仅在 SQL Server CDC 功能开启时支持。 因此无法以 talend 的方式做到这一点。
https://www.pivotalguru.com/?page_id=35
有什么方法可以在 gpdb 中使用 SQL 实现增量加载而不是完全加载。 和 有什么方法可以将 SQL SERVER DDL 语法转换为 Greenplum。
是否有在 gpdb 中实施 CDC 的分步文档或指南?
任何帮助将不胜感激?
【问题讨论】:
【参考方案1】:外包商做 CDC,它是开源的。您可以使用 Outsourcer 或查看代码以查看它是如何完成的,然后使用您自己的代码重新创建它。
Outsourcer Replication
Source Code
【讨论】:
这将是一个很棒的机制。它也适用于 hawq 吗?我也搜索过,但是否有任何实时演示。 CDC 使用 HAWQ/GREENPLUM。 外包商与 HAWQ 一起工作,但复制/CDC 不行。由于 HDFS,CDC 需要能够从 HAWQ 不支持的表中删除。我很快就会整理一个外包复制的快速演示。 乔恩这是不可思议的事情。我的意思是,您所做的对使用满负荷并希望转向增量负荷的人非常有帮助。谢谢你。 @vickps 谢谢!我刚刚创建了一个使用 Outsourcer Replication 的演示,现在可以在我的网站上使用它。 pivotalguru.com 请在聊天部分以上是关于如何在greenplum中实施CDC?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 CICD 在 Elastic Beanstalk 环境中实施蓝绿部署
如何在 Android 和 iPhone 的移动应用程序中实施推荐计划