Export Bigquery table to gcs bucket into multiple folders/files 对应集群

Export Bigquery table to gcs bucket into multiple folders/files corresponding to clusters

由于加载时间和查询成本,我需要将一个 bigquery table 导出到存储桶中的多个 Google Cloud Storages 文件夹。

我目前使用来自 bigquery python 客户端的 ExtractJobConfig 和通配符来创建多个文件。但是我需要为每个命名法值创建一个文件夹(它在 bigquery table 列中),然后创建多个文件。

table 非常大,不适合(可以,但不是那个主意)ram,它是 1+ Tb。我不能用 python.

虚拟循环

我阅读了很多文档,解析了参数,但我找不到一个干净的解决方案。是否遗漏了什么或没有 google 解决方案?

我的B计划是给我们apache beam和dataflow,但我还没有技能,为了简单和维护,我想尽量避免这种方案。

您有 2 个解决方案:

  • 为每个聚合创建 1 个导出查询。如果您有 100 个命名法值,则查询 100 次 table 并导出目标目录中的数据。问题是成本:您将支付 table.
  • 的 100 处理费用
  • 您可以使用 Apache Beam 提取数据并对它们进行排序。然后,使用动态目标,您将能够创建所需的所有 GCS 路径。问题是它需要 Apache Beam 的技能才能实现它。

你有一个额外的解决方案,类似于第二个,但你可以使用 Spark,尤其是 Spark serverless 来实现它。如果你在 spark 方面比在 apache Beam 方面更熟练,它可能会更有效率。