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 资源的用量:
优化资源
以下建议可帮助您优化 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 资源:
- 根据您的合规性策略为数据设置数据集级、表级或分区级到期时间。
- 通过限制每个查询的字节数来限制查询费用。为防止意外出现人为错误,请在用户级和项目级启用费用控制。
- 仅查询您需要的数据。避免完整查询扫描。如需探索和了解数据语义,请使用免费的数据预览选项。
- 如需降低处理费用并提高性能,请尽可能对表进行分区和聚簇。
- 尽早并尽可能经常过滤查询。
- 处理来自多个来源(例如 Bigtable、Cloud Storage、Google 云端硬盘和 Cloud SQL)的数据时,请使用联合访问数据模型来避免复制数据并避免直接从来源查询数据。
- 利用 BigQuery 的备份,而不是复制数据。请参阅数据的灾难恢复场景。
优化费率
以下建议可帮助您降低 BigQuery 资源的结算费率:
- 评估数据的修改方式,并利用较低的长期存储价格。
- 查看固定费率和按需价格之间的区别,并选择适合您的要求的选项。
- 评估是否可以为数据工作流使用批量加载而不是流式插入。要使加载到 BigQuery 中的数据立即可用,请使用流式插入。
- 如需提高性能并降低检索数据的费用,请使用缓存的查询结果。
附加阅读材料
Dataflow
Dataflow 是一项快速且经济实惠的无服务器服务,用于进行统一的流式和批量数据处理。
监控用量
以下建议可帮助您跟踪 Dataflow 资源的用量:
- 运行小型负载实验,了解作业的最佳性能并推断出影响吞吐量的因素,进而预测 Dataflow 作业的费用。
- 使用可观测性信息中心更深入地了解吞吐量和 CPU 使用率。
- 创建作业后,查看该作业使用的资源的估算费用,并设置提醒,以便在资源用量超过指定阈值时收到通知。如需了解详情,请参阅 Dataflow 费用监控。
优化资源
以下建议可帮助您优化 Dataflow 资源:
- 请考虑使用 Dataflow Prime 高效地处理大数据。
- 对于批处理流水线,请使用 Dataflow Shuffle 减少工作器虚拟机上消耗的资源(CPU、内存和 Persistent Disk 存储空间)。
- 通过对自动扩缩的批量流水线使用 Flexible Resource Scheduling (FlexRS) 来降低批处理费用。FlexRS 使用高级安排选项 (Dataflow Shuffle) 以及抢占式虚拟机和常规虚拟机的组合,来降低批处理流水线的费用。
- 如需提高自动扩缩的响应速度并减少资源消耗量,请使用 Streaming Engine,它会将流水线的执行操作从工作器虚拟机中移出并移入 Dataflow 服务后端。
- 如果流水线不需要访问互联网和其他 Google Cloud 网络,请停用公共 IP 地址。停用互联网访问权限有助于降低网络费用并提高流水线安全性。
- 对于可以容忍重复记录的工作负载,您可以通过使用“至少一次”流处理模式来降低费用。如需了解详情,请参阅“至少一次”流处理:最多可为流处理 ETL 工作负载节省 70%。
- 对于处理大型数据集的流水线,您可以通过动态增加每个工作器(Compute Engine 虚拟机)上的并行线程数量来减少所需的工作器数量。如需了解详情,请参阅动态线程扩缩。
Dataproc
Dataproc 是一项托管式 Apache Spark 和 Apache Hadoop 服务,可用于批处理、查询、流式传输和机器学习。
以下建议可帮助您优化 Dataproc 资源的费用:
- 选择适合您的工作负载的机器类型。
- 使用自动扩缩集群进行自动扩缩以满足需求,用户只需为所需的资源支付费用。
- 如果作业完成后可以删除集群,请考虑使用受管集群工作流模板预配一个临时集群。
- 为避免非活跃集群产生费用,请使用计划删除,以便在指定的空闲时间段后、在指定的时间,或在指定的时间段后删除集群。
- 请遵循在 Dataproc 上构建长时间运行的集群的最佳实践。
- 为始终处于开启状态的工作负载购买承诺使用折扣。
后续步骤
- 优化计算服务、存储、网络和运营的费用:
- 探索 Google Cloud 架构框架的其他类别