【问题标题】:Just import new data from Cloud SQL into BigQuery?只是将新数据从 Cloud SQL 导入 BigQuery?
【发布时间】:2020-08-18 14:16:42
【问题描述】:

我的情况是:
我想安排从 Cloud SQL 到 BigQuery 的定期数据更新。 Cloud SQL 上表的数据会定期更新,并且可以编辑该表中的旧数据。该表大约有 20 列。

关于更新计划,我想在 Cloud SQL 和 BigQuery 中的表之间进行同步。
如何在 BigQuery 的 CLoud SQL 中添加新数据、更新最近编辑的数据以及删除不再存在的数据?

目前我每次去更新计划时都会使用这种方式来覆盖这个表。
我仍然没有一个很好的解决方案来在查询时保存数据。

【问题讨论】:

    标签: mysql google-bigquery google-cloud-sql


    【解决方案1】:

    为此,您可以在 Big Query 上将 Cloud SQL 设置为 external Data Source。

    这样,数据将在 Big Query 中自动更新,因为它驻留在云 SQL 中。 这实际上会降低您的帐单金额,因为数据不会重复,但是对外部数据源执行的查询比存储在 BigQuery 中的数据要慢一些。

    为此,您可以按照指南 here 进行操作,我正在处理这篇文章中的一般步骤。

    • 启用 BigQuery 连接 API here
    • 确保您的 Cloud SQL 实例具有公共 IP,因为 BigQuery 外部源仅支持公共 IP 连接。
    • 转至:https://console.cloud.google.com/bigquery
    • 点击+添加数据并选择外部数据源(这会在窗口右侧弹出一个菜单)
    • 选择 CloudSQL 类型(MySQL 或 PostgreSQL)
    • 为此连接创建连接 ID
    • 选择连接位置、友好名称和描述
    • 在云 SQL 实例 ID 上复制云 SQL 实例的全名,格式为 project-id:location-id:instance-id
    • 在数据库名称、用户名和密码输入您的 cloudSQL 数据库的登录数据
    • 点击创建连接

    这会将您的云 SQL 实例中的数据链接到 Big Query,这样您就可以使用 BigQuery 马达来分析您的云 SQL 实例中的数据,而无需将数据复制到 BigQuery 并确保它始终处于更新状态。

    【讨论】:

    • 谢谢支持,我现在也在用这个。但我的客户希望将数据存储到 Bigquery 并定期与 Cloud SQL 同步。 BigQuery 中的 1 个表,Cloud SQL 中的 1 个表,下一次更新计划将更新新数据,更新数据,数据从 Cloud SQL 中的此表中删除到 BigQuery 表中。我应该使用 SQL 来加入 2 个表吗?看起来不太好!
    • 对于这种情况,使用云 sql 联合查询而不是在一个地方同步所有数据会很有用,如 cloud.google.com/bigquery/docs/cloud-sql-federated-queries 所示,另外,如果您的客户想要先在 Bq 上插入,然后再同步数据,您可以使用云调度程序对查询进行编程并管理在 bq 上所做的所有更改并与 cloudsql 同步
    猜你喜欢
    • 2020-08-03
    • 2020-10-03
    • 2020-07-02
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 2021-04-11
    • 2021-01-17
    • 1970-01-01
    相关资源
    最近更新 更多