无法从 BigQuery 作业连接到 Cloud SQL Postgres



我无法使用从Google BigQuery到Google Cloud SQL Postgres的联合查询功能。Google最近宣布了BigQuery的联合查询功能,该功能处于测试状态。

我使用文档中描述EXTERNAL_QUERY语句,但无法连接到我的 Cloud SQL 实例。例如查询

SELECT * FROM EXTERNAL_QUERY('my-project.europe-north1.my-connection', 'SELECT * FROM mytable;');

SELECT * FROM EXTERNAL_QUERY("my-project.europe-north1.pg1", "SELECT * FROM INFORMATION_SCHEMA.TABLES;");

我收到此错误:

Invalid table-valued function EXTERNAL_QUERY Connection to PostgreSQL server failed: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.

有时错误是这样的:

Error encountered during execution. Retrying may solve the problem.

我已按照第 https://cloud.google.com/bigquery/docs/cloud-sql-federated-queries 页上的说明操作并启用了 BigQuery Connection API。一些文档对EXTERNAL_QUERY使用不同的引号("或"或"(,但所有变体都以相同的结果结尾。

我在堆栈驱动程序 postgres 日志中看不到任何错误。如何更正此连接错误?任何建议如何进一步调试它?

只是为仅使用私有 IP 云 SQL 实例的人增加了另一种可能性。我刚刚遇到过这种情况,想知道为什么在确保其他一切看起来都正确后它仍然不起作用。根据文档(截至 2021 年 11 月 13 日(:"BigQuery 云 SQL 联合仅支持具有公有 IP 连接的云 SQL 实例。请为云 SQL 实例配置公共 IP 连接。

我刚刚尝试过,就 bigquery 查询在欧盟运行而言,它可以工作(截至今天 10 月 6 日它有效(。 我的例子:

SELECT * FROM EXTERNAL_QUERY("projects/xxxxx-xxxxxx/locations/europe-west1/connections/xxxxxx", "SELECT * FROM data.datos_ingresos_netos")

只需将第一个xxxxs替换为您的projectid,将最后一个替换为您在bigquery接口中为连接指定的名称(不是cloudsql info,进入查询(

不幸的是,BigQuery 对 Cloud SQL 的联合查询目前仅在美国地区有效(2019 年 9 月(。文件(https://cloud.google.com/bigquery/docs/cloud-sql-federated-queries(说它应该在其他地区也有效,但事实并非如此。

我在欧盟和欧洲北部1多次测试了原始问题的设置,但无法使其正常工作。当我将设置更改为美国或美国中心1时,它可以工作!

对 Cloud SQL 的联合查询处于预览状态,因此该功能正在不断发展。让我们希望谷歌能尽快在其他地区发挥作用。

BigQuery 数据集和 Cloud SQL 实例必须位于同一区域,如果数据集位于多区域位置(如美国和欧盟(,则必须位于同一位置。

根据列出的已知问题仔细检查这一点。

服务器意外关闭了连接 这可能意味着服务器在处理请求之前或期间异常终止。

此消息通常意味着您将在远程数据库服务器的日志中找到更多信息。 没有有用的信息可以发送到"客户端"服务器,因为连接消失了,所以没有办法发送它。 所以你看了远程服务器。

我遇到了同样的错误,这只是一个权限问题。在Connection info部分中,您可以找到用于外部连接的服务帐户,只需为此服务帐户提供BigQuery Connection Service Agent角色即可。

它为我解决了这个问题,希望这对某人有所帮助

检查 BQ 服务帐户是否具有 BigQuery 连接服务代理角色。对我来说,SA权限丢失了。一旦我修复了它,它就开始为我工作

相关内容

  • 没有找到相关文章

最新更新