10个顶级Mongodb GUI工具,以图形方式管理数据库

10个顶级Mongodb GUI工具,以图形方式管理数据库,第1张

MongoDB是一个面向文档的数据,属于NoSQL数据库,它使用类似JSON的文档和schemata。

MongoDB的默认接口是(CLI)命令行,新用户很难像专业人员那样处理数据库。因此,有一些MongoDB管理工具来提供GUI界面以提高生产力。就像phpmyadmin为MySQL/MariaDB数据库提供基于>

ElasticSearch是基于Apache Lucene 的RESTful 实时搜索和分析引擎。ES基于数据抽取一些值,提供实时存储、索引、搜索和分析数据功能,这些数据收集自其他数据源(包括MongoDB),可以直接存储在Elasticsearch集群中。

一、共同点:

面向文档存储,无Schema,分布式数据存储,高可用性,分片和复制等。虽然使用ElasticSearch作为主数据存储是可行的,但一般做为主数据库的辅助数据库。

二、不同点:

1、Elasticsearch是java编写,通过RESTFul接口 *** 作数据。MongoDB是C++编写,通过driver *** 作数据。

2、MongoDB的分片有hash和range两种方式,Elasticsearch只有hash一种。

3、Elasticsearch是天生分布式,主副分片自动分配和复制,开箱即用。MongoDB的分布式是由“前置查询路由+配置服务+shard集合”,需要手动配置集群服务。

4、内部存储ES是倒排索引+docvalues+fielddata。

5、Elasticsearch全文检索有强大的分析器且可以灵活组合,查询时智能匹配。MongoDB的全文检索字段个数有限制。

6、Elasticsearch所有字段自动索引,MongoDB的字段需要手动索引。Elasticsearch 使用 Apache Lucene 实现索引,而 MongoDB 索引是基于传统的B+ 树结构。Elasticsearch利用Lucene实现实时索引和搜索功能,默认支持在文档的每个字段上创建索引。而 MongoDB,我们必须定义索引用于提升查询性能,但会影响写 *** 作。

7、Elasticsearch非实时有数据丢失窗口。mongodb实时理论上无数据丢失风险。

8、文档 - Elasticsearch 存储 JSON 文档, MongoDB 采用BSON格式存储 (Binary JSON)。

9、REST 接口 - Elasticsearch 提供 RESTful接口,MongoDB 不提供 RESTful接口。

10、MapReduce - MongoDB 支持 MapReduce 数据 *** 作。 Elasticsearch 不支持 MapReduce。

三、使用场景:

MongoDB是通用功能的非RESTful风格的 NoSQL 数据库 文档以 BSON 格式存储,主要用于存储数据。

Elasticsearch 是分布式全文检索引擎,可以提供实时Restful风格API处理海量面向文档的数据。文档使用JSON格式,主要用于基于文本的数据搜索。

在实际应用中两者通常同时使用,Elasticsearch一般不作为主存储数据库,而是和SQL & NoSQL数据库一起使用,作为辅助数据库。

与MongoDb不同, Elasticsearch 默认没有提供安全特性,如认证和授权。Elasticsearch和 Logstash & Kibana 一起称为ELK stack,用于快速查询数据并可视化展现分析数据。

Elasticsearch 非常适合需要基于文本进行快速索引然后进行检索,其查询速度非常快,大多数情况速度最多几十毫秒。

因此,Elasticsearch 通常作为主数据库存储的辅助存储库。一般数据库系统更聚焦于约束、准确性和健壮性。当主记录在事务中更新时,其会同时被推送至Elasticsearch中。

一般典型使用PostgreSQL 和 ZooKeeper 负责数据的存储, 同时提供给Elasticsearch实现实时检索。

没有万能的产品,没有一个数据库可以满足所有需求。所以我们需要了解不同数据库的优势和劣势,并选择合适的产品用于特定的需求。

我觉得首先得根据

业务场景

来决定,无论选择哪种数据库最终都是为了解决实际问题的。其次再考虑

成本

,开发人员对数据库的

熟练度,维护难易程度。

