当前位置: 首页 > 科技观察

2020数据库选型攻略:专用VS多模

时间:2023-03-14 11:09:19 科技观察

数据库选型越来越难了。根据DB-Engines数据库流行度排行榜,目前全球开源和商业数据库多达359个。从应用类型来看,有OLTP事务型数据库、OLAP分析型数据库、HTAP混合型数据库。在存储方式上,有关系型数据库和非关系型数据库(NoSQL)。NoSQL数据库根据支持的数据模型不同分为键值数据库、文档数据库、列式数据库、图数据库等。从架构类型来看,可以分为ShareEverything、ShareStorage和ShareNothing。数据库市场的繁荣虽然给企业带来了更多的选择,但也让选择变得更加困难。专用VS多模式专用数据库和多模式数据库之间的争论由来已久。其中AWS属于专门的数据库派,认为数据库应该像汽车一样。不同的车解决不同的交通需求,不同的数据库解决不同场景的需求,而不是依赖关系型数据库一刀切。因此,AWS提供了包含十多种数据库产品的产品组合。AWS数据库服务概述甲骨文、微软、SAP属于“瑞士军刀”派,即多模数据库派。多模式功能是通过扩展其SQL查询功能或添加R或Python支持等功能来实现的。去年,DeveloperWeek的一组调查数据显示。将近一半的受访者实际上使用多个数据库来支持他们的业务应用程序,而不是单个数据库!44.3%使用多个数据库,55.7%使用一个数据库。虽然看起来使用一个数据库的比例还是比较多,但不可忽视的是,近10年多数据库的使用呈爆炸式增长。数据显示,75.6%的多种数据库类型使用SQL和NoSQL数据库的组合。这进一步说明,对于许多企业而言,一种规模并不适合所有企业。图片及数据来源:ScaleGrid显然,数据格式和应用场景是复杂的,很多需求不是单一的数据库就能解决的。同时,微服务架构的兴起也在推动企业针对不同的业务场景使用不同的数据库。如果选择不合适,服务的性能就不会提高。因此,在选型时不要将企业的数据库局限于一种数据库,只有取长补短,才能填补数据库需求的空白。选型要点1.业务场景任何背离业务场景需求的数据库选型都是耍流氓。数据库选择的决定性因素是结合业务应用场景,分析现有需求和未来可能出现的新需求,来考虑选择哪种数据库。企业用数据库做什么?分析还是交易?或两者?业务需要处理什么样的数据?对数据库的性能要求是什么?完整性,保证ACID事务的话,毫无疑问关系型数据库是最好的选择。如果业务需要采集和监控物联网数据,需要高频、实时、持续写入,那么时序数据库是不错的选择。业务应该处理什么样的数据?结构化的?半结构化?非结构化数据?确定需要支持的数据模型。原则上,“数据模型是什么,库就用什么”。如果要存储和处理图片、音频、视频等非结构化数据,那么NoSQL数据库将是最佳选择。再者,业务需要存储游戏场景中的角色信息、经验值信息、好友排行等信息,而这些信息一般都与ID(key)挂钩,所以key-value数据库是一个不错的选择。业务需要处理的数据规模、并发吞吐量和响应时间要求是多少?这决定了数据库的性能要求。如果业务是闪购、春运火车票等,并且有超高峰值业务,那么分布式数据库会是一个不错的选择。常见数据类型及应用场景(图片来源:AWS)不清楚哪些业务场景应该使用哪种数据库系统,可以参考上图。2.关于可操作性有一种说法,就是要执行不考虑可操作性的数据库选择。这种说法虽然夸张,但也有道理。毕竟数据库是DBA买的,最后运维的,DBA的意见也不容忽视。自己团队的技术储备如何?选型要考虑现有开发和运维人员的技能,尽量选择学习曲线短的。在选择数据库的时候,很多人会忽略生态。好的数据库不仅功能强大,周边的生态也很重要。与周边上下游产品、配套软件、工具、技术人员的兼容性,对可操作性都有很大的影响。每个数据库都不简单,掌握需要一个过程。当数据库出现问题时,如何快速定位并解决问题?如果有一个活跃的用户社区,DBA就会有很大的信心。如果选择了数据库,却招不到DBA,一旦人员流失,让数据库处于无人维护的境地,将是致命的。一个好的工具生态可以节省企业开发和运维人员的投入。例如:迁移工具AWSDMS早在2016年3月就已经推出,它可以让用户轻松地将数据库迁移过来,同时避免停机。事实证明该服务非常受欢迎,AWS官方数据显示,截至目前,DMS已帮助20万个数据库完成迁移。如果你选择了云数据库,那么采用Serverless(无服务器)模式的云数据库会让运维变得更简单。以AWS为例,AmazonAuroraServerless、AmazonDynamoDB、AmazonTimeStream、AmazonKeyspaces,这些都是serverless版本的数据库,数据库可以根据应用需求自动启动、关闭、扩容或缩减,无需管理任何数据库实例,可以大大减少数据库管理的工作量。因为,手动管理数据库容量会占用宝贵的时间,还会导致数据库资源的低效使用。3.成本数据库选择不仅要考虑硬件资源成本、软件成本、服务成本、部署数据库的人力成本,还要考虑隐性成本,如迁移成本、维护成本、学习成本、运营成本等。随着开源数据库的流行,有一种误解认为开源数据库可以省钱。事实上,开源数据库并不一定比商业数据库便宜。虽然没有牌照费,但对技术团队要求高,一般传统行业无法使用。如果你的技术团队没有这个能力,还不如商业数据库。省心甚至省钱。如果想在两者之间取得平衡,那么一些结合了新技术和新硬件的新兴数据库可能是一个不错的选择。例如:AWSAurora不仅兼容主流开源数据库MySQL和PostgreSQL,还具备商用数据库的性能优势。说白了就是比开源数据库更省钱,性能更好。虽然分布式数据库很流行,但是不要盲目跟风。您必须在正确的地方使用它们。你必须知道哪些场景适合分布式数据库,哪些场景不适合。否则,不仅达不到预期的效果,还会付出更多的代价。写在最后,虽然数据库领域的各种新技术、新概念不断涌现,但谁来取代谁还不好说。目前没有万能的数据库,只有最适合的数据库。数据库选择还是要根据业务需求选择最合适的产品。不要盲目跟风,追求新潮流。