首页 > 解决方案 > BigQuery:从 Coldline Cloud Storage 类查询 parquet 文件作为外部数据源的定价

问题描述

BigQuery 允许查询各种存储类中的外部表,包括 Coldline。从 Coldline 访问数据需要支付数据检索费用

Parquet 格式文件提供列式存储。通过 BigQuery 从 Coldline GCS 访问 Parquet 格式文件时,数据检索成本是基于查询的数据列还是整个 Parquet 文件?

标签: google-bigquerygoogle-cloud-storageparquet

解决方案


为了首先解决您问题的简单部分,BigQuery仅根据为所有需要读取的文件读取的列的逻辑(未压缩)大小收费。如果您在具有 1M 行的文件中读取整数字段“foo”,您将被收取 8MB 的费用(每个 int 8 字节 * 行数)。

如果由于 Hive 分区修剪或 Parquet 标头包含说明该文件对于查询不是必需的信息而可以跳过文件,则扫描该文件不收取任何费用。

您问题的另一部分是关于从 Coldline 读取的计费。如果您在 BigQuery 中从冷线读取,则无需为冷线读取付费。也就是说,请不要指望这种情况会长期存在。谷歌内部正在讨论如何填补这个漏洞。

将来,冷线读取收费时,很可能是这样:运行查询所需的物理字节总量将被计费。

Parquet 文件具有包含文件元数据的标题,然后是具有自己的元数据的块和列。要读取 parquet 文件,您需要读取文件头、块头和列。根据过滤器的不同,某些块可能是可跳过的,在这种情况下,您将不会为此付费。另一方面,某些查询可能需要多次读取同一个文件(例如自连接)。然后,物理读取大小将是每次读取文件时读取的所有字节的总和。


推荐阅读