快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

从SQL到NoSQL:7种比较查询语言的指标

请联系QQ:1793040 索取软件

想要利用NoSQL数据库的许多好处的组织通常会发现他们面临两个挑战:

  • 如何转换其RDBMS模式以利用无模式文档模型。
  • 了解新的API /查询以访问数据。

一些人还发现与NoSQL名称的混淆。该缩写不仅代表“ SQL”,而且还可能被误解为“对SQL否”,因此,为了使用NoSQL数据库,组织将不仅需要将其关系数据模型转换为文档模型,而且还会获得有关他们将选择的NoSQL数据库API的培训。

实际上,NoSQL数据库行业从未放弃过最流行的数据库数据访问。许多NoSQL供应商仍在使用SQL的变体。 Cosmos DB,  Cassandra CQL,  Elasticsearch SQL,  Cockroach Labs。即使使用  MongoDB查询  语言,您仍会发现它基于select-join-project构造,这是SQL中使用的关系代数的基础。

这个NoSQL领域中的一个数据库公司可以全面解决此问题,它是  Couchbase  及其  N1QL  查询语言。虽然Couchbase以本机JSON格式存储数据,但它支持的数据模型可以是关系结构或层次结构,由于其模式灵活性和可扩展性,经常在基于文档的模型中使用。这是可能的,因为Couchbase提供了类似SQL的查询语言-N1QL,它扩展了SQL语言以允许用户操纵文档模型的层次结构。所有这些都是基于 具有键值API 的Couchbase高性能数据服务构建的  。

但是,在当今的NoSQL数据库市场中,有很多选择,并且对于希望确保其数据库技术投资可以利用NoSQL技术当前提供的所有好处的组织而言,结果可能带来许多挑战。

  • 对结构化和非结构化数据的支持
  • 商业硬件的水平可扩展性
  • 易于管理架构演变
  • 也许最重要的是,除了过去几十年来一直主导数据库市场的当前RDBMS供应商之外,还可以选择供应商。

为了帮助客户做出决定,专注于帮助公司从传统IT系统过渡到未来的Altoros公司发布了“ 查询比较报告”,以比较当今最受欢迎的数据库中的查询语言。它选择专注于MySQL / SQL,Couchbase N1QL和MongoDB查询语言。使用以下条件对每种查询语言的实现进行了评估,以满足不同的查询方案。

  1. 简单
  2. 可读性
  3. 表现力
  4. 灵活性
  5. 技能专长
  6. 代码行
  7. 申请到服务器的次数

可以在此GitHub 存储库中找到所有查询和数据库转储的示例,这些示例可以帮助部署和运行此报告中的所有方案。

Altoros报告方法

该报告的目的是从传统RDBMS应用程序的角度比较查询语言。为此,它选择了:

活动管理应用程序模型,通常在管理销售,服务和营销活动的大多数CRM系统中找到。报告设置包括用于MySQL的关系模型和用于Couchbase和MongoDB的文档数据库模型。

从SQL到NoSQL:7种比较查询语言的指标

它还使用了这些系统的大多数用户可以识别的一组查询方案。

情境

描述

1.客户会议报告

为了准备下周要参加的客户会议,我想获得所有参加会议的客户及其联系人的列表。

2.区域销售地区报告

我是C-Suite卖方区域的区域销售经理。我想获取分配给该地区的所有帐户以及帐户团队成员。

3.客户十大行业

根据2018年销售活动,从客户中确定十大行业。

4.销售组织

我想找出我们花了多少时间与19财年第3季度分配给我的领土的帐户进行交谈。

5.销售活动报告

与销售相关的任务数量在2018年的一个月内如何变化。

6.销售团队技能

当前销售组织中的销售团队技能/角色分析

7.客户互动报告

查询以查看我们在CY19Q4期间与客户进行的所有演示,并详细说明了在每个客户上花费的时间和会议的有效性。

8.分析酒店评论的情绪

调用Google自然语言API以根据情感得分对所有评论进行排序

9.文本搜索报告以识别客户会议

确定讨论了特定主题的客户帐户及其相关联系人。搜索条件可以部分或全部包括以下信息:会议标题,会议日期范围,客户联系详细信息,销售团队成员详细信息(参与者)和客户名称。

对于每种情况,该报告提供了用SQL,N1QL和MongoDB查询语言编写的相应解决方案,然后提供了每种解决方案的评估。

评估标准结果

下表总结了所有查询方案的所有等级。请参阅该报告,以了解每种查询方案的单独评估。

该报告以MySQL-SQL为参考,根据许多标准评估了Couchbase N1QL和MongoDB查询语言。

从SQL到NoSQL:7种比较查询语言的指标

笔记:

  1. 与MongoDB,Cassandra和RedisLab一起工作的Altoros发现N1QL与SQL非常相似,并且始终给它比MongoDB查询语言更好的评级。

  2. 方案3的示例代码显示,对于简单查询,这三种查询语言相对相似,并且具有相似的评估标准评分。但是,差异出现在查询场景中,其中文档JOIN和Aggregations

代码行数

从SQL到NoSQL:7种比较查询语言的指标

该图表显示了每个查询的代码行数。尽管该度量标准可能会出现错误表述,因为所有查询语言都有自己推荐的格式,但它可以提供有关复杂性的简单指南。

  • N1QL查询语言的代码行数与SQL大致相同。
  • MongoDB查询语言始终具有更多的代码行。
  • 对于场景7,Altoros团队必须为MongoDB查询语言编写347行,而N1QL为21行。这个异常值反映了MongoDB查询语言在计算复杂聚合和通用表表达式(CTE)方面的局限性,在过去的几十年中,SQL(现在是N1QL)一直是关系数据库技术的主要优势。

从SQL到NoSQL:7种比较查询语言的指标

从SQL到NoSQL:7种比较查询语言的指标

请注意,这是Altoros团队提供的MongoDB查询解决方案。与任何实现一样,可能还有其他方式编写Mongo代码,但这就是团队想出的。 

客户端服务器行程数

从SQL到NoSQL:7种比较查询语言的指标

该图显示了应用程序必须提交给数据库服务器的行程数。

笔记:

  1. 在大多数情况下,SQL / N1QL只需要向服务器提交一个查询,而MongoDB查询可能导致多个部分,因此需要多次访问后端服务器。这是由于SQL / N1QL的表现力所致,其中应用程序开发人员只需声明所需的输出,然后由服务器来处理并返回结果。

  2. 缺乏复杂聚合的支持要求MongoDB在多个阶段执行其计算。这类似于标准的SQL子查询方法。此处的区别在于子查询结果集需要在客户端应用程序中维护,然后再传递给另一个查询。

从SQL到NoSQL:7种比较查询语言的指标

Altoros查询比较报告-主要发现

从SQL到NoSQL:7种比较查询语言的指标

资源:

1. Altoros查询比较报告— https://resources.couchbase.com/c/altoros-database-query-report

2. Couchbase N1QL教程— https://query-tutorial.couchbase.com/tutorial

3.索引顾问作为N1QL的服务— https://index-advisor.couchbase.com/indexadvisor

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1793040