我希望能够自动地将外部 PostgreSQL 数据库中的数据流式传输到我 GCP 帐户中的 Google Cloud Platform BigQuery 数据库。目前,我已经看到可以使用
SELECT * from table WHERE id=@parameter;
这意味着查询将更快,并且不会达到Google Data Studio的100K记录限制。
创建一个连接外部PostgreSQL(只读访问)和Google BigQuery之间的最佳方法是什么,以便通过BigQuery查询时可以获得与查询外部PostgreSQL相同的实时结果?
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数据库,GDS只能接受SQL查询参数。例如,如果我们有一个包含100万条目的表,并且我们想要用户添加一个Google Data Studio参数,那么这将变成:SELECT * from table WHERE id=@parameter;
这意味着查询将更快,并且不会达到Google Data Studio的100K记录限制。
创建一个连接外部PostgreSQL(只读访问)和Google BigQuery之间的最佳方法是什么,以便通过BigQuery查询时可以获得与查询外部PostgreSQL相同的实时结果?
EXTERNAL_QUERY()
不是正确的方法。与其计划将数据从PostgreSQL移动到CloudSQL,为什么不直接将数据流式传输到BigQuery呢?这并不是一件简单的事情,但是通过适当的Dataflow JOB,您可以做到。也许为了使它更简单,您可以每隔X个小时批处理一次。 - AlvaroEXTERNAL_QUERY
的限制是什么?性能? - 719016