【问题标题】:cost of cloud SQL to BigQuery transfer [closed]云 SQL 到 BigQuery 传输的成本 [关闭]
【发布时间】:2021-03-23 02:27:03
【问题描述】:

我有一个 Cloud SQL 数据库(作为 PostreSQL),我想将副本传输到 BigQuery。这代表 1 Tb 数据(使用云 SQL 存储),超过 100 个表。

我想估算一下这种一次性的大数据传输的成本。当我阅读有关 BigQuery 和 Cloud SQL 定价的 GCP 文档时,我的印象是这是免费的:BigQuery 导入是免费的,而大陆内“其他 Google 产品”的 Cloud SQL 网络出口是免费的。我说的对吗?

另外,我想通过 BigQuery 的“联合查询”确认这是否可行(数据量不会太大),例如循环遍历表以全选并将每个表插入 BigQuery。或任何其他更有效的解决方案。

【问题讨论】:

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


    【解决方案1】:

    通常,如果 BigQuery 和 Cloud SQL 位于同一区域,则此传输操作应该是免费的。如果我是您,我会使用与您的 Cloud SQL 位于同一区域的存储桶作为存储数据的中间位置。只要数据不离开 GCP 网络并且存储在同一区域,导出 Cloud SQL 实例是免费的。

    请注意,如果您从 Cloud SQL 实例执行无服务器导出,Google 将来会向您收取一些费用。我从出口/卸载定价page 中获得了所有这些信息。

    无服务器导出 - 2021 年 2 月 1 日之前免费,此后 0.01 美元/GB 的实例存储容量。

    最简单/最有效的解决方案是创建一个 CSV 导出到存储桶 (source)。然后将该 CSV 文件导入 BigQuery (source)。我认为特别是导出可能需要一段时间,因为它是 1TB,但除此之外,大小应该不是问题。

    【讨论】:

      【解决方案2】:

      联合查询:

      从 BigQuery 查询外部数据源时,您需要为查询读取的字节数付费。

      SELECT *
      FROM
        EXTERNAL_QUERY(
          'connection_id',
          '''SELECT * FROM customers AS c ORDER BY c.customer_id'''
        );
      

      此查询会占用 Cloud SQL 中客户表的所有大小。它对小桌子来说是负担得起的。 1 TB 的费用为 5 美元。

      从 Cloud Storage 加载到 BigQuery

      加载数据是免费的。但这意味着您需要设计一个解决方案来从 Cloud SQL 导出数据,将文件 CSV、JSON 放在 Cloud Storage 上,然后导入 BigQuery。

      结论

      您要么支付每 TB 5 美元的传输成本,要么权衡工作时间并计算编写导出/导入脚本所需的时间。如果编写脚本的每小时费率更高,则选择联邦查询读取和写入临时表。

      【讨论】:

      • BigQuery 最便宜的位置 5 美元。它有时更多,但非常实惠!
      • 为了完整起见,GCS 也会产生存储成本,但如果我们在 BigQuery 导入后将其删除作为清理,我们可以将其舍入为零。
      猜你喜欢
      • 2016-08-10
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 2021-04-24
      • 1970-01-01
      相关资源
      最近更新 更多