本文分享自华为云社区《华为云GaussDB(for Influx)单机版上线,企业降本增效利器来了》,作者:GaussDB 数据库 。
1.背景
华为云GaussDB(for Influx) 集群版时序数据库构建了高可靠、高可用、高性能、高可扩展性、免运维等特性,使得客户不用担心数据库层面的问题,更多专注于其自身应用的开发设计,成为很多客户的业务首选。
相对于MySQL等传统数据库,“新”的时序数据库在设计和使用方面有比较大的差异,数据模型和使用方式对于大多数开发者来说比较陌生,需要更多的实例进行测试、调试。在非生产环境中,例如开发、测试场景下,对性能、可靠性没有诉求,成本成为首要的考虑因素;如果选择自己搭建环境用于开发、测试,虽然解决了成本问题,但是维护麻烦、操作复杂,遇到问题不能及时处理,也非常影响开发测试效率。
因此,针对性能、可靠性要求不高、成本敏感的使用场景,GaussDB(for Influx)推出了单机版方案。该方案可用于开发、测试等场景,既能享受到服务化带来的便利,也可以明显地降低使用成本。
2.GaussDB(for Influx)单机版极致成本
很多客户在使用数据库时,觉得在不考虑高可用性、性能和扩展性的测试、开发场景下,完全可以自己购买ECS搭建一套数据库,这样虽然麻烦,但是可以降低使用成本,毕竟云数据库也是基于ECS建立的,“面包”肯定是比 “面粉”贵吧。
GaussDB(for Influx)团队结合多方实践使用经验,综合考虑成本、稳定性和可运维性等各种因素,单机版方案选择了1:2的超高性价比规格,同时支持4种不同的规格以满足不同场景的需求,下表是单机版支持的规格类型和对应的费用:
规格 |
单机版(元/月) |
自建ECS(元/月) |
4U8G |
486.9 |
489 |
8U16G |
973.8 |
950 |
16U32G |
1947.6 |
1712 |
32U64G |
3895.2 |
3396 |
注:费用对比只是针对计算资源,存储资源根据数据量大小按需购买
可以看到GaussDB(for Influx)单机版价格做到和自建基本持平,在4U8G的规格下,甚至比自建购买ECS还便宜。GaussDB(for Influx)单机版在做到了“面粉”和“面包”价格基本持平的同时,提供了自建不具备的许多服务化能力。
3.GaussDB(for Influx)单机版能力优势
3.1 云服务即开即用,免运维
数据库虽然是基础软件,但是它的搭建也需要一系列基础服务作为支撑。客户在购买云上ECS后,通常需要自行选择合适的数据库版本,按照当前的ECS规格修改合适的配置参数,实现基本的高可用能力。在完成上述工作后,还需要搭建监控系统保障基础运维。相比之下,使用云数据库的客户完全不用担心上述复杂的工作,可专心聚焦于自身业务的实现和优化,如下图所示:
特别是在批量、频繁的创建和删除环境时,上述的手动操作会特别繁琐、耗时且容易出错。数据库创建完成后,后续的运维也是极具考验经验的工作,如果是对不熟悉的数据库,一个简单的问题就可能会阻塞开发、测试,最终可能影响项目的整体进度。
反观云数据库的操作就非常简单、方便。只要在页面上简单点击选择就可以购买创建,选择相应的存储大小、填写密码即可,极大提升了操作效率。最主要的是,在遇到问题时云数据库背后有经验丰富的运维团队来保障,常见问题可以达到分钟级恢复。
除了在使用和部署上的方便之外,云数据库内核针对不合理的业务使用做了很多的规范限制,使得客户在业务开发、测试阶段就可以发现问题,并及时优化和调整,保障正式业务的稳定。
3.2 限制不合理查询
GaussDB(for Influx)在数据库内核层面做了很多限制和规范,对于不合理的使用不允许执行,并给出优化建议,遵循这些规范可有效提升业务运行的稳定性。
- 禁止不带时间范围的查询执行
时序数据有很强的时间属性,数据库的内部组织也是严格按照时间属性的,这是相对于其他数据库很大的区别。如果不带时间范围的查询,就会导致数据库查询全部数据,大概率会导致数据库发生OOM问题,影响业务稳定性。
- 禁止执行select * from语句查询
大多数真实业务场景是需要指定具体的查询字段的,只是由于开发习惯等各种原因而使用了select * from进行查询。这种写法有两个潜在的问题:1.返回结果可能不确定,GaussDB(for Influx)是schemaless模式的,可以随时添加和减少tag,field,这样随着业务的变化select*返回的结果可能会出现不一致,容易导致业务在解析返回结果时发生异常;2 select* 返回了所有字段的值,但是实际上有用的只有某几个字段,这样有大量数据传输是无效的,浪费了网络带宽,也浪费计算、内存等资源。因此在开发规范中我们不建议使用这种方式查询,在内核中也会对这种查询进行拦截。
- 查看慢日志能力
云服务的慢日志能力,使得在业务开发阶段能及时发现慢查询,及时进行优化调整。
- 限制每条查询涉及的时间线和field数量
如果一条查询涉及的时间线或者field数量太多,说明这个查询可能会查询太多的数据,数据库会把这些数据都加载到内存中,很容易导致OOM,影响业务稳定性。而涉及的太多时间线或者field,大多数场景下是因为我们所写的查询语句不合理导致的,需要进一步优化。
4.总结
GaussDB(for Influx)是一款基于计算存储分离架构,兼容InfluxDB生态的云原生时序数据库,此次推出的单机版模式,在保留云数据库优势的同时做到和自建ECS价格基本持平,满足业务对可用性、可靠性要求不高场景下对低成本的诉求。