【问题标题】:Connecting BigQuery to CloudSQL with private IP使用私有 IP 将 BigQuery 连接到 CloudSQL
【发布时间】:2021-05-14 17:03:54
【问题描述】:

我正在尝试使用“外部数据源”将 BigQuery 连接到 CloudSQL Postgres DB。设置连接后,我在 BigQuery 中看到此错误:

Invalid table-valued function EXTERNAL_QUERY
Connect to PostgreSQL server failed: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.
 at [1:15]

我尝试设置一个沙盒项目,但在那里遇到了同样的问题。然后我尝试在 CloudSQL 配置中启用“公共 IP”连接,这似乎解决了沙箱中的问题。

我希望能够在不打开公共 IP 的情况下执行此操作,因为我只想将我的数据保存在我的专用网络中。是否可以按照我描述的方式将私有 IP CloudSQL 实例与 BigQuery 一起使用?

【问题讨论】:

    标签: google-bigquery google-cloud-sql


    【解决方案1】:

    根据documentation,不支持使用私有 IP 的 Cloud SQL 和 Big Query 之间的连接,应该使用公共 IP。

    作为替代方案,您可以添加没有授权地址的公共 IP 连接。

    虽然这不如仅使用私有 IP 安全,但您的实例仍无法从公共互联网访问,并且可以从 BigQuery 进行查询。

    您可以查看有关 Cloud SQL here 的公共 IP 的更多信息。

    【讨论】:

      【解决方案2】:

      检查服务帐户 [1] 在项目中是否具有角色“cloudsql.client”。如果找不到角色“cloudsql.client”的服务帐户,请手动添加服务帐户

      [1] 服务-@gcp-sa-bigqueryconnection.iam.gserviceaccount.com

      原因 - BigQuery 使用内部服务帐号访问 Cloud SQL 实例。此服务帐号是在每个客户项目首次为其 Cloud SQL 实例创建 BQ 连接时为他们创建的。此服务帐户在用户项目中具有 cloudsql.client 角色。如果出于任何原因将此服务帐户从项目中删除,则会遇到权限被拒绝错误。

      【讨论】:

        猜你喜欢
        • 2021-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-25
        • 1970-01-01
        • 2010-09-07
        • 2021-09-03
        • 1970-01-01
        相关资源
        最近更新 更多