首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将PostgreSQL数据复制到基图斯/格林梅利?

将PostgreSQL数据复制到基图斯/格林梅利?
EN

Database Administration用户
提问于 2021-02-04 12:44:31
回答 2查看 645关注 0票数 0

我需要在数据仓库中集成来自3个不同PostgreSQL数据库(OLTP应用程序后端)的数据。对于数据仓库本身,我考虑使用Citus或Greenplum。有一项要求,即来自应用程序的数据必须与数据仓库尽可能接近实时地同步(延迟3-5分钟以上的所有内容都是不可接受的,实时复制将是最好的)。在这方面,我有以下问题:

  1. Postgres逻辑复制会与Citus一起工作吗?Citus是Postgres的扩展,你能把它当作一个普通的Postgres数据库吗?如果是,那么逻辑复制理论上应该工作,但是它如何处理分布式表呢?
  2. 格林梅利是一个Postgres叉子,那么Postgres逻辑复制会与它一起工作吗?我还读到,Greenplum没有针对OLTP工作负载进行优化,这是否意味着当我尝试将OLTP数据摄入其中时,它就会崩溃呢?
  3. 如果逻辑复制不能工作,那么如何从Postgres流数据?我是否需要将逻辑级别的WAL流到Kafka中,然后编写自定义逻辑将其转换为目标数据库上的SQL语句?有什么工具吗?

额外的问题:是否有人有使用过Citus和Greenplum的经验,特别是他们的SQL限制?我知道CTEs不完全支持相关的子查询和递归的CTE,Greenplum有类似的限制吗?

我希望能在这些问题上提供任何帮助,我试着在谷歌上搜索,但很少或根本没有关于这个问题的信息,你能至少给出一些方向吗?

EN

回答 2

Database Administration用户

发布于 2021-02-05 17:41:05

经过一番研究,我终于想出了一个答案。感谢@a_horse_with_no_name为我指明了正确的方向。

使用Kafka可以实现不同数据源之间的实时同步。

Kafka Connect允许通过Source连接器将各种系统的数据发送到Kafka集群,并使用Sink连接器从Kafka读取数据。所有用于从系统获取数据到Kafka或将数据从Kafka传输到系统的特定平台代码都由特定连接器的维护人员抽象出来。

连接器维护人员通常会尊重Sinks和Sources之间的某种“契约”,即他们将事先就一种标准化消息格式达成一致,该格式允许使用不同的源和PostgreSQL (例如,您可以同时使用一个Neo4J源和Elasticsearch &Neo4J Sinks,尽管它们有完全不同的范例)。

对于将Postgres与C塔斯/格林梅同步的情况,应该可以通过Debezium PostgreSQL Source连接器和JDBC连接器来实现( Citus和格林梅都支持JDBC )。

票数 1
EN

Database Administration用户

发布于 2022-01-13 00:36:25

经过研究,我发现最新的格林梅利数据库版本6.19使用Postgres版本9.4提交。只有在Postgres版本中,9.5+才可以在冲突中使用JDBC接收器连接器的插入模式。因此,只有在JDBC连接器的"insert.mode“属性中插入和更新模式是可能的。

@Denis能否提供一些关于如何设置JDBC接收器连接器的详细信息?特别是,我对带水槽连接器的格林梅鞋帮感兴趣。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/284696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档