范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

MongoDB5。0新特性概览

  MongoDB 5.0标志着一个新的发布周期的到来,以更快地交付新特性给到用户。版本化API与在线重新分片相结合,使用户不必担心未来的数据库升级以及业务变化问题;本地原生时间序列数据平台也使MongoDB能支持更广泛的工作负载和业务场景;新的MongoDB Shell能够提升用户体验等均为MongoDB 5.0的功能。本文主要介绍MongoDB 5.0的新特性。  原生时间序列平台
  MongoDB 5.0通过原生支持整个时间序列数据的生命周期(从采集、存储、查询、实时分析和可视化,到在线归档或随着数据老化自动失效),使构建和运行时间序列应用程序的速度更快、成本更低。随着MongoDB 5.0的发布,MongoDB扩展了通用的应用数据平台,使开发能够更容易地处理时间序列数据,进一步扩展其在物联网、金融分析、物流等方面的应用场景。
  MongoDB的时间序列集合以高度优化和压缩的格式自动存储时间序列数据,减少了存储大小和I/O,以实现更好的性能和更大的规模。同时也缩短了开发周期,使您能够快速建立一个针对时间序列应用的性能和分析需求而调优的模型。
  创建时间序列数据集合的命令示例:  db.createCollection("collection_name",{ timeseries: { timeField: "timestamp" } } )
  MongoDB可以无缝地调整采集频率,并根据动态生成的时间分区自动处理无序的测量值。最新发布的MongoDB Connector for Apache Kafka实现了在本地支持时间序列,您可以直接从Kafka主题消息中自动创建时间序列集合,使您在收集数据的同时根据需要对数据进行处理和聚合,然后写入到MongoDB的时间序列集合。
  时间序列集合自动创建一个按时间排序的数据聚集索引,降低查询数据的延迟。MongoDB查询API还扩展了窗口函数,您可以运行分析性查询(例如移动平均数和累积总和)。在关系型数据库系统中,这些通常被称为SQL分析函数,并支持以行为单位定义的窗口(即三行移动平均线)。MongoDB更进一步,还增加了指数移动平均线、导数和积分等强大的时间序列函数,支持您以时间为单位定义窗口(例如15分钟的移动平均线)。窗口函数可用于查询MongoDB的时间序列和常规集合,为多种应用类型提供了新的分析方式。另外,MongoDB 5.0也提供了新的时间运算符,包括$dateAdd、$dateSubstract、$dateDiff和$dateTrunc,使您可以通过自定义的时间窗口对数据进行汇总和查询。
  您可以将MongoDB的时间序列数据与企业的其他数据相结合。时间序列集合可以与同一个数据库中的常规MongoDB集合放在一起,您不必选择一个专门的时间序列数据库(它不能为任何其他类型的应用提供服务),也不需要复杂的集成来混合时间序列和其他数据。MongoDB通过提供一个统一的平台,让您建立高性能和高效的时间序列应用的同时,也为其他用例或工作负载提供支持,从而消除了整合和运行多个不同数据库的成本和复杂性。  在线数据重新分片
  数据库版本
  特点
  实现方法
  MongoDB 5.0以前
  重新分片过程复杂且需要手动分片。方法一:先dump整个集合,然后用新的分片键把数据库重新加载到一个新的集合中。由于这是一个需要离线处理的过程,因此您的应用程序在重新加载完成之前需要中断停服较长时间。例如:在一个三分片的集群上dump和重新加载一个10 TB以上的集合可能需要几天时间。  方法二:新建一个分片集群并重新设定集合的分片键,然后通过定制迁移方式,将旧分片集群中需要重新分片的集合,按新的分片键写入到新的分片集群中。  该过程中需要您自行处理查询路由和迁移逻辑、不断检查迁移进度,以确保所有数据迁移成功。  定制迁移是高度复杂的、劳动密集型的、有风险的任务,而且耗时很长。例如:某个MongoDB用户花了三个月才完成100亿个document的迁移。
  MongoDB 5.0开始运行 reshardCollection 命令即可启动重新分片。  重新分片的过程高效。并不是简单地重新平衡数据,而是在后台将所有当前集合的数据复制并重新写入新集合,同时与应用程序新的写入保持同步。  重新分片是完全自动化的。将重新分片花费的时间从几周或几个月压缩到几分钟或几小时,避免了冗长繁杂的手动数据迁移。  通过使用在线重新分片,可以方便地在开发或测试环境中评估不同分片键的效果,也可以在您需要时修改分片键。  您可以在业务运行(数据不断增长)的情况下,按需改变集合的分片键(Shard key),而不需要数据库停机或在数据集合中进行复杂的迁移。您只需要在MongoDB Shell中运行reshardCollection命令,选择您需要重新分片的数据库和集合,指定新的分片键即可。
  reshardCollection: ".", key: 
  说明  :需要重新分片的数据库名称。  :需要重新分片的集合名称。  :分片键的名称。  当您调用 reshardCollection 命令时,MongoDB会克隆现有集合,然后将现有集合中所有oplog应用到新集合中,当所有oplog被使用后,MongoDB会自动切换到新集合,并在后台删除旧集合。  版本化API应用程序兼容性从MongoDB 5.0开始,版本化API定义了应用程序最常用的一组命令和参数(无论是数据库在年度重大发布还是季度快速发布期间,这些命令均不会改变)。通过将应用程序生命周期和数据库生命周期解耦,您可以将驱动程序固定在MongoDB API的特定版本上,即使数据库发生升级和改进,您的应用程序将可以继续运行数年而不需要修改代码。  灵活地添加新功能和改进内容版本化API支持MongoDB灵活地在每个版本中为数据库添加新的功能和改进内容(以新版本兼容早期版本的方式)。当您需要改变API时,可以增加新版本的API,并与现有版本化的API在同一台服务器上同时运行。随着MongoDB版本发布的加速,版本化API能够使您更快、更轻松地使用到MongoDB最新版本的功能特性。  Write Concern默认Majority级别
  从MongoDB 5.0开始, Write Concern 默认级别为majority,仅当写入操作被应用到Primary节点(主节点)且被持久化到大多数副本节点的日志中的时候,才会提交并返回成功,"开箱即用"地提供了更强的数据可靠性保障。
  说明   Write Concern 是完全可调的,您可以自定义配置 Write Concern ,以平衡应用程序对数据库性能和数据持久性的要求。  连接管理优化
  默认情况下,一个客户端连接对应后端MongoDB服务器上的一个线程( net.serviceExecutor 配置为synchronous)。创建、切换和销毁线程都是消耗较大的操作,当连接数过多时,线程会占用MongoDB服务器较多的资源。
  连接数较多或创建连接失控的情况称为"连接风暴",产生该情况的原因可能是多方面的,且经常是在服务已经受到影响的情况下发生。
  针对这些情况,MongoDB 5.0采取了以下措施:  限制在任何时候驱动程序尝试创建的连接数量,以简单有效的方式防止数据库服务器过载。  减少驱动程序监控连接池时的检查频率,给无响应或过载的服务器节点一个缓冲和恢复的机会。  驱动程序将工作负载导向具有最健康连接池的更快的服务器,而不是从可用的服务器中随机选择。
  以上措施,加上之前版本在mongos查询路由层的改进,进一步提升了MongoDB承受高并发负载的能力。  长时间运行的快照查询
  长时间运行的快照查询(Long-Running Snapshot Queries)增加了应用程序的通用性和弹性。您可以通过该功能运行默认时间为5分钟的查询(或将其调整为自定义持续时间),同时保持与实时事务性数据库一致的快照隔离,也可以在Secondary节点(从节点)上进行快照查询,从而在单个集群中运行不同的工作负载,并将其扩展到不同的分片上。
  MongoDB通过底层存储引擎中一个名为Durable history的项目实现了长期运行的快照查询,该项目早在MongoDB 4.4中就已实现。Durable history将存储自查询开始以来所有变化的字段值的快照。通过使用Durable history,查询可以保持快照隔离,即使在数据发生变化的情况下,Durable history也有助于降低存储引擎的缓存压力,使得业务可以在高写入负载的场景下实现更高的查询吞吐量。  新版MongoDB Shell
  为了提供更好的用户体验,MongoDB 5.0从头开始重新设计了MongoDB Shell(mongosh),以提供一个更现代化的命令行体验,以及增强可用性的功能和强大的脚本环境。新版MongoDB Shell已经成为MongoDB平台的默认shell。新版MongoDB Shell引入了语法高亮、智能自动完成、上下文帮助和有用的错误信息,为您创造一个直观、互动的体验。  增强的用户体验  更容易编写查询和聚合,更容易阅读结果。新版MongoDB Shell支持语法高亮功能,方便您区分字段、值和数据类型,以避免语法错误。如果仍然发生错误,新版MongoDB Shell也可以指出问题点并告诉您解决方法。  更快输入查询和命令。新版MongoDB Shell支持智能自动完成功能,即新版MongoDB Shell可以根据您连接的MongoDB的版本,为方法、命令、MQL表达式等给出自动完成选项的提示。
  示例:当您不记得某个命令的语法时,您可以直接从MongoDB Shell中快速查找该命令的语法。  高级脚本环境新版MongoDB Shell的脚本环境建立在Node.js REPL(交互式解释器)之上,您在脚本中可以使用所有的Node.js API和NPM的任何模块。您也可以从文件系统中加载和运行脚本(和旧版MongoDB Shell一样,您可以继续使用Load和Eval执行脚本)。  扩展性和插件新版MongoDB Shell具有易扩展性,使您能够使用MongoDB的所有功能以提高生产力。
  在新版MongoDB Shell中,允许安装Snippets插件。Snippets可以自动加载至MongoDB Shell中,且Snippets可以使用所有的Node.js API和NPM包。MongoDB也维护了一个Snippets仓库,提供了一些有趣的功能(例如分析指定集合模式的插件),您也可以自由地配置MongoDB Shell使用您选择的插件。
  说明  插件当前仅为MongoDB Shell的一个实验性功能。  PyMongoArrow与数据科学
  随着新的PyMongoArrow API的发布,您可以在MongoDB上使用Python运行复杂的分析和机器学习。PyMongoArrow可以快速将简单的MongoDB查询结果转换为流行的数据格式(例如Pandas数据框架和NumPy数组),帮助您简化数据科学工作流程。  Schema验证改进
  Schema验证(模式验证)是对MongoDB进行数据应用管理控制的一种方式。MongoDB 5.0中,模式验证变得更加简单和友好,当操作验证失败时都会产生描述性的错误信息,帮助您了解不符合集合验证器的验证规则的文档及原因,以快速识别和纠正影响验证规则的错误代码。  可恢复的索引创建任务
  MongoDB 5.0支持将正在进行中的索引创建任务在节点重新启动后自动会恢复至原来的位置,减少计划中维护动作对业务的影响。例如:重新启动或升级数据库节点时,您不需要担心当前正在进行的大集合索引创建任务失效。  版本发布调整
  由于MongoDB支持很多版本和平台,每个发布版本都需在20多个MongoDB支持的平台上进行验证,验证工作量大,降低了MongoDB新功能的交付速度,所以从MongoDB 5.0开始,MongoDB发布的版本将分为Marjor Release(大版本)和Rapid Releases(快速发布版本),其中Rapid Releases作为开发版本提供下载和测试体验,但不建议用在生产环境。

