优化费用:数据库和智能分析

Last reviewed 2023-06-26 UTC

Google Cloud 架构框架中的本文档提供了建议,以帮助您优化 Google Cloud 中的数据库和分析工作负载的费用。

本部分中的指导适用于负责预配并管理云数据库和分析工作负载的架构师、开发者和管理员。

本部分包括针对以下产品的费用优化建议:

Cloud SQL

Cloud SQL 是一项适用于 MySQL、PostgreSQL 和 SQL Server 的全代管式关系型数据库服务。

监控用量

查看监控信息中心上的指标,并验证您的部署是否满足工作负载的要求。

优化资源

以下建议可帮助您优化 Cloud SQL 资源:

  • 设计与您的恢复时间目标 (RTO) 和恢复点目标 (RPO) 一致的高可用性和灾难恢复策略。根据您的工作负载,我们建议您执行以下操作:
  • 为数据库预配所需的最小存储容量。
  • 如需在数据增长时自动扩缩存储空间容量,请启用存储空间自动扩容功能。
  • 选择适合您的使用场景的存储类型:固态硬盘 (SSD) 或普通硬盘 (HDD)。对于大多数使用场景而言,SSD 是最有效且最经济实惠的选择。HDD 可能适用于对延迟不敏感或不常访问的大型数据集 (>10 TB)。

优化费率

请考虑为具有可预测资源需求的工作负载购买承诺使用折扣。1 年期承诺可节省 25% 的按需价格,而 3 年期承诺则可节省 52%。

Spanner

Spanner 是云原生、规模不受限制、具备强一致性的数据库,可用性高达 99.999%。

监控用量

以下建议可帮助您跟踪 Spanner 资源的用量:

  • 监控您的部署,并根据 CPU 建议配置节点数。
  • 为部署设置提醒以优化存储资源。如需确定适当的配置,请参阅建议的每个节点的限制

优化资源

以下建议可帮助您优化 Spanner 资源:

  • 使用处理单元 (PU) 而不是节点来预配资源,从而以更低的费用在 Spanner 上运行较小的工作负载。一个 Spanner 节点等于 1,000 个处理单元
  • 使用查询优化器提高查询执行性能。
  • 按照最佳实践构建 SQL 语句来构建高效的执行计划。
  • 使用自动扩缩器工具管理 Spanner 部署的使用情况和性能。该工具会自动监控实例、添加或移除节点,并有助于确保实例保持在建议的 CPU 和存储空间限制范围内。
  • 使用时间点恢复 (PITR) 防止意外删除或写入。版本保留期较长的数据库(尤其是经常覆盖数据的数据库)会使用更多系统资源,并且需要更多节点。
  • 查看您的备份策略并选择以下选项之一:
    • 备份和恢复
    • 导出和导入

优化费率

在确定 Spanner 节点的位置时,请考虑 Google Cloud 区域之间的费用差异。例如,部署在 us-central1 区域的节点的每小时费用远远低于 southamerica-east1 区域的节点。

Bigtable

Bigtable 是一种云原生宽列 NoSQL 存储区,适用于大规模、短延迟时间的工作负载。

监控用量

以下建议可帮助您跟踪 Bigtable 资源的用量:

  • 分析用量指标以发现资源优化机会。
  • 使用 Key Visualizer 诊断工具可识别 Bigtable 集群中的热点和热键。

优化资源

