【问题标题】:google bigquery extract compression not work nowgoogle bigquery 提取压缩现在不起作用
【发布时间】:2019-02-02 15:21:57
【问题描述】:

我正在通过使用提取作业将 bigquery 表提取到 google clous 存储。

带压缩:'GZIP' 选项

但它不起作用。

它在 gcs 中被提取为平面 csv 文件。不是 gzip 文件。

它昨天工作。

但今天不工作。

【问题讨论】:

  • 嗨。如上所述,我的 api 遇到了类似的问题,但我能够找到问题的根源。通过 api(或 UI)将 BigQuery 表移动到 Google 云存储桶在压缩部分可以正常工作。但是,当我使用 blob.download_to_file 将谷歌云存储中的文件下载到我的服务器时,它会解压缩为 zip 格式。同样,直到今天,我的 ETL 脚本运行良好一年多(总是收到存储桶上的任何内容,而不是解压缩文件)
  • 嘿,我认为这应该报告给谷歌本身,因为它太奇怪了。当我在 UI 上下载位于我的 Google 云存储桶中的 gzip 文件时,当我在我的网络浏览器上下载文件时,它会解压缩这些文件。除了文件比我存储桶上的文件大之外,我的未压缩软件无法识别该文件,只有在我删除文件格式“gz”后,我才能在记事本上打开它。 Google 是否对从 Google 云存储桶下载文件进行了核心更改?
  • 看来我从 BigQuery 生成的文件现在的格式可以让 Google 云存储进行解压转码cloud.google.com/storage/docs/transcoding

标签: google-bigquery


【解决方案1】:

正如所评论的,这是由于 GCS 的decompressive transcoding。我认为 BQ 压缩导出最终未压缩是一个错误。我们会看看他们是否会在白天改变它。

解决方法:重置标题

gsutil setmeta -h "Content-Encoding: "gs://bucket_name/path/*.gz

公共跟踪器:https://issuetracker.google.com/issues/113252895

【讨论】:

    【解决方案2】:

    我今天遇到了同样的问题。似乎 Google BigQuery 现在默认将文件保存在 Google 云存储桶中,尽管它们在您的存储桶中被压缩,但允许从它们的文件元数据中用于 Google 云存储在下载它们时解压缩它们(也称为解压缩转码)。我找到了解决问题的方法,不是来自 BigQuery api,而是来自云存储 api。

    在我跑步之前:

    blob.download_to_file(file name)

    我使用:

    blob.cache_control = ‘no-transform’

    这似乎解决了我的问题。顺便说一句,上面的解决方案是针对Google-Cloud-Python。您的工具可能有所不同,但我希望我能帮助到某人。其他工具可能与我正在使用的工具有类似的解决方案,所以这可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多