如果新能源汽车遇见芯慌该咋办?这两年的疫情越发严重了,咱们国内还好说,国外可真得是太恐怖了,连带着一些芯片大厂的产能开始下降,它们为了明哲保身,只能将大部分的产能供给到利润比较高的电子产品领域,使得全球的汽车企好评率超高的10大笔记本电脑你确定不来一款吗?近几年来,随着现在电商的崛起,越来越多的朋友喜欢在电商平台购买产品。以笔记本电脑为例,众多用户喜欢在京东购买产品,除了快递方面的服务以外,透明的价格还有大家对于产品的评价也是都能帮美国有关部门将对特斯拉汽车自动驾驶系统的安全性展开调查当地时间16日,美国国家公路交通安全管理局(NHTSA)表示,将开启一项针对特斯拉汽车自动驾驶系统的调查,覆盖范围包括该公司自2014年起在美国境内销售的全部76。5万辆汽车。据N5G物联卡办理注意事项,每一点都与企业利益挂钩自物联网应用以来,为各行业领域带来众多智能设备,造福社会。5G的出现意味着互联网应用设备的再一次提速,物联网行业智能设备的再一次提升。接下来一起了解有关5G物联卡那些事儿。一什么是Java程序员找工作的难点在哪里?找工作对症下药,注意这3点就业问题,是当下每个人都非常关注的问题,近年来的就业形势一直不是很好,就业就等于失业已经在多少人身上践行了,很多人面对就业就是一副被打击惆怅的面孔。Java程序员应该如何找工作?J疫情又又又又来了!美业商家如何度过阵痛期?云美来近期,多地疫情形势反弹,美业商家如何做好运营调整?如何维护客情关系?如何将损失降到最低?成了经营者最关心的问题。那么,我们该如何自救呢?一hr美业思维升级随着疫情影响和移动互联网的亮晶晶的好声音,山灵ME500Shine上手谈耳机圈嘛,骚操作多得很,但论闪眼的,最近估计是山灵独占一档了吧。这次山灵把已经推出2年的ME500来了一次大版本更新,把ME500升级成ME500Shine,并命名为耀。其他不说,基于PC的自动化控制器,到底有多厉害?70多年前,计算机的诞生开启了人类社会的信息化时代。之后,单片机和可编程逻辑控制器(PLC)逐渐替代传统继电器,成为工业自动化领域的主流控制设备。然而,这一切在1985年发生了变化牛B!微信能设置动态封面了昨日,安卓版微信正式更新了8。0。10版我爱网也在第一时间进行了测试,发现了比较好玩的几点更新1。朋友圈视频封面这个功能是小编觉得此次更新最好玩的,在此之前,朋友圈背景一直只能放静网约车司机追打女乘客,嘀嗒出行回应车主账号暂时封禁钛快讯钛媒体快讯8月16日消息昨日,山东青岛一位女士发布视频称,乘坐嘀嗒网约车时,因为修改目的地产生纠纷,被网约车司机拿出一个类似警棍的东西,当街追打。随后,嘀嗒出行官方微博发布关于青岛佳能,尼康相机的寿命各是多长?以什么来衡量?这个问题虽然不专业,但是我身边还有很多朋友问,简单说一下。对于单反相机来说,最脆弱的地方就是相机快门,相机快门是非常精密的零件,所以也存在自然耗损的问题,按一下快门就是一次耗损,在
iPhone15或将采用USBC接口,Lightning接口终于即将要被抛弃苹果近几年的iPhone手机,一直采用的是Lightning接口,由于不能与USBC接口通用,导致在部分情况下充电不是特别方便。不过这一现状即将被打破,据分析师郭明錤最新调查显示,麻省理工科技评论发布21世纪迄今十大最糟科技必须承认,人类总会犯错,在科技的发展上也是一样。所以,当最新一期的麻省理工科技评论评出今天这份20002019年糟糕科技清单时,你千万不要以为这是一件容易的事情。如果某项科技没有达文物活了文创火了,新消费浪潮中,阿里创造了什么价值?文谢浩导语从文创产业到母婴室等项目,阿里巴巴逐渐体现出商业价值之外的社会价值,这应该是诸多平台型企业应该追求的目标。前几天,你的朋友圈有没有被一只咖啡杯刷屏?来自星巴克的这款猫爪咖英特尔又出系统级安全漏洞,暂未修复去年对于英特尔来说是不平凡的一年,现实AMD的Ryzen处理器大放异彩,在市场上获得了众多DIY用户的认可,已经足以与英特尔分庭抗争。而后又是爆出了熔断(Meltdown)和幽灵(曾经是全球第一PC厂商戴尔据国外媒体报道,上周四电脑行业巨头之一的戴尔科技公司发布2019财年第四季度及全年财报。财报显示,第四季度亏损扩大至2。9亿美元(约19亿元人名币),比去年同期亏损增幅116更让人事实证明Unity不仅用于游戏还可应用在汽车人工智能和VR领域Unity是一种授权游戏引擎,是世界上最常用的游戏开发软件之一。它也是游戏的Adobe。对于初学者来说,UnityTechnologies的UnityPersonal是一个免费使用黑客入门十个常用破解网络密码的方法!你了解几个!个人网络密码安全是整个网络安全的一个重要环节,如果个人密码遭到黑客破解,将引起非常严重的后果,例如网络银行的存款被转账盗用,网络游戏内的装备或者财产被盗,QQ币被盗用等等,增强网民你以为它是一个鼠标垫,其实它还是一个充电宝智能产品是未来的主要发展趋势,为此近些年来的智能产品层出不穷,小米也不甘落后,研发了很多性价比较高的智能产品。而今天我们要为大家介绍的是小米smartpad鼠标垫。该产品荣获201骁龙845和骁龙855的差距大吗?骁龙855作为骁龙845的继承者,用来取代骁龙845,在CPUGPUAI等方面有了很大的提升,下文对这两款Soc进行对比。CPU方面制造工艺骁龙855基于台积电的7nm制造工艺,骁用手机修改DNS告别小广告,上网更清爽广告无处不在,看视频听音乐浏览网页都有一些广告,正常的也就罢了,但是有些是别人的没有我的就有广告,一不小心就点到了有色小视频,在公众面前号尴尬。疑似手机中毒,但是杀毒软件查杀不出病环比下滑552月动力电池装机电量解读高工产业研究院(GGII)通过最新发布的动力电池字段数据库统计显示,2019年2月我国新能源汽车生产约5。3万辆,同比增长43动力电池装机总电量约2。24GWh,同比增长118。值