一、业务场景

问题上说的两种数据库区别还是蛮大的,mysql是传统关系型数据库,在处理小型系统和关系型数据时有很多的优点,什么支持多语言,开源,免费等等百度上就有很多。目前很多中小型公司都是用mysql。如果数据量大,对安全性能要求高,还不差钱的公司可以选择另外一种关系型数据库Oracle。monogoDB是非关系型的nosql数据库,属于文档型数据库,存储是以json、String等key-value键值对形式。通常用的较多的nosql数据库是redis。monodb使用的少(个人觉得)。这类非关系型数据库通常用来存储一些不会经常修改的数据,用来做缓存使用。另外还有使用monogodb开发商城的购物车功能。

二、使用成本

mysql、redis、monogodb都是可以免费使用,成本应该只有服务器存储空间成本,而oracle公司使用的话是需要缴费的。

三、工程师成本

这个我觉得还是传统的关系型数据库使用的人多,相应的资料也多。用起来应该能更快上手。应该没有后端工程师不会使用mysql、oracle等关系型数据库的。

四、维护难易程度

对于数据量在百万级以内的话维护成本差不多,如果再大mysql数据库就需要使用分库分表了。后期如果数据大数据处理的话,我认为nosql数据库更有优势。

一、创建Mongodb数据库

由于Mongodb不是关系型数据库文件,实际上,它并不存在传统关系型数据库中的所谓“数据库”的概念,但不用担心,当你第一次新增数据时,mongodb就会以collection集合的形式进行保存和新建,而不需要你手工去新建立。下面是例子:

1)列出当前的数据库

MongoDB shell version: 181

connecting to: test

> show dbs

admin 003125GB

local (empty)

可以使用show dbs来列出当前有多少个数据库,上面看到的是有两个,分别是admin和local。

2) 定义新的数据库名

我们通过使用“use new-databasename”的语法去使用一个新的数据库,注意,即使你的数据库还没建立起来,依然可以这样使用,因为mongodb会在真正插入了数据后,才会真正建立起来。

>use mkyongdb

switched to db mkyongdb

> show dbs

admin 003125GB

local (empty)

注意,在use mkyongdb后,mkyongdb实际上还没真正建立起来,只是表明目前是在使用mkyongdb了。

3)保存数据

定义一个collection,名为“users”,然后插入数据,如下:

> dbuserssave( {username:"mkyong"} )

> dbusersfind()

{ "_id" : ObjectId("4dbac7bfea37068bd0987573"), "username" : "mkyong" }

>

> show dbs

admin 003125GB

local (empty)

mkyongdb 003125GB

可以看到,用dbusersfind()可以找出已插入的数据。这个时候,名为“users”的collection已经建立起来了,同时,数据库mkyongdb也建立起来了。转载,仅供参考。

下面是一个瑭锦TANJURD总结 MongoDB 优缺点的列表,希望对打算使用 MongoDB 的同学,能有一些作用:

优势:

快速!(当然,这和具体的应用方式有关,通常来说,它比一般的关系型数据库快5位左右。)

很高的可扩展性 – 轻轻松松就可实现PB级的存储(但是可能我们并不需要PB级的存储,10TB可能就够了)

他有一个很好的 replication 模式 (replica sets)

有很完善的Java API

他的存储格式是Json的,这对Java来说非常好处理,对javascirpt亦然。

运维起来非常方便,你不用专门为它安排一个管理员。

它有一个非常活跃的社区(我提出的一个bug在20分钟内就能得到修复。多谢Elliot)

他的版本控制非常清楚。

MongoDB 背后的公司(10gen)已经准备好了明天在 MongoDB 上面的投入的资金了。

劣势

应用经验缺乏,我们都没有相关NoSQL 产品的使用经验。

项目相对来说还比较新。

和以往的存储相比,数据的关系性 *** 作不再存在。

