每天将数据从 Bigquery 加载到 Postgres 云 sql 数据库

Load data from Big query to Postgre cloud sql database everyday

我有一些表要从大查询加载到 Postgre 云 sql 数据库。我需要每天都这样做并在云中创建一些存储过程 sql。每天将表从大查询加载到云 sql 的最佳方法是什么?传输数据和保持云 sql 24/7 运行有哪些成本影响?感谢您的帮助。

谢谢, J.

通常,云 SQL 数据库全天候服务于请求。它不是一个有请求就可以启动的无服务器产品。您可以查看定价页面来计算成本(主要是:CPU、内存和存储。根据您的使用情况和预期性能调整数据库大小)

关于流程,我们之前的公司是这样的:

  • 使用云调度程序触发云函数
    • 在 BigQuery
    • 中创建临时 table
    • 将 BigQuery 临时 table 导出到 Cloud Storage 中的 CSV
  • 运行一个Cloud SQL import of the files from GCS临时tables
  • 运行 数据库中请求将导入的数据合并到现有数据,并删除导入数据的table

如果仅在一个函数中执行该操作需要太多时间,您可以使用 Cloud 运行(超时 60 分钟)或调度函数。此函数由 Cloud Scheduler 调用,并将在 PubSUb 中发布一条消息供每个 table 处理。在 PubSub 上,您可以插入一个 Cloud Functions(或 Cloud 运行),它将仅对消息中提到的 table 执行前面的过程。这样,您可以同时处理所有 table,而不是按顺序处理。


关于您将支付的费用

  • BigQuery 查询(您处理以创建临时 table 的数据量)
  • BigQuery 存储(非常低,您可以创建 1 小时后过期(自动删除)的临时 table)
  • Cloud Storage 存储空间(非常低,您可以为文件设置生命周期,几天后删除它们)
  • 文件传输:同地区免费
  • 导出和导入:免费

总而言之,只有 BigQuery 查询和 Cloud SQL 实例是主要成本。