BigQuery 是一个可扩展的 PB 级数据仓库,以其高效的结构化查询语言 (SQL) 功能而闻名。虽然 BigQuery 提供卓越的性能,但成本优化仍然是任何基于云的服务的一个关键方面。为优化存储成本,Google Cloud 于 7 月 5 日正式发表物理字节存储计费(PBSB)功能。

挑战

在当今的商业环境中,我们看到大型企业在 BigQuery 数据仓库中积累了大量数据(通常以 PB 为单位)。这些数据对于执行全面的业务分析和提取有价值的见解至关重要。然而,相关的存储成本可能很高,有时每年超过数百万美元。因此,最大限度地减少这些存储费用已成为众多出海企业所面临的主要挑战之一。

解决方案

默认情况下,在 BigQuery 中创建数据集时,存储计费的消耗单位是逻辑字节。然而,随着物理字节存储计费的引入,客户可以利用物理字节功能实现数据压缩,从而在节省成本的同时,也不会影响数据可访问性或查询性能。

为了解决 BigQuery 数据仓库存储成本高的挑战,Google Cloud 实施了一种两步方法,利用新引入的物理字节存储计费选项:

第一种方法:在 PBSB 和 LBSB 之间进行 BigQuery 成本效益评估 Google 提供了一个示例,说明如何使用此查询计算数据集级别的价格差异。

运行上例中的查询会产生下表中的以下详细信息:

在此示例中,第一个数据集展示了令人印象深刻的主动和长期压缩比,范围为 16 到 25。因此,存储成本显著降低了 8 倍,导致每月成本从 70,058 美元大幅下降到8,558 美元。

然而,本次测试中的最后一个数据集使用了接近 11 TB 或用于时间旅行的所有活动物理存储数据的 96%。这不适合 PBSB。

在评估过程中,我们观察到存在“_session”和“_scripts”行,由于 10 MB 的限制,这可能会阻碍 CSV 文件下载。“_session”对象对应于 BigQuery 会话中生成的临时表,而“_scripts”对象对应于 BigQuery 会话中生成的临时表。'' 对象属于作为存储过程或多语句查询的一部分生成的中间对象。这些对象按逻辑字节计费,用户无法将其转换为物理字节。为了解决这个问题,客户可以通过使用以下子句修改查询来忽略它们:

where total_logical_bytes > 0 AND total_physical_bytes > 0 AND table_schema not like '_scripts%' AND table_schema not like '_session%'. [2, 7, 8]

第二种方法:针对合适的数据集改用物理存储计费。客户必须记住,在您的组织的所有统一费率承诺不再有效之前,他们将无法注册用于物理存储计费的数据集。

更新数据集计费模型的最简单方法是使用 BigQuery (BQ) 更新命令并将 storage_billing_model 标志设置为 PHYSICAL.

例如:

bq update -d --storage_billing_model=PHYSICAL PROJECT_ID:DATASET_ID

更改数据集的计费模型后,更改需要 24 小时才能生效。优化存储成本时要考虑的另一个因素是时间旅行。

时间旅行允许客户查询更新或删除的数据、恢复已删除的表或恢复过期的表。默认时间旅行窗口涵盖过去 7 天,您可以使用 BQ 命令行工具对其进行配置,以平衡存储成本与数据保留需求。这是一个例子:

bq update --dataset=true --max_time_travel_hours=48 PROJECT_ID:DATASET_NAME

此命令将指定数据集的时间旅行窗口设置为 48 小时(2 天)。

“--max_time_travel_hours 值必须是 48(2 天)到 168(7 天)之间的整数,以 24(48、72、96、120、144、168)的倍数表示。”

注意事项

切换到物理存储计费模型有一些考虑因素。下表显示了定价:

根据上表中的价格表,客户应考虑以下事项:

  • 根据 BigQuery 存储定价,物理存储计费单价是逻辑存储计费单价的两倍。
  • 如果压缩比小于 2,客户将无法从其数据集的 PBSB 中受益。
  • 在 LBSB 中,客户无需为用于时间旅行存储的字节付费,但在 PBSB 中,您需要为此付费,使用故障安全时也是如此。
  • 为确保准确评估,建议在 BigQuery 工作负载达到稳定状态并建立可预测模式后对时间旅行存储利用率进行评估。这很重要,因为用于时间旅行存储的字节可能会随着时间的推移而变化。
  • 客户可以根据特定的数据保留要求灵活配置时间旅行窗口,同时考虑存储成本。例如,客户可以自定义时间旅行窗口,将其从默认的 7 天调整为更短的持续时间,例如 2 天。
  • 客户将强制执行 7 天的故障安全期,在此期间无法修改时间旅行设置。然而,一旦该期限结束,客户可以根据自己的喜好灵活配置额外的时间旅行天数。此可配置范围从 2 天延伸到 7 天,允许客户建立跨度为 9 到 14 天的有效时间旅行窗口。如果不采取任何措施,默认时间旅行窗口将保持为 14 天。
  • 每次更改计费模型,均须等待 14 天。



返回全部