大概六年前,在为ZDNet撰写文章时,我们曾经认真思考过一个问题:MongoDB未来要走向何方?随着时间推移,答案已经逐渐浮出水面:要让数据库更具可扩展性,支持开发者编写好的各种应用程序。为此,MongoDB增加了原生搜索功能,以支持内容管理;物联网用例也获得了时序数据支持;另外还有变更流,可帮助电商应用快速预测出下一最佳行动。

顺带一说,MongoDB的客户还需要一种能够与开发工具良好匹配、易于上手的云解决方案。 结果就是Atlas,这项托管云服务目前占MongoDB整体业务的60%。

但平心而论,与大多数其他 *** 作型数据库一样,MongoDB直到最近才刚刚得到重视。毕竟大家可能很难想象要在一套 *** 作型数据库中,执行涵盖多个表(或文档集合)的复杂查询。

1

为什么要引入分析?

大多数 *** 作型应用程序的共同之处是一旦添加了分析功能,其实用性将马上飞升。例如,分析可以帮助 汽车 制造商增强预防性维护,医疗保健服务商能够确定最佳护理方案,电子商务或 游戏 厂商则可以改善客户交互、防止客户流失。这些出于决策优化而设计出的分析功能,是对 *** 作型数据库的良好补充。

把分析跟交易型数据库联系起来绝不是什么新鲜想法,HTAP、translytical或增强型交易数据库都是分析厂商们拿出的相应成果。

云原生提出的计算与存储彼此分离的理念,则让我们有了另一个在不影响性能或吞吐量的情况下、将 *** 作数据处理与分析加以结合的好机会。 最近亮相的Oracle MySQL HeatWaev和谷歌AlloyDB,正是大厂在这个方向上的积极尝试。

大多数此类混合数据库都会使用专为分析而设计的柱状表,对传统行存储进行补充。顺带一提,它们也都使用相同的常见关系数据结构,确保转换更加简便易行。与之对应,如果引入包含分层和嵌套数据结构的文档模型,那么转译过程往往会更加困难。

那么,MongoDB是不是也该拥有自己的分析功能?这还是要看我们如何定义“分析”。如前所述,如果我们向交易中引入智能化 *** 作分析,那么应用程序的实用性将大大增强。所以只要把范围设定在快速决策分析,而非复杂的分析建模,那么答案就是肯定的。

2

无法一蹴而就的事业

MongoDB已经开始尝试支持分析功能。它从可视化开始,着手提供自己的图表功能与商务智能(BI)连接器,现在的MongoDB在Tableaus与Qliks端看来已经几乎与MySQL无异。虽然一图胜万言,但对于分析来说,可视化还只是万里长征第一步。MongoDB尽管能提供趋势快照,但还无法进一步实现数据关联(往往涉及更复杂的查询),也无法完全回答“为什么”会出现哪些状况。

MongoDB决心已定,开始通过分析提升自身竞争力。但在这个分析复杂度愈发高企的时代,它显然无法取代Snowflake、Redshift、Databricks或者其他专业分析方案。 但MongoDB分析面向的也并非数据分析师,而是应用程序开发者。 回到 *** 作型数据库的首要原则——尽量别把它,跟需要高度复杂的连接及/或高并发查询扯在一起。只要能让开发者构建起更好的应用程序,MongoDB就算是成功了。

Atlas能够灵活预留专门的分析节点。MongoDB也将在不久后,全面允许客户在更适合分析的节点上选择不同的计算实例。这些节点将提供在线数据复制功能,借此实现近实时分析。

但这还只是第一步:由于Atlas可运行在多种云环境上,因此客户还可以选择更多其他实例。不过大家无需担心,MongoDB未来将推出规范性指南,同时提供机器学习方案帮助大家自动选择最适应工作负载的实例类型。

对分析的尝试当然不可能止步于此,去年预览发布的Atlas Serverless将于本周推出正式版。刚刚起步的分析自然也将成为受益者,因为分析类工作负载一般与交易事务不同、突发峰值往往更多。

3

有没有可能对接SQL?

其实引入SQL的想法在MongoDB发展早期一直备受反对,当时有声音认为MongoDB永远不该成为关系数据库。但是,理性终将战胜情绪。

