【问题标题】:Move an entire bucket from google cloud storage to BigQuery?将整个存储桶从谷歌云存储移动到 BigQuery?
【发布时间】:2019-09-22 10:05:30
【问题描述】:

从 Google Cloud Storage 到 BigQuery 传输我一直在阅读的文档,我可以看到如何一个一个地加载数据文件。

有没有办法将整个存储桶添加到 BigQuery 中?

文件夹和文件是组织的日志。我们希望根据使用它们的人创建可视化。但首先我们需要将存储桶数据导入 BigQuery...

桶结构如下:

BucketName -> LogDate(例如 20180623)-> 所有单个日志

关于如何做到这一点的任何想法?

【问题讨论】:

标签: google-bigquery google-cloud-functions google-cloud-storage


【解决方案1】:

您可以迭代地load 那些嵌套的日志。例如,如果您的日志是 CSV 格式,则其中包含三个字段:

gsutil ls gs://mybucket/* | grep '.csv' | xargs -I {} bq --location=US load --source_format=CSV mydataset.mytable {} field_a:type_field_a, field_b:type_field_b, field_c:type_field_c

在这里,请注意如何以field_[x]:type_field_[x] 的格式内联指定架构,其中类型可以是 BQ 支持的任何列类型。

【讨论】:

  • 嗨!如果您想将每个 csv 文件放在不同的表中并使用每个 csv 文件的 6 个初始字符命名表,这将如何改变?
【解决方案2】:

您可以在加载过程中使用通配符来实现您想要执行的操作,如 link 中所述

文档的相关部分是这样的:

例如,如果您有两个名为 fed-sample000001.csv 和 fed-sample000002.csv 的文件,则存储桶 URI 将为 gs://mybucket/fed-sample*。然后可以在控制台、经典 UI、CLI 或 API 中使用此通配符 URI。

【讨论】:

  • 所以如果我在上面引用的文件夹路径中有 .log.gz 文件,并且所有文件名都像:20190329U_20190329T1703651Z_465u2f8.log.gz 云存储 URI 会是什么样子?
猜你喜欢
  • 2020-06-16
  • 2021-03-19
  • 2018-10-30
  • 2016-04-26
  • 2017-02-10
  • 2016-01-31
  • 2019-08-24
  • 2021-01-04
  • 2015-03-01
相关资源
最近更新 更多