以下建议可帮助您优化 Bigtable 资源:

  • 为帮助确保 CPU 和磁盘用量以实现延迟时间与存储空间容量的平衡,请评估和调整 Bigtable 集群的节点数和大小。
  • 通过以编程方式扩缩 Bigtable 集群来自动调整节点数,尽可能以最低的费用来维持性能。
  • 请根据以下注意事项来评估最经济实惠的存储设备类型(HDD 或 SSD)是否适合您的使用场景:

    • HDD 存储设备的费用低于 SSD,但性能不及 SSD。
    • SSD 存储设备的费用高于 HDD,但可提供更快速和可预测的性能。

    除非您存储大量数据,否则 HDD 所节省的费用相对于 Bigtable 集群中的节点费用而言微乎其微。HDD 存储设备有时适用于对延迟不敏感或不常访问的大型数据集 (>10 TB)。

  • 使用垃圾回收功能移除过期和过时的数据。

  • 为避开热点,请运用行键设计的最佳实践。

  • 设计符合您的 RPO 且经济实惠的备份方案

  • 如需降低集群用量并减少节点数,请考虑使用 Memorystore 为可缓存的查询添加容量缓存

附加阅读材料

BigQuery

BigQuery 是一个扩缩能力极强且经济实惠的无服务器多云数据仓库,旨在提升您的业务敏捷性。

监控用量

以下建议可帮助您跟踪 BigQuery 资源的用量:

  • 直观呈现按项目和用户细分的 BigQuery 费用。标识最昂贵的查询并对其进行优化。
  • 使用 INFORMATION_SCHEMA 元数据表分析各项目、作业和预留的槽利用率

优化资源

以下建议可帮助您优化 BigQuery 资源:

  • 根据您的合规性策略为数据设置数据集级、表级或分区级到期时间
  • 通过限制每个查询的字节数来限制查询费用。为防止意外出现人为错误,请在用户级和项目级启用费用控制。
  • 仅查询您需要的数据。避免完整查询扫描。如需探索和了解数据语义,请使用免费的数据预览选项。
  • 如需降低处理费用并提高性能,请尽可能对表进行分区聚簇
  • 尽早并尽可能经常过滤查询
  • 处理来自多个来源(例如 Bigtable、Cloud Storage、Google 云端硬盘和 Cloud SQL)的数据时,请使用联合访问数据模型来避免复制数据并避免直接从来源查询数据。
  • 利用 BigQuery 的备份,而不是复制数据。请参阅数据的灾难恢复场景

优化费率

以下建议可帮助您降低 BigQuery 资源的结算费率:

  • 评估数据的修改方式,并利用较低的长期存储价格。
  • 查看固定费率和按需价格之间的区别,并选择适合您的要求的选项
  • 评估是否可以为数据工作流使用批量加载而不是流式插入。要使加载到 BigQuery 中的数据立即可用,请使用流式插入。
  • 如需提高性能并降低检索数据的费用,请使用缓存的查询结果

附加阅读材料

Dataflow

Dataflow 是一项快速且经济实惠的无服务器服务,用于进行统一的流式和批量数据处理。

监控用量

以下建议可帮助您跟踪 Dataflow 资源的用量:

优化资源

以下建议可帮助您优化 Dataflow 资源:

  • 请考虑使用 Dataflow Prime 高效地处理大数据。
  • 通过对自动扩缩的批量流水线使用 Flexible Resource Scheduling (FlexRS) 来降低批处理费用。FlexRS 使用高级安排选项 (Dataflow Shuffle) 以及抢占式虚拟机和常规虚拟机的组合,来降低批处理流水线的费用。
  • 通过使用内存中的 Shuffle 服务而不是 Persistent Disk 和工作器节点来提高性能。
  • 如需提高自动扩缩的响应速度并减少资源消耗量,请使用 Streaming Engine,它会将流水线的执行操作从工作器虚拟机中移出并移入 Dataflow 服务后端。
  • 如果流水线不需要访问互联网和其他 Google Cloud 网络,请停用公共 IP 地址。停用互联网访问权限有助于降低网络费用并提高流水线安全性。
  • 请遵循使用 Dataflow 实现高效流水线的最佳实践。

Dataproc

Dataproc 是一项代管式 Apache Spark 和 Apache Hadoop 服务,可用于批处理、查询、流式传输和机器学习。

以下建议可帮助您优化 Dataproc 资源的费用:

后续步骤