新睿云

> 知识库 > 云数据库与自建数据库

云数据库与自建数据库

作者/来源:新睿云小编 发布时间:2020-01-09

想了解云数据库我们首先得先知道传统数据库的概念,其传统数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。

云数据包含传统数据以上功能外,还具有:实例创建快速、支持只读实例、读写分离、故障自动切换、数据备份、Binlog备份、SQL审计、访问白名单、监控与消息通知等特点。

一、云数据库RDS的应用场景

1、数据异地容灾场景

通过数据传输服务,用户可以将自建机房的数据库实时同步到公有云上任一地域的RDS实例里面。即使发生机房损毁的灾难,数据永远在新睿云有一个备份。

 数据异地容灾场景

数据异地容灾场景

2、读写分离场景

应用读取请求较高,或是需要应对短期内读取流量高峰,可在RDS for MySQL实例下挂载只读实例,每个只读实例拥有独立的链接地址,由应用端自行实现读取压力分配。

读写分离场景 

读写分离场景

3、多结构数据存储

在数据类型多样的应用中,可将高热存取数据存储于缓存产品,如云数据库Memcached版 、云数据库Redis版,将图片等非结构化资源存储于对象存储 OSS,而将链接等结构化数据存储于RDS,实现对业务数据高效存取,并相应降低成本投入。

多结构数据存储 

多结构数据存储

4、搜索引擎场景

针对应用数据量较大,且有较多复杂关键词搜索场景,可搭配使用开放搜索,对亿级别数据实现百毫秒内搜索。

 搜索引擎场景

搜索引擎场景

5、大数据计算

云数据库RDS搭配E-MapReduce,运行Hadoop、Spark分析RDS中数据,满足如日志分析、数据仓库、商业智能、机器学习、科学模拟等业务需求。

大数据计算 

大数据计算

二、云数据库开发常见问题

在实际的应用中,我们也看到,不少人因为不熟悉 NoSQL 的数据库设计理念,在实际开发过程中,出现了不少的问题,这里我们一一讨论一下。

1、自建主键属性

MongoDB 数据库中,数据存储使用的是 ObjectID,因此,其数据的 ID 并非 1 ,2 ,3 ,4 ,而是一个类似于 a718a0f318d76 hash 值,不少人在开发时,因为认为没有自增的数据,无法完成数据排序,就自行实现了一个自增的 ID,每次新增的时候,都重新查询一遍,获取最新的值以后, 再重新新增数据。

但实际上,我们可以有一种更加优雅和方便的工具来完成这种需求,那就是新增一个字段 created_at,这个字段的值设置为当前时间的时间戳 Timestamp。当你后续需要进行数据按新增的数据进行排序时,可以使用这个字段进行逆序排序,同时,因为这个数据使用的是当前的时间数据,你还可以将其用于数据的「创建于XX年XX月XX日」的功能,完成自己的业务需求。这个数据除了能进行直接的排序,还可以用于后续按日期导出数据,比如筛选出某一个特定时间段的数据。

相比于一个自增的 ID,created_at 更加的简单易用,同时,因为不需要提前获取上一条记录中这个字段的值,可以有效的降低数据的查询次数。

2、时间存储问题

在我们进行业务逻辑开发时,时间数据的获取是不可或缺的,不少人习惯于使用一个可视化的日期数据,便会将数据库中的日期字段设置为 2019-09-09,以便于在使用时直接输出到数据库中,但实际上在开发过程中,建议大家存储时间戳 Timestamp 来作为具体的时间。

这是因为 2019-09-09 的数据并非一个可以用于排序的字段,在后续开发的过程中,因为你使用的是字符串作为时间,如果你需要将数据进行排序,将会无法排序或出现排序错误的情况;此外,因为你存储的是字符串类型的时间,那么后续如果你的业务需求发生了展示形式的变化,会导致你花费大量的时间去修改所有数据的时间,或者在数据的读取和存储时进行多次格式转换,徒增麻烦。

因此,对于时间存储有需求的,我们一贯建议大家使用时间戳来存储,因为时间戳是一个数字类型的数据,因此可以直接进行大小的比对,同时,因为时间戳的数据是全球统一的,如果你的应用后续有全球化的需求,也可以很好的支持。

无法区分是否要拆分为独立的数据集合存储

在进行云开发的数据应用开发的时候,我们发现,不少开发者的疑问是,我所使用的数据,是否有必要进行独立拆分出一个 Collection 来进行数据存储。

三、云数据库或许会取代传统数据库

1、传统数据库巨头甲骨文裁员

甲骨文决定裁撤部分中国研发中心员工,首批中国有900人被裁。对于裁员的原因,甲骨文的解释是要对现有研发体系和商业模式进行适时的调整,为云业务让路。另据报道,备受赞誉的甲骨文云业务背后的设计者库里安离职,加盟谷歌。

关于甲骨文战略这里不做评论,本文想谈的是数据库市场的走向。其实,甲骨文这番境遇折射出来的正是数据库行业的最新变化。多年以来,凭借其市场占有率过半的 数据库产品,甲骨文一直非常自信、淡定和从容。然而,云计算大潮来袭,甲骨文遭遇前所未有的挑战,特别是作为甲骨文根基的数据库市场正在重新洗牌,包括云 数据库在内的一批新生力量崛起,动摇了传统数据库的垄断地位,也严重削弱了甲骨文的竞争优势。

2、一切上云绝非虚言

云计算仍在普及之中,未来一切皆在云上并非虚言。在这一全新的时代,传统商用数据库因其昂贵的投入、扩展性和灵活性不足受到挑战,而云原生数据库则因 天然地具备云计算的弹性能力,兼具开源数据库的易用、开放特点,及传统数据库的管理和处理性能等优势,成为企业上云时的优先选择,再加上新睿云AWS等拥有的庞大用户群,云数据库正在迎来属于自己的时代。

如果您对下载敢兴趣可以考虑看《云数据库与自建数据库

热门标签
new year
在线咨询
咨询热线 400-1515-720
投诉与建议
{{item.description}}

—您的烦恼我们已经收到—

我们会将处理结果发送至您的手机

请耐心等待