首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在谷歌BigQuery中流式传输PostgreSQL表

问在谷歌BigQuery中流式传输PostgreSQL表
EN

Stack Overflow用户
提问于 2021-04-01 17:12:34
回答 3查看 1.1K关注 0票数 2

我想自动将数据从外部PostgreSQL数据库传输到我的GCP帐户中的Google Cloud Platform BigQuery数据库。到目前为止,我已经看到可以使用EXTERNAL_QUERY()函数查询外部数据库(MySQL或PostgreSQL),例如:https://cloud.google.com/bigquery/docs/cloud-sql-federated-queries

​

​

但要实现这一点,数据库必须位于GCP Cloud SQL中。我试图查看从外部PostgreSQL流到Cloud SQL PostgreSQL数据库有哪些选项,但我只能找到有关以一次性副本复制它的信息,而不是流:https://cloud.google.com/sql/docs/mysql/replication/replication-from-external

我之所以想要这个流到BigQuery,是因为我正在使用Google Data Studio从外部PostgreSQL创建报告,这很好用,但是只有来自Google BigQuery数据库的SQL查询参数才能接受。例如,如果我们有一个包含1M个条目的表,并且我们希望用户添加一个Google Data Studio参数,这将变成一个:

SELECT * from table WHERE id=@parameter;

这意味着查询速度会更快,并且不会达到Google Data Studio中100K记录的限制。

在外部PostgreSQL (只读访问)和谷歌BigQuery之间创建连接的最佳方式是什么,以便在通过BigQuery查询时,可以获得与查询外部PostgreSQL相同的实时结果?

EN

回答 3

Stack Overflow用户

发布于 2021-04-08 18:03:33

也许你错过了谷歌云用户指南中提到的选项?

https://cloud.google.com/sql/docs/mysql/replication/replication-from-external#setup-replication

请注意,在本节中,它说:

在设置复制设置时,还可以决定云SQL副本在初始导入完成后是否应与源数据库服务器保持同步。应保持同步的副本处于联机状态。仅更新一次的副本处于脱机状态。

我怀疑在线模式就是你要找的。

票数 4
EN

Stack Overflow用户

发布于 2021-04-14 02:26:00

你正在寻找的东西将需要一些基于你的需求的架构设计和一些编码。没有自动将PostgreSQL数据库与BigQuery同步的功能(除了EXTERNAL_QUERY()功能有一些限制-每个数据库1个连接-性能-连接总数等)。

如果您不是在寻找实时数据,您可以使用Airflow,例如,让DAG每天连接到所有数据库一次(例如使用KubernetesPodOperator ),提取数据(从前一天)并将其加载到BQ中。一个典型的ETL进程,但在本例中更多的是EL(T)。如果您不能等待前一天的数据,则可以更频繁地运行此过程。

另一方面,如果流是您正在寻找的,那么我可以考虑数据流作业。我想您可以使用JDBC连接器进行连接。

此外,根据管道结构的不同,如果在写入PostgreSQL DB的同时还将数据流式传输到BigQuery中,可能更容易实现(但更难维护)。

票数 0
EN

Stack Overflow用户

发布于 2021-04-16 05:16:25

不确定您是否已经尝试过此操作,但如果您添加了基于维度的下拉过滤器,Data Studio会将其下推到底层Postgres数据库中,而不是添加参数:

SELECT * from table WHERE id=$filter_value;

这应该可以在不经过BigQuery的情况下获得您想要的结果。

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

https://stackoverflow.com/questions/66901681

复制
相关文章

相似问题

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