【问题标题】:Exporting Tables from BigQuery with compressed AVRO使用压缩的 AVRO 从 BigQuery 导出表
【发布时间】:2018-07-24 15:03:32
【问题描述】:

我正在尝试将 Big Query 导出到 Cloud Storage 功能以节省一些钱。需要的是压缩 AVRO 中的导出以保留模式,并在需要时能够在 Big Query 上再次导入它们。因为 Big Query 对未压缩大小的数据收费,而我的数据高度冗余, 所以它应该减少多达 20 倍的压缩。

在 UI 界面上,导出到 AVRO 时没有压缩选项。所以我认为这将是默认情况下,但事实并非如此。它在不压缩的情况下导出 AVRO,这对我来说毫无意义,因为文件将与表的大小相同,并且将其保存在 Big Query 和 Cloud Storage 中的成本相同。

https://cloud.google.com/bigquery/docs/exporting-data

没有任何相关信息。

任何人都知道是否有另一种方法,而不是在集群上导出和加载以转换为压缩的 AVRO 并再次保存而不保存云存储?

【问题讨论】:

    标签: google-bigquery google-cloud-storage


    【解决方案1】:

    所以经过大量研究后,一位朋友发现查找 Big Query 库的 python 代码,有一些未记录的 AVRO 压缩选项可以传递给 API:DEFLATE 和 SNAPPY

    之后我也在:https://developers.google.com/resources/api-libraries/documentation/bigquery/v2/java/latest/com/google/api/services/bigquery/model/JobConfigurationExtract.html#setCompression-java.lang.String-

    我认为是新的,还没有文档,还没有出现在WEB界面上。

    我测试了它并且可以工作!我的一张表,未经压缩的导出是 2.8GB 的​​ AVRO 文件,现在 DEFLATE 为 170MB。

    【讨论】:

    • 没错,BigQuery 中压缩 Avro 文件的可用选项是直接在 bq 命令中使用 DEFLATESNAPPY 选项-线。这个link已经提供了Avro export details官方文档提到这个方面。
    【解决方案2】:

    我认为是新的,还没有文档

    AVRO 的 DEFLATE 和 SNAPPY 压缩记录在 configuration.extract.compression

    你也可以在 bq 命令行中看到它

    bq help extract
    

    尚未进入WEB界面

    是的。 BigQuery UI 中不提供 AVRO 的压缩选项 - 经典 UI 和新 UI

    应该可以在 API 和 bq 命令行以及任何已经为 AVRO 实现压缩的客户端库中使用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多