postgresql 通过私有IP将Datastream连接到Cloud SQL postgres:即使它们在同一个项目中,我也需要反向代理吗?

kwvwclae  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(147)

我的目标应该是非常直接的:我有一个在Cloud SQL中运行的PostgreSQL,并希望使用Datastream将数据传输到同一项目中的Big Query,最好是通过私有IP连接。
我已经使用私有IP设置了数据库,在Datastream中创建了一个私有连接,该连接具有数据库VPC上的可用IP范围,并使用正确的凭据设置了一个连接配置文件。
现在我得到的只是一个超时,当我测试连接时,有点难以调试。
我也试过启用防火墙规则来接受流量,结果是一样的。(在这种情况下有必要创建防火墙规则吗?)
起初我以为只有从GCP项目外部或其他网络连接时才需要反向代理。在这种情况下我真的需要它吗?当它们在同一个GCP项目中时,它们不应该是可访问的吗?
完成这项工作所需的大量工作和配置让我相信我做错了什么,或者没有遵循最佳实践。由于这无疑是Datastream/GCP功能的核心部分,我想有一种更简单、更容易维护的方法?我正在设置多个数据库来将分析数据传输到Big Query,因此最大限度地减少每个数据库的开销是一个很大的优势。
实现这一点的首选方式是什么?
附带问题:除了Datastream之外,是否还有其他将数据从Cloud SQL传输到Big Query的首选方法/最佳实践?在Cloud SQL配置中,我看到选项“启用私有路径:允许其他Google Cloud服务(如BigQuery)通过私有IP访问数据并进行查询”,但我找不到太多关于这是什么以及如何使用它的文档。

ego6inou

ego6inou1#

即使它们在同一个项目中,我也需要反向代理吗?
是的,不幸的是,我认为你需要设置一个“反向代理”或中间虚拟机,即使在同一个项目的VPC网络。
x1c 0d1x的数据
the docs中说明的原因是:
当您将Cloud SQL for PostgreSQL示例配置为使用私有IP地址时,您将在您的VPC网络与Cloud SQL示例所在的底层Google服务的VPC网络之间使用VPC对等连接。(上图中的Cloud SQL蓝色方块)
由于Datastream的网络(图中的Datastream蓝色矩形)无法直接与Cloud SQL的私有服务网络对等,并且由于VPC对等不可传递,因此需要Cloud SQL的反向代理来桥接从Datastream到Cloud SQL示例的连接。”
基本上这意味着,由于Cloud SQL是托管服务,使用自己的“Cloud SQL”保护的VPC,Datastream是托管服务,使用自己的“Datastream”VPC,因此会导致可传递的VPC对等冲突。为了解决此可传递性问题,必须建立中间客户端/代理来转发流量。
除了Datastream之外,是否还有其他将数据从Cloud SQL传输到BigQuery的首选方法/最佳实践?
这取决于“传输数据”的用例或含义,因此让我尝试并展示选项/产品。
首先问问你自己,你是下面哪种用例?

a)您希望将数据从Cloud SQL Postgres实时传输到BigQuery,以便数据也驻留在BigQuery中
**B)**是否将Cloud SQL数据读入BigQuery进行分析?

如果您是选项a),则是Datastream作为您的产品/功能的原因。Datastream是一种更改数据捕获(CDC)和复制服务,可以让您可靠地同步数据,而且延迟最小。基本上,当数据添加到Cloud SQL Postgres时,它将几乎真实的同步并复制到BigQuery中-这样做的好处是BigQuery数据将被一致地更新,而不需要您做额外的工作。
如果您是Option B),并且希望快速将数据从Cloud SQL读取到BigQuery中进行分析,并且希望数据完全驻留在Cloud SQL中,则Datastream可能会产生太多开销。Cloud SQL Federated Queries允许您将Cloud SQL数据读取/查询到BigQuery中,可能是一个可能的选项。选择Google Cloud服务的私有路径复选框为专用IP云SQL示例启用这些联合查询,如Connect Cloud SQL to BigQuery docs中所述。

相关问题