本周,MongoDB引入了新的Atlas SQL接口,可用于读取Atlas数据。这是一种全新结构,采用不同于BI连接器的通道。Atlas SQL将是MongoDB为数据提供SQL接口的第一次真正尝试,其思路绝不是简单把JSON扁平化以使其在Tableau中看起来像MySQL,而是提供更加精细的视图、反映JSON文档架构的丰富性。

但SQL接口编写工作不可能一蹴而就,所以预计Atlas SQL将在未来几年内逐渐发展完善。 毕竟要想与各类SQL工具(不止是可视化)实现全面集成,MongoDB还得在丰富的数据仓库选项上多下工夫。 我们还希望看到对upserts等 *** 作的支持,分析平台没有了这些核心功能,就相当于分析表中失去了行插入功能。

与Atlas SQL接口一同推出预览版的全新列存储索引,则意在提高分析查询的性能水平。同样的,这还仅仅只是开始。例如,MongoDB用户目前仍需要手动设置列存储索引、指定字段。但从长远来看,我们可以通过分析访问模式来实现自动化。设想一下:后续我们可以丰富元数据以分析字段基数,添加Bloom过滤器以进一步优化扫描功能,也可以继续完善查询计划器。

接下来是Atlas Data Lake,负责为云对象存储中的JSON文档提供联合视图。Atlas Data Lake在改造完成后,将针对多个Atlas集群和云对象存储提供更多的通用联合查询功能。新的存储层会自动将Atlas集群数据集提取到云对象存储和内部技术目录 (并非Alation)组合当中,借此加快分析查询。

4

以人为本

长期以来,MongoDB一直是开发者们最喜欢的数据库之一。 这是因为开发者热爱JavaScript和JSON,目前JS在Tiobe人气指数中排名第七。而JavaScript、JSON和文档模型将是MongoDB的永恒主题。但很遗憾,由于MongoDB此前一直刻意回避SQL,所以也就失去了相应的庞大人才库——SQL开发者同样体量庞大,让这一查询语言在人气指数中位列第九。现在,是时候做出改变了。

虽然MongoDB仍然认为文档模型优于、并有望取代关系模型(只是一家之言),但相信大家都认同一点:为了进一步扩大影响范围,MongoDB必须接纳那些以往被忽略的受众群体。要想双赢,两大阵营应该团结一致、实现简化;对于某些 *** 作用例,我们不必将数据移动并转移至独立的数据仓库目标,而是简化为在统一平台内 *** 作,最终将数据提取转化为更简单的数据复制。

5

意不在取代数据仓库、数据湖或智能湖仓

MongoDB绝不是要取代独立的数据仓库、数据湖或智能湖仓。目前复杂建模与发现已经成为分析工作中的重要组成部分,所以必须与 *** 作型系统分别执行。 更重要的是,在 *** 作型数据库中支持分析,最大的意义其实是实现流程内联并尽可能实时化。

换言之,MongoDB将由此实现与Snowflakes或者Databricks的全面协同。大家可以在数据仓库、数据湖或智能湖仓中开发用于识别异常值的模型,再将结果整理为一个相对简单、易于处理的分类、预测或规范模型。这样只要交易中出现异常,该模型就会被自动触发。

如今,在MongoDB中实现这样的闭环流程已经颇具可行性,但具体方法仍然非常复杂。大家需要将MongoDB中的变更流、触发器和函数拼凑起来,共同组织成某种封闭式的分析反馈循环。 相信在不久的将来,MongoDB将把这些复杂性要素隐藏在后台,直接提供简单易用的闭环与近实时分析选项。 这绝不是凭空想象,而是技术发展趋势的必然结果。如今,MongoDB已经踏上了这段分析 探索 之旅,我们也期待着它能早传捷报。

以上就是关于10个顶级Mongodb GUI工具,以图形方式管理数据库全部的内容,包括:10个顶级Mongodb GUI工具,以图形方式管理数据库、为什么mongodb不能替代elasticsearch区别、数据科学家如何选择mysql、mongodb等数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9777312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存